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)); }