#4576 27-07-2014 18:08

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

Re: Один вопрос

По поводу адресов памяти и откуда их брать можно начать с этой темы
http://sannybuilder.com/forums/viewtopic.php?id=32

Offline

#4577 29-07-2014 08:29

Dimoman
Registered: 01-07-2014
Posts: 15

Re: Один вопрос

Подскажите как написать проверку  "Если игрок садится в машину, то..." (именно садится, а не когда уже сидит).

Offline

#4578 29-07-2014 09:54

kenking
From: Казахстан
Registered: 28-06-2010
Posts: 253

Re: Один вопрос

Dimoman wrote:

Подскажите как написать проверку  "Если игрок садится в машину, то..." (именно садится, а не когда уже сидит).

Можно проверить, что игрок пешком (not Actor.Driving($PLAYER_ACTOR)) и нажатие клавиши входа в авто (00E1: key_pressed 0 15) ну и наличие при этом возле игрока транспорта (0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to 0@ closest_ped_to 1@ //  0@ > 0)

Last edited by kenking (29-07-2014 09:56)

Offline

#4579 29-07-2014 11:48

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 558
Website

Re: Один вопрос

09DE:   actor $PLAYER_ACTOR entering_car

I know everything and nothing...

Offline

#4580 29-07-2014 11:58

Dimoman
Registered: 01-07-2014
Posts: 15

Re: Один вопрос

kenking wrote:
Dimoman wrote:

Подскажите как написать проверку  "Если игрок садится в машину, то..." (именно садится, а не когда уже сидит).

Можно проверить, что игрок пешком (not Actor.Driving($PLAYER_ACTOR)) и нажатие клавиши входа в авто (00E1: key_pressed 0 15) ну и наличие при этом возле игрока транспорта (0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to 0@ closest_ped_to 1@ //  0@ > 0)

Сложно и не работает.

mfisto wrote:
09DE:   actor $PLAYER_ACTOR entering_car

Спасибо, щас попробуем.

Работает)

Last edited by Dimoman (29-07-2014 12:03)

Offline

#4581 09-08-2014 21:51

XEPOMAHT007
Registered: 05-06-2013
Posts: 21

Re: Один вопрос

Кто-нибудь в курсе, что в main.scm GTA3 отвечает за случайное выпадывание денег из погибших уличных пешеходов?

Может быть какая-нибудь переменная или опткод? Полдня ковырялся, так и ничего не нашёл. Хотя если поставить оригинальный main.scm, то наличность у пешеходов в игре всё же появляется. А с отредактированным через SannyBuilder исчезает... Мистика какая-то...  crazy

Last edited by XEPOMAHT007 (09-08-2014 21:54)

Offline

#4582 10-08-2014 08:14

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 558
Website

Re: Один вопрос

деньги у педов хранятся в структуре, в main.scm это не прописывается.


I know everything and nothing...

Offline

#4583 10-08-2014 13:05

Hetzer
Registered: 22-07-2013
Posts: 3

Re: Один вопрос

Подскажите, сеть ли условие, которе проверяет количество денег у персонажа, в том числе и отрицательное? Хочу сделать скрипт, который бы насылал коллекторскую фирму, если игрок задолжал банку

Offline

#4584 10-08-2014 15:57

Voron295
From: Каушаны
Registered: 06-12-2010
Posts: 425
Website

Re: Один вопрос

Hetzer wrote:

Подскажите, сеть ли условие, которе проверяет количество денег у персонажа, в том числе и отрицательное? Хочу сделать скрипт, который бы насылал коллекторскую фирму, если игрок задолжал банку

В опкодник не судьба заглянуть?

010B: 1@ = player $PLAYER_CHAR money

Добро всегда побеждает зло. Кто победил, тот и добрый!
userbar.png

Offline

#4585 16-08-2014 17:45

SHooZ
From: Львів
Registered: 05-06-2013
Posts: 51
Website

Re: Один вопрос

Dimoman wrote:

Подскажите плиз как отключить отображение иконок оружия в HUD, а не весь HUD?

Можно занопить функцию, которая рисует эти иконки. Ёё адресс - 0x58D7D0.

Offline

#4586 01-09-2014 08:58

Dimoman
Registered: 01-07-2014
Posts: 15

Re: Один вопрос

SHooZ wrote:
Dimoman wrote:

Подскажите плиз как отключить отображение иконок оружия в HUD, а не весь HUD?

Можно занопить функцию, которая рисует эти иконки. Ёё адресс - 0x58D7D0.

Спасибо.  Только что значит "занопить"?

Как убрать прицел после определенного условия?

Offline

#4587 04-09-2014 08:46

SHooZ
From: Львів
Registered: 05-06-2013
Posts: 51
Website

Re: Один вопрос

Dimoman wrote:
SHooZ wrote:
Dimoman wrote:

Подскажите плиз как отключить отображение иконок оружия в HUD, а не весь HUD?

Можно занопить функцию, которая рисует эти иконки. Ёё адресс - 0x58D7D0.

Спасибо.  Только что значит "занопить"?

Как убрать прицел после определенного условия?

Занопить - это, грубо говоря, затереть. Т.е. игра прыгает на функцию, которая рисует иконку, но эта функция чистая - состоит из нопов(нулей) ничего не делает. По этому иконки нет.  Код нопа - 0х90
Пример:

{$CLEO}
0000:
while true
   wait 0
   if 0ab0: 9
   then
        0A8C: write_memory 0x58D7D0 size 450 value 0x90 virtual_protect 1
    end
end // while

Если честно, этот способ не совсем коректный, т.к. он затирает функцию, а нужно затереть её вызов. Но его адреса я, увы, не нашел  hmm

Насчет прицела все надо делать аналогично: нашёл вызов, затер его когда тебе надо и возобновил, когда не надо.

Offline

#4588 04-09-2014 16:35

kenking
From: Казахстан
Registered: 28-06-2010
Posts: 253

Re: Один вопрос

Подскажите пожалуйста:
1) какие номера погоды в VC соответствуют какой погоде
2) что-то в VC не нашёл опкодов аналогичным в SA -
0A1E: dump_screen 1
0826: enable_hud 0

