Приветствуем вас на форуме проекта WoW Circle. Если вы читаете это, значит не зарегистрировались у нас. Для того, чтобы получить доступ к расширенным возможностям нашего форума нажмите сюда и пройди регистрацию, которая не займет у вас много времени. После регистрации будут доступны новые, более расширенные, возможности.
Координаты!

Упомянутые в теме пользователи:

Показано с 1 по 10 из 10
  1. #1
    Новичок
    Регистрация
    31.05.2013
    Сообщений
    17
    Поблагодарил(а)
    0
    Получено благодарностей: 0 (сообщений: 0).
    Репутация: 0

    Lightbulb Координаты!

    Нужен координатор формата XYZ, формата, который использует сам сервер, спасибо за помощь
    З.Ы. Знаю, что такой координатор есть в программе WoWemuHacker, но её открывать я рисковать не хочу

  2. #2
    Инопланетянин
    Регистрация
    20.03.2012
    Сообщений
    4,201
    Поблагодарил(а)
    362
    Получено благодарностей: 1,439 (сообщений: 839).
    Репутация: 2399
    PHP код:
        inline auto GetLocalPlayerGuid() 
        { 
            return ((
    uint64_t(__cdecl*)())(0x004D3790))(); 
        }

        
    inline auto GetLocalPlayer() 
        {
            
    uint64_t lpguid GetLocalPlayerGuid();
            return 
    lpguid ? ((int(__cdecl*)(long longint))0x004D4DB0)(lpguid0x0010) : 0;
        }

        
    inline auto IsString(int stateint n_param)                 
        { 
            return ((
    bool(__cdecl*)(intint))0x00817FD0)(staten_param); 
        }
        
        
    inline auto ToString(int stateint n_paramint zero 0)     
        { 
            return ((
    char*(__cdecl*)(intintint))0x0084E0E0)(staten_paramzero); 
        }
        
        
    inline auto IsNumber(int stateint n_param)    
        { 
            return ((
    bool(__cdecl*)(intint))0x0084DF20)(staten_param); 
        }
        
        
    inline auto DisplayError(int statecharerr, ...)
        { 
            return ((
    int(__cdecl*)(intchar*, ...))0x0084F280)(stateerr); 
        }
        
        
    inline auto GetObjectByGuidTypeCheck(uint64_t guidint typemask = -1
        { 
            return  
    guid ? ((int(__cdecl*)(uint64_tint))0x004D4DB0)(guidtypemask) : 0
        }
        
        
    inline auto StringToGuid(charguid_string)                
        { 
            return ((
    uint64_t(__cdecl*)(char*))0x0074D120)(guid_string); 
        }
        
        
    inline auto GetPtrFromUnitId(charunit_id)        
        { 
            return ((
    int(__cdecl*)(char*))0x0060C1F0)(unit_id); 
        }
        
        
    inline auto UnitIdOrGuidToAddr(LPCSTR pstr
        {
            if (*
    pstr == '0' && (pstr[1] == 'X' || pstr[1] == 'x'))
                return 
    GetObjectByGuidTypeCheck(StringToGuid(pstr));
            else
                return 
    GetPtrFromUnitId(pstr);
        }
        
        
    inline auto PushNumber(int statedouble number)
        { 
            return ((
    int(__cdecl*)(intdouble))0x0084E2A0)(statenumber); 
        }
        
        
    inline auto PushNil(int state)                    
        { 
            return ((
    int(__cdecl*)(int))0x0084E280)(state); 
        }
        
        
    inline auto GetUnitFromLuaState(int stateint argcharerr, ...) 
        {
            if (!
    GetLocalPlayer())
                return 
    0;

            if ((
    IsString(statearg))) 
            {
                
    charunit ToString(statearg0);
                if (!
    unit
                {
                    
    DisplayError(stateerr);
                    return 
    0;
                }
                return 
    UnitIdOrGuidToAddr(unit);
            }
            else if (
    IsNumber(statearg)) 
                return 
    GetObjectByGuidTypeCheck((UINT64)ToNumber(statearg));

            return 
    0;
        }
        
        
    inline auto GetCoord(int state)
        {
            
    auto addr GetUnitFromLuaState(state1"Usage: GetCoord(\"unit\" or [\"guid\"])");
            if (
    addr)
            {
                
    PushNumber(state, *(float*)(addr 0x79C));
                
    PushNumber(state, *(float*)(addr 0x798));
                
    PushNumber(state, *(float*)(addr 0x7A0));
                return 
    3;
            }
            else
                
    PushNil(state);
            return 
    1;
        }
        
        
    inline auto RegisterLuaFunc(charfuncName, const int func_pointer
        { 
            return ((
    bool(__cdecl*)(char*, int))0x00817F90)(commandfunc_pointer); 
        }
        
        
    int LoadScriptFuncDetour()
        {
            
    RegisterLuaFunc("GetCoord", (int)GetCoord);
            
            
    // тут нужно вернуть оригинальную функцию
            
    return ((void(__cdecl*)())0x005120E0)(); 
        }
        
        
    void MainThreadControl()
        {
            
    // тут нужен детур функции по адресу 0x005120E0, реализацию думай сам
            // вариантов море , от хуков виртуальных функций ака VFTableHook до записи джампа на твой указатель в первые 5 байт
            //Detour(0x005120E0, (int)LoadScriptFuncDetour);
        
    }
        
        
    int __cdecl DllMain(voidinstDLLlong long reasonvoid*)
        {
            if (
    reason == DLL_PROCESS_ATTACH)
            {
                
    DisableThreadLibraryCalls(instDLL);
                
    CreateThread(NULL0, (LPTHREAD_START_ROUTINE)&MainThreadControlNULL0NULL);
            }
            return 
    1;
        } 
    Последний раз редактировалось DreamlØlz; 20.05.2018 в 21:44.

  3. 1 пользователь сказал cпасибо DreamlØlz за это полезное сообщение:

    Sproody (24.10.2018)

  4. #3
    Новичок
    Регистрация
    31.05.2013
    Сообщений
    17
    Поблагодарил(а)
    0
    Получено благодарностей: 0 (сообщений: 0).
    Репутация: 0
    Цитата Сообщение от DreamlØlz Посмотреть сообщение
    PHP код:
        inline auto GetLocalPlayerGuid() 
        { 
            return ((
    uint64_t(__cdecl*)())(0x004D3790))(); 
        }

        
    inline auto GetLocalPlayer() 
        {
            
    uint64_t lpguid GetLocalPlayerGuid();
            return 
    lpguid ? ((int(__cdecl*)(long longint))0x004D4DB0)(lpguid0x0010) : 0;
        }

        
    inline auto IsString(int stateint n_param)                 
        { 
            return ((
    bool(__cdecl*)(intint))0x00817FD0)(staten_param); 
        }
        
        
    inline auto ToString(int stateint n_paramint zero 0)     
        { 
            return ((
    char*(__cdecl*)(intintint))0x0084E0E0)(staten_paramzero); 
        }
        
        
    inline auto IsNumber(int stateint n_param)    
        { 
            return ((
    bool(__cdecl*)(intint))0x0084DF20)(staten_param); 
        }
        
        
    inline auto DisplayError(int statecharerr, ...)
        { 
            return ((
    int(__cdecl*)(intchar*, ...))0x0084F280)(stateerr); 
        }
        
        
    inline auto GetObjectByGuidTypeCheck(uint64_t guidint typemask = -1
        { 
            return  
    guid ? ((int(__cdecl*)(uint64_tint))0x004D4DB0)(guidtypemask) : 0
        }
        
        
    inline auto StringToGuid(charguid_string)                
        { 
            return ((
    uint64_t(__cdecl*)(char*))0x0074D120)(guid_string); 
        }
        
        
    inline auto GetPtrFromUnitId(charunit_id)        
        { 
            return ((
    int(__cdecl*)(char*))0x0060C1F0)(unit_id); 
        }
        
        
    inline auto UnitIdOrGuidToAddr(LPCSTR pstr
        {
            if (*
    pstr == '0' && (pstr[1] == 'X' || pstr[1] == 'x'))
                return 
    GetObjectByGuidTypeCheck(StringToGuid(pstr));
            else
                return 
    GetPtrFromUnitId(pstr);
        }
        
        
    inline auto PushNumber(int statedouble number)
        { 
            return ((
    int(__cdecl*)(intdouble))0x0084E2A0)(statenumber); 
        }
        
        
    inline auto PushNil(int state)                    
        { 
            return ((
    int(__cdecl*)(int))0x0084E280)(state); 
        }
        
        
    inline auto GetUnitFromLuaState(int stateint argcharerr, ...) 
        {
            if (!
    GetLocalPlayer())
                return 
    0;

            if ((
    IsString(statearg))) 
            {
                
    charunit ToString(statearg0);
                if (!
    unit
                {
                    
    DisplayError(stateerr);
                    return 
    0;
                }
                return 
    UnitIdOrGuidToAddr(unit);
            }
            else if (
    IsNumber(statearg)) 
                return 
    GetObjectByGuidTypeCheck((UINT64)ToNumber(statearg));

            return 
    0;
        }
        
        
    inline auto GetCoord(int state)
        {
            
    auto addr GetUnitFromLuaState(state1"Usage: GetCoord(\"unit\" or [\"guid\"])");
            if (
    addr)
            {
                
    PushNumber(state, *(float*)(addr 0x79C));
                
    PushNumber(state, *(float*)(addr 0x798));
                
    PushNumber(state, *(float*)(addr 0x7A0));
                return 
    3;
            }
            else
                
    PushNil(state);
            return 
    1;
        }
        
        
    inline auto RegisterLuaFunc(charfuncName, const int func_pointer
        { 
            return ((
    bool(__cdecl*)(char*, int))0x00817F90)(commandfunc_pointer); 
        }
        
        
    int LoadScriptFuncDetour()
        {
            
    RegisterLuaFunc("GetCoord", (int)GetCoord);
            
            
    // тут нужно вернуть оригинальную функцию
            
    return ((void(__cdecl*)())0x005120E0)(); 
        }
        
        
    void MainThreadControl()
        {
            
    // тут нужен детур функции по адресу 0x005120E0, реализацию думай сам
            // вариантов море , от хуков виртуальных функций ака VFTableHook до записи джампа на твой указатель в первые 5 байт
            //Detour(0x005120E0, (int)LoadScriptFuncDetour);
        
    }
        
        
    int __cdecl DllMain(voidinstDLLlong long reasonvoid*)
        {
            if (
    reason == DLL_PROCESS_ATTACH)
            {
                
    DisableThreadLibraryCalls(instDLL);
                
    CreateThread(NULL0, (LPTHREAD_START_ROUTINE)&MainThreadControlNULL0NULL);
            }
            return 
    1;
        } 
    А можно для овощей (это я про себя), в виде аддона или программы, чтобы поставить, и оно мне показывало, спасибо

  5. #4
    Заблокирован
    Регистрация
    09.06.2016
    Адрес
    Rivne, Ukraine
    Сообщений
    907
    Поблагодарил(а)
    244
    Получено благодарностей: 412 (сообщений: 237).
    Репутация: 412
    Цитата Сообщение от DreamlØlz Посмотреть сообщение
    PHP код:
        inline auto GetLocalPlayerGuid() 
        { 
            return ((
    uint64_t(__cdecl*)())(0x004D3790))(); 
        }

        
    inline auto GetLocalPlayer() 
        {
            
    uint64_t lpguid GetLocalPlayerGuid();
            return 
    lpguid ? ((int(__cdecl*)(long longint))0x004D4DB0)(lpguid0x0010) : 0;
        }

        
    inline auto IsString(int stateint n_param)                 
        { 
            return ((
    bool(__cdecl*)(intint))0x00817FD0)(staten_param); 
        }
        
        
    inline auto ToString(int stateint n_paramint zero 0)     
        { 
            return ((
    char*(__cdecl*)(intintint))0x0084E0E0)(staten_paramzero); 
        }
        
        
    inline auto IsNumber(int stateint n_param)    
        { 
            return ((
    bool(__cdecl*)(intint))0x0084DF20)(staten_param); 
        }
        
        
    inline auto DisplayError(int statecharerr, ...)
        { 
            return ((
    int(__cdecl*)(intchar*, ...))0x0084F280)(stateerr); 
        }
        
        
    inline auto GetObjectByGuidTypeCheck(uint64_t guidint typemask = -1
        { 
            return  
    guid ? ((int(__cdecl*)(uint64_tint))0x004D4DB0)(guidtypemask) : 0
        }
        
        
    inline auto StringToGuid(charguid_string)                
        { 
            return ((
    uint64_t(__cdecl*)(char*))0x0074D120)(guid_string); 
        }
        
        
    inline auto GetPtrFromUnitId(charunit_id)        
        { 
            return ((
    int(__cdecl*)(char*))0x0060C1F0)(unit_id); 
        }
        
        
    inline auto UnitIdOrGuidToAddr(LPCSTR pstr
        {
            if (*
    pstr == '0' && (pstr[1] == 'X' || pstr[1] == 'x'))
                return 
    GetObjectByGuidTypeCheck(StringToGuid(pstr));
            else
                return 
    GetPtrFromUnitId(pstr);
        }
        
        
    inline auto PushNumber(int statedouble number)
        { 
            return ((
    int(__cdecl*)(intdouble))0x0084E2A0)(statenumber); 
        }
        
        
    inline auto PushNil(int state)                    
        { 
            return ((
    int(__cdecl*)(int))0x0084E280)(state); 
        }
        
        
    inline auto GetUnitFromLuaState(int stateint argcharerr, ...) 
        {
            if (!
    GetLocalPlayer())
                return 
    0;

            if ((
    IsString(statearg))) 
            {
                
    charunit ToString(statearg0);
                if (!
    unit
                {
                    
    DisplayError(stateerr);
                    return 
    0;
                }
                return 
    UnitIdOrGuidToAddr(unit);
            }
            else if (
    IsNumber(statearg)) 
                return 
    GetObjectByGuidTypeCheck((UINT64)ToNumber(statearg));

            return 
    0;
        }
        
        
    inline auto GetCoord(int state)
        {
            
    auto addr GetUnitFromLuaState(state1"Usage: GetCoord(\"unit\" or [\"guid\"])");
            if (
    addr)
            {
                
    PushNumber(state, *(float*)(addr 0x79C));
                
    PushNumber(state, *(float*)(addr 0x798));
                
    PushNumber(state, *(float*)(addr 0x7A0));
                return 
    3;
            }
            else
                
    PushNil(state);
            return 
    1;
        }
        
        
    inline auto RegisterLuaFunc(charfuncName, const int func_pointer
        { 
            return ((
    bool(__cdecl*)(char*, int))0x00817F90)(commandfunc_pointer); 
        }
        
        
    int LoadScriptFuncDetour()
        {
            
    RegisterLuaFunc("GetCoord", (int)GetCoord);
            
            
    // тут нужно вернуть оригинальную функцию
            
    return ((void(__cdecl*)())0x005120E0)(); 
        }
        
        
    void MainThreadControl()
        {
            
    // тут нужен детур функции по адресу 0x005120E0, реализацию думай сам
            // вариантов море , от хуков виртуальных функций ака VFTableHook до записи джампа на твой указатель в первые 5 байт
            //Detour(0x005120E0, (int)LoadScriptFuncDetour);
        
    }
        
        
    int __cdecl DllMain(voidinstDLLlong long reasonvoid*)
        {
            if (
    reason == DLL_PROCESS_ATTACH)
            {
                
    DisableThreadLibraryCalls(instDLL);
                
    CreateThread(NULL0, (LPTHREAD_START_ROUTINE)&MainThreadControlNULL0NULL);
            }
            return 
    1;
        } 
    Готовая dll'ка, если кому то понадобится - https://dropmefiles.com/Xw2OW
    Изображения Изображения
    Последний раз редактировалось Sproody; 26.10.2018 в 13:47. Причина: перезалил

  6. #5
    Ветеран форума Аватар для Сан Саныч
    Регистрация
    05.06.2017
    Адрес
    logon x100
    Сообщений
    1,384
    Поблагодарил(а)
    711
    Получено благодарностей: 430 (сообщений: 225).
    Репутация: 2638
    TomTom не? там XY без Z


  7. #6
    Новичок Аватар для warks
    Регистрация
    12.07.2015
    Сообщений
    13
    Поблагодарил(а)
    17
    Получено благодарностей: 8 (сообщений: 2).
    Репутация: 8
    Цитата Сообщение от Sproody Посмотреть сообщение
    Готовая dll'ка, если кому то понадобится - https://dropmefiles.com/XnxvY
    а как вывести в чат такое?

  8. #7
    Заблокирован
    Регистрация
    09.06.2016
    Адрес
    Rivne, Ukraine
    Сообщений
    907
    Поблагодарил(а)
    244
    Получено благодарностей: 412 (сообщений: 237).
    Репутация: 412
    Цитата Сообщение от warks Посмотреть сообщение
    а как вывести в чат такое?
    /dump GetCoord("player"), только сначала нужно инжектнуть dll в процесс wow.exe

    - - - Updated - - -

    5HMhwVK.png

    Скрытый текст

    PHP код:
    local frame CreateFrame("frame",nil,UIParent)
    frame:SetBackdrop({bgFile "Interface/Tooltips/UI-Tooltip-Background"})
    frame:SetBackdropColor(0,0,0,.8)
    frame:SetSize(64,48)
    frame:SetPoint"CENTER"
    frame:SetMovable(true)
    frame:EnableMouse(true)
    frame:RegisterForDrag"LeftButton"
    frame:SetScript("OnDragStart"frame.StartMoving)
    frame:SetScript("OnDragStop"frame.StopMovingOrSizing)

    frame[1] = frame:CreateFontString()
    frame[1]:SetFont("Fonts\\FRIZQT__.TTF",10)
    frame[1]:SetPoint("LEFT",2,14)
    frame[1]:SetText"un"

    frame[2] = frame:CreateFontString()
    frame[2]:SetFont("Fonts\\FRIZQT__.TTF",10)
    frame[2]:SetPoint("LEFT",2,0)
    frame[2]:SetText"cno" 

    frame[3] = frame:CreateFontString()
    frame[3]:SetFont("Fonts\\FRIZQT__.TTF",10)
    frame[3]:SetPoint("LEFT",2,-14)
    frame[3]:SetText"wn"

    local function OnUpdate()
      if 
    not GetCoord then return end
      
    for k,v in next,{GetCoord"player"} do
        
    frame[k]:SetText(format("%s: %.2f",== and "|cffff0000X|r" or == and "|cff00ff00Y|r" or "|cff0000ffZ|r",v))
      
    end
    end

    frame
    :SetScript("OnUpdate",OnUpdate
    [свернуть]
    Последний раз редактировалось Sproody; 25.10.2018 в 00:43.

  9. #8
    Новичок Аватар для warks
    Регистрация
    12.07.2015
    Сообщений
    13
    Поблагодарил(а)
    17
    Получено благодарностей: 8 (сообщений: 2).
    Репутация: 8
    Цитата Сообщение от Sproody Посмотреть сообщение
    /dump GetCoord("player"), только сначала нужно инжектнуть dll в процесс wow.exe

    - - - Updated - - -

    5HMhwVK.png

    Скрытый текст

    PHP код:
    local frame CreateFrame("frame",nil,UIParent)
    frame:SetBackdrop({bgFile "Interface/Tooltips/UI-Tooltip-Background"})
    frame:SetBackdropColor(0,0,0,.8)
    frame:SetSize(64,48)
    frame:SetPoint"CENTER"
    frame:SetMovable(true)
    frame:EnableMouse(true)
    frame:RegisterForDrag"LeftButton"
    frame:SetScript("OnDragStart"frame.StartMoving)
    frame:SetScript("OnDragStop"frame.StopMovingOrSizing)

    frame[1] = frame:CreateFontString()
    frame[1]:SetFont("Fonts\\FRIZQT__.TTF",10)
    frame[1]:SetPoint("LEFT",2,14)
    frame[1]:SetText"un"

    frame[2] = frame:CreateFontString()
    frame[2]:SetFont("Fonts\\FRIZQT__.TTF",10)
    frame[2]:SetPoint("LEFT",2,0)
    frame[2]:SetText"cno" 

    frame[3] = frame:CreateFontString()
    frame[3]:SetFont("Fonts\\FRIZQT__.TTF",10)
    frame[3]:SetPoint("LEFT",2,-14)
    frame[3]:SetText"wn"

    local function OnUpdate()
      if 
    not GetCoord then return end
      
    for k,v in next,{GetCoord"player"} do
        
    frame[k]:SetText(format("%s: %.2f",== and "|cffff0000X|r" or == and "|cff00ff00Y|r" or "|cff0000ffZ|r",v))
      
    end
    end

    frame
    :SetScript("OnUpdate",OnUpdate
    [свернуть]
    спасибо

  10. #9
    Заблокирован
    Регистрация
    14.12.2018
    Адрес
    Кровать твоей мамы
    Сообщений
    244
    Поблагодарил(а)
    44
    Получено благодарностей: 126 (сообщений: 93).
    Репутация: 126
    Получаем расстояние между 2 юнитами с нее_ической точностью
    PHP код:
    local function GetRange(unit1,unit2)
        if 
    not (UnitExists(unit1) and UnitExists(unit2)) then return end
        local x1
    ,y1,z1 GetXYZ(unit1)
        
    local x2,y2,z2 GetXYZ(unit2)
        return 
    sqrt((x2-x1)^2+(y2-y1)^2+(z2-z1)^2)
    end 
    Последний раз редактировалось Толя фитоняшка; 25.06.2019 в 18:13.

  11. #10
    Активист Аватар для zick
    Регистрация
    28.07.2012
    Сообщений
    86
    Поблагодарил(а)
    12
    Получено благодарностей: 9 (сообщений: 6).
    Репутация: 9
    link is broken :(

    any update?

Похожие темы

  1. Коорви
    от Carlic1 в разделе Нарушители
    Ответов: 1
    Последнее сообщение: 05.09.2017, 19:37

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •