Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Здравствуйте. Как мне реализовать событие получения удара по entity ножом?
Я регистрирую хук
this = iEntity ? При этом, вынеся iEntity, как глобальную переменную?! А если я создам еще один такой же объект, то в переменной будет храниться индекс второго объекта?
Что означает @ перед CPlayer_TakeDamage?
Это проверка валидности entity на reapi?
Что-то вроде этого, но как на reapi сделать проверку, что удар был нанесен ножом?
Как мне определить, что я нанес урон по 1 созданной entity или по 2 созданной entity и получил соответсвующее сообщение? Объявил iEntity глобальной переменной, при создании объекта вывожу ее индекс - они разные.
Функция получения урона не работает.
Из-за того, что мой объект не имеет класс func_breakable? Но мне не нужно устанавливать ему жизни.
Код:
new const ENTITY_CLASSNAME[] = "myent";
public EntityCreate(id)
{
if(!is_user_connected(id))
{
return;
}
new iOrigin[3];
#define TYPE_ORIGIN 3
get_user_origin(id, iOrigin, TYPE_ORIGIN);
IVecFVec(iOrigin, vecOrigin)
new iEntity = rg_create_entity("info_target", false);
if(is_nullent(iEntity))
{
return;
}
engfunc(EngFunc_SetModel, iEntity, ENTITY_MODEL);
engfunc(EngFunc_SetSize, iEntity, {-0.1,-0.1, -1.0}, {0.1, 0.1, 64.0});
set_entvar(iEntity, var_movetype, MOVETYPE_NONE);
set_entvar(iEntity, var_classname, ENTITY_CLASSNAME);
set_entvar(iEntity, var_solid, SOLID_BBOX);
engfunc(EngFunc_SetOrigin, iEntity, vecOrigin);
}
RegisterHookChain(RG_CBasePlayer_TakeDamage, "@CPlayer_TakeDamage", .post = true);
Код:
@CPlayer_TakeDamage(const this, pevInflictor, pevAttacker, Float:flDamage, bitsDamageType)
{
// ???
}
Что означает @ перед CPlayer_TakeDamage?
Код:
if(is_nullent(iEntity))
{
return;
}
Что-то вроде этого, но как на reapi сделать проверку, что удар был нанесен ножом?
Код:
@CPlayer_TakeDamage(const this, pevInflictor, pevAttacker, Float:flDamage, bitsDamageType)
{
this = iEntity;
if(is_nullent(iEntity)) return;
client_print(pevAttacker, print_chat, "Вы попали по %d", this);
// Немного не могу понять, как дальше...
}
23 Июл 2020
Функция получения урона не работает.
Код:
@CPlayer_TakeDamage(const this, pevInflictor, pevAttacker, Float:flDamage, bitsDamageType)
{
new this = iEntity;
client_print(pevAttacker, print_chat, "Entity: %d", this);
}