What's new

[ALL] GSC Platform Base

  • Thread starter Cryptic7s
  • Start date
  • Views 3,206
C

Cryptic7s

Enthusiast
Messages
388
Solutions
2
Reaction score
50
Points
105
Sin$
7
Just a small project I was working on along side my Sky base. It uses the same functions as my Bunker for most things. But pretty decent anyway.

What you need:

Place this code into your init():
Code:
level.AirspaceFull = 0;
models = strTok("zombie_vending_doubletap2","collision_clip_sphere_32","collision_clip_sphere_64","p6_zm_cratepile","p6_zm_tm_packapunch","zombie_teddybear","defaultactor","defaultvehicle", "zombie_vending_jugg",";");
        array_precache(models, "model");
level.pBase = false;
          if (level.script == "zm_tomb")
          {
              precachemodel("p6_anim_zm_tm_magic_box");
              level.pbaseBoxCoords = (-96.5315, 147.866, 591.753);
              level.pbaseTele1Coords = (-941.083, 2960.17, -75.6676);
              level.pbaseTele2Coords = (-173.508, -60.0871, 629.819);
              level.pbaseSpawnCoords = (-30.9139, 46.0692, 576.125);
              level.pbaseModel = "p6_anim_zm_tm_magic_box";
              level.pbasePerkCoords = (-186.558, 53.6678, 592.25);
              level.pbaseTele1to = (-138.38, -110.206, 576.125);
              level.pbaseTele2to = (-780.926, 3014.67, -111.875);
          }
          else if (level.script == "zm_nuked")
          {
              precachemodel("p6_anim_zm_magic_box");
              level.pbaseBoxCoords = (110.3, -1714.39, 280.532);
              level.pbaseTele1Coords = (275.151, -520.077, -23.7487);
              level.pbaseTele2Coords = (-69.5127, -1876.14, 315.792);
              level.pbaseSpawnCoords = (50.91, -1802.31, 264.407);
              level.pbaseModel = "p6_anim_zm_magic_box";
              level.pbasePerkCoords = (-91.8804, -1755.87, 279.803);
              level.pbaseTele1to = (126.043, -1875.02, 280.532);
              level.pbaseTele2to = (275.151, -520.077, -23.7487);
          }
          else if (level.script == "zm_transit")
          {
              precachemodel("p6_anim_zm_magic_box");
              level.pbaseSpawnCoords = (1534.9, -447.783, 860.514);
              level.pbaseTele1Coords = (1141.64, -716.411, -18.4264);
              level.pbaseTele1to = (1659.8, -396.629, 876.532);
              level.pbaseTele2Coords = (1663.84, -570.334, 913.318);
              level.pbaseTele2to = (1141.64, -716.411, -18.4264);
              level.pbasePerkCoords = (1386.07, -437.144, 876.295);
              level.pbaseModel = "p6_anim_zm_magic_box";
              level.pbaseBoxCoords = (1458.09, -355.939, 875.958);
              level.pbaseSolid = (1386.88, -436.347, 928.134);
          }

Now for the Platform Script:
Code:
spawnPlatformBase()
{
    if (level.AirspaceFull == 0)
    {
        self thread spawnBaseFloor();
        self thread PBasePerks();
        self thread pBaseBox();
        self thread pBaseTeleOne();
        level.AirspaceFull = 1;
        self thread pBaseTeleTwo();
        level.pBase = true;
    }
    else
    {
        self iprintln("Error: Max Entity Limit Reached");
    }
}
spawnBaseFloor()
{
    level endon("destroy_platform");
 
    visual = [];
    solid = [];
    startPos = self.origin + (0, 0, -10);
    i = -5;
    while (i < 5)
    {
        x = -5;
        while (x < 5)
        {
            visual[i][x] = spawnSM(level.pbaseSpawnCoords + (x * 25, i * 25, 0), level.pbaseModel);
            visual[i][x] thread deletePlatformPieceOnToggle();
            solid[i][x] = spawnSM(level.pbaseSpawnCoords + (x * 30, i * 30, 0), "collision_clip_sphere_32");
            solid[i][x] thread deletePlatformPieceOnToggle();
            x++;
            wait .05;
        }
        i++;
    }
}
welcomeMessagePBase()
{
        self.welcomeMessageRunning = true;
        self.msg1 = self createFontString("bigfixed",1);
        self.msg1 setPoint("CENTER","CENTER",0,0);
        self.msg1 setSafeText("Hey ^1"+self.name+"^7, Welcome To");
        self.msg1.color = (1,1,1);
        self.msg1.alpha = 0;
        self.msg1 fadeOverTime(.5);
        self.msg1.alpha = 1;
        wait .5;
        self.msg2 = self createFontString("bigfixed",1);
        self.msg2 setPoint("CENTER","CENTER",0,30);
        self.msg2 setSafeText("Synergy's Platform Base");
        self.msg2.color = (1,1,1);
        self.msg2.alpha = 0;
        self.msg2 fadeOverTime(.5);
        self.msg2.alpha = 1;
        wait .5;
        wait 3.5;
        self.msg1.alpha = 1;
        self.msg2.alpha = 1;
        self.msg1 fadeOverTime(2);
        self.msg2 fadeOverTime(2);
        self.msg1.alpha = 0;
        self.msg2.alpha = 0;
        wait 2;
        self.msg1 destroy();
        self.msg2 destroy();
}

