Postanowiłem napisać plugin na Long Knife, czyli możliwość atakowania z noża na dalekie odległości.
Hamsandwich wydał mi się idealny do tej roboty, ale są problemy ...
Fragmenty kodu:
new weapon[64]
get_weaponname(CSW_KNIFE, weapon, charsmax(weapon))
RegisterHam(Ham_Weapon_SecondaryAttack, weapon, "fwHamSecAttPost", 1)
public fwHamSecAttPost(ent)
{
new id = pev(ent, pev_owner)
if(player_b_long[id])
{
new id2, body
get_user_aiming(id, id2, body)
if(id2 && is_user_alive(id2) && is_user_connected(id2))
ExecuteHam(Ham_TakeDamage, id2, CSW_KNIFE, id, 65.0, DMG_SLASH)
client_print(id, print_chat, "Uderzyl")
}
}
I gdy nacisne PPM (+attack2) mając nóż wywala mi error:
L 03/25/2010 - 18:39:25: [HAMSANDWICH] Entity has null private data (29) L 03/25/2010 - 18:39:25: [AMXX] Displaying debug trace (plugin "dbmod_5.9lv3.amxx") L 03/25/2010 - 18:39:25: [AMXX] Run time error 10: native error (native "ExecuteHam") L 03/25/2010 - 18:39:25: [AMXX] [0] dbmod_5.9lv3.sma::fwHamSecAttPost (line 9476)( Tak dbmod bo to w sumie item do Diablo ;D )
I tera nie wiem co robić ;s Wolałbym użyć do wywoływania obrażeń Hamsandwich niż funkcji change_health ...