Auto hunt packets

Статус
В этой теме нельзя размещать новые ответы.

InternalError

Знаменитый
Пользователь
Сообщения
31
Розыгрыши
0
Репутация
0
Реакции
0
Баллы
1 233
Какую функцию использует клиент(ruoff, essence) для отправки пакета включения/выключения системы автофарма? Функция uNetworkHandler::sendPacket не задействуется при этом.
 

It is used through GameServerPackets. The one you are looking for is called "isFarmActivate()" in my source.

1671136732125.png
 
This is in the source/core/java. Each of the WriteH, WriteC, WriteD things are basically the different elements/building blocks of the packet, and writeImpl() is the constructor.
Это не то что мне нужно. Я ищу функцию В КЛИЕНТЕ которая отправляет пакет на сервер. Все пакеты отправляются с помощю sendPacket, кроме автофарма. Я вижу пакет через Wireshark, но не вижу в sendPacket. Они придумали что-то новое?
 
Oh, sorry. I didn't understand the question. Cannot help with the client side of things. :(
 
Это не то что мне нужно. Я ищу функцию В КЛИЕНТЕ которая отправляет пакет на сервер. Все пакеты отправляются с помощю sendPacket, кроме автофарма. Я вижу пакет через Wireshark, но не вижу в sendPacket. Они придумали что-то новое?
Они придумали функцию отправки структуры.


C#:
native final function UpdateAutoplaySetting(AutoplaySettingData Settings);


C#:
struct AutoplaySettingData
{
    var bool IsAutoPlayOn;
    var bool IsPickupOn;
    var EAutoNextTargetMode NextTargetMode;
    var bool IsNearTargetMode;
    var int HPPotionPercent;
    var int HPPetPotionPercent;
    var bool IsMannerModeOn;
    var bool IsClientRequest;
    var byte MacroIndex;
};
 
Они придумали функцию отправки структуры.


C#:
native final function UpdateAutoplaySetting(AutoplaySettingData Settings);


C#:
struct AutoplaySettingData
{
    var bool IsAutoPlayOn;
    var bool IsPickupOn;
    var EAutoNextTargetMode NextTargetMode;
    var bool IsNearTargetMode;
    var int HPPotionPercent;
    var int HPPetPotionPercent;
    var bool IsMannerModeOn;
    var bool IsClientRequest;
    var byte MacroIndex;
};
Спасибо. Есть RequestExAutoplaySetting и ExAutoplaySetting. По всей видимости, одна get, другая set. Есть информация по параметрам?
int __thiscall RequestExAutoplaySetting(int **this, int);
char __cdecl ExAutoplaySetting(int, int);

В конечном счете все вызывают альтернативу sendPacket, которая собирает и шифрует пакет: char __thiscall uNetworkHandler::fnc(int *this, int, int, int)
 
C#:
function OnRegisterEvent()


{

    RegisterEvent(EV_GameStart);

    RegisterEvent(EV_Restart);

    RegisterEvent(EV_AutoplaySetting);

    RegisterEvent(EV_NextTargetModeChange);

    RegisterEvent(EV_OptionHasApplied);

    RegisterEvent(EV_CounterAttack);

    RegisterEvent(EV_ToggleCombatMode);

}



...



function OnEvent (int Event_ID, string param)

{

    if ( getInstanceUIData().getIsLiveServer() )

        return;



    switch (Event_ID)

    {

        case EV_GameStart:

            initAll();

            break;

        case EV_Restart:

            bActivateAll = False;

            nCombatOnOff = 0;

            setCombatTooltip();

            Autotarget_updateCombatButton();

            Autotarget_Init();

            break;

        case EV_AutoplaySetting:

            Debug("EV_AutoplaySetting" @ param);

            AutoplaySettingHandler(param);

            break;

        case EV_NextTargetModeChange:

        case EV_OptionHasApplied:

            NextTargetModeHandler();

            break;

        case EV_CounterAttack:

            if ( autotarget_bUseAutoTarget )

                requestAutoPlay(False);

            break;

        case EV_ToggleCombatMode:

            ParseInt(param,"OnOff",nCombatOnOff);

            setCombatTooltip();

            Autotarget_updateCombatButton();

            break;

    }

}



...



function AutoplaySettingHandler (string param)