а также для клео опкода 0A95: enable_thread_saving
Я плохо искал или их действительно нет?

Offline

#4589 04-09-2014 19:04

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

Re: Один вопрос

какие номера погоды в VC соответствуют какой погоде

http://www.gtamodding.com/index.php?title=01B6

для клео опкода 0A95: enable_thread_saving

http://sannybuilder.com/forums/viewtopi … 9805#p9805

0A1E: dump_screen 1

глянь http://www.gtagarage.com/mods/show.php?id=19823

Offline

#4590 05-09-2014 15:03

kenking
From: Казахстан
Registered: 28-06-2010
Posts: 253

Re: Один вопрос

Спасибо. А про опкод аналогичному SA 0826: enable_hud 0 нет инфы?

Offline

#4591 05-09-2014 23:33

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

Re: Один вопрос

сходу не припомню, скорее всего надо отключать через память

Offline

#4592 06-09-2014 14:33

kenking
From: Казахстан
Registered: 28-06-2010
Posts: 253

Re: Один вопрос

А тогда такой вопрос (опять же по VC): почему опкод  для актёра 056D:   actor $2125 defined имеется, а подобный ему для транспорта 056E:   car 0@ defined отсутствует? Как в таком случае проверять существует ли транспорт?
Прочитал вот здесь
и попробовал сам добавить в opcodes.txt и в VCSCM.INI - результат ноль, не работает проверка wall

Offline

#4593 06-09-2014 17:46

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 558
Website

Re: Один вопрос

Если ты используешь клео -> то опкодом проверки структуры авто на 0. Если структура нулевая, значит авто не существует, этот способ работает во всех клео ко всем частям.


I know everything and nothing...

Offline

