GTA Builder Форум

GTA Vice City => Скриптинг => Тема начата: Greecko от Июль 24, 2016, 12:05:59 pm

Название: Добавление новых бандитов
Отправлено: Greecko от Июль 24, 2016, 12:05:59 pm
Всем привет.
Я делаю сборку из разных элементов дорелизной и ps2-версии, а так же щепотку HD-текстур, не нарушающих атмосферу оригинала.
Хочется со всех сторон улучшить свою любимую игру, и поэтому, когда я наткнулся на дорелизные модели бандитов, сделанные на gtagarage.com, я задумался над тем, а можно ли их добавить без замены?
Внёс модели в img, в default.ide прописал, начал искать, где производится их спавн на карте - мне дали наводку на то, что это делается через main.scm. Я прошерстил весь файлик и нашёл только одну строчку, которая, как мне кажется, могла бы отвечать за их появление на улицах (ибо сам в скриптинге ноль)
(http://i013.radikal.ru/1607/36/1da9b4989a6d.png)
Вроде модель свою SGD прописал, а в игре всё равно не появляется бандит - видимо, не всё так просто.
Не подскажете, каким тогда образом это можно реализовать? (Учитывая то, что я не собираюсь добавлять новую банду, а просто хочу разбавить несколько старых)
Название: Re: Добавление новых бандитов
Отправлено: mfisto от Июль 24, 2016, 03:10:41 pm
Опкод 0235: имеет только 3 параметра. Поэтому когда ты добавляешь еще #SGD толку ноль. Через опкод это не сделать, иначе говоря через стандартную систему не получится. В структуре банд под модели в Вайсе выделяется только 2 ячейки - 2 модели и как ты не крути не выйдет. Но несмотря на это, добавить новую модель можно скриптом. Сворганить скрипт, который будет менять случайным образом модель текущей банды на ту которую ты захочешь.
Название: Re: Добавление новых бандитов
Отправлено: Shagg_E от Июль 24, 2016, 03:26:09 pm
Добавлю к сказанному mfisto, что если через память(посредством скрипта, например) менять модели банд быстро туда-сюда(старые на новые и обратно) каждые 0 ms(скриптовая пауза), то можно добиться того, чтобы на одной улице гуляли множество моделей одной банды(но не в группах, т.к. спавнятся группы сразу целиком, и скрипт сработать не успеет).
К примеру, если это проделать с копами - их будет гулять по одной улице несколько видов, притом все - нормально функционирующие:
скрин (http://newrockstar.do.am/Images/LostCitydev/clp1147.jpg)(правда, тут показаны лишь 2 модели копа: давно этим занимался, так что более подходящего скрина не нашел).
Тем же способом можно постоянно менять модели транспорта банд, и добиться того, что на одной улице будут разьезжать несколько разных тачек(мотаков) у одной банды: скрин (http://newrockstar.do.am/Images/LostCitydev/clp1164.jpg).

Вот пример кода:
:PRIMER
wait 0
05DF: write_memory 5166946 size 1 value 14 virtual_protect 0    // policeman skin
0236: set_gang 5 car_to #ANGEL   // Bikers gang's vehicle
wait 0
05DF: write_memory 5166946 size 1 value 1 virtual_protect 0    // policeman skin
0236: set_gang 5 car_to #FREEWAY   // Bikers gangs's vehicle
jump @PRIMER

В коде выше представлен пример, как заменить ID модели копа(1) на бабу(14) и обратно, однако бывают случаи, когда нам нужна абсолютно новая модель. Для этого нужно загрузить специального актера(Special Actor) перед тем, как менять в памяти ID модели копа.
ID специальных актеров, как и всех остальных педов, представлены в default.ide. Пример:

:1
load_special_actor 1 'OLOLO'
load_requested_models

:2
wait 0
if
023D:   special_actor 1 loaded
jf @2
05DF: write_memory 5166946 size 1 value 109 virtual_protect 0    // специальный актер 1 в default.ide имеет номер 109

Выгружать спец. актера можно ТОЛЬКО после того, как вы вернете ID модели копа на место, иначе новые копы будут появляться с моделью, которую вы выгрузили=> краш.
Название: Re: Добавление новых бандитов
Отправлено: Greecko от Июль 25, 2016, 05:12:08 pm
Спасибо за помощь, постараюсь это как-нибудь так и реализовать.