


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!function init_weapon_upgrade()
{
init_spawnable_weapon_upgrade();
weapon_spawns = ;
weapon_spawns = GetEntArray( "weapon_upgrade", "targetname" );
for ( i = 0; i < weapon_spawns.size; i++ )
{
mapname = GetCurrentMap(); //no, this is Lua not GSC
switch(mapname)
{
//Kino Der Toten
case "zm_theater":
switch ( weapon_spawns[i].zombie_weapon_upgrade )
{
case "ar_marksman": //Sheiva
weapon_spawns[i].zombie_weapon_upgrade = "t5_olympia";
break;
case "pistol_burst": //RK5
weapon_spawns[i].zombie_weapon_upgrade = "t5_m14";
break;
case "smg_burst": //Pharo
weapon_spawns[i].zombie_weapon_upgrade = "t5_pm63";
break;
//Remove Vesper
case "shotgun_precision": //Argus
weapon_spawns[i].zombie_weapon_upgrade = "t5_stakeout";
break;
case "smg_waw_mp40":
weapon_spawns[i].zombie_weapon_upgrade = "t5_mp40";
break;
case "ar_standard": //KN-44
weapon_spawns[i].zombie_weapon_upgrade = "t5_mp5k";
break;
case "ar_accurate": //ICR-1
weapon_spawns[i].zombie_weapon_upgrade = "t5_m16a1";
break;
case "pistol_fullauto": //L-CAR 9
weapon_spawns[i].zombie_weapon_upgrade = "t5_mpl";
break;
case "smg_versatile": //VMP
weapon_spawns[i].zombie_weapon_upgrade = "t5_ak74u";
break;*/
/*case "bowie_knife": //handle these later
weapon_spawns[i].targetname = "bowie_upgrade";
break;
case "bouncingbetty":
weapon_spawns[i].zombie_weapon_upgrade = "bouncingbetty";
break;
case "frag_grenade":
weapon_spawns[i].zombie_weapon_upgrade = "stielhandgranate";
break;*/
}
break;
...
}
weapon_spawns[i].weapon = GetWeapon( weapon_spawns[i].zombie_weapon_upgrade )
#using scripts\codescripts\struct;
#using scripts\shared\aat_shared;
#using scripts\shared\ai\systems\gib;
#using scripts\shared\ai\zombie_utility;
#using scripts\shared\array_shared;
#using scripts\shared\callbacks_shared;
#using scripts\shared\clientfield_shared;
#using scripts\shared\flag_shared;
#using scripts\shared\laststand_shared;
#using scripts\shared\scene_shared;
#using scripts\shared\system_shared;
#using scripts\shared\util_shared;
#using scripts\zm\_util;
#using scripts\zm\_zm;
#using scripts\zm\_zm_equipment;
#using scripts\zm\_zm_perks;
#using scripts\zm\_zm_powerups;
#using scripts\zm\_zm_score;
#using scripts\zm\_zm_spawner;
#using scripts\zm\_zm_utility;
#using scripts\zm\_zm_weapons;
#namespace zm_swap_weapons;
function autoexec __init__sytem__()
{
system::register("zm_swap_weapons", &init, &main, undefined);
}
function init()
{
}
function main()
{
thread swap_chalk();
level flag::wait_till("initial_blackscreen_passed");
}
function swap_wall_weapon()
{
rk5 = 0;
foreach(ent in struct::get_array("weapon_upgrade", "targetname"))
{
VAL = ent.zombie_weapon_upgrade;
if(!isdefined(VAL))
{
continue;
}
switch( GetDvarString("mapname") )
{
case "zm_cosmodrome": //Ascension
{
switch(VAL)
{
case "ar_marksman": //Sheiva
{
ent.zombie_weapon_upgrade = "t5_m14";
break;
}
case "pistol_burst": //RK5
{
if (rk5 == 0)
ent.zombie_weapon_upgrade = "t5_olympia";
else
ent.zombie_weapon_upgrade = "t5_mp5k";
rk5 = 1;
break;
}
break;
}
}
if(isdefined(ent.target) && isdefined(VAL))
{
struct::get(ent.target, "targetname").model = GetWeapon(ent.zombie_weapon_upgrade).worldmodel;
}
}
}
function swap_chalk()
{
foreach(ent in struct::get_array("weapon_upgrade", "targetname"))
{
VAL = ent.zombie_weapon_upgrade;
if(!isdefined(VAL))
{
break;
}
switch(VAL)
{
case "t5_m14":
{
spawn_loc = struct::get(ent.target, "targetname");
switch( GetDvarString("mapname") )
{
case "zm_theater": //Kino der Toten
{
ent.spawnmodel = util::spawn_model("wallbuy_m14", spawn_loc.origin, spawn_loc.angles);
break;
}
case "zm_cosmodrome": //Ascension
{
ent.spawnmodel = util::spawn_model("wallbuy_m14", spawn_loc.origin + VectorScale((0, -1, 0), 1), spawn_loc.angles);
break;
}
case "zm_temple": //Shangri-La
{
ent.spawnmodel = util::spawn_model("wallbuy_m14", spawn_loc.origin, spawn_loc.angles);
break;
}
case "zm_moon":
{
ent.spawnmodel = util::spawn_model("wallbuy_m14", spawn_loc.origin, spawn_loc.angles);
break;
}
}
break;
}
}
}
}
#using scripts\codescripts\struct;
#using scripts\shared\callbacks_shared;
#using scripts\shared\clientfield_shared;
#using scripts\shared\flag_shared;
#using scripts\shared\system_shared;
#using scripts\shared\util_shared;
#using scripts\zm\_zm_utility;
#namespace zm_swap_weapons;
function autoexec __init__sytem__()
{
system::register("zm_swap_weapons", &init, &main, undefined);
}
function init()
{
}
function main()
{
}
function swap_wall_weapon()
{
//same as in zm_swap_weapons.gsc
}
#using scripts\zm\zm_swap_weapons;
//zm_weapons.gsc
function init_spawnable_weapon_upgrade()
{
zm_swap_weapons::swap_wall_weapon();
//pre-existing code, only copy above
spawn_list = ;
spawnable_weapon_spawns = struct::get_array( "weapon_upgrade", "targetname" );
spawnable_weapon_spawns = ArrayCombine( spawnable_weapon_spawns, struct::get_array( "bowie_upgrade", "targetname" ), true, false );
spawnable_weapon_spawns = ArrayCombine( spawnable_weapon_spawns, struct::get_array( "sickle_upgrade", "targetname" ), true, false );
spawnable_weapon_spawns = ArrayCombine( spawnable_weapon_spawns, struct::get_array( "tazer_upgrade", "targetname" ), true, false );
spawnable_weapon_spawns = ArrayCombine( spawnable_weapon_spawns, struct::get_array( "buildable_wallbuy", "targetname" ), true, false );
...
}
//zm_weapons.csc
function init()
{
zm_swap_weapons::swap_wall_weapon();
//pre-existing code, only copy above
spawn_list = ;
spawnable_weapon_spawns = struct::get_array( "weapon_upgrade", "targetname" );
spawnable_weapon_spawns = ArrayCombine( spawnable_weapon_spawns, struct::get_array( "bowie_upgrade", "targetname" ), true, false );
spawnable_weapon_spawns = ArrayCombine( spawnable_weapon_spawns, struct::get_array( "sickle_upgrade", "targetname" ), true, false );
spawnable_weapon_spawns = ArrayCombine( spawnable_weapon_spawns, struct::get_array( "tazer_upgrade", "targetname" ), true, false );
spawnable_weapon_spawns = ArrayCombine( spawnable_weapon_spawns, struct::get_array( "buildable_wallbuy", "targetname" ), true, false );
...
}
//_zm_weapons.gsc
function init_spawnable_weapon_upgrade()
{
zm_swap_weapons::swap_claymores();
zm_swap_weapons::swap_wall_weapon();
//zm_swap_weapons.gsc
#using scripts\zm\zm_claymore;
#using scripts\zm\_zm_unitrigger;
...
function swap_claymores()
{
foreach(ent in struct::get_array("claymore_purchase", "targetname"))
{
VAL = ent.zombie_weapon_upgrade;
if(!isdefined(VAL))
{
continue;
}
spawn_loc = struct::get(ent.target, "targetname");
claymore = Spawn("trigger_radius_use", spawn_loc.origin, 0, 84, 72);
claymore.targetname = "claymore_trigger";
claymore zm_unitrigger::create_unitrigger( "Hold ^3&&1^7 to buy Claymores [Cost: 1000]" , 20, &visibility_and_update_prompt);
if(isdefined(claymore))
claymore.spawnmodel = util::spawn_model("wallbuy_claymore", spawn_loc.origin + VectorScale((0, -0.5, 0), 1), spawn_loc.angles);
}
thread zm_claymore::init();
}
function visibility_and_update_prompt( player )
{
if(isdefined(self.hint_string))
{
self SetHintString( self.hint_string );
}
return true;
}
//zm_claymore.gsc
function purchaseClaymores()
{
trigger = GetEnt("claymore_trigger", "targetname");
trigger.zombie_cost = 1000;
trigger SetHintString( "Hold ^3&&1^7 to buy Claymores [Cost: 1000]" );
trigger SetCursorHint( "HINT_NOICON" );
trigger.claymore_triggered = false;
thread give_claymores_after_rounds();
while(1)
{
trigger waittill("trigger_activated", player);
...
}
...
}
//zm_swap_weapons.gsc, zm_swap_weapons.csc
function swap_wall_weapon()
{
...
foreach(ent in struct::get_array("claymore_purchase", "targetname"))
{
VAL = ent.zombie_weapon_upgrade;
if(!isdefined(VAL))
{
continue;
}
ent struct::delete();
}
}
Now to figure out how to change the position of the weapon model pop-up...
case "pistol_burst": //RK5
{
ent.zombie_weapon_upgrade = "t5_olympia";
ent.origin += (0, 10, 0);
spawn_loc = struct::get(ent.target, "targetname");
spawn_loc.origin += (0, 10, 0);
break;
}
case "smg_fastfire": //Vesper
{
ent.zombie_weapon_upgrade = "t5_aug";
ent.origin = (3, 926, -30);
ent.angles = (0, 180, 0);
spawn_loc = struct::get(ent.target, "targetname");
spawn_loc.origin = (3, 926, -30);
spawn_loc.angles = (0, 180, 0);
break;
}
foreach(ent in GetEntArray("train_buyable_weapon", "script_noteworthy"))
ent.zombie_weapon_upgrade = "s2_sten";