Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
1. Как вызвать функцию отправки сообщения в чат? (Связанна ли она с Игроком или Юнитом которым я управляю) ?
2. Как узнать кто из вражеских героев умер?
( Я думал типа сделать проверку if(entitylifestate == мёртв) то Действия, но оно будет вызыватся всегда ибо юнит мёртв. хотелось бы чтобы дейтсвие вызывалось один раз, как коллбэк.
3. Что можно с этим делать? Я всеравно не понял, как ИСПОЛЬЗОВАТЬ протобафы.
1.
как вери фаст костыль - юзай ExecuteCommand("say <shit>")
либо чекай сурсы ксго тф2 и чекай на юс в ксго разделе(в доте наверно так же) / либо чекай дилибы
2.
я тебе уже отвечал:
ну по сути когда пакет с сервака прилетел с изменением нетвара m_lifestate - это и есть момент смерти/оживания юнита. поищи какие-нибудь коллбеки на этот нетвар(как коллбек OnTeamVisibilityChanged это коллбек на пакет который меняет нетвар m_iTeamVisibility чето там, такой же поищи на m_lifestate) и кайфуй
как костыль сделай свою говносистему коллбеков. кешируй ласт значение(допустим юнит живой) и потом каждый кадр чекай новое значение(юнит мертвый) и сравнивай со старым. олд_юнит_живой != нью_юнит_мертвый -> коллбек(нью_юнит_мертвый)
3.
это нетчан(канал внутри матча клиент-сервер. то есть здесь непосредственное общения игрового сервера(сервак на котором матч) и тебя как игрока):
Кароч пробовал вызвать вовт так SendMSG(CBaseEntity* ent, 1,ent->GetIndex(),"Hello there");
НЕ КРАШИТ, но ничего не произошло. В консоли тоже смотрел(в надежде поискать что либо типо tried to execute ..... но пусто тоже)
Кароч пробовал вызвать вовт так SendMSG(CBaseEntity* ent, 1,ent->GetIndex(),"Hello there");
НЕ КРАШИТ, но ничего не произошло. В консоли тоже смотрел(в надежде поискать что либо типо tried to execute ..... но пусто тоже)Посмотреть вложение 194960
if (!SendMSG)
{
SendMSG = *(_SendMessageToChat*)(*(ui*)ent + 0x910); // *(ent*) это будет вмт таблица
// 0x910 смотрел в дебаггере, .
}
SendMSG(ent, 1, ent->GetUnitIndex(), "Hello Mothrfuckers");
Я хз, ну вроде бы функция та если по скринам так смотреть. Ну я смотрел в ВМТ плеера на 910 там xor shit,shit ; retтоесть я уверен что это уентити есть
if (!SendMSG)
{
SendMSG = *(_SendMessageToChat*)(*(ui*)ent + 0x910); // *(ent*) это будет вмт таблица
// 0x910 смотрел в дебаггере, .
}
SendMSG(ent, 1, ent->GetUnitIndex(), "Hello Mothrfuckers");
Я хз, ну вроде бы функция та если по скринам так смотреть. Ну я смотрел в ВМТ плеера на 910 там xor shit,shit ; retтоесть я уверен что это уентити есть
ent - ?
что такое откуда берется, фулл код в студию
ну и поставь бп там на то что ты заскринил в иде и чекни на какую энтити там +0x910 вызывается. мб ты функу вызываешь не на ту энтити.
ent - ?
что такое откуда берется, фулл код в студию
ну и поставь бп там на то что ты заскринил в иде и чекни на какую энтити там +0x910 вызывается. мб ты функу вызываешь не на ту энтити.
так мб стоит поставить на нужное место где вызывается +0x910? а не на саму 0x910?
"ну и поставь бп там на то что ты заскринил в иде". ты скинул скрин. вот туда бряку и поставь. или я чето неправильно понял? или то что ты заскринил тоже каждую секунду вызывается?
НО, вписав в дебаггер хреф просто say то у меня выскочило гдето 5 хрефов(а на сей-тим только 1 ) ну и кароч решил я посмотреть что там, потыкал и наткнулся на один где я поставил брекпоинт и когда я нажал шифт+ентер(глобалчат) у меня сработал брекпоинт.
Крч полазил в ИДЕ нашел это место, только это точно не оно(не связанное с отправкой сообщения в чат)
Окей, у меня работает норм 36-й индекс(это ExecuteClientCMD). Походу через него не получиться врубить sv_cheats 1. ( Пробовал делать вызов так CMD(this,1,"sv_cheats") u CMD(this,"sv_cheats 1") не работает.
Можно ли вывести в чат имя героя таким способом CMD("My hero is %s",ent->GetName() ) ; ?
Прост я пробовал но ничего не выводит, выводит только пустые сообщения типа (say Hello)
А и не работает еще почему-то через этот ExecuteClientCMD команда say_team
Окей, у меня работает норм 36-й индекс(это ExecuteClientCMD). Походу через него не получиться врубить sv_cheats 1. ( Пробовал делать вызов так CMD(this,1,"sv_cheats") u CMD(this,"sv_cheats 1") не работает.
Можно ли вывести в чат имя героя таким способом CMD("My hero is %s",ent->GetName() ) ; ?
Прост я пробовал но ничего не выводит, выводит только пустые сообщения типа (say Hello)
А и не работает еще почему-то через этот ExecuteClientCMD команда say_team
...
формат делает из нескольких строк одну.
было
say "My hero name is {}" и npc_dota_hero_shit
стало
say "My hero name is npc_dota_hero_shit"
вот это говно ты уже передаешь в функу. кавычки нужны чтобы символизировать что дальше идет строка а не некст аргумент к команде(в доте когда пишешь say hello world токо hello напишет, нужно писать команду(в консоли прямо так и пишешь) say "hello world". ну по крайней мере я так помню. или это токо на бинды распространяется(bind x "say shit"). или я долбоёб. или это в другой игре на сурс движке такая проблема. бля кароче тести я не помню). эскейпишь их / юзаешь raw string literal
про формат это я к тому что ты там %s написал. это и есть форматирование.
Это вообще так не работает и не должно, иначе любой мог бы просто в паблике sv_cheats юзать.
Либо патчи, либо конвар напрямую меняй. Бери VEngineCvar007 из tier0.dll, это класс ICvar.
Это вообще так не работает и не должно, иначе любой мог бы просто в паблике sv_cheats юзать.
Либо патчи, либо конвар напрямую меняй. Бери VEngineCvar007 из tier0.dll, это класс ICvar.