МЕНЮХА
CMc0Xzhp0go
TEMPLATE-POST.PHP
Эйоу, всем ещё раз приветик :3
Сегодня на уроке мы изучим:
-Условия
-Пешеходов(педов)
-Как достать координаты из игры.

Начнем.

Как всегда теория:
- Условия - это вопросы "задаваемые" игре.
- Педы - это жители штата
- Координаты - это положение по XYZ.
- И очень важно! В игре есть баг, что если игрок в коодинатах 0.0 0.0 0.0(например), а мы спавним пешехода в 1000.0 1000.0 1000.0, то пешеход появится с большим удаление от заданых координат :(
Конец теории
Практика:
Мы хотим, что бы пешеход заспавнился на кольце грув
Берем старый скрипт и стираем Player.Money(или опкод)
Пишим:
Model.Load(#fam1) // Загружаем модель для последушего использования
:1 //метка
wait 0 //Ожидание, что бы игра не вылетела при быстром условии
if //Условие "если"
00EC: actor $PLAYER_ACTOR sphere 0 near_point 2488.5601 -1666.5066 radius 80.0 80.0//Сам вопрос.
jf @1 // Иначе, если не выполнено условие
Actor.Create(1@,Gang2,#fam1,2488.5601, -1666.5066,13.3437) // Спаним педа
Model.Destroy(#FAM1) // Выгружаем модель из памяти, что бы не нагружать игру
Скрипт готов, но я все поясню
Метка(label) - это место для возрата назад или вперед в коде.
wait 0 - необходимо писать из-за того, что у нас цикличная проверка, иначе игра зависнит.
00ec - опкод
actor - это просто для того что бы сделать код более ЧП(человеко - понятным)
$PLAYER_ACTOR - это глобальная переменная для игрока, как актека(позиция, оружие и прочее).
sphere - это просто для того что бы сделать код более ЧП(человеко - понятным)
0 - Это аргумент, отвечающий за то будет ли красный маркер в районе этой метки(0-нет|1-да)
near_point - это просто для того что бы сделать код более ЧП(человеко - понятным)
2488.5601 -1666.5066 - координаты.
!!!Вот тут очень важное!!!
!!!Что бы узнать координаты, мы в окошке SB нажимаем f8, у нас загружается игра. Далее идем к тому месту откуда брать координаты. Скрываем GTA и в SB жмем Shift+cntl+c и у нас появиляются координаты!!!
radius - это просто для того что бы сделать код более ЧП(человеко - понятным)
80.0 80.0 - Это радиус действия от координат указаных левее. 80 во все строны, кроме вверх-вниз
jf @1 - Если игрок не в радиусе 80 от центра грув стрит, то возрашяемся назад к вопросу.
Actor - сложно обяъяснить
Create - Это то что нужно сделать. В данном случае заспавнить.
1@ - Это локальная переменная куда мы записываем пешехода.
Gang2 - это тип пешехода, в данном случае это бандит из банды 2(по умолчанию грув).
#FAM1 - Это название модели персонажа. Перед использованием загрузить!!!
Далее координаты, как найти я уже рассказал.
В итоге у нас вот такой код:
{$CLEO .cs}
0000:
thread "MyFirstScritp"
Model.Load(#fam1)
:1
wait 0
if
00EC: actor $PLAYER_ACTOR sphere 0 near_point 2488.5601 -1666.5066 radius 80.0 80.0
jf @1
Actor.Create(1@,Gang2,#fam1,2488.5601, -1666.5066,13.3437)
Model.Destroy(#FAM1)
end_thread
Итог:
-Мы изучили ещё пару опкодов.
-Мы узнали про условия(1/3 знаем)
-Мы узнали как достать координаты.