{

    local int nIsAutoPlayOn;

    local int nNextTargetMode;

    local int nIsNearTargetMode;

    local int nIsPickupOn;

    local int nHPPotionPercent;

    local int nIsMannerModeOn;

    local int nHPPetPotionPercent;



    ParseInt(param,"IsPickupOn",nIsPickupOn);

    ParseInt(param,"IsAutoPlayOn",nIsAutoPlayOn);

    ParseInt(param,"NextTargetMode",nNextTargetMode);

    ParseInt(param,"IsNearTargetMode",nIsNearTargetMode);

    ParseInt(param,"HPPotionPercent",nHPPotionPercent);

    ParseInt(param,"HPPetPotionPercent",nHPPetPotionPercent);

    ParseInt(param,"IsMannerModeOn",nIsMannerModeOn);

    autotarget_bUseAutoTarget = numToBool(nIsAutoPlayOn);

    autotarget_bShortTarget = numToBool(nIsNearTargetMode);

    autotarget_bIsPickupOn = numToBool(nIsPickupOn);

    autotarget_bIsContinentModeOn = numToBool(nIsContinentModeOn);

    autotarget_nHPPotionPercent = nHPPotionPercent;

    autotarget_nHPPetPotionPercent = nHPPetPotionPercent;

    updateElements();

    if ( nIsAutoPlayOn > 0 )

        CallGFxFunction("ExpBar","AutoCamera_State","state=OnAutoPlay");

    else

        CallGFxFunction("ExpBar","AutoCamera_State","state=OffAutoPlay");

}



...



function requestAutoPlay (bool bUseAutoTarget, optional int nHPPotionPercent, optional int nHPPetPotionPercent)

{

    local AutoplaySettingData pAutoplaySettingData;



    autotarget_nTargetMode = GetNextTargetModeOption();

    pAutoplaySettingData.IsAutoPlayOn = bUseAutoTarget;

    pAutoplaySettingData.IsPickupOn = autotarget_bIsPickupOn;

    pAutoplaySettingData.NextTargetMode = autotarget_nTargetMode;

    pAutoplaySettingData.IsNearTargetMode = autotarget_bShortTarget;

    pAutoplaySettingData.IsContinentModeOn = autotarget_bIsContinentModeOn;



    if ( nHPPotionPercent > 0 )

        pAutoplaySettingData.HPPotionPercent = nHPPotionPercent;

    else

        pAutoplaySettingData.HPPotionPercent = autotarget_nHPPotionPercent;



    if ( nHPPetPotionPercent > 0 )

        pAutoplaySettingData.HPPetPotionPercent = nHPPetPotionPercent;

    else

        pAutoplaySettingData.HPPetPotionPercent = autotarget_nHPPetPotionPercent;



    UpdateAutoplaySetting(pAutoplaySettingData);

}
 
char __thiscall uNetworkHandler::fnc(int *this, int, int, int)
сhar(result) - всегда ноль; 1-указатель на объект; 2 и 3 - статические параметры, скорее всего ID евента; 4 - ??? похоже на pointer. это и есть указатель на структуру?

C#:
function OnRegisterEvent()


{

    RegisterEvent(EV_GameStart);

    RegisterEvent(EV_Restart);

    RegisterEvent(EV_AutoplaySetting);

    RegisterEvent(EV_NextTargetModeChange);

    RegisterEvent(EV_OptionHasApplied);

    RegisterEvent(EV_CounterAttack);

    RegisterEvent(EV_ToggleCombatMode);

}



...



function OnEvent (int Event_ID, string param)

{

    if ( getInstanceUIData().getIsLiveServer() )

        return;



    switch (Event_ID)

    {

        case EV_GameStart:

            initAll();

            break;

        case EV_Restart:

            bActivateAll = False;

            nCombatOnOff = 0;

            setCombatTooltip();

            Autotarget_updateCombatButton();

            Autotarget_Init();

            break;

        case EV_AutoplaySetting:

            Debug("EV_AutoplaySetting" @ param);

            AutoplaySettingHandler(param);

            break;

        case EV_NextTargetModeChange:

        case EV_OptionHasApplied:

            NextTargetModeHandler();

            break;

        case EV_CounterAttack:

            if ( autotarget_bUseAutoTarget )

                requestAutoPlay(False);

            break;

        case EV_ToggleCombatMode:

            ParseInt(param,"OnOff",nCombatOnOff);

            setCombatTooltip();

            Autotarget_updateCombatButton();

            break;

    }

}



...



function AutoplaySettingHandler (string param)

