Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function easter_egg()
- {
- level.reward = "door"; //what happens when you place the objects. Right now, options are: ("door","powerup","gun")
- level.reward_2 = "gun"; //add another reward if you want. just say "false" or delete the line if you don't want an extra reward.
- level.reward_3 = "false"; //add yet another reward if you want. Note that you cannot do more than one of the same reward.
- level.powerup_type = "random"; //if using a powerup as one of your rewards, this is what type. can be ("full_ammo","nuke","insta_kill","free_perk","fire_sale","double_points","carpenter","minigun",and "random")
- level.place_the_objects = "true"; //whether or not you have to place the objects ("true") or just collect them ("false") to get the reward.
- level.reward_weapons = array( "ar_damage", "lmg_cqb", "shotgun_pump", "smg_versatile" ); //weapons it can give you in the "gun" reward. put as many or as little as you like.
- level.gun_expire = true; //whether or not the gun will go away in time.
- level.trigger_hintstring = "Press ^3[{+activate}]^7 to pickup object"; //hintstring for picking up objects. If you don't want a hintstring for picking up objects delete this entire line.
- level.trigger_place_hintstring = "Press ^3[{+activate}]^7 to place objects"; //hintstring for placing objects after collecting all of them. If you don't want a hintstring for placing objects delete this entire line.
- level.gun_hintstring = "Press ^3[{+activate}]^7 to take weapon"; //if gun reward is activated, hintstring for picking up gun.
- level.one_gun_per_player = "true"; //for gun powerup, set "true" if you want a gun to spawn for each player, "false" for just one gun no matter what.
- level.different_guns_per_player = "false"; //for gun powerup, set "true" if you want each gun to be randomly different, false if you want them to be the same random gun. if one_gun_per_player = "false" this doesn't matter.
- level.placed_objects = GetEntArray("placed_object","targetname");
- if(isdefined(level.placed_objects))
- {
- for(i=0;i<level.placed_objects.size;i++)
- {
- level.placed_objects[i] Hide();
- }
- }
- level.objects_picked_up = 0;
- level.objects = GetEntArray("easter_egg_object","targetname");
- for(i=0;i<level.objects.size;i++)
- {
- level.objects[i] thread wait_for_pickup();
- }
- }
- function wait_for_pickup()
- {
- trig = GetEnt(self.target,"targetname");
- trig SetCursorHint( "HINT_NOICON" );
- if(isdefined(level.trigger_hintstring))
- trig SetHintString(level.trigger_hintstring);
- trig waittill("trigger",player);
- self Delete();
- trig Delete();
- level.objects_picked_up ++;
- if(level.objects_picked_up == level.objects)
- {
- if(level.place_the_objects == true)
- {
- trig_place = GetEnt("trig_place","targetname");
- trig_place SetCursorHint( "HINT_NOICON" );
- if(isDefined(level.trigger_place_hintstring))
- trig_place SetHintString(level.trigger_place_hintstring);
- trig_place waittill("trigger",player);
- if(isdefined(level.placed_objects))
- {
- for(i=0;i<level.placed_objects.size;i++)
- {
- level.placed_objects[i] Show();
- }
- }
- }
- reward();
- }
- }
- function reward()
- {
- if(level.reward == "door" || level.reward_2 == "door" || level.reward_3 == "door")
- {
- time = 2; //2 is amount of time in seconds door takes to move.
- door_parts = GetEntArray("easter_egg_door","targetname");
- for(i=0;i<door_parts.size;i++)
- {
- struct = struct::get(door_parts[i].target,"targetname");
- door_parts[i] MoveTo(struct.origin, time);
- }
- wait(time);
- for(i=0;i<door_parts.size;i++)
- {
- struct = struct::get(door_parts[i].target,"targetname");
- struct Delete();
- door_parts[i] Delete(); //Delete this line if you don't want the door to go away after its done moving.
- }
- }
- if(level.reward == "powerup" || level.reward_2 == "powerup" || level.reward_3 == "powerup")
- {
- powerup_struct = GetEnt("powerup_struct","targetname");
- if(level.powerup_type != "random")
- thread zm_powerups::specific_powerup_drop( level.powerup_type, powerup_struct.origin);
- if(level.powerup_type == "random")
- {
- rand = RandomIntRange( 0, 7 ); //("full_ammo","nuke","insta_kill","free_perk","fire_sale","double_points","carpenter","minigun")
- if(rand == 0)
- thread zm_powerups::specific_powerup_drop( "full_ammo", powerup_struct.origin);
- if(rand == 1)
- thread zm_powerups::specific_powerup_drop( "nuke", powerup_struct.origin);
- if(rand == 2)
- thread zm_powerups::specific_powerup_drop( "insta_kill", powerup_struct.origin);
- if(rand == 3)
- thread zm_powerups::specific_powerup_drop( "free_perk", powerup_struct.origin);
- if(rand == 4)
- thread zm_powerups::specific_powerup_drop( "fire_sale", powerup_struct.origin);
- if(rand == 5)
- thread zm_powerups::specific_powerup_drop( "double_points", powerup_struct.origin);
- if(rand == 6)
- thread zm_powerups::specific_powerup_drop( "carpenter", powerup_struct.origin);
- if(rand == 7)
- thread zm_powerups::specific_powerup_drop( "minigun", powerup_struct.origin);
- }
- }
- if(level.reward == "gun" || level.reward_2 == "gun" || level.reward_3 == "gun")
- {
- if(level.one_gun_per_player == false)
- gun_struct = struct::get("gun_struct","targetname");
- thread RewardGun(gun_struct.origin+(0,0,40), array::randomize(level.reward_weapons)[0]);
- if(level.one_gun_per_player == true && level.different_guns_per_player == true)
- {
- gun_structs = struct::get_array("gun_struct","targetname");
- for(i=0;i<level.players.size;i++)
- {
- thread RewardGun(gun_structs[i].origin+(0,0,40), array::randomize(level.reward_weapons)[0]);
- }
- }
- if(level.one_gun_per_player == true && level.different_guns_per_player == false)
- {
- rand = RandomIntRange( 0, level.reward_weapons.size );
- gun_structs = struct::get_array("gun_struct","targetname");
- for(i=0;i<level.players.size;i++)
- {
- thread RewardGun(gun_structs[i].origin+(0,0,40), level.reward_weapons[rand]);
- }
- }
- }
- }
- function RewardGun(pos, weapon) //below here is slightly edited stuff from MakeCents's Growing Soulbox script
- {
- gun = spawn("script_model", pos);
- playsoundatposition("zmb_spawn_powerup", pos);
- gun SetModel(GetWeaponWorldModel(GetWeapon(weapon)));
- PlayFX(level._effect["powerup_grabbed_solo"], gun.origin);
- trig = spawn("trigger_radius", gun.origin, 0, 20, 50);
- gun thread SpinMe();
- gun thread GiveMe(weapon, trig);
- if(level.gun_expire == true)
- gun thread LifeTime(trig);
- }
- function LifeTime(trig)
- {
- self endon("death");
- wait(120);//wait 2 minutes then delete
- if(isdefined(self))
- {
- self notify("rewardgun_delete");
- }
- if(isdefined(trig))
- {
- trig delete();
- }
- if(isdefined(self))
- {
- self delete();
- }
- }
- function GiveMe(weapon, trig)
- {
- self endon("rewardgun_delete");
- while(1)
- {
- trig waittill("trigger", player);
- player thread SetGunHint(level.gun_hintstring, trig);
- if(player HasWeapon(getweapon("minigun")))
- {
- continue;
- }
- if(!(player UseButtonPressed()))
- {
- continue;
- }
- if(player laststand::player_is_in_laststand())
- {
- continue;
- }
- trig delete();
- self delete();
- player zm_weapons::weapon_give(getweapon(weapon));
- player SwitchToWeapon(getweapon(weapon));
- break;
- wait(.1);
- }
- }
- function SpinMe()
- {
- self endon("rewardgun_delete");
- self endon("death");
- while(isdefined(self))
- {
- if(isdefined(self))
- {
- self rotateyaw(360,2);
- }
- wait(1.9);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement