Гайд Продолжение. вбе(партикли)

Начинающий
Статус
Оффлайн
Регистрация
30 Мар 2020
Сообщения
324
Реакции[?]
24
Поинты[?]
12K
Спасибо партикли создаются успешно(в консоли выдается соотвествующие сообщение Creating collection: particles/ui_mouseactions/range_finder_tower_aoe.vpcf),теперь насколько я понял нужно установить контрл поинты.Но функции для утсановки контрол поинтов и дестрой партиклов находятся уже ж не в классе CDOTA_ParticleManaget а в классе NewParticleEffect?Так как я реверсил как дота создает партикли и увидел два образения к вмт CDOTA_ParticleManager (crateParticle 0x38 отнсоительно вмт и еще какая то функа которая видно ниче не делает).А после я видел только вызов методов ParticleNewEffeect?
C++:
class CParticleCollection

virtual void* func00();
...
virtual void* func15();
virtual void* SetParticleControl(int Index, VECTOR&);
 
Начинающий
Статус
Оффлайн
Регистрация
30 Мар 2020
Сообщения
324
Реакции[?]
24
Поинты[?]
12K
Liberalist , габен что-то сделал с партикль менеджер?? Ибо я его не нахожу почемуто в дебагере.
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
29 Авг 2022
Сообщения
12
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Парни у меня такая проблема.Вбе работает только,есть одно но.Когда я клацаю под себя(на модельку своего героя)m_flStartSequenceCycle становится на долю секунды 0.0f,и у меня появляется и тут же пропадает партикля кружка.(КОгда меня не видно)Пишу логику VBE в StageFrameNotify.В чем проблема может нетвар какой то другой искать или в другом хуке это все делать?Вот код
Код:
if (BASE_NPC->getflStartSequenceCycle() == 0.0f && BASE_NPC->isAlive()) {
            if (std::find(m_particles.begin(), m_particles.end(),
                BASE_NPC) == m_particles.end()){
                MyParticles particle { "particles/ui_mouseactions/selected_ring.vpcf",
                   PATTACH_ABSORIGIN_FOLLOW, BASE_NPC };
                particle.CreateParticle();

                particle.SetParticleControlPoint(1, Vec3{ 255,0,0 });
                particle.SetParticleControlPoint(2, Vec3{ 150,255,120 });
                particle.SetParticleControlPoint(3, Vec3{ 0,0,0 });

                m_particles.push_back(particle);
            }
 
Последнее редактирование:
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
663
Реакции[?]
104
Поинты[?]
67K
Парни у меня такая проблема.Вбе работает только,есть одно но.Когда я клацаю под себя(на модельку своего героя)m_flStartSequenceCycle становится на долю секунды 0.0f,и у меня появляется и тут же пропадает партикля кружка.(КОгда меня не видно)Пишу логику VBE в StageFrameNotify.В чем проблема может нетвар какой то другой искать или в другом хуке это все делать?Вот код
Код:
if (BASE_NPC->getflStartSequenceCycle() == 0.0f && BASE_NPC->isAlive()) {
            if (std::find(m_particles.begin(), m_particles.end(),
                BASE_NPC) == m_particles.end()){
                MyParticles particle { "particles/ui_mouseactions/selected_ring.vpcf",
                   PATTACH_ABSORIGIN_FOLLOW, BASE_NPC };
                particle.CreateParticle();

                particle.SetParticleControlPoint(1, Vec3{ 255,0,0 });
                particle.SetParticleControlPoint(2, Vec3{ 150,255,120 });
                particle.SetParticleControlPoint(3, Vec3{ 0,0,0 });

                m_particles.push_back(particle);
            }
m_flStartSequenceCycle становится нулем не только при видимости для врага. У меня такой же прикол, не знаю как популярные читы это фиксили.
 
Забаненный
Статус
Оффлайн
Регистрация
29 Авг 2022
Сообщения
12
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
m_flStartSequenceCycle становится нулем не только при видимости для врага. У меня такой же прикол, не знаю как популярные читы это фиксили.
Хех я думал я один тут такой.У меня такая же фигння с одерами.Я сделал антиинициаию и она работает.Только framestagenotify вызывается так много раз,что он у меня одерами спамит,хотя я и кулдаун скилла проверяю и все такое(тоже самое с ауто ультой зевса)(если кто то знает хелпаните тоже).Может нетвары они другие изпользуют?+ у меня даже когда тиммейты кликают на модельку своего героя на них тоже партикля появляется.
 
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
663
Реакции[?]
104
Поинты[?]
67K
Хех я думал я один тут такой.У меня такая же фигння с одерами.Я сделал антиинициаию и она работает.Только framestagenotify вызывается так много раз,что он у меня одерами спамит,хотя я и кулдаун скилла проверяю и все такое(тоже самое с ауто ультой зевса)(если кто то знает хелпаните тоже).Может нетвары они другие изпользуют?+ у меня даже когда тиммейты кликают на модельку своего героя на них тоже партикля появляется.
с ордерами у меня тоже проблема, проверки на кд есть а все равно герой просто стоит(даж первый ордер не кидается)

C++:
                    if ( !entity->IsAlly( ) && !entity->IsIllusion( ) && !entity->IsDormant( ) ) {
                            for ( unsigned char items = 0; items < 32; items++ ) {
                                const auto item_idx = LocalEntity->GetItem( items );
                                const auto item = reinterpret_cast<CDOTA_Item*>(g_pGameEntitySystem->GetBaseEntity( item_idx ));

                                if ( item->GetAnyName( ) == "item_sheepstick" && entity->GetDistanceToLocalPlayer( ) < item->GetCastRange( ) && !item->IsInAbilityPhase( ) && item->IsActivated( ) && item->GetManaCost( ) <= LocalEntity->GetMana( ) ) {
                                    Vector empty{ 0,0,0 };
                                    if ( !item->GetCooldown( ) ) {
                                        hooks::original::fpPrepareUnitOrders(
                                            reinterpret_cast<CDOTAPlayer_Controller*>(g_LocalController),
                                            DotaUnitOrder_t::DOTA_UNIT_ORDER_CAST_TARGET,
                                            entity->GetIndex( ),
                                            &empty,
                                            item_idx.Get( ),
                                            PlayerOrderIssuer_t::DOTA_ORDER_ISSUER_HERO_ONLY,
                                            LocalEntity,
                                            false,
                                            false
                                        );
                                    }
                                }
                            }
                        }
 
Забаненный
Статус
Оффлайн
Регистрация
29 Авг 2022
Сообщения
12
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
с ордерами у меня тоже проблема, проверки на кд есть а все равно герой просто стоит(даж первый ордер не кидается)

C++:
                    if ( !entity->IsAlly( ) && !entity->IsIllusion( ) && !entity->IsDormant( ) ) {
                            for ( unsigned char items = 0; items < 32; items++ ) {
                                const auto item_idx = LocalEntity->GetItem( items );
                                const auto item = reinterpret_cast<CDOTA_Item*>(g_pGameEntitySystem->GetBaseEntity( item_idx ));

                                if ( item->GetAnyName( ) == "item_sheepstick" && entity->GetDistanceToLocalPlayer( ) < item->GetCastRange( ) && !item->IsInAbilityPhase( ) && item->IsActivated( ) && item->GetManaCost( ) <= LocalEntity->GetMana( ) ) {
                                    Vector empty{ 0,0,0 };
                                    if ( !item->GetCooldown( ) ) {
                                        hooks::original::fpPrepareUnitOrders(
                                            reinterpret_cast<CDOTAPlayer_Controller*>(g_LocalController),
                                            DotaUnitOrder_t::DOTA_UNIT_ORDER_CAST_TARGET,
                                            entity->GetIndex( ),
                                            &empty,
                                            item_idx.Get( ),
                                            PlayerOrderIssuer_t::DOTA_ORDER_ISSUER_HERO_ONLY,
                                            LocalEntity,
                                            false,
                                            false
                                        );
                                    }
                                }
                            }
                        }
Хз у меня одер кидается.А у тебя вызывается функа prepareunitorders и ничего не происходит?Дружище если тебе надоел reinterpret_cast делать,можно просто сделать медот GetBaseEntity шаблонным.
const auto item = reinterpret_cast<CDOTA_Item*>(g_pGameEntitySystem->GetBaseEntity( item_idx ));



Код:
DotaPlayerController->CastSkill(myItem->GetIdentity()->CHANDLE, DOTA_UNIT_ORDER_CAST_TARGET,
                        DOTA_ORDER_ISSUER_PASSED_UNIT_ONLY, NPC->GetIdentity()->CHANDLE);
                      
void C_DOTAPlayerController::CastSkill(int Abilhandle, dotaunitorder_t order, PlayerOrderIssuer_t OrderIssue, int targetHandle)noexcept
{
    uint64_t mem = 0x0;
    const auto Abilityindex = cGameEntitySystem->GetIndexFromHandle(Abilhandle);
    const auto targetIndex = cGameEntitySystem->GetIndexFromHandle(targetHandle);

    prepareUnitOders(this, order, targetIndex, mem,
        Abilityindex, OrderIssue, GetAssignedHero(), 0, 1);
}
 
Последнее редактирование:
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
663
Реакции[?]
104
Поинты[?]
67K
Хз у меня одер кидается.А у тебя вызывается функа prepareunitorders и ничего не происходит?
Код:
DotaPlayerController->CastSkill(myItem->GetIdentity()->CHANDLE, DOTA_UNIT_ORDER_CAST_TARGET,
                        DOTA_ORDER_ISSUER_PASSED_UNIT_ONLY, NPC->GetIdentity()->CHANDLE);
                     
void C_DOTAPlayerController::CastSkill(int Abilhandle, dotaunitorder_t order, PlayerOrderIssuer_t OrderIssue, int targetHandle)noexcept
{
    uint64_t mem = 0x0;
    const auto Abilityindex = cGameEntitySystem->GetIndexFromHandle(Abilhandle);
    const auto targetIndex = cGameEntitySystem->GetIndexFromHandle(targetHandle);

    prepareUnitOders(this, order, targetIndex, mem,
        Abilityindex, OrderIssue, GetAssignedHero(), 0, 1);
}
У меня пишет в консоль что-то по типу attempt to execute invalid order. На самом деле, он не инвалид, я проверял всю инфу, что туда передаю
 
Забаненный
Статус
Оффлайн
Регистрация
29 Авг 2022
Сообщения
12
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
DOT
У меня пишет в консоль что-то по типу attempt to execute invalid order. На самом деле, он не инвалид, я проверял всю инфу, что туда передаю
У меня все ок.Сверь мои параметры и свои и переделаай.По факту если бы ты вызываешь функу с такими же параметрами с какими вызвает игра все должно работать.Например у тебя последний параметр false а уменя тру,к тому же у меня ордеришью
DOTA_ORDER_ISSUER_PASSED_UNIT_ONLY а у тебя DOTA_ORDER_ISSUER_HERO_ONLY.Хз попробуй точно с такими же параметрами как у меня передать должно работать.Или поставь бряк на prepareunitorders и посомтри что игра передает.(Я так делал)У тебя параметры другие по моему.Не знаю что за последний параметр но игра его как true передает а у тебя фолс
 
Забаненный
Статус
Оффлайн
Регистрация
29 Авг 2022
Сообщения
12
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Screenshot_4.png

Я поставил бряк и заюзал хекс игра последним параметром передает 1(true),+ я впомнил у меня такая же фигня была ,по моему это случалось когда я вместо index передавал handle.Так же игра передает не
DOTA_ORDER_ISSUER_HERO_ONLY = 2, а DOTA_ORDER_ISSUER_PASSED_UNIT_ONLY = 3,чекни скрины.
Так что попробуй последним параметром тру передать и одеришью поменять на DOTA_ORDER_ISSUER_PASSED_UNIT_ONLY мб заработает.Я хз ты еще и структуру Vec3 передаешь хотя ты кастуешь хекс не на карту ,а клацаешь на героя.Vec3 которая скорее всего float x,y,z передается в эту функцию тольок если способность кидается в какуе то область,а в случае хекса ты кастуешь в героя там просто uint64_t& передаешь.У тебя параметры короче неправильныеXDТебе еще повезло что оно не крашит.Так что правильно тебе пишет что инвалид одер и все такое
 

Вложения

Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
Хех я думал я один тут такой.У меня такая же фигння с одерами.Я сделал антиинициаию и она работает.Только framestagenotify вызывается так много раз,что он у меня одерами спамит,хотя я и кулдаун скилла проверяю и все такое(тоже самое с ауто ультой зевса)(если кто то знает хелпаните тоже).Может нетвары они другие изпользуют?+ у меня даже когда тиммейты кликают на модельку своего героя на них тоже партикля появляется.
попробуйте абилитифейз(это когда анимация замаха абилки проигрывается)
d2js:
if(!Abilities.IsInAbilityPhase(poof))
{
    GameUI.SelectUnit(meepo[i],false)
    Game.CastTarget(meepo[i],poof,mainmeepo,false)
    GameUI.SelectUnit(mainmeepo,false)
}
либо свои собственные булеаны хуеаны можете закостылить какие-нибудь мол если уже кастануто то не кастовать
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
29 Авг 2022
Сообщения
12
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
попробуйте абилитифейз(это когда анимация замаха абилки проигрывается)
d2js:
if(!Abilities.IsInAbilityPhase(poof))
{
    GameUI.SelectUnit(meepo[i],false)
    Game.CastTarget(meepo[i],poof,mainmeepo,false)
    GameUI.SelectUnit(mainmeepo,false)
}
либо свои собственные булеаны хуеаны можете закостылить какие-нибудь мол если уже кастануто то не кастовать
С абилитифейз это не рабоатет все так же.Оно спамит одерами просто не так сильно.Например хекс лиона катсуется моментально там нету абилитефейз,(поэтому его на s отменить нереально)а если например у меня герой повернут спиной то пока он будет поворачиваться у меня будет спамить одерами.С булеанами надо походу костылить.Я помню я играл с д2жс и там такой проблемы не было.Посмотрел на гитхабе как это реализовано и не заметил ничего такого как они это обходят.Мб какой то таймер ставить и по его истечению меня булеану
 
Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
С абилитифейз это не рабоатет все так же.Оно спамит одерами просто не так сильно.Например хекс лиона катсуется моментально там нету абилитефейз,(поэтому его на s отменить нереально)а если например у меня герой повернут спиной то пока он будет поворачиваться у меня будет спамить одерами.С булеанами надо походу костылить.Я помню я играл с д2жс и там такой проблемы не было.Посмотрел на гитхабе как это реализовано и не заметил ничего такого как они это обходят.Мб какой то таймер ставить и по его истечению меня булеану
ну я когда со своими джаваскрипт скриптами на подобии д2жс гонял я булеаны костылил(типа if not hex_cast: cast_hex(); hex_cast = true блаблабла), все ахуенно было гонял в пабе на скаймагах всяких, кд абилок чекал для отмены бексвинга(бесполезной части анимации которую можно отменить) и кастовал следующую абилку сразу же
 
Забаненный
Статус
Оффлайн
Регистрация
29 Авг 2022
Сообщения
12
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ну я когда со своими джаваскрипт скриптами на подобии д2жс гонял я булеаны костылил(типа if not hex_cast: cast_hex(); hex_cast = true блаблабла), все ахуенно было гонял в пабе на скаймагах всяких, кд абилок чекал для отмены бексвинга(бесполезной части анимации которую можно отменить) и кастовал следующую абилку сразу же
Ок попробую ,у меня и так код плох местами,плохо читаем ,а так вообще кошмар будет ну да спс буду проббовать.А ты не реверсил читы типо амбреллы,мелонити,минорити?Ну тпо покупал подписку и по ассемблеру смотрел как они реализовуют разные фишки?Я думаю так сделать так проще будет
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
Ок попробую ,у меня и так код плох местами,плохо читаем ,а так вообще кошмар будет ну да спс буду проббовать.А ты не реверсил читы типо амбреллы,мелонити,минорити?Ну тпо покупал подписку и по ассемблеру смотрел как они реализовуют разные фишки?Я думаю так сделать так проще будет
не я ими не пользовался и тем более там протекты везде я не люблю в говне таком прям копаться
 
Забаненный
Статус
Оффлайн
Регистрация
29 Авг 2022
Сообщения
12
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
не я ими не пользовался и тем более там протекты везде я не люблю в говне таком прям копаться
Хех ну да согласен,ну я мб попробую в будущем и сомневаюсь что там вмпротектор или темида на функциях чита стоят потому что это сразу -10000 фпс.
 
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
663
Реакции[?]
104
Поинты[?]
67K
Хех ну да согласен,ну я мб попробую в будущем и сомневаюсь что там вмпротектор или темида на функциях чита стоят потому что это сразу -10000 фпс.
в основном мутация фпс хавает, а там она врядли от вмп юзается
 
Начинающий
Статус
Оффлайн
Регистрация
12 Ноя 2022
Сообщения
63
Реакции[?]
23
Поинты[?]
3K
Как теперь рисовать?
vgui2.dll vguisurface.dll окончательно удалили. Paintraverse больше нет.
 
Сверху Снизу