{

    local int nIsAutoPlayOn;

    local int nNextTargetMode;

    local int nIsNearTargetMode;

    local int nIsPickupOn;

    local int nHPPotionPercent;

    local int nIsMannerModeOn;

    local int nHPPetPotionPercent;



    ParseInt(param,"IsPickupOn",nIsPickupOn);

    ParseInt(param,"IsAutoPlayOn",nIsAutoPlayOn);

    ParseInt(param,"NextTargetMode",nNextTargetMode);

    ParseInt(param,"IsNearTargetMode",nIsNearTargetMode);

    ParseInt(param,"HPPotionPercent",nHPPotionPercent);

    ParseInt(param,"HPPetPotionPercent",nHPPetPotionPercent);

    ParseInt(param,"IsMannerModeOn",nIsMannerModeOn);

    autotarget_bUseAutoTarget = numToBool(nIsAutoPlayOn);

    autotarget_bShortTarget = numToBool(nIsNearTargetMode);

    autotarget_bIsPickupOn = numToBool(nIsPickupOn);

    autotarget_bIsContinentModeOn = numToBool(nIsContinentModeOn);

    autotarget_nHPPotionPercent = nHPPotionPercent;

    autotarget_nHPPetPotionPercent = nHPPetPotionPercent;

    updateElements();

    if ( nIsAutoPlayOn > 0 )

        CallGFxFunction("ExpBar","AutoCamera_State","state=OnAutoPlay");

    else

        CallGFxFunction("ExpBar","AutoCamera_State","state=OffAutoPlay");

}



...



function requestAutoPlay (bool bUseAutoTarget, optional int nHPPotionPercent, optional int nHPPetPotionPercent)

{

    local AutoplaySettingData pAutoplaySettingData;



    autotarget_nTargetMode = GetNextTargetModeOption();

    pAutoplaySettingData.IsAutoPlayOn = bUseAutoTarget;

    pAutoplaySettingData.IsPickupOn = autotarget_bIsPickupOn;

    pAutoplaySettingData.NextTargetMode = autotarget_nTargetMode;

    pAutoplaySettingData.IsNearTargetMode = autotarget_bShortTarget;

    pAutoplaySettingData.IsContinentModeOn = autotarget_bIsContinentModeOn;



    if ( nHPPotionPercent > 0 )

        pAutoplaySettingData.HPPotionPercent = nHPPotionPercent;

    else

        pAutoplaySettingData.HPPotionPercent = autotarget_nHPPotionPercent;



    if ( nHPPetPotionPercent > 0 )

        pAutoplaySettingData.HPPetPotionPercent = nHPPetPotionPercent;

    else

        pAutoplaySettingData.HPPetPotionPercent = autotarget_nHPPetPotionPercent;



    UpdateAutoplaySetting(pAutoplaySettingData);

}
Думаю в клиенте это реализовано иначе, так как функция используется для отправки структур не только касающихся autofarm, в частности MagicLampGame, но спасибо за помощь

Спасибо. Есть RequestExAutoplaySetting и ExAutoplaySetting. По всей видимости, одна get, другая set. Есть информация по параметрам?
int __thiscall RequestExAutoplaySetting(int **this, int);
char __cdecl ExAutoplaySetting(int, int);

В конечном счете все вызывают альтернативу sendPacket, которая собирает и шифрует пакет: char __thiscall uNetworkHandler::fnc(int *this, int, int, int)
На практике выяснилось что RequestExAutoplaySetting и ExAutoplaySetting не работают. Используется только последняя
 
И так:
char __thiscall uNetworkHandler::sendStruct(int *uNetworkHandler, int, int, autoPlaySetting*);
2 и 3 параметры грубо говоря статичные ID (действия наверное?). 3 параметр:

1671206294146.png
если кто может дополнить, буду благодарен, может что упустил
 
там где у тебя always 0 это не верный тип выше. Нужно для хп не char а int ( 4 char ).

EAutoNextTargetMode NextTargetMode;
bool IsNearTargetMode;
int HPPotionPercent;
int HPPetPotionPercent;
bool IsMannerModeOn;
 
там где у тебя always 0 это не верный тип выше. Нужно для хп не char а int ( 4 char ).

EAutoNextTargetMode NextTargetMode;
bool IsNearTargetMode;
int HPPotionPercent;
int HPPetPotionPercent;
bool IsMannerModeOn;
Понял. Тоже так думал, но меня сбил с толку последний char. Думал там какое-то выравнивание есть. А тот что unknown_1 это не NextTargetMode, он прям над ним. Я все проюзал, так и не понял для чего он.
 
тема не актуал.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху Снизу