GTA Builder Форум

GTA Vice City => Моды => Тема начата: SpitFire от Май 18, 2016, 10:22:50 pm

Название: Chopper Update
Отправлено: SpitFire от Май 18, 2016, 10:22:50 pm
Ух, долго же я возился с моделью коповской вертушки, что прилетает при 3-х звёздах, модель отображалась некорректно, двери были внутри модели, пришлось пойти на хитрость и поменять id 165 на id 217 и о чудо! Наконец-таки всё заработало и все пилоты сели на свои места. Кроме пилотов я решил добавить 2-х спецназовцев с m4, но из-за коллизии вертолёта они не видят игрока. Тогда я решил посадить пулемётчика и сделать условие: если пулемётчик мёртв, то вертолёт перестаёт стрелять. Функция отключения атаки вертолёта у меня есть, скрипт уже написан и работает, но вот не задача! Игра почему-то не видит переменной $PULEMETCHIK, и поэтому условие if Actor.Dead($PULEMETCHK) не работает, а условие if not Actor.inCar($PULEMETCHIK, 2@) так вообще создаёт вылет. https://yadi.sk/d/gz-S9DTSrpLQj
Помогите.  :'(
Название: Re: Chopper Update
Отправлено: Shagg_E от Май 18, 2016, 11:46:33 pm
В клео скриптах нельзя использовать глобальные переменные.
Название: Re: Chopper Update
Отправлено: SpitFire от Май 19, 2016, 01:09:08 pm
В клео скриптах нельзя использовать глобальные переменные.

Что ты имеешь ввиду под фразой "глобальные переменные"?
Название: Re: Chopper Update
Отправлено: SpitFire от Май 19, 2016, 01:14:20 pm
В клео скриптах нельзя использовать глобальные переменные.

Хм, кажись понял, глобальная переменная - это та что с $. Но ведь $Pilot это тоже глоб. переменная? Кстати, скрипт работает как надо, спасибо.
Название: Re: Chopper Update
Отправлено: Shagg_E от Май 19, 2016, 01:55:21 pm
Вообще все $ использовать(записывать) нельзя.
Можно использовать только $PLAYER_CHAR, $PLAYER_ACTOR и читать значения из стандартных глоб. переменных(типа $ONMISSION).
Но и читать тоже не советую - в этом случае, при НЕстандартных мэйнах твои клео скрипты будут работать некорректно.
Некоторые люди думают, что, если у них не вылетает игра - вреда от использования глоб. переменных нет. Но тем временем из-за клео скриптов постепенно перезаписываются стандартные глобальные переменные, и в один прекрасный момент это всё же вызовет негативные последствия. Более того - даже несколько клео скриптов, использующих глоб. переменные - уже могут конфликтовать друг с другом.
А всему виной то, что у игры единый пул глобальных переменных, который юзает и scm и клео скрипты.
Название: Re: Chopper Update
Отправлено: mfisto от Май 19, 2016, 04:24:32 pm
В современном клео можно обойтись вообще без глобальных переменных даже таймеров. Переменная $Player_Char всегда равна 0, потому что это индекс игрока всего навсего, переменную player_actor легко получить из игрока опкодом. Вообще советую везде где есть переменная $player_char писать просто 0. После этого становится ясен опкод проверки нажатия клавиши, по идее там идет игрок и клавиша, а точнее номер джойстика и клавиша. Так как игроков может быть два а то и 4 в саньке. но возможность мультика вырезано разрабами за неимением нормального сопровождения.
Название: Re: Chopper Update
Отправлено: Shagg_E от Май 19, 2016, 07:09:40 pm
В Вайсе тоже 4 игрока по дефолту(0, 1, 2 и 3). Правда, это тоже не используется, как и в СА. Есть подозрение, что и в трехе всё так же - ведь именно там изначально разрабами задумывался мультиплеер...
(http://cs5.pikabu.ru/images/previews_comm/2015-12_2/1449726077158966836.jpg)