#1 14-07-2021 16:47

Remca12
Registered: 30-06-2019
Posts: 32

Вопрос про фишки которые выдаются при посадки в машину.

Привет, уточняю сразу что вопрос касается игры гта вайс сити. Меня интересуют оффсеты, которые:
1) игроку даётся несколько единиц хп если он сел в машину скорой помощи
2) игроку выдается несколько патронов с дробовиком если он сел в полицейскую машину
и как эти фишки от машин возможно отключить ? Нужно какой-то оффсет прочитать/записать через клео ?

Offline

#2 15-07-2021 01:55

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Вопрос про фишки которые выдаются при посадки в машину.

Это происходит в функции

.text:005B89F0 CVehicle::SetDriver((CPed *)) proc near

вот например добавление 20 ХП

.text:005B8AC2 call    GetPlayerPed
.text:005B8AC7 mov     dl, ds:_players.maxHealth
.text:005B8ACD fld     flt_69C69C

можно записать 0 по этому адресу

.data:0069C69C flt_69C69C dd 20.0

тогда здоровье не будет увеличиваться

с оружием чуть сложнее

.text:005B8C0D mov     ecx, ebp                        ; CPed *
.text:005B8C0F push    1                               ; flag
.text:005B8C11 push    3                               ; weaponIndex
.text:005B8C13 call    CPed__HasWeapon
.text:005B8C18 test    al, al
.text:005B8C1A jz      loc_5B8CD0
.text:005B8C20
.text:005B8C20 loc_5B8C20:                             ; CODE XREF: CVehicle::SetDriver((CPed *))+21Bj
.text:005B8C20 push    1                               ; flags
.text:005B8C22 push    261                             ; modelIndex
.text:005B8C27 call    RequestStream

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

для этого должно быть достаточно записать 0x85 по адресу 005B8C1B

write_memory 0x005B8C1B 1 0x85 1


ps. в игре не проверял

Offline

#3 07-12-2021 05:41

Remca12
Registered: 30-06-2019
Posts: 32

Re: Вопрос про фишки которые выдаются при посадки в машину.

wall
Здравствуйте, тема еще актуальна. Я повторял свою просьбу не только здесь, получал ответ. Но видимо оффсеты не те. Я использую ехе-шник версии 1.01.png?width=457&height=535

https://media.discordapp.net/attachment … height=536

Код исходный вот такой как на картинке. Главная проблема в том что не отключаются бонусы от фбр (броня), и от полицейской машины (дробовик). От полицейской машины пробовали оффсеты несколько раз - пока пришлось закомментировать.
Зато 100% работает отключение бонуса от скорой помощи. good

unknown.png?width=714&height=536

Код обновился, теперь работает отключение точно бонуса хп от скорой, и бонуса дробашом от коповозки.

Вот пожалуйста текущий исходный код. Возможно что оффсетом ошиблись, уж не знаю.

{$CLEO .cs}
0000:
03A4: script_name 'Mvlght'

:name1
wait 0
05E5: 0@ = game_version 
if 
  0@ == 0 // integer values 
else_jump @name2 

0A8C: write_memory 0x69C69C size 4 value 0.0 virtual_protect 1
0A8C: write_memory 0x094AE6C size 2 value 0 virtual_protect 1
0A8C: write_memory 0x5B8974 size 11 value 0x90 virtual_protect 1
0A8C: write_memory 0x5B8987 size 9 value 0x90 virtual_protect 1
0A8C: write_memory 0x5B89C8 size 11 value 0x90 virtual_protect 1
//0A8C: write_memory 0x05B8C1B size 1 value 0x85 virtual_protect 1

:name2
0A93: terminate_this_custom_script

Но от фбр бонус пока не отключается, как давали броню за посадку в фбр, так и дают.

Тема закрыта, так как решение удалось недавно найти.

Last edited by Remca12 (13-12-2021 10:11)

Offline

Board footer

Powered by FluxBB