Post: [GSC] Nuketown Zombies Platform Base
04-01-2018, 12:58 AM #1
(adsbygoogle = window.adsbygoogle || []).push({}); Just a small thing I built when I was working on a Skybase. Hopefully it brings more to zombies.

Init
    
precachemodel("zombie_vending_doubletap2");
precachemodel("p6_anim_zm_magic_box");
precachemodel("collision_clip_sphere_64");
precachemodel("collision_clip_sphere_32");
level.AirspaceFull = 0;
level.pBase = false;


Spawn The Platform
    
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[x] = spawnSM((50.91, -1802.31, 264.407) + (x * 20, i * 20, 0), "p6_anim_zm_magic_box");
visual[x] thread deletePlatformPieceOnToggle();
solid[x] = spawnSM((50.91, -1802.31, 264.407) + (x * 30, i * 30, 0), "collision_clip_sphere_32");
solid[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+"^7come 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_doubletap", "zombie_vending_doubletap2", "Double Tap", 100, (141.814, -1788.23, 279.733), "specialty_rof" );//125.255, -1760.7, 280.532
}

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, 270, 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(;:wink:
{
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", (-62.9428, -1768.25, 279.763));
level.MagicBox = spawn( "script_model", (-62.9428, -1768.25, 279.763));
level.MagicBox setModel("p6_anim_zm_magic_box");
level.solid = spawnSM((-62.9428, -1768.25, 279.763), "collision_clip_sphere_32");
level.MagicBox2 = spawn( "trigger_radius", (-62.9428, -1768.25, 279.763), 1, 50, 10 );
level.MagicBox2 SetCursorHint( "HINT_NOICON" );
level.MagicBox2 UseTriggerRequireLookAt();
level.MagicBox2 setLowerMessage( level.MagicBox2, "SynergyMagicBox" );
level.MagicBox rotateTo((0, 90, 0), .1);
level.MagicBox2 rotateTo((0, 90, 0), .1);
level.MagicWeapons rotateTo((0, 90, 0), .1);
for(;:wink:
{
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", (275.151, -520.077, -23.7487));
level.ModelTeleporter setModel("zombie_teddybear");
level.ModelTeleporter rotateTo((0, 0, 0), .1);
playfx( loadfx( "misc/fx_zombie_powerup_on" ), (275.151, -520.077, -23.7487));
level.RoomTeleporter1 = spawn( "trigger_radius", (275.151, -520.077, -23.7487), 1, 50, 10 );
level.RoomTeleporter1 SetCursorHint( "HINT_NOICON" );
level.RoomTeleporter1 UseTriggerRequireLookAt();
level.RoomTeleporter1 setLowerMessage( level.RoomTeleporter1, "Room Teleporter 1" );
for(;:wink:
{
level.RoomTeleporter1 waittill( "trigger", i );
if( i UseButtonPressed() && i.TeleportNotPossible == false)
{
i SetOrigin((126.043, -1875.02, 280.532));
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", (-69.5127, -1876.14, 315.792));
level.ModelTeleporter2 setModel("zombie_teddybear");
level.ModelTeleporter2 rotateTo((0,0,0), .1);
playfx( loadfx( "misc/fx_zombie_powerup_on" ), (-69.5127, -1876.14, 315.792) );
level.RoomTeleporter2 = spawn( "trigger_radius", (-69.5127, -1876.14, 315.792), 1, 50, 10 );
level.RoomTeleporter2 SetCursorHint( "HINT_NOICON" );
level.RoomTeleporter2 UseTriggerRequireLookAt();
level.RoomTeleporter2 setLowerMessage( level.RoomTeleporter2, "Room Teleporter 2" );
for(;:wink:
{
level.RoomTeleporter2 waittill( "trigger", i );
if( i UseButtonPressed() && i.TeleportNotPossible == false)
{
i SetOrigin((275.151, -520.077, -23.7487));
self thread PBaseGoodbye();
i.TeleportNotPossible = true;
i.ignoreme=0;
wait(5);
i.TeleportNotPossible = false;
}
}
}

deletePlatformPieceOnToggle()
{
level waittill("destroy_platform");
self delete();
}


Video:

The following user thanked ProjectSynergy for this useful post:

/SneakerStreet/
05-11-2018, 10:30 AM #2
/SneakerStreet/
At least I can fight
realy nice Smile good job

Copyright © 2024, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo