хотел найти функцию касания человека к газовой грене. пробовал так:
Code
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#define PLUGIN "gas_damage"
#define VERSION "0.0.1"
#define AUTHOR "~Free*.*KILL~"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
//register_forward(FM_Touch, "fwdTouch")
RegisterHam(Ham_Touch, "gasgrenade", "fwdTouch")
}
public fwdTouch(grenade, id) {
if(!is_user_alive(id) || !is_user_connected(id))
return FMRES_IGNORED
client_print(0,print_chat," touch 0")
client_print(id,print_chat," touch id")
set_task(0.1, "damage_gas", id)
return FMRES_HANDLED
}
public damage_gas(id) {
client_print(0,print_chat,"take_damage")
new hp
hp = get_user_health(id)
if(hp == 1)
return PLUGIN_HANDLED
set_user_health(id, hp - 1)
return PLUGIN_HANDLED
}
пробовал эдак:
Code
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fun>
#define PLUGIN "gas_damage"
#define VERSION "0.0.1"
#define AUTHOR "~Free*.*KILL~"
#define GAS_CLASSNAME "gasgrenade"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_forward(FM_Touch, "fwdTouch")
}
public fwdTouch(ent, id) {
if(!is_user_alive(id) || !is_user_connected(id))
return FMRES_IGNORED
if(!pev_valid(ent)) {
return FMRES_IGNORED
}
static classname[33]
pev(ent, pev_classname, classname, charsmax(classname))
if(!equal(classname, GAS_CLASSNAME))
return FMRES_IGNORED
set_task(0.1, "damage_gas", id)
return FMRES_HANDLED
}
public damage_gas(id) {
new hp
hp = get_user_health(id)
if(hp == 1)
return PLUGIN_HANDLED
set_user_health(id, hp - 1)
return PLUGIN_HANDLED
}
и все неработает. точно здаю что можно поймать эту функцию примерно так:
Code
public bool:is_grenade(ent)
{
if (!pev_valid(ent)) return false
static classname[32]
pev(ent, pev_classname, classname, 31)
return (equal(classname, "grenade")) ? true : false
}
в данном случае здесь проверяется граната этоили нет, а если сделать так, то будет проверятся это граната he или нет
Code
public bool:is_grenade(ent)
{
if (!pev_valid(ent)) return false
static classname[32]
pev(ent, pev_classname, classname, 31)
return (equal(classname, "grenade") && get_pdata_int(ent, 114) == 25) ? true : false
}
дак вот как сделать проверку на гранату газовую и на проверку на сам дым?
заранее спс