#1 14-07-2021 16:47

Remca12
Registered: 30-06-2019
Posts: 26

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

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

Offline

#2 15-07-2021 01:55

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

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

Board footer

Powered by FluxBB