
Posts
86
Respect
34Add +1
Forum Rank
Rotting Walker
Primary Group
Community Mapper
Login Issues
Forgot password?Activate Issues
Account activation email not received? Wrong account activation email used?Other Problems?
Contact Support - Help Center Get help on the UGX Discord. Join it now!![]() | Has released one or more maps to the UGX-Mods community which have been added to the UGX Map Manager. |
thread easter_egg();
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)
{
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);
}
}