Начинающий
-
Автор темы
- #1
Сумоны мипо считаются за иллюзии.Как это пофиксить и куда смотреть?
Ок попробую отпишусь,то есть прохожусь по массиву модифаеров вижу имя модифаера modifier_illusion ,и меняю цвет правильно же?по баффам попробуй. "modifier_illusion". потести в одиночке со всякими дарксирами, террорблейдами, морфами, мипо и тд
dota_modifier_dump команда есть консольная логает все баффы на всех
В дампе modifier_illusion отображается,при этом при итерации по модифаерам их нету.Не знаешь что не так?GetModiferNum делает разыменование значения по оффсету 0x10.modifiernum меньше чем количество модифаеров в дампе.по баффам попробуй. "modifier_illusion". потести в одиночке со всякими дарксирами, террорблейдами, морфами, мипо и тд
dota_modifier_dump команда есть консольная логает все баффы на всех
const auto manager = reinterpret_cast<ModifierManager*>((uint64_t)BASE_NPC + offsets::PLayerEntity::m_ModifierManager);
if (!_stricmp("npc_dota_hero_meepo",BASE_NPC->GetIdentity()->GetName())) //&& BASE_NPC->getColor() == -1)
{
int modifiernum = manager->GetModifiersNum();
for (int i = 0; i < modifiernum; i++)
{
const auto name = manager->GetModifierArray()->modifer[i]->GetName();
std::cout << " Illusion ModifierName : " << name << std::endl;
}
}
Я лично просто фильтрую по SchemaBinding()->binaryName(того же клона арка), хотя в принципе подсветка клонов мипо как мне кажется будет полезнойСумоны мипо считаются за иллюзии.Как это пофиксить и куда смотреть?
Модифаеры это CUtlVector<T>(в нашем случае Т это Modifier*), там идёт int m_iSize, T* m_pElements, int m_iCapacity, лучше как цельную структуру это получать. Шо за дамп с модифаерами не знаю, протестить тему с modifier_illusion смогу позжеВ дампе modifier_illusion отображается,при этом при итерации по модифаерам их нету.Не знаешь что не так?GetModiferNum делает разыменование значения по оффсету 0x10.modifiernum меньше чем количество модифаеров в дампе.
P.S Я где то видел (то ли на форуме,не помню),что нетвар m_Inventory как то поможет в случае мипо,но как его применять так и не понялКод:const auto manager = reinterpret_cast<ModifierManager*>((uint64_t)BASE_NPC + offsets::PLayerEntity::m_ModifierManager); if (!_stricmp("npc_dota_hero_meepo",BASE_NPC->GetIdentity()->GetName())) //&& BASE_NPC->getColor() == -1) { int modifiernum = manager->GetModifiersNum(); for (int i = 0; i < modifiernum; i++) { const auto name = manager->GetModifierArray()->modifer[i]->GetName(); std::cout << " Illusion ModifierName : " << name << std::endl; } }
ну правильно что его там нету - я тебе напиздел ахахах(сорри ночью было, особо не вникал, тупанул) - dota_modifier_dump это серверная команда, она с сервера дампит(на сервере то есть модифаер а на клиенте вот его нет); ща одну хуйню протесщу и отпишусьВ дампе modifier_illusion отображается,при этом при итерации по модифаерам их нету.Не знаешь что не так?GetModiferNum делает разыменование значения по оффсету 0x10.modifiernum меньше чем количество модифаеров в дампе.
P.S Я где то видел (то ли на форуме,не помню),что нетвар m_Inventory как то поможет в случае мипо,но как его применять так и не понялКод:const auto manager = reinterpret_cast<ModifierManager*>((uint64_t)BASE_NPC + offsets::PLayerEntity::m_ModifierManager); if (!_stricmp("npc_dota_hero_meepo",BASE_NPC->GetIdentity()->GetName())) //&& BASE_NPC->getColor() == -1) { int modifiernum = manager->GetModifiersNum(); for (int i = 0; i < modifiernum; i++) { const auto name = manager->GetModifierArray()->modifer[i]->GetName(); std::cout << " Illusion ModifierName : " << name << std::endl; } }
Спасибо огромное,что время уделил,,попробую отпишусь.ну как вариант ты можешь просто чекать по герою(int32 m_iHeroID)/по имени героя/по классу героя - если это мипо/морф/варден - чекать специфичными способами - если это любой другой герой - просто m_hReplicatingOtherHeroModel
у мипо(C_DOTA_Unit_Hero_Meepo) работает нетвар client.dll/C_DOTA_BaseNPC/m_bIsIllusion (у других он просто не работает. у мипо он отдельно влючен габеном
+ MNetworkIncludeByName "m_bIsIllusion"
)
у морфа(C_DOTA_Unit_Hero_Morphling) если есть бафф modifier_morphling_replicate то значит это настоящий морф под ультой(в противном случае если баффа нет то через m_hReplicatingOtherHeroModel чекать)
у вардена(CDOTA_Unit_Hero_ArcWarden) если есть бафф modifier_arc_warden_tempest_double то значит это клон с ульты(в противном случае если баффа нет то через m_hReplicatingOtherHeroModel чекать)
ну и еще IsAlive к этому всему можно прикрутить(трупаков на иллюзии впринципе то и смысла нет чекать)
Посмотреть вложение 239168
Посмотреть вложение 239169
Посмотреть вложение 239171
Чарж -- это модификатор modifier_spirit_breaker_charge_of_darkness_vision.По поводу того чтобы ривилить скиллы типо чарджа бары,телепортов и тд.ВВ сторону нетчана смотерть?
Нихрена, в синкерах есть модификаторыЧарж -- это модификатор modifier_spirit_breaker_charge_of_darkness_vision.
Еще из полезного -- modifier_sniper_assassinate, modifier_truesight, modifier_item_sphere.
С этими -- modifier_lina_light_strike_array, modifier_invoker_sun_strike, modifier_kunkka_torrent_thinker -- чуть посложней.
Они не на героя накладываются, а на npc_dota_thinker. Чекай нетвар m_hParent у модификатора, это хендл энтити (собсна синкера), ну и смотри его AbsOrigin -- это и будет место каста.
Телепорты -- в сторону нетчана. Создание партикли и установка контрол поинтов.
Спасибо огромное,что время уделил,,попробую отпишусь.
P.S на счет CUtlVector возьму на заметку,я думал что модифаеры это просто рандомная структура.
P.S Все работает спс ,а то єто кошмар как радражало.По поводу того чтобы ривилить скиллы типо чарджа бары,телепортов и тд.ВВ сторону нетчана смотерть?
О спасибо,не поудмал даже что нетвар m_hParent есть и можно его из шемы достать,я хардкодилЧарж -- это модификатор modifier_spirit_breaker_charge_of_darkness_vision.
Еще из полезного -- modifier_sniper_assassinate, modifier_truesight, modifier_item_sphere.
С этими -- modifier_lina_light_strike_array, modifier_invoker_sun_strike, modifier_kunkka_torrent_thinker -- чуть посложней.
Они не на героя накладываются, а на npc_dota_thinker. Чекай нетвар m_hParent у модификатора, это хендл энтити (собсна синкера), ну и смотри его AbsOrigin -- это и будет место каста.
Телепорты -- в сторону нетчана. Создание партикли и установка контрол поинтов.
+ я уже все сделал,все работает.
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz