Перейти к контенту

X-Ray extensions


Malandrinus

Рекомендуемые сообщения

0x104428BB 8 CUIPdaWnd__SetActiveSubdialog_ext ; посылка инфопоршня при смене закладок в ПДА
Кто автор этой правки? Подписывались бы в asm файлах...

Поделиться этим сообщением


Ссылка на сообщение

Спс

Где kolmogor2000'а искать? На АМК вроде его нет(на заходил давно)...

  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение

== Функции получения стандартных окон ==

local wnd = level.get_pda_wnd() -- PDA

local wnd = level.get_talk_wnd() -- окно диалога

local wnd = level.get_car_body_wnd() -- инвентарь трупа или ящика

local wnd = level.get_trade_wnd() -- окно торговли

Кто нибудь юзал такое?

Какой класс получаем,, наследника CUIDialogWnd?

Что можно с этим сделать? Такие вещи работать будут?

 

local pda_wnd = level.get_pda_wnd()

pda_wnd.button_close = xml:Init3tButton ("button",pda_wnd.dialog)

pda_wnd:Register (pda_wnd.button_close, "btn_cls")

 

 

Поделиться этим сообщением


Ссылка на сообщение

,

Спасибо за быстрый ответ ;)
Значит это мне подходит, осталось перенести на ЗП...
Но самое интересное для меня, функция register_ns_dialog_void. Почему пришлось писать свою? Почему не подходит "прототип" от какой нить "Object_by_id" ?

 

,

Мб слот ножа в инвентаре? Попробуй добавить по аналогии с другими слотами.

Поделиться этим сообщением


Ссылка на сообщение

,

register_ns_dialog_void proc


var_8 = dword ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h

push ebp
mov ebp, esp
push ecx
push ecx
mov ecx, ds:Memory
push esi
push 14h ; _DWORD
call ds:xrMemory__mem_alloc
mov esi, eax
test esi, esi
jz short loc_101AFC1F
mov ecx, esi
call ds:??0registration@detail@luabind@@QAE@XZ ; luabind::detail::registration::registration(void)
mov eax, [ebp+arg_4]
mov [esi+8], eax
mov eax, [ebp+arg_8]
mov dword ptr [esi], offset off_10481F40
mov [esi+0Ch], eax
jmp short loc_101AFC21
; ---------------------------------------------------------------------------

loc_101AFC1F: ; CODE XREF: sub_101AFBE9+18j
xor esi, esi

loc_101AFC21: ; CODE XREF: sub_101AFBE9+34j
and [ebp+var_8], 0
push ecx
mov eax, esp
lea ecx, [ebp+var_4]
mov [eax], esi
call ds:??0scope@luabind@@QAE@V?$auto_ptr@Uregistration@detail@luabind@@@std@@@Z ; luabind::scope::scope(std::auto_ptr)
mov ecx, [ebp+arg_0]
push eax
call ds:??0scope@luabind@@QAE@ABU01@@Z ; luabind::scope::scope(scope::scope const &)
lea ecx, [ebp+var_4]
call ds:??1scope@luabind@@QAE@XZ ; luabind::scope::~scope(void)
mov ecx, [ebp+var_8]
test ecx, ecx
jz short loc_101AFC53
mov eax, [ecx]
push 1
call dword ptr [eax]

loc_101AFC53: ; CODE XREF: sub_101AFBE9+62j
mov eax, [ebp+arg_0]
pop esi
leave
retn
register_ns_dialog_void endp

 

Если эта функция "из движка", то зачем её копировать?
Вроде обычно юзают "указатель", типа такого:

org 103CA530h - shift
register_ns_dialog_void:

Поделиться этим сообщением


Ссылка на сообщение

Появилось немного времени, решил поковырять. Наковырял функции для получения указателей на окна. Осталось доделать экспорт...
Чем дальше, тем не понятнее :(

mov     dword ptr [esi], offset off_10481F40
mov     [esi+0Ch], eax
org 102ACF30h - shift
game_cl_GameState__StartStopMenu:
; заглушка для регистрация функции, возвращающей диалог
org 10481F40h - shift
off_10481F40 dd ?

???

 

По сравнивал этот прототип с прототипом от get_hud. Вроде одинаковые вещи происходят, только написаны по разному.
Вещи то вроде одинаковые, но как я понял, где то лежит "описание класса", экземпляр которого мы получаем. Я прав? Где лежит?)))
 

  • Согласен 1

Поделиться этим сообщением


Ссылка на сообщение
Не удается найти D:\XRE\3312_shoc_10006\mydll.obj

Не удается найти D:\XRE\3312_shoc_10006\mydll.exp

Не удается найти D:\XRE\3312_shoc_10006\mydll.lib
Изменено пользователем -StalkMen-

Поделиться этим сообщением


Ссылка на сообщение

 

 

что бы найти место в файле xrGame.dll

 

 

if (pSettings->line_exist(section, "k_air_resistance"))

Надобно это найти? Тогда качать IDA и дальше поиск k_air_resistance и просмотр ссылок на эту строку...

Вот только зачем это, если у нас есть нормальные исходники :)

 

 

найти адрес константы в этой функции, и изменить её

jmp поставить, не?))

 

 

cmp eax, 01h

бывает ещё хитрее,

,,
mov eXX,01
cmp eax,eXX

Вот ещё что, смещения текущего Гейм ID для чит енжина :ph34r:

 

 

    <CheatEntry>
      <ID>1</ID>
      <Description>"GameType1"</Description>
      <Color>80000008</Color>
      <VariableType>4 Bytes</VariableType>
      <Address>"xrEngine.exe"+000931A8</Address>
      <Offsets>
        <Offset>414</Offset>
        <Offset>4</Offset>
      </Offsets>
    </CheatEntry>
    <CheatEntry>
      <ID>34</ID>
      <Description>"GameType2"</Description>
      <Color>80000008</Color>
      <VariableType>4 Bytes</VariableType>
      <Address>[[["xrGame.dll"+512BDC]]+486F8]+10</Address>
    </CheatEntry>

 

 

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...