Сегодня на уроке мы изучим: -Условия -Пешеходов(педов) -Как достать координаты из игры. Начнем. Как всегда теория: - Условия - это вопросы "задаваемые" игре. - Педы - это жители штата - Координаты - это положение по 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 знаем) -Мы узнали как достать координаты. | |
| |
Просмотров: 1700 | |
Всего комментариев: 0 | |