if(ma_perk[idattacker] && liczba == 15){
SetHamParamFloat(3, damage * 1.15)
new xp_zabitego = cod_get_user_xp(this)
new xp_killera = cod_get_user_xp(idattacker)
cod_set_user_xp(this, xp_zabitego-100)
cod_set_user_xp(idattacker, xp_killera+100)
return HAM_HANDLED
}
na zadanie 15% dmg więcej, masz ~6.6% szansy - chyba że się myle.
U siebie znalazłem ten sam perk:
#include <amxmodx>
#include <codmod>
#include <hamsandwich>
#include <engine>
#include <colorchat>
#define DMG_BULLET (1<<1)
new const perk_name[] = "Mroczne Kule";
new const perk_desc[] = "Zadajesz 20 procent wiecej obrazen. Masz 1/4 szansy na zabranie przeciwnikowi 100 expa";
new bool:ma_perk[33];
new ofiara[33], xp_ofiary[33];
new xp_victim;
public plugin_init()
{
register_plugin(perk_name, "1.0", "Czyzyk");
cod_register_perk(perk_name, perk_desc);
RegisterHam(Ham_TakeDamage, "player", "TakeDamage")
register_event("DeathMsg", "DeathMsg", "ade");
xp_victim = register_cvar("cod_zlodziejxp", "100");
}
public cod_perk_enabled(id)
{
ma_perk[id] = true
}
public cod_perk_disabled(id)
{
ma_perk[id] = false
}
public TakeDamage(id, ent, attacker, Float:damage, damagebits)
{
if(!is_user_connected(attacker) || !ma_perk[attacker] || ~damagebits & DMG_BULLET || ent != attacker) return HAM_IGNORED;
SetHamParamFloat(4,damage*1.2)
return HAM_HANDLED
}
public DeathMsg()
{
new killer = read_data(1);
new victim = read_data(2);
if(!is_user_connected(killer))
return;
if(!ma_perk[killer])
return;
if(!(xp_ofiary[killer] = cod_get_user_xp(victim)))
return;
if(!random(4))
return;
ofiara[killer] = victim;
Kradziez(killer);
}
public Kradziez(id)
{
if(cod_get_user_xp(ofiara[id]) != xp_ofiary[id])
return;
new nick_ofiary[33];
new xp = get_pcvar_num(xp_victim);
get_user_name(ofiara[id], nick_ofiary, 32);
ColorChat(id, RED, "Ukradles %d EXP'a graczu %s", xp, nick_ofiary);
cod_set_user_xp(id, (cod_get_user_xp(id) + xp));
}


Dodatki SourceMod




Moja zawartość
Mężczyzna




codclass_partyzant.amxx