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

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

@Scarabay, увы, нет =( К слову, для ТЧ/ЧН это были одни из самых муторных правок.

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

Правка добавляющая "Коллбек на выделение предмета в инвентаре".
Используется точно так-же как все остальные коллбеки.

Имеет номер 135, передаёт объект.

Автор kstn.

~~~~~~~~~~~~~~~~~~~~~~
corrections_list.txt
~~~~~~~~~~~~~~~~~~~~~~

0x103E1B28 5   ; коллбэк актора на выделение предмета в инвентаре


~~~~~~~~~~~~~~~~~~~~~~
xrgame_stubs.asm
~~~~~~~~~~~~~~~~~~~~~~

org 103E1B28h - shift   ; 5 bytes
   jmp      CUIItemInfo__InitItem_EXT_CHUNK

org 103E1B2Dh - shift
CUIItemInfo__InitItem_EXT_CHUNK_OUT:


~~~~~~~~~~~~~~~~~~~~~~
actor_inventory_callbacks.asm
~~~~~~~~~~~~~~~~~~~~~~

CUIItemInfo__InitItem_EXT_CHUNK proc
   mov      edi, [ebx+0D4h]               ; CGameObject *this<edi>
   call    CGameObject__lua_game_object
   push    eax
   push   135
   mov     ecx, g_Actor
   call    CGameObject__callback
   push   eax
   call    script_use_callback

;   Вырезанное:
   mov     eax, [esi+70h]
   test    eax, eax

;   Возврат:
   jmp      CUIItemInfo__InitItem_EXT_CHUNK_OUT
CUIItemInfo__InitItem_EXT_CHUNK endp

 

 



Правка добавляющая в user.ltx параметр "mouse_wheel_slot_changing".
Позволяет отключать-включать переключение слотов роликом мыши.
Если параметра в файле нет - переключение слотов роликом будет включено, если параметр есть - установится прописанное в нём значение.
Отключение-включение через консольную команду:
 отключить - get_console():execute("mouse_wheel_slot_changing 0")
 включить - get_console():execute("mouse_wheel_slot_changing 1")
Текущий статус, как у всех команд, сохраняетс­я в user.ltx.

Плюс: исправлено соответствие направления переключения слотов и направления вращения ролика.

Плюс: в переключаемые слоты включён слот "болта".

Автор kstn.

~~~~~~~~~~­~~~~~~~~~~­~~
mydll.asm
~~~~~~~~~~­~~~~~~~~~~­~~
include mouse_wheel_slot_fix.asm

~~~~~~~~~~­~~~~~~~~~~­~~
corrections_list.txt
~~~~~~~~~~­~~~~~~~~~~­~~
; Перекл. на болт + откл/вкл колеса мышки для переключен­ия м/у слотами
0x101DEEA0 7 ; jmp CActor__OnNextWeaponSlot
0x101DEF40 7 ; jmp CActor__OnPrevWeaponSlot
; Инверсия колеса мышки для смены оружия
0x101DE3F2 6 ; CActor__IR_OnMouseWheel
0x101DE400 6 ; CActor__IR_OnMouseWheel

~~~~~~~~~~­~~~~~~~~~~­~~
xrgame_stubs.asm
~~~~~~~~~~­~~~~~~~~~~­~~
;------------------------------------------------------
; Переключен­ие на болт вращением колеса мышки
; Отключение­/включение­ колеса мышки для переключен­ия между слотами:
; 0 - нож,
; 1 - пистолет,
; 2 - автомат,
; 3 - граната,
; 4 - бинокль,
; 5 - болт
;------------------------------------------------------         
org 101DEEA0h - shift         ; 7 bytes
        jmp                  CActor__OnNextWeaponSlot
        nop
        nop
        
org 101DEF40h - shift         ; 7 bytes
        jmp                  CActor__OnPrevWeaponSlot
        nop
        nop
        
;------------------------------------------------------
; Инверсия колеса мышки для смены оружия
;------------------------------------------------------
; CActor__IR_OnMouseWheel
org 101DE3F2h - shift
        mov      eax, [edx+2ACh]
; CActor__IR_OnMouseWheel
org 101DE400h - shift
        mov      eax, [edx+2A8h]
        
        
~~~~~~~~~~­~~~~~~~~~~­~~
console_commands_reg_fix.asm
~~~~~~~~~~­~~~~~~~~~~­~~
;REGISTER_CC_INT2 g_mt_config, "mt_cnf", 0, 0FFFFFFFFh <- ОРИЕНТИР
REGISTER_CC_FLAG g_mouse_wheel_sc, 1h, "mouse_wheel_slot_changing"
;g_ammo_on_belt dd 0 <- ОРИЕНТИР
g_mouse_wheel_sc dd 1

и файл mouse_wheel_slot_fix.asm

; unsigned int SlotsToCheck[7]
SlotsToCheck    dd 0, 1, 2, 3, 4, 5, 0Ah

CActor__OnNextWeaponSlot proc
	push    esi
	cmp		g_mouse_wheel_sc, 0
	jz		loc_101DEF31
	mov     esi, [ecx+298h]
	mov     edx, [esi+48h]
	cmp     edx, 0FFFFFFFFh
	jnz     short loc_101DEEB9
	mov     edx, [esi+50h]
	cmp     edx, 0FFFFFFFFh
	jnz     short loc_101DEEB9
	xor     edx, edx

loc_101DEEB9:
	xor     eax, eax
	jmp     short loc_101DEEC0

loc_101DEEC0:
	cmp     SlotsToCheck[eax*4], edx
	jz      short loc_101DEED3
	add     eax, 1
	cmp     eax, 7
	jb      short loc_101DEEC0
	pop     esi
	retn

loc_101DEED3:
	cmp     eax, 7
	jnb     short loc_101DEF31
	add     eax, 1
	cmp     eax, 7
	jnb     short loc_101DEF31
	mov     edx, [esi+38h]
	jmp     short loc_101DEEF0

loc_101DEEF0:
	mov     esi, SlotsToCheck[eax*4]
	shl     esi, 4
	cmp     dword ptr [esi+edx+4], 0
	jnz     short loc_101DEF0B
	add     eax, 1
	cmp     eax, 7
	jb      short loc_101DEEF0
	pop     esi
	retn

loc_101DEF0B:
	add     ecx, 238h
	cmp     SlotsToCheck[eax*4], 0Ah
	jnz     short loc_101DEF26
	mov     eax, [ecx]
	mov     edx, [eax+20h]
	push    1Eh
	call    edx
	pop     esi
	retn

loc_101DEF26:
	mov     edx, [ecx]
	add     eax, 18h
	push    eax
	mov     eax, [edx+20h]
	call    eax

loc_101DEF31:
	pop     esi
	retn
CActor__OnNextWeaponSlot endp


CActor__OnPrevWeaponSlot proc
	push    esi
	cmp		g_mouse_wheel_sc, 0
	jz		loc_101DEFBE
	mov     esi, [ecx+298h]
	mov     edx, [esi+48h]
	cmp     edx, 0FFFFFFFFh
	jnz     short loc_101DEF59
	mov     edx, [esi+50h]
	cmp     edx, 0FFFFFFFFh
	jnz     short loc_101DEF59
	xor     edx, edx

loc_101DEF59:
	xor     eax, eax
	jmp     short loc_101DEF60

loc_101DEF60:
	cmp     SlotsToCheck[eax*4], edx
	jz      short loc_101DEF73
	add     eax, 1
	cmp     eax, 7
	jb      short loc_101DEF60
	pop     esi
	retn

loc_101DEF73:
	cmp     eax, 7
	jnb     short loc_101DEFBE
	add     eax, 0FFFFFFFFh
	js      short loc_101DEFBE
	mov     edx, [esi+38h]

loc_101DEF80:
	mov     esi, SlotsToCheck[eax*4]
	shl     esi, 4
	cmp     dword ptr [esi+edx+4], 0
	jnz     short loc_101DEF98
	sub     eax, 1
	jns     short loc_101DEF80
	pop     esi
	retn

loc_101DEF98:
	add     ecx, 238h
	cmp     SlotsToCheck[eax*4], 0Ah
	jnz     short loc_101DEFB3
	mov     eax, [ecx]
	mov     edx, [eax+20h]
	push    1Eh
	call    edx
	pop     esi
	retn

loc_101DEFB3:
	mov     edx, [ecx]
	add     eax, 18h
	push    eax
	mov     eax, [edx+20h]
	call    eax

loc_101DEFBE:
	pop     esi
	retn
CActor__OnPrevWeaponSlot endp

 

 

 

=====================================

 

 

И ещё, очень большая просьба: "Включите, пожалуйста, комментарии в проекте", конечно, если это не противоречит какой-нибудь стратегии.

Изменено пользователем 7.9
  • Нравится 2

всё легко

Ссылка на комментарий

Используется точно так-же как все остальные коллбеки.

Ткните, плиз, как это. masm32 поставил.

Изменено пользователем Earth2Space
Ссылка на комментарий

Включил в проекте настройку "Allow non-members to review code". Это то, что надо?

По поводу правок. А нет ли желания у уважаемого kstn самому добавить эти правки? Включить в проект не проблема.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

Уважаемые члены проекта X-Ray extensions, в связи с тем, что я опять занялся моддингом ТЧ, назрел такой вопрос:

"Бешеную" траву в ТЧ можно ли как-то победить в рамках вашего проекта? Для меня лично это практически последний пункт, который мешает графической  составляющей ТЧ стать сбалансированной.

 

А можно немного трактований на тему "бешеной травы"? О чём конкретно идёт речь?

ColR_iT

Изменено пользователем ColR_iT

---------------------------------

www.amk-zone.de

Ссылка на комментарий

Можно видео?

Заснял клип, вечером залью.

 

 

Вот ролик:

http://www.youtube.com/watch?v=jUxT8Te7HJM

Амплитуда и скорость качания при "сильном ветре" - вынос мозга.

Кстати, если я правильно помню, началась эта байда с травой в том же патче, где разработчики сфэйлили с её тенями.

Изменено пользователем ColR_iT

---------------------------------

www.amk-zone.de

Ссылка на комментарий

Доброго времени суток, уважаемые члены проекта X-Ray extensions.

Возникла следующая проблема - насколько я понял, уважаемый KD ввёл читание конфигов погоды из екзешника, для тонкой настройки лучей солнца.

Пытался патчить "правильный" екзешник ww-версии и 58-й и 59-й ревизией. Но они на выходе, при старте игры, требуют ogse.dll :(

Failed to load library 'extensions\ogse.dll'
 
FATAL ERROR
 
[error]Expression    : assertion failed
[error]Function      : 
[error]File          : 
[error]Line          : 0
[error]Description   : extensions\ogse.dll
 

stack trace:

Итак, вопрос - какой ревизией надо патчиться, чтобы получить максимальные плюшки, но без ogse.dll ?

---------------------------------

www.amk-zone.de

Ссылка на комментарий

@Earth2Space, "это" и есть проект x-ray extensions.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

Я про бинарники. В том пакете библиотеки рендеров из этого проекта. А саншафты - это шейдеры, к бинарным фиксам это не относится.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий
А саншафты - это шейдеры, к бинарным фиксам это не относится.

Да, но разве за их включение не движок отвечает?

Коллизию трупов я тоже тут не нашел.

Изменено пользователем Earth2Space
Ссылка на комментарий

Саншафты в основном - это шейдеры, поддержка в бинарниках минимальная. О подробностях лучше спрашивать KD87, рендер - в основном его вотчина.

 

И при чем здесь коллизия трупов? Или имелось в виду всё, что упоминалось в той теме, а не только в посте по ссылке? А кто автор тех фиксов? По-моему, все эти люди имеют доступ к этому проекту. Почему бы их и не попросить включить эти правки сюда?

  • Нравится 1
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий
Почему бы их и не попросить включить эти правки сюда?

Это было бы настолько прекрасно, что я даже мечтать не могу об этом. Но если авторы найдут для этого время и сделают, то я ( да и не только) буду все себя от счастья и признательности им!

Изменено пользователем Earth2Space
Ссылка на комментарий

Ну так надо найти и попросить.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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