Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
nuodas159
Flooderis arba specialistas
Posts: 522 Joined: 2010 Sep 03 15:30
Skype: nuodas159
Location: SunCity
Post
by nuodas159 » 2013 Jun 20 13:46
Pagal įdėja turėtų daryti damage 300, bet daro 1200 ar net daugiau. Kur klaida?
Code: Select all
cBlaserDefaultDmg = 300 fMaxDamage = 3000iHP = 100 RegisterHam(Ham_TraceAttack, "player", "hPlayerAttack") public hPlayerAttack(victim, attacker, Float: damage, Float: direction[3], traceresult, damagebits){ new iHP = get_user_health(attacker), Float: fDamage fDamage = get_pcvar_float(cBlaserDefaultDmg[get_tr2(traceresult, TR_iHitgroup)]) fDamage /= iHP / 100 new Float: fMaxDamage = (get_tr2(traceresult, TR_iHitgroup) == HIT_HEAD) ? get_pcvar_float(cBlaserMaxDmgHs) : get_pcvar_float(cBlaserMaxDmg) log_amx("maxdmg:%f", fMaxDamage) if(fDamage > fMaxDamage) { fDamage = fMaxDamage } SetHamParamFloat(3, fDamage) return HAM_OVERRIDE}
xFrostas
Flooderis arba specialistas
Posts: 660 Joined: 2010 Sep 02 15:47
Skype: frost.lt
Post
by xFrostas » 2013 Jun 20 15:48
Code: Select all
#include <amxmodx>#include <hamsandwich> new Cvar_Damagenew g_MaxPlayers #define IsPlayer(%1) (1 <= %1 <= g_MaxPlayers) public plugin_init(){ Cvar_Damage = register_cvar("Damage", "300") RegisterHam(Ham_TraceAttack, "player", "Fwd_TraceAttack") g_MaxPlayers = get_maxplayers()} public Fwd_TraceAttack(const Victim, const Attacker, Float: Damage, const Float: Direction[3], const TraceResult, const DamageBits){ if (IsPlayer(Attacker)) { SetHamParamFloat(3, get_pcvar_float(Cvar_Damage)) return HAM_HANDLED } return HAM_IGNORED}
Gal veiks
nuodas159
Flooderis arba specialistas
Posts: 522 Joined: 2010 Sep 03 15:30
Skype: nuodas159
Location: SunCity
Post
by nuodas159 » 2013 Jun 20 15:50
Gal pasižiūrėk kaip aš padariau? Damage darytų pagal HP, tiesiog kai turi 100 hp tuomet turėtų daryt 300
xFrostas
Flooderis arba specialistas
Posts: 660 Joined: 2010 Sep 02 15:47
Skype: frost.lt
Post
by xFrostas » 2013 Jun 20 16:53
Nu tai
>>>
Code: Select all
if (IsPlayer(Attacker) && get_user_health(Attacker) == 100)
Ar ne?
nuodas159
Flooderis arba specialistas
Posts: 522 Joined: 2010 Sep 03 15:30
Skype: nuodas159
Location: SunCity
Post
by nuodas159 » 2013 Jun 20 17:06
Nu, kad ne... Man reikia jog priklausomai nuo hp darytų atitinkamą damage kiekį. Pasižiūrėk parašyta mano kodą ir suprasi, kaip ten esu padaręs, bet tinkamai neveikia...
Jeigu turi 100HP tai turėtų daryti 300, bet man daro 1200... Su 80HP turi daryti apie 400, o daro žymiai daugiau..
xFrostas
Flooderis arba specialistas
Posts: 660 Joined: 2010 Sep 02 15:47
Skype: frost.lt
Post
by xFrostas » 2013 Jun 20 18:47
Ai, nežinau tada, nebent fDamage nereik dalint iš padalintų HP, tai pabandyk gal taip pakeist:
nuodas159
Flooderis arba specialistas
Posts: 522 Joined: 2010 Sep 03 15:30
Skype: nuodas159
Location: SunCity
Post
by nuodas159 » 2013 Jun 20 19:12
Pagal tavo formule tai jeigu 80HP tai damage 0.80.. Kas nors gal padėtu susitvarkyti su šią problema?
newb
Pluginų patvirtintojas
Posts: 1047 Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:
Post
by newb » 2013 Jun 20 20:17
Na pirmas dalykas, pagal mane dmg standartiskai keiciasi per Ham_TakeDamage , o ne Ham_TraceAttack .
nuodas159
Flooderis arba specialistas
Posts: 522 Joined: 2010 Sep 03 15:30
Skype: nuodas159
Location: SunCity
Post
by nuodas159 » 2013 Jun 21 17:25
Ačiū, susitvarkiau. Galite lock temą.
Users browsing this forum: No registered users and 4 guests