Дата: Понедельник, 27.08.2012, 13:39 | Сообщение # 1
Боец
Сообщений: 98
Статус: Offline
Вы собираетесь начать изучать CLEO? Да. Зачем тебе это? Что-бы делать крутые скрипты и получать за них плюсы. Ты уверен, что хочешь это? Уверен. Тогда поехали. Для начала я тебе советую посмотреть уроки от cooles, там есть кое что полезное.
Ну и что ты усвоил из этих уроков? Ну что есть условия и переменные. Переменных бывает 33 и обозначаются знаком @. Теперь мы попробуем поработать с актёрами и маркерами. Вставь этот код в SB (Sanny Builder):
Code
{$VERSION 3.1.0027} {$CLEO .cs} 0000: NOP :1 wait 0 Model.Load(#BANDITO) 03BC: 0@ = create_sphere_at -1941.89 241.63 41.05 radius 2.0// создаём маркер if 00EC: actor $PLAYER_ACTOR 0 near_point -1941.89 241.63 radius 2.0 2.0// если актёр на маркере else_jump @1 Actor.PutAt($PLAYER_ACTOR, -1971.87 152.20 36.96)// телепортирует на координаты jump @3 :3 wait 0 0376: 1@ = create random actor -1972.13 157.71 36.96 // 1@ - хендл актёра // -1972.13 157.71 36.96 - координаты, по которым будет стоять актёр wait 0 0376: 2@ = create random actor -1979.53 154.97 39.85 wait 0 0376: 3@ = create random actor -1979.59 150.38 39.85 wait 0 0376: 4@ = create random actor -1979.88 144.40 39.85 wait 0 0376: 5@ = create random actor -1979.99 138.15 39.85 wait 0 05E2: actor 1@ kill_actor $PLAYER_ACTOR // 1@ - актёр, который будет нас атаковать. wait 0 0639: unknown_action_sequence 1@ $PLAYER_ACTOR // Делаем так, что бы мы смотрели друг на друга wait 0 0639: unknown_action_sequence $PLAYER_ACTOR 1@ wait 0 :4 05E2: AS_actor 1@ kill_actor $PLAYER_ACTOR wait 0 05E2: AS_actor $PLAYER_ACTOR kill_actor 1@ wait 0 if Actor.Dead(1@)// если актёр умер jf @4 0948: create_explosion_at -1979.88 144.40 39.85 type 6 camera_shake 5.0// происходит взрыв jump @1
Не очень то и понятно, расскажи про каждый опкод отдельно ^_^. Про каждый говорить не буду, но расскажу про несколько. 1. Создаём актёра.
Code
0376: 1@ = create random actor -1972.13 157.71 36.96
Этот опкод создаёт рандомного актёра, в координатах, которые ты указал. Так же есть ещё один опкод, который создаёт актёра.
Code
Actor.create(1@,4,#ARMY,X,Y,Z)
1@ - это переменная актера, с помощью которой им можно манипулировать. 4 - тип актера (коп, мужчина, бандит и т.д.) #ARMY - имя загруженной нами модели X, Y, Z - координаты (ТОЛЬКО ДРОБНЫЕ)
C этими актёрами так-же можно выполнять какие либо действия. Попробуем увеличить ему здоровье.
Этим опкодом можно заставить актёра 1@ проиграть анимацию "M_SMKLEAN_LOOP" из файла "LOWRIDER",4.0 - данный параметр обычно всегда равен этому числу,loop 1 0 0 0 time -1 - данные параметры отвечают за следующее:первая цифра-повторение анимации(0-не повторяется,1-повторяется) и чтобы анимация повторялась определённое время - меняем значение первой цыфры на 1 и число -1 в конце меняем на нужное нам количество миллисекунд,вторая цифра - незнаю),третья цифра - незнаю),четвёртая цифра для того,чтобы актёр после проигрывания анимации актёр возвращался в исходное положение(0-не возвращается,1-возвращается)[/i][/b].
А почему они стоят спиной ко мне?
Code
0639: unknown_action_sequence 1@ $PLAYER_ACTOR
Этим опкодом мы заставляем актёра с хендлом 1@ смотреть на нас. Есть ещё другой опкод, который заставляет смотреть в определённую точку.
Code
06A9: AS_actor @1 look_at @2 @3 @4 @5
Актёр (@1) смотрит в точку (@2 @3 @4) определённое время (@5) Время в ms. Спасибо, всё очень понятно, а что нам ожидать в следующем уроке? Да я сам не знаю.
Задание: Сделать миссию, со взрывами и драками.
Дополнение к уроку: Действия для актёров:
Code
05DD: AS_actor (@1) fear_actor (@2) from_origin_radius (@3) (@4) актёр (@1) убегает от Другова актера (@2) в определённом радиусе (@3) отпределенное время (@4)
0667: unknown_action_sequence @1 @2 @3 @4 @5 ;;Актёр (@1) целится в заданные координаты (@2 @3 @4) определенное время (@5)
087E: set_actor @1 weapon_droppable 0 ;; Актер оставляет/не оставляет оружие после смерти
09B8: create_blood_gush_at $73 $74 $75 offset 5.0 -5.0 10.0 density 100 on_actor $PLAYER_ACTOR ;; Создание крови в заданных координатах на офсете от актера
0464: put actor $1 into turret on car 1@ at car offset 0.4 -3.8 1.6 unknown 3 angle 270.0 with weapon 27 ;; Помещаем актера в машину ( в turret- режим)
00A1: put actor $PLAYER_ACTOR at 0.0 0.0 0.0 ;; Ставим актера в координаты
0555: remove_weapon 22 from_actor @1 ;; Удаление оружия 22 от актера 1@
Я сделал всё как тут, только маркер поставил на грув стрит, я телепортируюсь, 1 человек на меня нападает но его убить нельзя, потом еще игра вылетает, а остальные стоят збоку на бардюре. Что не так?
Код
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
И для чего моделька вертолёта Бандит? А, еще как сделать что-бы метка работала не один раз, я на неё попадаю, ТП, а потом она не работает, нужно что-бы меня рандомный персонаж убил?
Сообщение отредактировал Monkey_D_Luffy - Четверг, 03.01.2013, 15:31