PBaseGoodbye()
{
        self.welcomeMessageRunning = true;
        self.msg1 = self createFontString("bigfixed",1);
        self.msg1 setPoint("CENTER","CENTER",0,0);
        self.msg1 setSafeText("Thanks for using the Platform Base");
        self.msg1.color = (1,1,1);
        self.msg1.alpha = 0;
        self.msg1 fadeOverTime(.5);
        self.msg1.alpha = 1;
        wait .5;
        self.msg2 = self createFontString("bigfixed",1);
        self.msg2 setPoint("CENTER","CENTER",0,30);
        self.msg2 setSafeText("Made By ProjectSynergy");
        self.msg2.color = (1,1,1);
        self.msg2.alpha = 0;
        self.msg2 fadeOverTime(.5);
        self.msg2.alpha = 1;
        wait .5;
        wait 3.5;
        self.msg1.alpha = 1;
        self.msg2.alpha = 1;
        self.msg1 fadeOverTime(2);
        self.msg2 fadeOverTime(2);
        self.msg1.alpha = 0;
        self.msg2.alpha = 0;
        wait 2;
        self.msg1 destroy();
        self.msg2 destroy();
}

pBasePerks()
{
    self thread PerksSystempBase( "zombie_perk_bottle_jugg", "zombie_vending_jugg", "Juggernog", 100, level.pbasePerkCoords, "specialty_rof" );
}

