Page 1 of 1

KNIFE damage

Posted: 2012 May 01 14:02
by Pukuotukas951
Turiu tokį koda, jis turėtų veikti taip:

Jeigu žaidėjas yra Terorist komandoje ir turi crowbaruser ir laiko rankose peili KNIFE, tada jo žala su peiliu būna x50 didesnė, bet man dabar žalos išvis nenustato. Kodo dalis atrodo taip:

Code: Select all

public plugin_init(){    RegisterHam(Ham_TakeDamage, "player", "client_damage")} public client_damage(victim, entid, attacker, Float:damage, damagebits){    if(!is_user_connected(victim) || !is_user_connected(attacker) || attacker == victim)        return HAM_IGNORED        if(get_pcvar_num(cvar_revolt)) {            if(cs_get_user_team(attacker) == CS_TEAM_T && cs_get_user_team(victim) == CS_TEAM_CT) {            if(!revolt_started) start_revolt()        }    }    if(get_pcvar_num(cvar_crowbar)) {         new Weapon2 = read_data(2)        if(cs_get_user_team(attacker) == CS_TEAM_T && attacker == crowbaruser && Weapon2 == CSW_KNIFE) {            SetHamParamFloat(4, damage * 50.0)            return HAM_OVERRIDE        }           }       return HAM_IGNORED}

Re: KNIFE damage

Posted: 2012 May 01 15:01
by Fly3r

Code: Select all

new Weapon2 = read_data(2)
Čia yra blogai.
read_data() galima naudoti TIK EVENTUOSE, todėl tau nieko ir neduoda. Čia attacker'io ginklą reikėtų gauti su get_user_weapon(). Beje, gali būti, kad kai meti granatą, pasikeiti ginklą į peilį, ir granata nuema, o get_user_weapon() tuo metu bus KNIFE, nors ne su KNIFE darei žalą. Tada dar reikia tikrinti

Code: Select all

if (attacker == entid)