Knockback

Š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

Knockback

Post by nuodas159 »

Kaip padaryti gerą knockback, kad numuštų tiek kiek nustatytą cvare, o ne priklausomai nuo smūgio, ar žaidėjo greičio?
Image

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: Knockback

Post by aaarnas »

Pamėgink ir pažiūrėk ar ką pakeis:
sv_airmove 0
Palikau CS pasaulį ;/ . Nebepasiekiamas.

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

Re: Knockback

Post by nuodas159 »

Nepadeda.

Code:

Code: Select all

     RegisterHam(Ham_TraceAttack, "player", "hPlayerAttack")  public hPlayerAttack(victim, attacker, Float:damage, Float: direction[3], traceresult, damagebits){    if(!is_user_connected(attacker) || get_user_team(attacker) != 2 || !GetPlayerBit(bitBaseBall, attacker) || damagebits & DMG_HEGRENADE || get_user_team(attacker) == get_user_team(victim))        return HAM_IGNORED             if(get_user_weapon(attacker) == CSW_KNIFE)    {           new Float: fKnock                if(iAttackType[attacker] == TYPE_STAB)                fKnock = get_pcvar_float(cKnockBack2)            else              fKnock = get_pcvar_float(cKnockBack)                    new Float: fVelocity[3], Float: fOldVelocity[3]        entity_get_vector(victim, EV_VEC_velocity, fOldVelocity)        create_velocity_vector(victim, attacker, fVelocity, fKnock)        fVelocity[0] += fOldVelocity[0]        fVelocity[1] += fOldVelocity[1]        entity_set_vector(victim, EV_VEC_velocity, fVelocity)                if(iAttackType[attacker] == TYPE_STAB)         {            if(get_tr2(traceresult, TR_iHitgroup) == HIT_HEAD)                SetHamParamFloat(3, damage * get_pcvar_float(cDamageMultiHs))            else                SetHamParamFloat(3, damage * get_pcvar_float(cDamageMulti))                            return HAM_OVERRIDE        }        else             return HAM_SUPERCEDE    }    return HAM_IGNORED}   
Image

User avatar
hleV
AMX Mod X ekspertai
Posts: 875
Joined: 2011 Apr 02 11:23
Skype: hlev.lt
Location: Šiauliai

Re: Knockback

Post by hleV »

Pabandyk pašalint šitą eilutę:

Code: Select all

entity_get_vector(victim, EV_VEC_velocity, fOldVelocity)
Image ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!

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

Re: Knockback

Post by nuodas159 »

Nepadeda.
Gal tas stock blogas?

Code: Select all

 stock create_velocity_vector(victim, attacker, Float: velocity[3], Float: knockbackas){ if(!is_user_alive(attacker))  return 0  new Float: vicorigin[3] new Float: attorigin[3] entity_get_vector(victim, EV_VEC_origin, vicorigin) entity_get_vector(attacker, EV_VEC_origin, attorigin)  new Float: origin2[3] origin2[0] = vicorigin[0] - attorigin[0] origin2[1] = vicorigin[1] - attorigin[1]  new Float:largestnum = 0.0  if(floatabs(origin2[0]) > largestnum) largestnum = floatabs(origin2[0]) if(floatabs(origin2[1]) > largestnum) largestnum = floatabs(origin2[1])  origin2[0] /= largestnum origin2[1] /= largestnum  velocity[0] = ( origin2[0] * knockbackas * 3000 ) / get_entity_distance(victim , attacker) velocity[1] = ( origin2[1] * knockbackas * 3000 ) / get_entity_distance(victim , attacker)  if(velocity[0] <= 20.0 || velocity[1] <= 20.0)  velocity[2] = random_float(200.0 , 275.0)  return 1} 
Image

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests