Народ, почему никто не коментирует? Я вроде бы основу изложил, теперь говоритео чём ещё нужно написать, что вам не понятно,что вам не дает спать ночью.
Часть 4. "Транспорт"В этой части мы рассмотрим вопрос с расстоновкой транспорта. Как и в предыдущих частях вы должны загрузить модель машины,лодки, мотоцикла или воздушного транспорта.Код:CARmodel.load(#INFERNUS)038B: load_requested_models :CAR_02wait 0ifmodel.Available(#INFERNUS)jf @CAR_02и создаем транспорт опкодом:Код$CAR = car.Create(#INFERNUS, 0.0, 0.0, 0.0)$CAR - переменая через которую мы будем обращаться к транспорту.#INFERNUS - модель используемая транспортом.Сразу после создания выгружаем модель:Кодmodel.Destroy(#INFERNUS)В принципе на этом мы можем и закончить скрипт:Кодend_threadНо так не интересно. Сделаем нашу машину бронированой и перекрасим её в черный.Кодcar.SetImmunities($CAR, 1, 1, 1, 1, 1)0229: set_car $CAR color_to 0 0Добавляем эти строчки после:Кодmodel.Destroy(#INFERNUS)Хм..Что ж, неплохо, но всю картину портят эти некарсивые диски,надо бы их заменить. Для этого открываем carmods.dat и внизу выувидите название дисков, выбирайте любой.Возвращаемся в SannyBuilder.В самом верху есть строчка:DEFINE OBJECTS 0меняем её значение на 2 (это количество объектов) и после неё прописываем:DEFINE OBJECT (no name) \\всегда прописывается после DEFINE OBJECTS 0(незнаю что это )DEFINE OBJECT wheel_gn1 \\модель вашего дискаВ загрузку добавляем строчку:Код06E9: request_car_component #WHEEL_gn1в проверку:Код06EA: car_component #wheel_gn1 availableи перед выгрузкой переменой автомобиля:Код06E7: $WHEEL = add_car_component #WHEEL_gn1 to_car $CARВот таким способом вы можите добавлять бампера, азот, спойлер.Удачи!Я ещё добавил к тачке азот. Продолжение следует...P.S. если что-то непонятно можите скачать мой main.scmс этим скриптом.
Часть 3. "Актеры"В этой части мы разберемся как работать с актерами.Но просто так сидеть и втыкать в каждый опкод скучно,поэтому я решил разнообразить эту статью и сделать еёпо-веселее.Идея: Создаем актера на берегу моря, он идет в море и утопает,затем создаётся новый актер и так по кругу.Поехали!Создаем новый поток загружаем модель любого актера и делаемпроверку.Код:Suecidmodel.Load(#BFORI)038B: load_requested_models:Sue_1wait 0ifmodel.Available(#BFORI)jf @Sue_1Используя опкод:Код$Actor = actor.Create(CivFemale, #BFORI, 2937.9421, -2051.6611, 3.548)создайте актера. Рассмотрим этот опкод подробнее:$Actor - под этой переменой записан актер, при помощи её мы можем производить действия над игроком.CivFemale - тип актера. (CivMale, Cop и т.д.)#BFORI - модель используемая актером.2937.9421, -2051.6611, 3.548 - координаты, по которым будет создан актер.Если вы используете мои координаты, то тогда ещё замените следующие координатыпоявления игрока и прорисовки местности как на скрине.Запустив скрипт вы увидите что актер создан, но направлен он не туда, нужно развернуть его на 90 градусов, чтоб он смотрел на море.Чтобы это исправить повернем актера опкодомКодactor.Angle($Actor) = -90.0Теперь не грех и утонуть. хехехе Только вот актер стоит на месте и ничего не делает. Поправим!Добавляем опкод:Код05D3: AS_actor $Actor go_to 2944.6431 -2051.3662 -0.2353 speed 4 10000 msДумаю тут все понятно. Координаты поближе к водичке. Актер утонул, а новый не появляется? Поправим. Для этогодобавим проверку:Код:Sue_2wait 0ifactor.Dead($Actor)jf @Sue_2actor.RemoveReferences($Actor) \\Выгружаем переменую в которую записан актер.jump @SuecidТак же добавьте опкод для выгрузки модели сразу после создания актера.Окончательный вид скрипта:Продолжение следует...
Часть 2. Пих-пах. Даем игроку оружие.В этой статье я расскажу об оружие.Для начала откройте очищеный от миссий и прочегоmain.scm находящийся по адресу 'sannybuilder > sa > stripped.txt'"О, господи, что это? Сплошные буквы и цифры!" Не бойтесь здесь ничего сложного нету, всё таки это не простобукафки, а опкоды (команды). Опкодами мы заставляем игрока илидругого актера выполнять какие-либо действия, выполняем проверки,расставляем пикапы и т.п.Это интересно: Раскажу вам про пару опкодов, содержащихсяв этом файле.Код 01F0: set_max_wanted_level_to 6 - Максимальное количество звезд. 00C0: set_current_time 12 0 - Игровое время. $PLAYER_CHAR = Player.Create(#NULL, 2488.5601, -1666.84, 13.38) - координаты где появится игрок.следующие опкоды отвечают за одежду Карла.Код $PLAYER_CHAR.SetClothes("PLAYER_FACE", "HEAD", Head) $PLAYER_CHAR.SetClothes("JEANSDENIM", "JEANS", Legs) $PLAYER_CHAR.SetClothes("SNEAKERBINCBLK", "SNEAKER", Shoes) $PLAYER_CHAR.SetClothes("VEST", "VEST", Torso)Местопоявления если вы:Код 016C: restart_if_wasted at 2027.77 -1420.52 15.99 angle 137.0 unknown 0 - были убиты 016D: restart_if_busted at 1550.68 -1675.49 14.51 angle 90.0 unknown 0 - были арестованыПожалуй вернемся к нашей статье.Чтобы дать игроку оружие нужно написать скрипт (код). А чтобы в игре всё заработалонужно объявить создание нового потока (thread). Делается это опкодом: create_thread @My_thread \\My_thread - имя первой метки вашего скрипта.На конце вашего скрипта, для его завершения ставится опкод: end_thread Вот и получается у нас:Код create_thread ............. :My_thread<Тут находится ваш скрипт> end_threadНо где размещать эти опкоды? Если end_thread размещать на конце скрипта, то где объявлять начало скрипта?В stripped.txt старт нового потока нужно объявлять перед строчкой:Код 016C: restart_if_wasted at 2027.77 -1420.52 15.99 angle 137.0 unknown 0 016D: restart_if_busted at 1550.68 -1675.49 14.51 angle 90.0 unknown 0 create_thread @My_thread end_threadПоток объявили, теперь надо прописать метку где поток начнется. Сразу после end_thread вписываем:Код :My_thread end_threadДумаю теперь ясно где что прописывать, если нет, то читайте ещё раз!Давайте напишим скрипт который даст игроку оружие - AK47.Вот нужные нам опкоды для написания скрипта:Кодwait 0 - пауза, ставится при проверках, чтобы игра не вылетела. "0" - значение в мс.model.load(#AK47) - загружает модель, в данном случае нужного нам автомата.model.Available(#AK47) - загрузилась ли модель? Используется при проверках.model.Destroy(#AK47) - Выгружает модель, загруженую раннее модель нужно выгрузить, чтобы не вешала игру.038B: load_requested_models - Загрузить запрашиваемые модель, в SA использывание этого опкода необязательно, но все же лучше напишите.01B2: give_actor $PLAYER_ACTOR weapon 30 ammo 9999 - Дать актеру $PLAYER_ACTOR оружие под номером 30, с количеством патронов 9999.Номер оружия вы можите узнать в файле справки.Теперь надо собрать это всё воедино, чтобы заработало как надо =)Чё за дела? Почему ты не рассказл об if и jf?Эти опкоды используются при проверках и имеют слудующию конструкцию.Код:Label_01wait 0if \\ставим условие <условие> \\jf @Label_01 \\условие НЕверно идем назад<если верно выполняем скрипт дальше>Оператор if может иметь несколько значений, а именно: and, orif and \\все поставленые словия должны быть верныif or \\хоть одно из условий верно Жмем F7 и запускаем игру!ААА! У него оружие!Дополнение:Вот модифицированый скрипт, в первом скрипте если игрока убьют, то оружие он больше не получит,а здесь оружие дается заново. Попробуйте разобраться сами. Удачи, жду ваших скриптов!"Продолжение следует..
.::Изучаем скрипты в Gta: San Andreas::. Часть I. Введение. Первый запуск компилятора.Что такое скриптинг? -спросите вы меня, я отвечу вам,это изминение файла main.scm содержащего в себе миссии, и прочие возможности(парашют, HotCoffe =) и т.д)Именно об этих изминениях этого файла, то есть о созданииновых возможностией я расскажу в этой статье.Для работы нам потребуется всего одна программа: - SannyBuilder верссии => 2.9(так как я использую именно её) Офф.Сайт: http:\\www.sannybuilder.comРаспакуйте архив с программой. В папке с программой вложныфайлы и папки следующего содержания: -examples (примеры готовых скриптов) -gta3 (файлы для работы с main.scm от GTA III) -sa (файлы для работы с main.scm от GTA SA) -help (файлы справки: номера оружия, интерьеров и т.д.) -vc (файлы для работы с main.scm от GTA VC) Остальные файлы содержат настройки программы.Запускаем sanny.exeПервым шагом будет указать путь к папке с установленой игрой.Для этого нажмите 'Tools > Options...' и в поле 'GTA Sa Directory'укажите путь к игре.Ознакомимся немного с интерфейсом программы.1 - создать новый файл.2 - открыть файл. (*txt, *scm)3 - сохранить. (*txt)4 - Закрыть активный документ.5 - Отменить действие.6 - Вернуть действие.7 - Вырезать.8 - Копировать.9 - Выставить.10 - Найти.11 - Открыть main.scm12 - Сохранить main.scm12 - Сохранить + скопировать в папку с игрой.13 - Запуск San Andreas.На этом я и закончу первую часть. Ждите продолжения.
Полная версия этой страницы:
Форум GTAMIR > .::Изучаем скрипты в Gta: San Andreas::.
Комментариев нет:
Отправить комментарий