Вернуться   CoderX :: Forums > Основные форумы > Полезности
Войти через OpenID

Полезности Исключительно для полезных тем из других разделов.
Темы тут не создаются!
Темы сюда перемещаются из других разделов, и на их старых местах остаются постоянные перенаправления.

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 02.02.2011, 09:18   #211
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

обьект это грубо говоря указатель на структуру. Первый ее член указатель на вмт, остальные это переменные экземпляра обьекта всякие.
Вмт это массив указателей на функции (методы) обьекта
__________________
читернуть бы ништяг
mira вне форума   Ответить с цитированием
За это сообщение mira нажился спасибкой от:
Старый 02.02.2011, 15:08   #212
Пользователь
 
Регистрация: 19.07.2010
Сообщений: 45
Сказал Спасибо: 10
Имеет 23 спасибок в 12 сообщенях
Guzh пока неопределено
По умолчанию

Опять вопросик по радару назрел. При работе со списком игроков, заметил, что в списке иногда остаются те,кого рядом нету. В чем может быть проблема? Удаляю из списка когда приходит DeleteObject. Сервер Руофф.
Guzh вне форума   Ответить с цитированием
Старый 02.02.2011, 15:55   #213
Рыцарь
 
Аватар для Morfik
 
Регистрация: 13.10.2009
Сообщений: 665
Сказал Спасибо: 38
Имеет 172 спасибок в 108 сообщенях
Morfik пока неопределено
По умолчанию

Цитата:
Сообщение от Guzh Посмотреть сообщение
Опять вопросик по радару назрел. При работе со списком игроков, заметил, что в списке иногда остаются те,кого рядом нету. В чем может быть проблема? Удаляю из списка когда приходит DeleteObject. Сервер Руофф.
Видимо иногда не приходит DeleteObject, оч давно когда еще юзал l2Control и у него было такое что на радаре оставались те кого рядом нету.
Morfik вне форума   Ответить с цитированием
Старый 02.02.2011, 18:20   #214
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Цитата:
Сообщение от Morfik Посмотреть сообщение
Видимо иногда не приходит DeleteObject, оч давно когда еще юзал l2Control и у него было такое что на радаре оставались те кого рядом нету.
истину глаголиш) нада предусматривать механизм очистки "мусора" тока я пока не воткнул как это сделать более прямо
__________________
читернуть бы ништяг
mira вне форума   Ответить с цитированием
Старый 02.02.2011, 21:57   #215
Новичок
 
Регистрация: 11.05.2010
Сообщений: 19
Сказал Спасибо: 0
Имеет 10 спасибок в 6 сообщенях
Эдвадко пока неопределено
По умолчанию

Да уж... Насчет удаления мусорных мобов и игроков я тоже не понимаю пока принципа. DeleteObject действительно приходит далеко не всегда.
Пробовал удалять по превышении расстояния от игрока, но не работает это. Странно, что когда отбегаешь от моба, он исчезает то на расстоянии
около 2000 единиц, а то и с 4000 виден.
Может вся карта игры поделена на квадраты
1 2 3
4 5 6
7 8 9
и когда скажем игрок в квадрате 1, а моб в квадратах 2 4 5, то мобы видны.
А когда моб в 3 6 7 8 9, то клиент удаляет таких мобов

С DeleteObject вообще смешно - При дропе сначала идет
DeleteObject а потом игрок этот дроп благополучно поднимает.
Пришлось при DeleteObject не удалять обьект, а помечать как невидимый
StopMove 49A136A8(Ботан) 156517,-48260,-3088
DeleteObject 4075C77D(Адена 2183)
GetItem 49A136A8(Ботан) 4075C77D(Адена 2183) 156517,-48260,-3088
InventoryUpdate

Последний раз редактировалось Эдвадко, 02.02.2011 в 22:40.
Эдвадко вне форума   Ответить с цитированием
За это сообщение Эдвадко нажился спасибкой от:
Старый 06.02.2011, 19:46   #216
Местный
 
Аватар для Aries
 
Регистрация: 19.01.2011
Сообщений: 241
Сказал Спасибо: 7
Имеет 26 спасибок в 22 сообщенях
Aries пока неопределено
По умолчанию

