Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
вот так делаю перехват и удаляю ее "Kill" .. однако граната взрывается все равно.. есть ли не костыльный способ перехвата взрыва гранаты? (не костыльный это без CreateTimer(..))
Разве что тебе это нужно делать не сразу, а вот как узнать время через которое нужно удалять я хз.
Как вариант через тик после создания этой энтити получить значения её скорости (как раз в этот момент значения станет можно получить) и положения, удалить энтити, создать другую энтити и прописать в TeleportEntity() полученные параметры.
После этого полетит другая энтити (лучше ещё и скопировать модель). А там можно таймер установить на срабатывание.
Разве что тебе это нужно делать не сразу, а вот как узнать время через которое нужно удалять я хз.
Как вариант через тик после создания этой энтити получить значения её скорости (как раз в этот момент значения станет можно получить) и положения, удалить энтити, создать другую энтити и прописать в TeleportEntity() полученные параметры.
После этого полетит другая энтити (лучше ещё и скопировать модель). А там можно таймер установить на срабатывание.
#include <dhooks>
#include <sdkhooks>
bool method_debug = false; //Реализация 2 способами - оба работают по сути одинаково, разница лишь в методе реализации которую вы можете изучить.
DynamicHook hook_detonate;
public void OnPluginStart()
{
GameData conf = new GameData ("test_gamedata_kailo"); //Обьявили начало работы с gamedata
if (method_debug) hook_detonate = new DynamicHook (conf.GetOffset("Detonate"), HookType_Entity, ReturnType_Void, ThisPointer_CBaseEntity); //Подготовили нашу функцию для хука методом Native
else hook_detonate = DynamicHook.FromConf(conf, "Detonate_Func"); //Подготовили нашу функцию для хука методом GameData
conf.Close(); //Чистим после использования. можно delete, но в данном случае не имеет смысла.
}
public void OnEntityCreated(int entity, const char[] classname)
{
if (strcmp(classname, "hegrenade_projectile", false) == 0)
hook_detonate.HookEntity(Hook_Pre, entity, HookHeDetonate);
}
MRESReturn HookHeDetonate (int pThis)
{
PrintToChatAll("Индекс боевой гранаты - %d", pThis);
RemoveEntity(pThis);
return MRES_Supercede;
}
"Games"
{
"#default" //название игры
{
"Offsets" //Offsets, Signatures, adresses, functions, Keys (Для строк)
{
"Detonate" //CBaseGrenade::Detonate
{
//"library" "server" - нужно только для Signatures
"windows" "238"
"linux" "239"
}
}