UGX-Mods Login

or login with an authentication provider below
Sign In with Google
Sign In with Twitter
Sign In with Discord
Sign In with Steam
Sign In with Facebook
Sign In with Twitch

Electric cherry doesn't disappear

broken avatar :(
Created 12 years ago
by aster-99
0 Members and 1 Guest are viewing this topic.
1,629 views
broken avatar :(
×
broken avatar :(
Location: itPordenone
Date Registered: 19 January 2014
Last active: 6 years ago
Posts
64
Respect
Forum Rank
Rotting Walker
Primary Group
Member
Signature
is the quality of ours convictions to determine success
×
aster-99's Groups
aster-99's Contact & Social Links
hi guys, i've a very little problem with the electric cherry perk by jei9363. when i get down and also revived i still have it (it isn't too bad after all :lol:)! that's the "going down" script
Code Snippet
Plaintext
perk_think()
{

self waittill_any( "fake_death", "death", "player_downed" );

self UnsetPerk("specialty_boost");
self.maxhealth = 100;
self maps\_zombiemode_perks::perk_hud_destroy("specialty_boost");

}
and that's the rest of the file
Code Snippet
Plaintext
#include maps\_anim; 
#include maps\_utility;
#include common_scripts\utility;
#include maps\_zombiemode_utility;
#include maps\_zombiemode_net;

cherry_init()
{

PrecacheItem( "zombie_perk_bottle_cherry" );
PrecacheShader( "cherry_vending_zombies" );

cherry_trigger = GetEnt( "zombie_vending_cherry", "targetname" );

cherry_trigger thread cherry_trigger_think();

level thread maps\_zombiemode_perks::machine_watcher_factory("cherry_on");

PrecacheModel("bo2_p6_zm_vending_electric_cherry_off");
PrecacheModel("bo2_p6_zm_vending_electric_cherry_on");


thread wait_a_little();
thread turn_cherry_on();

}


wait_a_little()
{

flag_wait( "all_players_connected" );

level._effect["electric_cherry"] = LoadFx("electric_cherry");

players = get_players();
for(i=0;i<players.size;i++)
{
players[i] thread cherry_think();
}

}

cherry_think()
{

flag_wait( "all_players_connected");


while(1)
{

self.current_cherry_weapon = self GetCurrentWeapon();

self waittill("reload_start");

if(self hasPerk("specialty_boost"))
{
if (self.current_cherry_weapon=="tom_katana"||self.current_cherry_weapon=="tom_shovel")
{
wait 1;
}
else
{
self.tag_origin_cherry = spawn("script_model",self.origin + (0,0,48));
self.tag_origin_cherry setmodel("tag_origin");
self.tag_origin_cherry linkTo(self);


//self.tag_origin delete();


self.currentweapon = self GetCurrentWeapon();
self.clipSize = WeaponClipSize(self.currentweapon);
self.clipRemaining = self GetCurrentWeaponClipAmmo();

zombies = getaiarray( "axis", "all" );

self.cherry_ratio = 1 - (self.clipRemaining/self.clipSize);

self.cherry_radius = (200 * self.cherry_ratio) + 64;

for(k=0;k<zombies.size;k++)
{
if(Distance2D( self.origin, zombies[k].origin ) < self.cherry_radius)
{

if(zombies[k].health < 1500)
{
zombies[k] DoDamage( zombies[k].health + 666 , zombies[k].origin);
zombies[k].deathanim = random( level._zombie_tesla_death[zombies[k].animname] );
zombies[k] maps\_zombiemode_tesla::tesla_play_death_fx(1);
}
else
{
zombies[k] DoDamage( 1500 , zombies[k].origin);
zombies[k] enable_pain();
zombies[k] cherry_play_death_fx();
}

}
wait .01;
}

network_safe_play_fx_on_tag( "tesla_death_fx", 2, level._effect["tesla_shock"],self.tag_origin_cherry,"tag_origin");

self playsound( "imp_tesla" );

for(k=0;k<zombies.size;k++)
{
zombies[k] disable_pain();
}

wait .01;
}
}
wait 1;

self.tag_origin_cherry delete();

}
}

turn_cherry_on()
{
machine = getent("vending_cherry", "targetname");

machine setmodel("bo2_p6_zm_vending_electric_cherry_off");

level waittill("juggernog_on");


machine setmodel("bo2_p6_zm_vending_electric_cherry_on");
machine vibrate((0,-100,0), 0.3, 0.4, 3);
machine playsound("perks_power_on");
machine thread maps\_zombiemode_perks::perk_fx("doubletap_light");


level notify( "specialty_boost_power_on" );
}


cherry_trigger_think()
{

perk = "specialty_boost";

self SetHintString( &"ZOMBIE_FLAMES_UNAVAILABLE" );
self SetCursorHint( "HINT_NOICON" );
self UseTriggerRequireLookAt();

notify_name = perk + "_power_on";

level waittill("juggernog_on");

perk_hum = spawn("script_origin", self.origin);
perk_hum playloopsound("perks_machine_loop");

self thread check_player_has_perk(perk);

self SetHintString("Press & hold &&1 to buy Electric Cherry [Cost: 2000]");

for( ;; )
{
self waittill( "trigger", player );
index = maps\_zombiemode_weapons::get_player_index(player);

cost = 2000;

if (player maps\_laststand::player_is_in_laststand() )
{
continue;
}

if(player in_revive_trigger())
{
continue;
}

if( player isThrowingGrenade() )
{
wait( 0.1 );
continue;
}

if( player isSwitchingWeapons() )
{
wait(0.1);
continue;
}

if ( player HasPerk( perk ) )
{
self playsound("deny");
player thread maps\_zombiemode_perks::play_no_money_perk_dialog();
continue;
}

if ( player.score < cost )
{
self playsound("deny");
player thread maps\_zombiemode_perks::play_no_money_perk_dialog();
continue;
}

sound = "bottle_dispense3d";
player achievement_notify( "perk_used" );
playsoundatposition(sound, self.origin);
player maps\_zombiemode_score::minus_to_player_score( cost );


sound = "mx_cherry_sting";

self thread maps\_zombiemode_perks::play_vendor_stings(sound);

gun = player perk_give_bottle_begin();
player.is_drinking = 1;
player waittill_any( "fake_death", "death", "player_downed", "weapon_change_complete" );

// restore player controls and movement
player perk_give_bottle_end( gun, "specialty_boost" );
player.is_drinking = undefined;
// TODO: race condition?
if ( player maps\_laststand::player_is_in_laststand() )
{
continue;
}

player SetPerk("specialty_boost");

player thread maps\_zombiemode_perks::perk_vo(perk);
player setblur( 4, 0.1 );
wait(0.1);
player setblur(0, 0.1);


player perk_hud_create( perk );

//stat tracking
player.stats["perks"]++;

//player iprintln( "Bought Perk: " + perk );
bbPrint( "zombie_uses: playername %s playerscore %d round %d cost %d name %s x %f y %f z %f type perk",
player.playername, player.score, level.round_number, cost, perk, self.origin );

player thread perk_think( perk );

}
}

check_player_has_perk(perk)
{
dist = 128 * 128;
while(true)
{
players = get_players();
for( i = 0; i < players.size; i++ )
{
if(DistanceSquared( players[i].origin, self.origin ) < dist)
{
if(!players[i] hasperk(perk) && !(players[i] in_revive_trigger()))
{
if (IsDefined(level.script) && level.script == "nazi_zombie_theater")
self setinvisibletoplayer(players[i], false);
else
self setvisibletoplayer(players[i]);
}
else
{
self SetInvisibleToPlayer(players[i]);
}
}


}

wait(0.1);

}

}

perk_hud_create( perk )
{
if ( !IsDefined( self.perk_hud ) )
{
self.perk_hud = [];
}

shader = "cherry_vending_zombies";


hud = create_simple_hud( self );
hud.foreground = true;
hud.sort = 1;
hud.hidewheninmenu = false;
hud.alignX = "left";
hud.alignY = "bottom";
hud.horzAlign = "left";
hud.vertAlign = "bottom";
hud.x = self.perk_hud.size * 30;
hud.y = hud.y - 100;
hud.alpha = 1;
hud SetShader( shader, 24, 24 );

self.perk_hud[ perk ] = hud;
}

perk_think()
{

self waittill_any( "fake_death", "death", "player_downed" );

self UnsetPerk("specialty_boost");
self.maxhealth = 100;
self maps\_zombiemode_perks::perk_hud_destroy("specialty_boost");

}

perk_give_bottle_begin()
{
self DisableOffhandWeapons();
self DisableWeaponCycling();

self AllowLean( false );
self AllowAds( false );
self AllowSprint( false );
self AllowProne( false );
self AllowMelee( false );

wait( 0.05 );

if ( self GetStance() == "prone" )
{
self SetStance( "crouch" );
}

gun = self GetCurrentWeapon();
weapon = "";

self GiveWeapon("zombie_perk_bottle_cherry");
self SwitchToWeapon("zombie_perk_bottle_cherry");

return gun;
}

perk_give_bottle_end( gun, perk )
{
assert( gun != "zombie_perk_bottle_cherry" );
assert( gun != "syrette" );

self EnableOffhandWeapons();
self EnableWeaponCycling();

self AllowLean( true );
self AllowAds( true );
self AllowSprint( true );
self AllowProne( true );
self AllowMelee( true );
weapon = "";

weapon = "zombie_perk_bottle_cherry";


// TODO: race condition?
if ( self maps\_laststand::player_is_in_laststand() )
{
self TakeWeapon(weapon);
return;
}

if ( gun != "none" && gun != "mine_bouncing_betty" )
{
self SwitchToWeapon( gun );
}
else
{
// try to switch to first primary weapon
primaryWeapons = self GetWeaponsListPrimaries();
if( IsDefined( primaryWeapons ) && primaryWeapons.size > 0 )
{
self SwitchToWeapon( primaryWeapons[0] );
}
}

self TakeWeapon(weapon);
}

cherry_play_death_fx()
{
tag = "J_SpineUpper";
fx = "tesla_shock";

network_safe_play_fx_on_tag( "tesla_death_fx", 2, level._effect["tesla_shock"], self, tag );
self playsound( "imp_tesla" );

if ( !self enemy_is_dog() )
{
if( RandomInt( 100 ) < level.zombie_vars["tesla_head_gib_chance"] )
{
wait( RandomFloat( 0.53, 1.0 ) );
}
else
{
network_safe_play_fx_on_tag( "tesla_death_fx", 2, level._effect["tesla_shock_eyes"], self, "J_Eyeball_LE" );
}
}
}


can someone help me????
Last Edit: September 27, 2014, 07:25:22 pm by aster-99
Marked as best answer by aster-99 12 years ago
broken avatar :(
×
broken avatar :(
Location: itPordenone
Date Registered: 19 January 2014
Last active: 6 years ago
Posts
64
Respect
Forum Rank
Rotting Walker
Primary Group
Member
×
aster-99's Groups
aster-99's Contact & Social Links
ok, i've fixed that and i post my solution for anyone else is having troubles with that
Code Snippet
Plaintext
perk_think( perk )
{

self waittill_any( "fake_death", "gungame_death", "death", "player_downed" );

self UnsetPerk( "specialty_boost" );
self.inventorySize = 2;
self.maxhealth = 100;
self maps\_zombiemode_perks::perk_hud_destroy( perk );
//self iprintln( "Perk Lost: " + perk );

}

perk_hud_destroy( perk )
{
self.perk_hud[ perk ] destroy_hud();
self.perk_hud[ perk ] = undefined;
}

 
Loading ...