Наконец появилось немного свободного времени))
И сразу же какие-то косяки...
Пытаюсь вызвать GetNextCreature(float,int), получаю адрес ?GetNextCreature@UNetworkHandler@@UAEPAUUser@@MH@Z в engine.dll, но при вызове GetNextCreature клиент закрывается с ошибкой... Вроде простейшая экспортируемая функция, а понять не могу в чем прикол...
Думаю, мб с параметрами какие-то косяки?
Никто не подскажет в чем проблема или хотя бы в какую сторону пытаться копать?
Aries вне форума   Ответить с цитированием
Старый 06.02.2011, 20:11   #217
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Aries, эта функция метод класса, наверняка при ее вызове необходемо в регистр ECX (вроде как) положить указатель на экземпляр объекта UNetworkHandler
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Старый 06.02.2011, 23:53   #218
Местный
 
Аватар для Aries
 
Регистрация: 19.01.2011
Сообщений: 241
Сказал Спасибо: 7
Имеет 26 спасибок в 22 сообщенях
Aries пока неопределено
По умолчанию

Хм, решение конечно нашлось.... Но не могу понять одного...
Функция заработала в таком варианте(правда пока не проверил корректность,но как минимум клиент не вылетает) GetNextCreature(float,DWORD,DWORD,DWORD)
1.Параметр - радиус
2.что-то что лежит в engine со смещением 0x776574
3. 0
4.что-то что лежит в engine со смещением 0x776578

Теперь главный вопрос понять, что лежит по этим адресам...


ЗЫ корректность проверил, все работает верно...

Последний раз редактировалось Aries, 06.02.2011 в 23:58.
Aries вне форума   Ответить с цитированием
Старый 07.02.2011, 00:40   #219
Новичок
 
Регистрация: 11.05.2010
Сообщений: 19
Сказал Спасибо: 0
Имеет 10 спасибок в 6 сообщенях
Эдвадко пока неопределено
По умолчанию

Ну куды ? Куды здесь можно засунуть четыре аргумента ?
Ну если только функция не обьявлена как fastcall- 0x776578 попадает в есх, 0 в ebx, 0x776574 - это указатель на обьект Creature,потом радиус. И на выходе указатель на следущий обьект Creature. Но тогда порядок аргументов должен быть обратный.

Код:
; Exported entry 5758. ?GetNextCreature@UNetworkHandler@@UAEPAUUser@@MH@Z

; =============== S U B R O U T I N E =======================================


; int __stdcall UNetworkHandler__GetNextCreature(float, int)
                public ?GetNextCreature@UNetworkHandler@@UAEPAUUser@@MH@Z
?GetNextCreature@UNetworkHandler@@UAEPAUUser@@MH@Z proc near
                                        ; DATA XREF: ___:2051D4D8o
                                        ; qpjwqywc:off_218DF084o

var_8           = dword ptr -8
arg_0           = dword ptr  4
arg_4           = dword ptr  8

                mov     edx, [esp+arg_4]
                fld     [esp+arg_0]
                mov     eax, [ecx]
                mov     eax, [eax+690h]
                push    edx
                push    ecx
                fstp    [esp+8+var_8]
                push    6
                call    eax
                test    eax, eax
                jz      short loc_203D458E
                mov     ecx, [eax+4]
                test    ecx, ecx
                jz      short loc_203D458E
                cmp     dword ptr [eax], 1
                jnz     short loc_203D458E
                mov     eax, ecx
                retn    8
; ---------------------------------------------------------------------------

loc_203D458E:                           ; CODE XREF: UNetworkHandler::GetNextCreature(float,int)+1Bj
                                        ; UNetworkHandler::GetNextCreature(float,int)+22j
                                        ; UNetworkHandler::GetNextCreature(float,int)+27j
                xor     eax, eax
                retn    8
?GetNextCreature@UNetworkHandler@@UAEPAUUser@@MH@Z endp

Последний раз редактировалось Эдвадко, 07.02.2011 в 00:58.
Эдвадко вне форума   Ответить с цитированием
Старый 07.02.2011, 01:20   #220
Местный
 
Аватар для Aries
 
Регистрация: 19.01.2011
Сообщений: 241
Сказал Спасибо: 7
Имеет 26 спасибок в 22 сообщенях
Aries пока неопределено
По умолчанию

Да, все именно так...
Тогда, как я понимаю 0x776578 - указатель на объект UNetworkHandler?

Хм, т.к. со всем этим делом я еще довольно мало разбираюсь, то на будущее не подскажете как можно отследить этот объект? (на случай смены хроник и т.п.)
Aries вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Полезности



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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 18:26.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!