PerksSystempBase( botal, model, perkname, cost, origin, perk )
{
    RPerks = spawn( "script_model", origin );
 
    level.solid = spawnSM(origin, "collision_clip_sphere_32");
    RPerks setModel( model );
    RPerks rotateTo((0, 90, 0), .1);
    level thread LowerMessage( "Bunker Perks", "Press [{+usereload}] To Buy All Perks [Cost: "+cost+"]" );
    trig = spawn("trigger_radius", origin, 1, 20, 20);
    trig SetCursorHint( "HINT_NOICON" );
    trig setLowerMessage( trig, "Bunker Perks" );
    for(;;)
    {
        trig waittill("trigger", i);
        if(i useButtonPressed() && i.score >= cost)
        {
            wait .3;
            if(i useButtonPressed())
            {
                i playsound( "zmb_cha_ching" );
                i.score -= cost;
                i thread GiveAllPerks();
                wait 5;
            }
        }
    }
}
pBaseBox()
{
    level thread LowerMessage( "SynergyMagicBox", "Press [{+usereload}] For a Random Upgraded Weapon [Cost: 250 ]" );
    level.MagicWeapons = spawn( "script_model", level.pbaseBoxCoords);
    level.MagicBox = spawn( "script_model", level.pbaseBoxCoords);
    level.MagicBox setModel(level.pbaseModel);
    level.solid = spawnSM(level.pbaseBoxCoords, "collision_clip_sphere_32");
    level.MagicBox2 = spawn( "trigger_radius", level.pbaseBoxCoords, 1, 50, 10 );
    level.MagicBox2 SetCursorHint( "HINT_NOICON" );
    level.MagicBox2 UseTriggerRequireLookAt();
    level.MagicBox2 setLowerMessage( level.MagicBox2, "SynergyMagicBox" );
    level.MagicBox rotateTo((0, 0, 0), .1);
    level.MagicBox2 rotateTo((0, 0, 0), .1);
    level.MagicWeapons rotateTo((0, 0, 0), .1);
    for(;;)
    {
        level.MagicBox2 waittill( "trigger", i );
        if( i UseButtonPressed() && i.score >= 250 && level.MagicBoxOpended == false )
        {
            i.WeaponsList = [];
            i.WeaponsList[0] = "ray_gun_upgraded_zm";
            i.WeaponsList[1] = "galil_upgraded_zm";
            i.WeaponsList[2] = "usrpg_upgraded_zm";
            i.WeaponsList[3] = "m1911_upgraded_zm";
            i.WeaponsList[4] = "raygun_mark2_upgraded_zm";
            i.WeaponsList[5] = "python_upgraded_zm";
            i.WeaponsList[6] = "knife_ballistic_upgraded_zm";
            i.WeaponsList[7] = "defaultweapon_mp";
            i.WeaponsList[8] = "ak74u_upgraded_zm";
            i.WeaponsList[9] = "mp5k_upgraded_zm";
            i.WeaponsList[10] = "qcw05_upgraded_zm";
            i.WeaponsList[11] = "m14_upgraded_zm";
            i.WeaponsList[12] = "m16_gl_upgraded_zm";
            i.WeaponsList[13] = "tar21_upgraded_zm";
            i.WeaponsList[14] = "fnfal_upgraded_zm";
            i.WeaponsList[15] = "rpd_upgraded_zm";
            i.WeaponsList[16] = "hamr_upgraded_zm";
            i.WeaponsList[17] = "dsr50_upgraded_zm";
            i.WeaponsList[18] = "barretm82_upgraded_zm";
            i.WeaponsList[19] = "m32_upgraded_zm";
            i.WeaponsList[20] = "fivesevendw_upgraded_zm";
            i.WeaponsList[21] = "judge_upgraded_zm";
            i.WeaponsList[22] = "kard_upgraded_zm";
            i.WeaponsList[23] = "srm1216_upgraded_zm";
            i.WeaponsList[24] = "rpd_upgraded_zm";
            i.WeaponsList[25] = "ray_gun_upgraded_zm";
            i.WeaponsList[26] = "m1911_upgraded_zm";
            i.WeaponsSelected = RandomInt( i.WeaponsList.size );
            level.MagicBoxOpended = true;
            play_sound_at_pos( "open_chest", i.origin );
            i.score -= 250;
            play_sound_at_pos( "music_chest", i.origin );
            MyWeapon = i getCurrentWeapon();
            i giveWeapon( "zombie_knuckle_crack" );
            i switchToWeapon( "zombie_knuckle_crack" );
            level.MagicWeapons setModel(getWeaponModel(i.WeaponsList[i.WeaponsSelected]));
            level.MagicWeapons MoveTo(level.MagicBox.origin + (0,0,35),1);
            wait 2.8;
            i takeWeapon( "zombie_knuckle_crack" );
            i takeWeapon( MyWeapon );
            level.MagicWeapons setModel("");
            i giveweapon( i.WeaponsList[i.WeaponsSelected] );
            i switchToWeapon( i.WeaponsList[i.WeaponsSelected] );
            level.MagicWeapons MoveTo(level.MagicBox.origin,1);
            level.MagicBoxOpended = false;
        }
        wait .1;
    }
}
pBaseTeleOne()
{
 
    level thread LowerMessage( "Room Teleporter 1", "Press [{+usereload}] To Teleport To The Skybase" );
    level.ModelTeleporter = spawn( "script_model", level.pbaseTele1Coords);
    level.ModelTeleporter setModel("zombie_teddybear");
    level.ModelTeleporter rotateTo((0, 0, 0), .1);
    playfx( loadfx( "misc/fx_zombie_powerup_on" ), level.pbaseTele1Coords);
    level.RoomTeleporter1 = spawn( "trigger_radius", level.pbaseTele1Coords, 1, 50, 10 );
    level.RoomTeleporter1 SetCursorHint( "HINT_NOICON" );
    level.RoomTeleporter1 UseTriggerRequireLookAt();
    level.RoomTeleporter1 setLowerMessage( level.RoomTeleporter1, "Room Teleporter 1" );
    for(;;)
    {
        level.RoomTeleporter1 waittill( "trigger", i );
        if( i UseButtonPressed() && i.TeleportNotPossible == false)
        {
            i SetOrigin(level.pbaseTele1to);
            self thread welcomeMessagePBase();
            i.ignoreme=1;
            i.TeleportNotPossible = true;
            wait(5);
            i.TeleportNotPossible = false;
        }
    }
}
pBaseTeleTwo()
{
 
    level thread LowerMessage( "Room Teleporter 2", "Press [{+usereload}] To Exit the Skybase" );
    level.ModelTeleporter2 = spawn( "script_model", level.pbaseTele2Coords);
    level.ModelTeleporter2 setModel("zombie_teddybear");
    level.ModelTeleporter2 rotateTo((0,0,0), .1);
    playfx( loadfx( "misc/fx_zombie_powerup_on" ), level.pbaseTele2Coords );
    level.RoomTeleporter2 = spawn( "trigger_radius", level.pbaseTele2Coords, 1, 50, 10 );
    level.RoomTeleporter2 SetCursorHint( "HINT_NOICON" );
    level.RoomTeleporter2 UseTriggerRequireLookAt();
    level.RoomTeleporter2 setLowerMessage( level.RoomTeleporter2, "Room Teleporter 2" );
    for(;;)
    {
        level.RoomTeleporter2 waittill( "trigger", i );
        if( i UseButtonPressed() && i.TeleportNotPossible == false)
        {
            i SetOrigin(level.pbaseTele2to);
            self thread PBaseGoodbye();
            i.TeleportNotPossible = true;
            i.ignoreme=0;
            wait(5);
            i.TeleportNotPossible = false;
        }
    }
}

