C
Cryptic7s
Enthusiast
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():
Now for the Platform Script:
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.
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: