damage

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
User avatar
nuodas159
Flooderis arba specialistas
Posts: 522
Joined: 2010 Sep 03 15:30
Skype: nuodas159
Location: SunCity

damage

Post by nuodas159 »

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}
Image

User avatar
xFrostas
Flooderis arba specialistas
Posts: 660
Joined: 2010 Sep 02 15:47
Skype: frost.lt

Re: damage

Post by xFrostas »

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

User avatar
nuodas159
Flooderis arba specialistas
Posts: 522
Joined: 2010 Sep 03 15:30
Skype: nuodas159
Location: SunCity

Re: damage

Post by nuodas159 »

Gal pasižiūrėk kaip aš padariau? Damage darytų pagal HP, tiesiog kai turi 100 hp tuomet turėtų daryt 300
Image

User avatar
xFrostas
Flooderis arba specialistas
Posts: 660
Joined: 2010 Sep 02 15:47
Skype: frost.lt

Re: damage

Post by xFrostas »

Nu tai

Code: Select all

        if (IsPlayer(Attacker))
>>>

Code: Select all

        if (IsPlayer(Attacker) && get_user_health(Attacker) == 100)
Ar ne?

User avatar
nuodas159
Flooderis arba specialistas
Posts: 522
Joined: 2010 Sep 03 15:30
Skype: nuodas159
Location: SunCity

Re: damage

Post by nuodas159 »

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...

Code: Select all

fDamage /= iHP / 100
Jeigu turi 100HP tai turėtų daryti 300, bet man daro 1200... Su 80HP turi daryti apie 400, o daro žymiai daugiau..
Image

User avatar
xFrostas
Flooderis arba specialistas
Posts: 660
Joined: 2010 Sep 02 15:47
Skype: frost.lt

Re: damage

Post by xFrostas »

Ai, nežinau tada, nebent fDamage nereik dalint iš padalintų HP, tai pabandyk gal taip pakeist:

Code: Select all

    fDamage = iHP / 100

User avatar
nuodas159
Flooderis arba specialistas
Posts: 522
Joined: 2010 Sep 03 15:30
Skype: nuodas159
Location: SunCity

Re: damage

Post by nuodas159 »

Pagal tavo formule tai jeigu 80HP tai damage 0.80.. Kas nors gal padėtu susitvarkyti su šią problema?
Image

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: damage

Post by newb »

Na pirmas dalykas, pagal mane dmg standartiskai keiciasi per Ham_TakeDamage, o ne Ham_TraceAttack.

User avatar
nuodas159
Flooderis arba specialistas
Posts: 522
Joined: 2010 Sep 03 15:30
Skype: nuodas159
Location: SunCity

Re: damage

Post by nuodas159 »

Ačiū, susitvarkiau. Galite lock temą.
Image

Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests