Assasin

Message
Autor
surikata
Příspěvky: 1
Registrován: 17 zář 2018, 12:28
Reputation: 0

Assasin

#1 Příspěvekod surikata » 17 zář 2018, 12:31

Zdravím, trošku jsem si upravil extra item pro zm (něco jako terminátor), ale nějak mi nefunguje rychlost,dmg,skin a léčení po zabití.
Prosím, pomohl by mi s tím někdo? Mám tento problém u více pluginů.

Kód: Vybrat vše

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <fun>
#include <fakemeta_util>
#include <zombieplague>
#include <engine>
#include <cstrike>

#define PLUGIN "[ZP] Extra Item: Assasin"
#define VERSION "1.1"
#define SPEED 5.0
new const GRAVITY = 0.1
#define ASSASIN_KILLHP 1000   // Kolik zivotu dostane assasin za kill
#define ASSASIN_JUMPS 2   // Pocet skoku navic pro assasina
#define ASSASIN_MAXHP 20000



new MaAssasina[ 33 ] = false;

new jumpnum[ 33 ] = 0



// Extra Item ID
new g_item_zforce

// PCVars
new pCvarAdditionalHealth, pCvarDmgMultiplier, pCvarGlowRed, pCvarGlowGreen, pCvarGlowBlue

// Player Variables
new gHasZForce[33]

// Credits to joaquimandrade
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame

// Extra Item name, cost and sound
new const g_item_name[] = "Zombie Force" // Item name
new const g_item_cost = 200 // Item cost
new const sound_force[] = "zombie_plague/buy_force.wav" // Sound
new const model_force[] = "models/player/assasin/assasin.mdl" // Model

public plugin_init()
{
register_plugin("[ZP] Extra Item: Assasin", "1.0", "eXcalibur.007")

g_item_zforce = zp_register_extra_item(g_item_name, g_item_cost, ZP_TEAM_ZOMBIE)

pCvarAdditionalHealth = register_cvar("zp_zforce_additional_health", "5000")
pCvarDmgMultiplier = register_cvar("zp_zforce_dmg_multi", "2.2")
pCvarGlowRed = register_cvar("zp_zforce_glow_red", "255")
pCvarGlowGreen = register_cvar("zp_zforce_glow_green", "32")
pCvarGlowBlue = register_cvar("zp_zforce_glow_blue", "82")

RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage_Pre")
RegisterHam(Ham_Player_ResetMaxSpeed, "player", "fw_Player_ResetMaxSpeed_Post", 1)
RegisterHam(Ham_Killed, "player", "fw_Killed_Post", 1)


}

public plugin_precache()
{
precache_sound(sound_force)
precache_model(model_force)
}

public zp_extra_item_selected(player, itemid)
{
if(itemid == g_item_zforce)
{
if ( gHasZForce[ player ] )
{
zp_set_user_ammo_packs( player, zp_get_user_ammo_packs( player ) + g_item_cost )
client_print( player, print_center, "Uz mas Assasina!" )
return PLUGIN_HANDLED;
}
gHasZForce[player] = true

// Set player's health, gravity, etc.
set_user_health(player, get_user_health(player) + get_pcvar_num(pCvarAdditionalHealth))
set_user_gravity( player, GRAVITY );
ScreenFade( player, 0.8, 255, 32, 82, 80 );
set_user_rendering(player, kRenderFxGlowShell, get_pcvar_num(pCvarGlowRed), get_pcvar_num(pCvarGlowGreen), get_pcvar_num(pCvarGlowBlue), kRenderNormal, 25)
set_hudmessage(255, 32, 82 , -1.0, -1.0, 0, 6.0, 6.0)
show_hudmessage(player, "+DMG +RYCHLOST +5000HP +GRAVITACE")
// Plays a sound
emit_sound(player, CHAN_BODY, sound_force, 1.0, ATTN_NORM, 0, PITCH_NORM)
//Model
cs_set_user_model(player,"assasin")

static szName[32]
get_user_name(player, szName, charsmax(szName))

set_hudmessage(255, 32, 82 , 0.05, 0.45, 1, 0.0, 5.0, 1.0, 1.0, -1)
show_hudmessage(0, "%s se stal Assasinem!!", szName)

}
}

