Invisible Car Fix (fix pour voitures invisibles)
Salut à tous ! Vous avez déjà rencontré ce problème : vous êtes dans un intérieur (un stade, par exemple) et vous avez fait apparaître une voiture. Mais elle n'est pas là ! En fait, elle est là, mais elle est devenue invisible.
Ce correctif résout ce problème et vous pouvez faire apparaître des voitures « visibles » dans tous les intérieurs.
Vous pouvez également désactiver cela en entrant le code de triche « fixcars », ce qui produira un son caractéristique.
Pour ceux qui veulent comprendre comment cela fonctionne...
Maintenant, en détail. Les générateurs de voitures ne tiennent pas compte du fait que les joueurs peuvent faire apparaître des véhicules (et pas seulement) dans les intérieurs. En raison de cela, toutes les voitures sont attachées à l'intérieur 0 (la rue),
mais comme nous ne sommes pas dans l'intérieur 0, la voiture ne sera visible que dans l'intérieur 0 (c'est-à-dire pour nous, elle est « invisible »). Tout cela se résout par deux lignes de code après l'apparition de la voiture.
Exemple :
:CarCreating // nom du flux
wait 0 // attend, sinon le jeu se fige
if // si
0ADC: test_cheat «elegy» // le code de triche est écrit
jf @CarCreating // sinon, nous revenons au début du flux «CarCreating»
jump @CarCreating2 // si le code de triche est écrit, nous passons au flux «CarCreating2»
:CarCreating2 // nom du flux
wait 0 // attend, sinon le jeu se fige
model.load(#elegy) // charge le modèle "elegy" (modèle de voiture)
038B: load_requested_models // enregistre le modèle dans le jeu (sans cette instruction, le modèle ne se chargera pas)
if // si
model.available(#elegy) // le modèle est chargé
jf @CarCreating2 // sinon, nous revenons au début du flux «CarCreating2»
Car.create(0@ #elegy 1@ 2@ 3@) // crée la voiture
077E: get_active_interior_to $ACTIVE_INTERIOR // vérifie dans quel intérieur se trouve le joueur
0840: link_car 0@ to_interior $ACTIVE_INTERIOR // "attache" (rend visible pour nous) la voiture
car.RemoveReferences(0@) // supprime les informations sur la voiture
jump @CarCreating // retourne au début du script
où 0@ - la voiture elle-même ; #elegy - le modèle de la voiture ; 1@ 2@ 3@ - variables (dans ce cas - coordonnées) ; $ACTIVE_INTERIOR - variable du numéro de l'intérieur.
Ces deux lignes :
077E: get_active_interior_to $ACTIVE_INTERIOR // vérifie dans quel intérieur se trouve le joueur
0840: link_car 0@ to_interior $ACTIVE_INTERIOR // "attache" (rend visible pour nous) la voiture
où 0@ - le véhicule requis ; $ACTIVE_INTERIOR - variable du numéro de l'intérieur.
Rendent la voiture « visible » pour nous. Mais si nous changeons d'intérieur, la voiture redeviendra « invisible ».
Всем привет! Вы сталкивались с такой проблемой - вы в каком-нибудь интерьере(стадион, например) и заспавнили машину. Но её нет! Вернее она есть, просто стала невидимой.
Данный фикс исправляет эту проблему и вы можете спавнить «видимые» машины во всех интерьерах.
Также это можно отключить, введя чит-код «fixcars», при этом раздастся характерный звук.
Для тех, кто хочет разобраться, как это работает...
Теперь по порядку. Спавнеры машин не учитывают то, что игроки могут спавнить авто(и не только) в интерьерах. Из-за этого все машины прицепляются к интерьеру 0(улица),
но т.к. мы находимся не в интерьере 0, то и видимой машина будет только в интерьере 0(т.е для нас она «невидима»). Все это решается двумя строчками кода после спавна авто.
Пример:
:CarCreating //наименование потока
wait 0 // ждем, в противному случае игра зависнет
if // если
0ADC: test_cheat «elegy» //чит-код написан
jf @CarCreating //в противном случае переходим в начало потока «CarCreating»
jump @CarCreating2 //если чит-код написан, переходим в поток «CarCreating2»
:CarCreating2 //наименование потока
wait 0 //ждем, в противном случае игра зависнет
model.load(#elegy) //загружаем модель \"elegy\"(модель автомобиля)
038B: load_requested_models //регистрируем модель в игре(без этого опкода модель не загрузится)
if //если
model.available(#elegy) //модель загружена
jf @CarCreating2 //в противном случае переходим в начало потока «CarCreating2»
Car.create(0@ #elegy 1@ 2@ 3@) //создаем машину
077E: get_active_interior_to $ACTIVE_INTERIOR //смотрим, в каком интерьере находится игрок
0840: link_car 0@ to_interior $ACTIVE_INTERIOR //\"прицепляем\"(делаем ее видимой для нас) машину
car.RemoveReferences(0@) //удаляем инфу о машине
jump @CarCreating //переходим в самое начало скрипта
где 0@ - само авто; #elegy - моделька авто; 1@ 2@ 3@ - переменные(в данном случае - координаты); $ACTIVE_INTERIOR - переменная номера интерьера.
Всего вот эти две строчки:
077E: get_active_interior_to $ACTIVE_INTERIOR //смотрим, в каком интерьере находится игрок
0840: link_car 0@ to_interior $ACTIVE_INTERIOR //\"прицепляем\"(делаем ее видимой для нас) машину
где 0@ - нужное ТС(транспортное средство); $ACTIVE_INTERIOR - переменная номера интерьера.
Делают авто «видимым» для нас. Но если мы поменяем интерьер, то машина станет «невидимой»