Вопросы по созданию КЛЕО-скриптов
|
|
Den_spb | Дата: Понедельник, 05.04.2010, 23:27 | Сообщение # 151 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Помню этот вопрос, но где сейчас находится эта тема - не знаю.
|
|
| |
CripZ | Дата: Среда, 07.04.2010, 17:14 | Сообщение # 152 |
Группа: Проверенные
Сообщений: 23
Статус: Offline
| Den_spb, помоги плиззз с миссией нужно так: если все актёры умерли,то миссия выполнена,а если время таймера истекло и актёры живы,то миссия провалена,не как не получается( вот скрипт: Code $c1 = Actor.Create(6, #LAPD1, 360.865, -2280.84, 7.5) Actor.Angle($c1) = 359.71 $I2 = Marker.CreateIconAndSphere(30, 360.865, -2280.84, 7.5) 0639: AS_actor $c1 rotate_to_actor $PLAYER_ACTOR 0631: put_actor $c1 in_group $PLAYER_GROUP :NONAME_275 wait 0 if 0101: actor $PLAYER_ACTOR in_sphere 360.865 -2279.84 7.5 radius 3.0 3.0 100.0 sphere 1 stopped else_jump @NONAME_275 wait 0 1@ = Car.Create(#COPCARLA, 367.865, -2280.84, 7.5197) 0657: car 1@ open_component 2 marker.CreateAboveCar($M2,1@) marker.SetColor($M2,104) car.Angle(1@) = 180.0 Marker.Disable($I2) :NONAME_231 wait 0 if Actor.InCar($PLAYER_ACTOR, 1@) else_jump @NONAME_231 Marker.Disable($M2) $Z1 = Object.Create(17533, 126.18, -2762.1382, -2.51) object.Angle($Z1) = 90.0 marker.CreateAboveObject($m1,$z1) marker.SetColor($M1,6) $532 = 100000 014E: set_timer_to $532 type 1 // global_variable $ter1 = Actor.Create(20, #HMYDRUG, 145.617, -2760.8, 7.5) $ter2 = Actor.Create(20, #HMYCR, 139.896, -2760.8, 7.5) $ter3 = Actor.Create(20, #SWMYHP2, 133.814, -2760.8, 7.5) $ter4 = Actor.Create(20, #SBMYCR, 109.665, -2760.8, 7.5) $ter5 = Actor.Create(20, #BMYCR, 104.665, -2760.8, 7.5) $ter6 = Actor.Create(20, #WMYAMMO, 97.3634, -2760.8, 7.5) $ter7 = Actor.Create(20, #HMYCM, 118.451, -2734.26, 7.5) $ter8 = Actor.Create(20, #WMYAMMO, 135.51, -2734.97, 7.5) actor.Health($ter1) = 500 actor.Health($ter2) = 500 actor.Health($ter3) = 500 actor.Health($ter4) = 500 actor.Health($ter5) = 500 actor.Health($ter6) = 500 actor.Health($ter7) = 500 actor.Health($ter8) = 500
:NONAME_230 wait 0 if 00FE: actor $PLAYER_ACTOR sphere 0 in_sphere 145.617 -2760.8 7.5 radius 60.0 60.0 50.0 jf @NONAME_230 05E2: actor $ter1 kill_actor $PLAYER_ACTOR 05E2: actor $ter2 kill_actor $PLAYER_ACTOR 05E2: actor $ter3 kill_actor $PLAYER_ACTOR 05E2: actor $ter4 kill_actor $PLAYER_ACTOR 05E2: actor $ter5 kill_actor $PLAYER_ACTOR 05E2: actor $ter6 kill_actor $PLAYER_ACTOR 05E2: actor $ter7 kill_actor $PLAYER_ACTOR 05E2: actor $ter8 kill_actor $PLAYER_ACTOR 01B2: give_actor $ter1 weapon 28 ammo 2000 01B2: give_actor $ter2 weapon 27 ammo 2000 01B2: give_actor $ter3 weapon 34 ammo 2000 01B2: give_actor $ter4 weapon 26 ammo 2000 01B2: give_actor $ter5 weapon 24 ammo 2000 01B2: give_actor $ter6 weapon 30 ammo 2000 01B2: give_actor $ter7 weapon 17 ammo 2000 01B2: give_actor $ter8 weapon 18 ammo 2000
|
|
| |
Den_spb | Дата: Среда, 07.04.2010, 19:30 | Сообщение # 153 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Ну а что тут сложного? Просто надо правильно записать условия. Будет что-то вроде этого: Code :METKA wait 0 if or 8118: not actor 1 dead 8118: not actor 2 dead ... 8118: not actor 3 dead jf @MISSIA_PROIDENA if // время таймера истекло jf @METKA :MISSIA_PROVALENA ... :MISSIA_PROIDENA
|
|
| |
CripZ | Дата: Среда, 07.04.2010, 20:37 | Сообщение # 154 |
Группа: Проверенные
Сообщений: 23
Статус: Offline
| Den_spb, что то не работает(((,либо вылитает,либо сразу пишет миссия выполнена без всяких условий(
|
|
| |
Den_spb | Дата: Среда, 07.04.2010, 21:10 | Сообщение # 155 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Покажи куда ты вставил эти условия.
|
|
| |
CripZ | Дата: Среда, 07.04.2010, 21:14 | Сообщение # 156 |
Группа: Проверенные
Сообщений: 23
Статус: Offline
| вот,а то я вооще не соображаю что то Code [$c1 = Actor.Create(6, #LAPD1, 360.865, -2280.84, 7.5) Actor.Angle($c1) = 359.71 $I2 = Marker.CreateIconAndSphere(30, 360.865, -2280.84, 7.5) 0639: AS_actor $c1 rotate_to_actor $PLAYER_ACTOR 0631: put_actor $c1 in_group $PLAYER_GROUP :NONAME_275 wait 0 if 0101: actor $PLAYER_ACTOR in_sphere 360.865 -2279.84 7.5 radius 3.0 3.0 100.0 sphere 1 stopped else_jump @NONAME_275 wait 0 1@ = Car.Create(#COPCARLA, 367.865, -2280.84, 7.5197) 0657: car 1@ open_component 2 marker.CreateAboveCar($M2,1@) marker.SetColor($M2,104) car.Angle(1@) = 180.0 Marker.Disable($I2) :NONAME_231 wait 0 if Actor.InCar($PLAYER_ACTOR, 1@) else_jump @NONAME_231 Marker.Disable($M2) $Z1 = Object.Create(17533, 126.18, -2762.1382, -2.51) object.Angle($Z1) = 90.0 marker.CreateAboveObject($m1,$z1) marker.SetColor($M1,6) $532 = 100000 014E: set_timer_to $532 type 1 // global_variable
$ter1 = Actor.Create(20, #HMYDRUG, 145.617, -2760.8, 7.5) $ter2 = Actor.Create(20, #HMYCR, 139.896, -2760.8, 7.5) $ter3 = Actor.Create(20, #SWMYHP2, 133.814, -2760.8, 7.5) $ter4 = Actor.Create(20, #SBMYCR, 109.665, -2760.8, 7.5) $ter5 = Actor.Create(20, #BMYCR, 104.665, -2760.8, 7.5) $ter6 = Actor.Create(20, #WMYAMMO, 97.3634, -2760.8, 7.5) $ter7 = Actor.Create(20, #HMYCM, 118.451, -2734.26, 7.5) $ter8 = Actor.Create(20, #WMYAMMO, 135.51, -2734.97, 7.5) actor.Health($ter1) = 500 actor.Health($ter2) = 500 actor.Health($ter3) = 500 actor.Health($ter4) = 500 actor.Health($ter5) = 500 actor.Health($ter6) = 500 actor.Health($ter7) = 500 actor.Health($ter8) = 500 :NONAME_230 wait 0 if 00FE: actor $PLAYER_ACTOR sphere 0 in_sphere 145.617 -2760.8 7.5 radius 70.0 70.0 70.0 jf @NONAME_230 05E2: actor $ter1 kill_actor $PLAYER_ACTOR 05E2: actor $ter2 kill_actor $PLAYER_ACTOR 05E2: actor $ter3 kill_actor $PLAYER_ACTOR 05E2: actor $ter4 kill_actor $PLAYER_ACTOR 05E2: actor $ter5 kill_actor $PLAYER_ACTOR 05E2: actor $ter6 kill_actor $PLAYER_ACTOR 05E2: actor $ter7 kill_actor $PLAYER_ACTOR 05E2: actor $ter8 kill_actor $PLAYER_ACTOR 01B2: give_actor $ter1 weapon 28 ammo 2000 01B2: give_actor $ter2 weapon 27 ammo 2000 01B2: give_actor $ter3 weapon 34 ammo 2000 01B2: give_actor $ter4 weapon 26 ammo 2000 01B2: give_actor $ter5 weapon 24 ammo 2000 01B2: give_actor $ter6 weapon 30 ammo 2000 01B2: give_actor $ter7 weapon 17 ammo 2000 01B2: give_actor $ter8 weapon 18 ammo 2000 :NONAME_366 wait 0 if Actor.Dead($ter1) Actor.Dead($ter2) Actor.Dead($ter3) Actor.Dead($ter4) Actor.Dead($ter5) Actor.Dead($ter6) Actor.Dead($ter7) A ctor.D ead($ter8) jf @NONAME_367 01E3: show_text_1number_styled GXT 'M_PASS' number 2000 time 5000 style 1 // M?CC?• Bf’O‚HEHA! Player.Money($PLAYER_CHAR) += 250000 :NONAME_367 wait 0 if $532 < 1 jf @NONAME_367 00BA: text_styled 'M_FAIL' 5000 ms 1 0A93: end_custom_thread
Сообщение отредактировал CripZ - Среда, 07.04.2010, 21:16 |
|
| |
Den_spb | Дата: Среда, 07.04.2010, 21:44 | Сообщение # 157 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| :NONAME_366 wait 0 if and // если условий несколько, то должно быть if and или if or. Максимальное количество условий - 7 Actor.Dead($ter1) Actor.Dead($ter2) Actor.Dead($ter3) Actor.Dead($ter4) Actor.Dead($ter5) Actor.Dead($ter6) Actor .Dead( $ter7) jf @NONAME_367 Actor.Dead($ter8) jf @NONAME_367 01E3: show_text_1number_styled GXT 'M_PASS' number 2000 time 5000 style 1 // M?CC?• Bf’O‚HEHA! Player.Money($PLAYER_CHAR) += 250000 jump @Metka :NONAME_367 wait 0 if $532 < 1 jf @NONAME_366 00BA: text_styled 'M_FAIL' 5000 ms 1 :Metka 004E: // в миссиях используем только этот опкод Ошибки исправил и выделил курсивом. Учись писать конструкциями, а не метками - код будет более наглядным и разбираться в нём легче. Прежде чем забивать код в билдер можно прикинуть общую схему работы на бумаге.
|
|
| |
CripZ | Дата: Четверг, 08.04.2010, 16:28 | Сообщение # 158 |
Группа: Проверенные
Сообщений: 23
Статус: Offline
| Quote (Den_spb) Ошибки исправил и выделил курсивом. Учись писать конструкциями, а не метками - код будет более наглядным и разбираться в нём легче. Прежде чем забивать код в билдер можно прикинуть общую схему работы на бумаге. спасибо,пожелания приму к сведению))Добавлено (08.04.2010, 16:28) --------------------------------------------- а можешь ещё подсказать опкод что бы актёра закрепить в конкретных координатах,что бы там всегда стоял,а то когда стреляет то движется
|
|
| |
Den_spb | Дата: Четверг, 08.04.2010, 18:50 | Сообщение # 159 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| У меня только одна идея есть - вместо actor_kill использовать: Code 0668: AS_actor 35@ rotate_and_shoot_at 374.2905 -125.681 1001.308 2000 ms В опкод следует записать координаты расположения актёра, который должен быть атакован.
|
|
| |
CripZ | Дата: Вторник, 27.04.2010, 07:39 | Сообщение # 160 |
Группа: Проверенные
Сообщений: 23
Статус: Offline
| Den_spb, я тут добавил новые модели людей(не заменённые а новые) и пытаюсь прописать в скрипте Code 023C: load_special_actor 'mon1' as 1 023C: load_special_actor 'mon2' as 2 038B: load_requested_models :NONAME_16 wait 0 if 023D: special_actor 1 loaded 023D: special_actor 2 loaded $m1 = Actor.Create(Special, #SPECIAL01, 500.213, -2680.06, 7.5) $m2 = Actor.Create(Special, #SPECIAL02, 477.089, -2675.25, 7.5) 0A93: end_custom_thread но игра зависает при загрузке в чём проблема?
|
|
| |
Den_spb | Дата: Вторник, 27.04.2010, 17:45 | Сообщение # 161 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Во-первых, в коде были ошибки: {$CLEO} 023C: load_special_actor 'mon1' as 1 023C: load_special_actor 'mon2' as 2 038B: load_requested_models :NONAME_16 wait 0 if and 023D: special_actor 1 loaded 023D: special_actor 2 loaded jf @NONAME_16 0@ = Actor.Create(Special, #SPECIAL01, 500.213, -2680.06, 7.5) 1@ = Actor.Create(Special, #SPECIAL02, 477.089, -2675.25, 7.5) 0A93: end_custom_thread Во-вторых: как ты добавил в игру специальных актёров?
|
|
| |
CripZ | Дата: Вторник, 27.04.2010, 20:58 | Сообщение # 162 |
Группа: Проверенные
Сообщений: 23
Статус: Offline
| Quote (Den_spb) как ты добавил в игру специальных актёров? я в Имдж архив добавил новые модели и их названия прописал в Code 023C: load_special_actor 'mon1' as 1 тем самым новые модели без замены старых
|
|
| |
Den_spb | Дата: Вторник, 27.04.2010, 22:39 | Сообщение # 163 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Как добавлять новых актёров в игру (тем более специальных) я не знаю, но по-моему одного добавления моделей в img-архив недостаточно.
|
|
| |
CripZ | Дата: Среда, 28.04.2010, 13:41 | Сообщение # 164 |
Группа: Проверенные
Сообщений: 23
Статус: Offline
| Quote (Den_spb) Как добавлять новых актёров в игру (тем более специальных) я не знаю, но по-моему одного добавления моделей в img-архив недостаточно. у меня всё работает,просто модели в архив,а специальные это для того так как это не оригиналы и не замена,вообщем так я добавляю новых педов без замены
|
|
| |
d88 | Дата: Среда, 28.04.2010, 13:52 | Сообщение # 165 |
Группа: Проверенные
Сообщений: 113
Статус: Offline
| Quote (Den_spb) одного добавления моделей в img-архив недостаточно. Достаточно. Если модель есть в img-архиве, то можно создать спец-актёра с этой моделью.
|
|
| |