#4594 06-09-2014 17:54

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

Re: Один вопрос

kenking wrote:

А тогда такой вопрос (опять же по VC): почему опкод  для актёра 056D:   actor $2125 defined имеется, а подобный ему для транспорта 056E:   car 0@ defined отсутствует? Как в таком случае проверять существует ли транспорт?
Прочитал вот здесь
и попробовал сам добавить в opcodes.txt и в VCSCM.INI - результат ноль, не работает проверка wall

056e в Vice City не поддерживается (его просто нет). Возможно, это результат работы оптимизатора, который не добавил некоторые неиспользуемые опкоды в финальный exe.

Проверить можно опкодом 0119, который возвращает true, если машина не существует или повреждена.

Offline

#4595 06-09-2014 22:50

Shag
Registered: 29-03-2010
Posts: 147
Website

Re: Один вопрос

Может, я сейчас глупость сморозю, но каков лимит глобальных переменных в Vice City?
Ведь они записываются в сейвы, а значит - должен быть какой-то лимит, ведь так?(в справке SB инфа лишь о локальных переменных)
Заранее большое спасибо)

Last edited by Shag (06-09-2014 23:03)

Offline

#4596 07-09-2014 01:37

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

Re: Один вопрос

Для индекса глобальной переменной скрипт использует 2 байта, поэтому макс. индекс равен 65536. Одна переменная занимает в памяти 4 байта, поэтому макс. кол-во глобальных переменных равно 65536 / 4 - 1 = 16383. Это во всех частях так.

Offline

#4597 07-09-2014 10:12

kenking
From: Казахстан
Registered: 28-06-2010
Posts: 253

Re: Один вопрос

mfisto wrote:

Если ты используешь клео -> то опкодом проверки структуры авто на 0. Если структура нулевая, значит авто не существует, этот способ работает во всех клео ко всем частям.

Seemann wrote:

Проверить можно опкодом 0119, который возвращает true, если машина не существует или повреждена.

Ага понял, спасибо.

Offline

#4598 07-09-2014 14:35

Dimoman
Registered: 01-07-2014
Posts: 15

Re: Один вопрос

SHooZ wrote:
Dimoman wrote:
SHooZ wrote:
Dimoman wrote:

Подскажите плиз как отключить отображение иконок оружия в HUD, а не весь HUD?

Можно занопить функцию, которая рисует эти иконки. Ёё адресс - 0x58D7D0.

Спасибо.  Только что значит "занопить"?

Как убрать прицел после определенного условия?

Занопить - это, грубо говоря, затереть. Т.е. игра прыгает на функцию, которая рисует иконку, но эта функция чистая - состоит из нопов(нулей) ничего не делает. По этому иконки нет.  Код нопа - 0х90
Пример:

{$CLEO}
0000:
while true
   wait 0
   if 0ab0: 9
   then
        0A8C: write_memory 0x58D7D0 size 450 value 0x90 virtual_protect 1
    end
end // while

Если честно, этот способ не совсем коректный, т.к. он затирает функцию, а нужно затереть её вызов. Но его адреса я, увы, не нашел  hmm

Насчет прицела все надо делать аналогично: нашёл вызов, затер его когда тебе надо и возобновил, когда не надо.

Спасибо!
А как найти нужный вызов (нужный вызов=адрес памяти?)? В этом вся проблема(. Может какая-то программа нужна?

Offline

#4600 08-09-2014 08:46

kenking
From: Казахстан
Registered: 28-06-2010
Posts: 253

Re: Один вопрос

Подскажите, как включить сирену на соответствующем транспорте в VC, нужного опкода (соответствующему SA 0397: enable_car 0@ siren 1) я не нашёл.  wall

EDIT:
Оказывается в VCSCM.INI есть этот опкод с пометкой never used in VC. Добавил в opcodes.txt. В общем опкод в VC работает. yahoo

Last edited by kenking (08-09-2014 10:19)

Offline

Board footer

Powered by FluxBB