Correção de Carro Invisível
Olá a todos! Você já se deparou com o problema de estar em algum interior (como um estádio, por exemplo) e ter gerado um carro, mas ele não aparece? Na verdade, ele existe, apenas se tornou invisível.
Esta correção resolve esse problema e você pode gerar carros "visíveis" em todos os interiores.
Isso também pode ser desativado digitando o código de trapaça "fixcars", e um som característico será ouvido.
Para aqueles que querem entender como isso funciona...
Agora, vamos por partes. Os geradores de carros não consideram que os jogadores podem gerar veículos (e não apenas) em interiores. Por causa disso, todos os carros são vinculados ao interior 0 (rua),
mas como não estamos no interior 0, o carro visível só estará no interior 0 (ou seja, para nós ele é "invisível"). Tudo isso é resolvido com duas linhas de código após a geração do carro.
Exemplo:
:CarCreating //nome do fluxo
wait 0 // aguardamos, caso contrário o jogo travará
if // se
0ADC: test_cheat "elegy" //código de trapaça escrito
jf @CarCreating //caso contrário, voltamos ao início do fluxo "CarCreating"
jump @CarCreating2 //se o código de trapaça foi escrito, vamos para o fluxo "CarCreating2"
:CarCreating2 //nome do fluxo
wait 0 //aguardamos, caso contrário o jogo travará
model.load(#elegy) //carregamos o modelo \"elegy\"(modelo do carro)
038B: load_requested_models //registramos o modelo no jogo (sem esse opcode o modelo não será carregado)
if //se
model.available(#elegy) //modelo carregado
jf @CarCreating2 //caso contrário, voltamos ao início do fluxo "CarCreating2"
Car.create(0@ #elegy 1@ 2@ 3@) //criamos o carro
077E: get_active_interior_to $ACTIVE_INTERIOR //verificamos em qual interior o jogador está
0840: link_car 0@ to_interior $ACTIVE_INTERIOR //\"vinculamos\"(tornamos visível para nós) o carro
car.RemoveReferences(0@) //removemos as informações sobre o carro
jump @CarCreating //voltamos ao início do script
onde 0@ - o próprio carro; #elegy - modelo do carro; 1@ 2@ 3@ - variáveis (neste caso - coordenadas); $ACTIVE_INTERIOR - variável do número do interior.
Essas duas linhas:
077E: get_active_interior_to $ACTIVE_INTERIOR //verificamos em qual interior o jogador está
0840: link_car 0@ to_interior $ACTIVE_INTERIOR //\"vinculamos\"(tornamos visível para nós) o carro
onde 0@ - o veículo necessário (transporte); $ACTIVE_INTERIOR - variável do número do interior.
Tornam o carro "visível" para nós. Mas se mudarmos de interior, o carro se tornará "invisível".
Всем привет! Вы сталкивались с такой проблемой - вы в каком-нибудь интерьере(стадион, например) и заспавнили машину. Но её нет! Вернее она есть, просто стала невидимой.
Данный фикс исправляет эту проблему и вы можете спавнить «видимые» машины во всех интерьерах.
Также это можно отключить, введя чит-код «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 - переменная номера интерьера.
Делают авто «видимым» для нас. Но если мы поменяем интерьер, то машина станет «невидимой»