



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!![]() | |
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() | Has shown excellence and experience in the area of custom scripting in the UGX-Mods community. |
![]() BO3 Modtools Alpha | This user has access to the Black Ops 3 Modtools Alpha |

// ==========================================================
// Coding Projects
//
// Component: WaW
// Purpose: Stalker Script
//
// Initial author: DidUknowiPwn
// Started: 2015-01-15
// © 2015 DidUknowiPwn™
// ==========================================================
#include common_scriptsutility;
#include maps\_utility;
#include maps\_zombiemode_utility;
#include maps\_loadout;
init()
{
level thread onPlayerConnect();
}
onPlayerConnect()
{
for(;;)
{
level waittill("connecting", player);
player.speedScale = undefined;
player thread onPlayerSpawned();
}
}
onPlayerSpawned()
{
self endon("disconnct");
for(;;)
{
self waittill("spawned_player");
self.speedScale = 1;
self SetClientDvars( "bg_bobAmplitudeDucked", "0.0075 0.0075",
"bg_bobAmplitudeStanding", "0.007 0.007");
self thread stalker_think();
}
}
stalker_think()
{
self endon("death");
self endon("disconnect");
self endon("player_downed");
if(!IsDefined(self.speedScale))
self.speedScale = 1;
//DUKIP - Scoped vars initalized.
stalkerSpeedScale = undefined;
currWeap = undefined;
while(IsAlive(self))
{
//DUKIP - Grab our current weapon.
currWeap = self getCurrentWeapon();
//DUKIP - When ADS Button Pressed, ADS has been longer than 0.5 seconds(? or 50% done of adsTime from weapon file), IS NOT swiching weapons, IS NOT throwing nades,
// and finally current weapon IS NOT perk bottle AND syrette.
if(self ADSButtonPressed() && self playerADS() >= 0.5 && !self isSwitchingWeapons() && !self isThrowingGrenade() && (!IsSubStr(currWeap, "zombie_perk_bottle") && currWeap != "syrette"))
{
//DUKIP - My stalker sets all speed scales to speed of 1.5
stalkerSpeedScale = self getStalkerSpeedScale(currWeap);
if(stalkerSpeedScale != self.speedScale && IsDefined(level.zombie_include_weapons[currWeap]))
{
self SetMoveSpeedScale(stalkerSpeedScale);
self.speedScale = stalkerSpeedScale;
//DUKIP - Lower bobbing a bit on scoped weapons.
if(self weaponIsScoped(currWeap))
self SetClientDvars( "bg_bobAmplitudeDucked", "0.002 0.002",
"bg_bobAmplitudeStanding", "0.0025 0.0025");
}
//DUKIP - Since not included, print an error.
if(!IsDefined(level.zombie_include_weapons[currWeap]))
iprintlnbold("Weapon: ^1" + currWeap + "^7 is not an included weapon.");
}
else
{
//DUKIP -
//Reset movement speed back to normal, SetMoveSpeedScale scales the movement speed based on param.
//i.e. zombie_colt = 1 + SetMoveSpeedScale(1) = 1 moveSpeedScale
// ptrs41_zombie = 0.75 + SetMoveSpeedScale(0.75) [from getNormalSpeedScale] = 0.5625 moveSpeedScale
// this is not what we want so, reset it back to original.
self SetClientDvars( "bg_bobAmplitudeDucked", "0.0075 0.0075",
"bg_bobAmplitudeStanding", "0.007 0.007");
self SetMoveSpeedScale(1);
self.speedScale = 1;
}
wait 0.05;
}
}
getStalkerSpeedScale(weapon)
{
speedScale = undefined;
//DUKIP - To get the "Stalker" speed scale to 1.5 or so, divide it by the moveSpeedScale in weapon file.
switch(weapon)
{
case "zombie_colt":
case "zombie_doublebarrel":
case "zombie_mp40":
case "zombie_ppsh":
case "zombie_shotgun":
case "zombie_stg44":
case "zombie_thompson":
case "zombie_type100_smg":
case "m7_launcher_zombie":
case "tesla_gun":
case "zombie_bar":
case "zombie_fg42":
case "ray_gun":
speedScale = 1.5;
break;
case "zombie_gewehr43":
case "zombie_kar98k":
case "zombie_m1carbine":
case "zombie_m1garand":
case "zombie_sw_357":
case "m1garand_gl_zombie":
speedScale = 1.67;
break;
case "zombie_mg42":
case "panzerschrek_zombie":
case "ptrs41_zombie":
case "zombie_30cal":
speedScale = 2;
break;
case "m2_flamethrower_zombie":
speedScale = 2.239;
break;
//DUKIP - Upgraded weapons can be handled differently.
case "zombie_colt_upgraded":
case "zombie_doublebarrel_upgraded":
case "zombie_mp40_upgraded":
case "zombie_ppsh_upgraded":
case "zombie_shotgun_upgraded":
case "zombie_stg44_upgraded":
case "zombie_thompson_upgraded":
case "zombie_type100_smg_upgraded":
case "m7_launcher_zombie_upgraded":
case "tesla_gun_upgraded":
case "zombie_bar_upgraded":
case "zombie_fg42_upgraded":
case "ray_gun_upgraded":
speedScale = 1.5;
break;
case "zombie_gewehr43_upgraded":
case "zombie_kar98k_upgraded":
case "zombie_m1carbine_upgraded":
case "zombie_m1garand_upgraded":
case "zombie_sw_357_upgraded":
case "m1garand_gl_zombie_upgraded":
speedScale = 1.67;
break;
case "zombie_mg42_upgraded":
case "panzerschrek_zombie_upgraded":
case "ptrs41_zombie_upgraded":
case "zombie_30cal_upgraded":
speedScale = 2;
break;
case "m2_flamethrower_zombie_upgraded":
speedScale = 2.239;
break;
default:
iprintlnbold("Weapon: ^1" + weapon + "^7 has no Stalker speedScale.");
speedScale = 1;
break;
}
return speedScale;
}
weaponIsScoped(weapon)
{
hasScope = undefined;
switch(weapon)
{
case "ptrs41_zombie":
case "ptrs41_zombie_upgraded":
hasScope = true;
break;
default:
hasScope = false;
break;
}
return hasScope;
}
//DUKIP - Probably won't be used again, will keep it here for reference.
//Contains missing weapon/bad names.
/*
getNormalSpeedScale(weapon)
{
speedScale = undefined;
if(maps\_zombiemode_weapons::is_weapon_upgraded(weapon))
weapon = GetSubStr(weapon, 0);
switch(weapon)
{
case "zombie_colt":
case "zombie_doublebarrel":
case "zombie_mp40":
case "zombie_ppsh":
case "zombie_shotgun":
case "zombie_stg44":
case "zombie_thompson":
case "zombie_type100_smg":
case "m7_launcher_zombie":
case "tesla_gun":
case "zomibe_bar":
speedScale = 1;
break;
case "zombie_gewehr43":
case "zombie_kar98k":
case "zombie_m1carbine":
case "zombie_m1garand":
case "zombie_sw_357":
case "m1_garand_gl_zombie":
speedScale = 0.9;
break;
case "zombie_mg42":
case "panzerschrek_zombie":
case "ptrs41_zombie":
case "zombie_30cal":
speedScale = 0.75;
break;
case "m2_flamethrower_zombie":
speedScale = 0.67;
break;
default:
ASSERTMSG("Weapon: ^1" + weapon + "^7 has no speedScale in getNormalSpeedScale()");
break;
}
return speedScale;
}*/
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() UGX V.I.P. | |
![]() | Has released one or more maps to the UGX-Mods community. |
![]() BO3 Modtools Alpha | This user has access to the Black Ops 3 Modtools Alpha |

![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
.![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
Wow, must have missed this when you first made the tutorial. And I guess you still havent woke up since you havent posted video yet.
In all serious though, I would love to see this before putting it into my map. May try and make it an actual perk to buy if I like it.
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
If you get the perk to work 100%, will you release it? I tried it but not so good with that kind of stuff.
![]() | |
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() | Has shown excellence and experience in the area of custom scripting in the UGX-Mods community. |
![]() BO3 Modtools Alpha | This user has access to the Black Ops 3 Modtools Alpha |
maybe with the OPs permission
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
??