Video of the actual Platform:


Hopefully this brings better things to the game. Zombies is slightly left out tbh.

EDIT:
Update 03/01/19:
Added Initial Origins Support. Will be adding other maps in the coming updates.
Update 10/01/19:
Added Support for Green Run (Spawns in Town)
Added Full Origins Support
Fixed a couple of Glitches with Nuketown
Streamlined the Script a little.
 
Last edited:
C

Cryptic7s

Enthusiast
Messages
388
Solutions
2
Reaction score
50
Points
105
Sin$
7
UPDATE: 03/01/19: Initial Origins Support. Updated support for all maps will be coming in the next updates, as well as fixes for a few issues. Video For Green Run, Nuketown, and Origins
 
Last edited:
XeCrout

XeCrout

JesusSalas - Xbox Dev
Messages
412
Reaction score
152
Points
150
Sin$
7
UPDATE: 03/01/19: Initial Origins Support. Updated support for all maps will be coming in the next updates, as well as fixes for a few issues. Please note the video is only for Nuketown.


i miss GSC not gonna lie
 
C

Cryptic7s

Enthusiast
Messages
388
Solutions
2
Reaction score
50
Points
105
Sin$
7
i miss GSC not gonna lie

I do a lot of GSC testing running Redacted as it saves a ban. If you have it on PC feel free to shoot me a message and test with me. Been porting my skybase all night.
 
XeCrout

XeCrout

JesusSalas - Xbox Dev
Messages
412
Reaction score
152
Points
150
Sin$
7
I do a lot of GSC testing running Redacted as it saves a ban. If you have it on PC feel free to shoot me a message and test with me. Been porting my skybase all night.

i wish i could have it on pc :/ but i do on xbox :smile: i can record it if you want me to
 
C

Cryptic7s

Enthusiast
Messages
388
Solutions
2
Reaction score
50
Points
105
Sin$
7
i wish i could have it on pc :/ but i do on xbox :smile: i can record it if you want me to

Uh yeah sure. I'd record it myself but right now my GPU is in the process of being replaced by nVidia haha. Thanks man! :smile:

Edit: 09/01/19
Updated video with spawns for all maps is coming tonight, along with better optimised code for the spawns. Should decrease code usage by a decent amount.

EDIT 2:
Problem with Mob of the Dead and an Unhandled Exception whenever I try to spawn the base. Fixing...
 
Last edited:
C

Cryptic7s

Enthusiast
Messages
388
Solutions
2
Reaction score
50
Points
105
Sin$
7
Updated Again. please see update log at the bottom for information regarding the update. If there are any bugs, please message me and I will investigate.
 
Top Bottom
Login
Register