public fw_TakeDamage_Pre(victim, inflictor, attacker, Float:damage, damage_type)
{
if(!is_user_connected(attacker) || !is_user_connected(victim))
return HAM_IGNORED

if(get_user_weapon(attacker) == CSW_KNIFE && gHasZForce[attacker])
{
SetHamParamFloat( 4, damage * get_pcvar_float(pCvarDmgMultiplier) )
}
return HAM_IGNORED
}

public fw_Player_ResetMaxSpeed_Post(player)
{
if(!is_user_connected(player) || !is_user_alive(player) || !gHasZForce[player])
return

static Float:iMaxSpeed; iMaxSpeed = get_user_maxspeed(player)

// Not moving(Doesn't need to change since it's not moving)
if(iMaxSpeed != 10.0)
{
set_user_maxspeed(player,SPEED)
}
}
public remove_user_gHasZForce( id )
{
jumpnum[ id ] = 0
MaAssasina[ id ] = false
gHasZForce[ id ] = false
client_print( id, print_center, "Assasin ti na nove kolo vyprsel..." );

}

public fw_Killed_Post(victim, attacker)
{
if(!is_user_connected(victim))
return HAM_IGNORED

if(gHasZForce[victim])
gHasZForce[victim] = false

return HAM_IGNORED
}
public event_death( )
{
new attacker = read_data( 1 );
new victim = read_data( 2 );

if( !is_user_alive( victim ) )
{
if( gHasZForce[ victim ] )
{
client_set_variables( victim );
}
}
if( is_user_alive( attacker ) )
{
if( gHasZForce[ attacker ] )
{
new iHealth = get_user_health( attacker )

if( iHealth >= ASSASIN_MAXHP ) // Health limit (bugfix)
{
return;
}
else
{
client_print( attacker, print_center, "+ %s HP", ASSASIN_KILLHP );
set_user_health( attacker, get_user_health( attacker ) + ASSASIN_KILLHP );
ScreenFade( attacker, 0.8, 255, 32, 82, 80 );
}
}
}
}

public client_PreThink( id )
{
if( !is_user_alive( id ) )
return PLUGIN_CONTINUE;

if ( gHasZForce[ id ] )
{
new nbut = get_user_button( id )
new obut = get_user_oldbutton( id )
if(( nbut & IN_JUMP ) && !( get_entity_flags( id ) & FL_ONGROUND ) && !( obut & IN_JUMP ) )
{
if( jumpnum[ id ] < ASSASIN_JUMPS )
{

jumpnum[ id ]++
return PLUGIN_CONTINUE
}
}
if( ( nbut & IN_JUMP ) && ( get_entity_flags( id ) & FL_ONGROUND ) )
{
jumpnum[ id ] = 0
return PLUGIN_CONTINUE;
}
}
return PLUGIN_CONTINUE;
}



stock client_set_variables( i )
{
if( !is_user_connected( i ) || is_user_bot( i ) )
return;


cs_set_user_zoom( i, CS_RESET_ZOOM, 1 )

jumpnum[ i ]   = 0;

MaAssasina[ i ]   = false;
gHasZForce[ i ]   = false;

}

stock ScreenFade( plr, Float:fDuration, red, green, blue, alpha )
{
new i = plr ? plr : get_maxplayers( );
if( !i )
{
return 0;
}

message_begin( plr ? MSG_ONE : MSG_ALL, get_user_msgid( "ScreenFade" ), {0, 0, 0}, plr );
write_short( floatround( 4096.0 * fDuration, floatround_round ) );
write_short( floatround( 4096.0 * fDuration, floatround_round ) );
write_short( 4096 );
write_byte( red );
write_byte( green );
write_byte( blue );
write_byte( alpha );
message_end( );

return 1;

}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1029\\ f0\\ fs16 \n\\ par }
*/

Uživatelský avatar
Teiichi
Příspěvky: 866
Věk: 24
Registrován: 29 lis 2014, 02:11
Reputation: 23
Bydliště: <?= $inhome ;?>
Kontaktovat uživatele:

Re: Assasin

#2 Příspěvekod Teiichi » 17 zář 2018, 22:06

IP serveru?
Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter.”
Příliš snahy škodí, když programátor použije CTRL+C a CTRL+V více jak jednou, má někde chybu v návrhu.”
In theory, theory and practice are the same. In practice, they’re not.”
Vždy pište kód tak, jako by ten chlapík, co ho po vás bude udržovat, měl být násilnický psychopat, který bude vědět, kde bydlíte.”


Zpět na „AMX mod X“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 8 hostů