Вопросы по созданию КЛЕО-скриптов
|
|
ole-docenko | Дата: Воскресенье, 06.02.2011, 22:54 | Сообщение # 526 |
Группа: Проверенные
Сообщений: 11
Статус: Offline
| Доброго времени суток ! Может ли кто-нибудь рассказать мне о эффектах камеры (шатание и т.д.) и какому опкоду они соответствуют . Заранее благодарю !
|
|
| |
Den_spb | Дата: Воскресенье, 06.02.2011, 22:59 | Сообщение # 527 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Добрый день. О камерах всё подробно расписано в справке Sanny Builder (раздел Статьи - Видео и аудио).
|
|
| |
dyom | Дата: Четверг, 10.02.2011, 17:50 | Сообщение # 528 |
Группа: Пользователи
Сообщений: 19
Статус: Offline
| Привет!Вот появился вопрос: Я просто поставил актёров, а рядом стем местом где я их поставил вылет.Почему? Может надо сделать ещё одну проверку на нахождение актёра в этих координатах?Добавлено (10.02.2011, 17:50) --------------------------------------------- Вот сам скрипт: Code $ICON1 = Marker.CreateIconAndSphere(63, -2174.8547, 679.1398, 55.1678)
:NONAME_98 wait 0 if 00FE: actor $PLAYER_ACTOR sphere 0 in_sphere -2174.8547 679.1398 55.1678 radius 100.0 100.0 300.0 else_jump @NONAME_98 wait 0 1@ = Actor.Create(Gang2, #TRIADA, -2174.5029, 679.4495, 55.1669) 2@ = Actor.Create(Gang2, #TRIADA, -2174.675, 697.3317, 53.8906) Actor.Angle(1@) = 179.8245 Actor.Angle(2@) = 29.4231 3@ = Actor.Create(Gang2,#TRIADA, -2173.4551, 648.3716 ,49.4375) 4@ = Actor.Create(Gang2, #TRIADA, -2179.0232, 648.8561, 49.4375) 5@ = Actor.Create(Gang2, #TRIADA, -2205.8108, 625.082, 49.4397) 6@ = Actor.Create(Gang2,#TRIADA, -2210.0764, 624.653, 49.4355) Actor.Angle(3@) = 182.3312 Actor.Angle(4@) = 182.3312 0638: AS_actor 1@ stay_put 1 0638: AS_actor 2@ stay_put 1 0638: AS_actor 3@ stay_put 1 0638: AS_actor 4@ stay_put 1 0638: AS_actor 5@ stay_put 1 0638: AS_actor 6@ stay_put 1 01B2: give_actor 1@ weapon 30 ammo 9999 // Load the weapon model before using this 01B2: give_actor 2@ weapon 30 ammo 9999 // Load the weapon model before using this 01B2: give_actor 3@ weapon 30 ammo 9999 // Load the weapon model before using this Actor.WeaponAccuracy(1@) = 100 Actor.WeaponAccuracy(2@) = 100 Actor.WeaponAccuracy(3@) = 100 Actor.WeaponAccuracy(4@) = 100 Actor.WeaponAccuracy(5@) = 100 Actor.WeaponAccuracy(6@) = 100 077A: set_actor 1@ acquaintance 4 to_actors_pedtype 6 // see ped.dat 077A: set_actor 2@ acquaintance 4 to_actors_pedtype 6 // see ped.dat 077A: set_actor 3@ acquaintance 4 to_actors_pedtype 6 // see ped.dat 6@ = Actor.Create(Gang2, #TRIADA, -2241.6343, 641.8425 ,49.4481) 7@ = Actor.Create(Gang2,#TRIADA, -2242.4546, 645.1487, 49.4459) 8@ = Actor.Create(Gang2,#TRIADA, -2205.9165 ,647.1409, 49.4375) 9@ = Actor.Create(Gang2, #TRIADA, -2179.8025, 682.7398, 69.7969) 10@ = Actor.Create(Gang2, #TRIADA, -2171.6885 ,647.1465 ,71.1598) 11@ = Actor.Create(Gang2, #TRIADA, -2180.9226, 698.2644 ,53.8906) Actor.Angle(6@) = 89.4153 Actor.Angle(7@) = 81.4135 Actor.Angle(8@) = 177.7762 Actor.Angle(9@) = 270.4511 0638: AS_actor 6@ stay_put 1 0638: AS_actor 7@ stay_put 1 0638: AS_actor 8@ stay_put 1 0638: AS_actor 9@ stay_put 1 0638: AS_actor 10@ stay_put 1 0638: AS_actor 11@ stay_put 1 01B2: give_actor 6@ weapon 30 ammo 9999 // Load the weapon model before using this 01B2: give_actor 7@ weapon 30 ammo 9999 // Load the weapon model before using this 01B2: give_actor 8@ weapon 30 ammo 9999 // Load the weapon model before using this Actor.WeaponAccuracy(6@) = 100 Actor.WeaponAccuracy(7@) = 100 Actor.WeaponAccuracy(8@) = 100 077A: set_actor 6@ acquaintance 4 to_actors_pedtype 6 // see ped.dat 077A: set_actor 7@ acquaintance 4 to_actors_pedtype 6 // see ped.dat 077A: set_actor 8@ acquaintance 4 to_actors_pedtype 6 // see ped.dat 077A: set_actor 9@ acquaintance 4 to_actors_pedtype 6 // see ped.dat 077A: set_actor 10@ acquaintance 4 to_actors_pedtype 6 // see ped.dat 077A: set_actor 11@ acquaintance 4 to_actors_pedtype 6 // see ped.dat 12@ = Actor.Create(Gang2, #TRIADA,-2187.74, 710.9263 ,53.8906) 13@ = Actor.Create(Gang2, #TRIADA,-2176.3938, 710.9466, 53.8906) 0638: AS_actor 12@ stay_put 1 0638: AS_actor 13@ stay_put 1 Actor.WeaponAccuracy(12@) = 100 Actor.WeaponAccuracy(13@) = 100 01B2: give_actor 12@ weapon 30 ammo 9999 // Load the weapon model before using this 077A: set_actor 12@ acquaintance 4 to_actors_pedtype 6 // see ped.dat 077A: set_actor 13@ acquaintance 4 to_actors_pedtype 6 // see ped.dat Не смотрите на то что нет загрузки моделей!
|
|
| |
Den_spb | Дата: Четверг, 10.02.2011, 19:35 | Сообщение # 529 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Quote (dyom) Не смотрите на то что нет загрузки моделей! Без загрузки моделей актёров и оружия возможны вылеты, так что загрузку надо обязательно добавить. Нет команды окончания скрипта (0A93:) и нет проверки на существование игрока (player.defined) - надо добавить. Переменная 6@ используется при создании актёров дважды (из-за этого не вылетит, но над первым актёром нельзя будет произвести никаких действий).
|
|
| |
dyom | Дата: Четверг, 10.02.2011, 19:41 | Сообщение # 530 |
Группа: Пользователи
Сообщений: 19
Статус: Offline
| Quote (Den_spb) Без загрузки моделей актёров и оружия возможны вылеты, так что загрузку надо обязательно добавить. Нет команды окончания скрипта (0A93:) и нет проверки на существование игрока (player.defined) - надо добавить. Переменная 6@ используется при создании актёров дважды (из-за этого не вылетит, но над первым актёром нельзя будет произвести никаких действий). Про проверку актёра спс!А остальное я не дописал (Quote (Den_spb) Без загрузки моделей актёров и оружия возможны вылеты, так что загрузку надо обязательно добавить. Нет команды окончания скрипта (0A93:) ) потому-что скрипт не влазил. Ну спасибо.
|
|
| |
-=MaZaHaKa=- | Дата: Пятница, 11.02.2011, 23:07 | Сообщение # 531 |
Группа: Пользователи
Сообщений: 2
Статус: Offline
| Здравствуйте! Хотел написать скрипт, чтобы CJ мог садиться в любую тачку пассажиром, а когда он садится, машина (с водителем внутри) не едет а стоит на месте. И даже если вылезти из машины, она всёравно будет стоять на месте. В чём может быть проблема? Вот скрипт Code // This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
{$VERSION 3.1.0027} {$CLEO .cs}
//-------------MAIN--------------- thread 'PASS'
:PASS_01 wait 0 if and not Actor.Dead($PLAYER_ACTOR) not Actor.Driving($PLAYER_ACTOR) else_jump @PASS_01 jump @PASS_02
:PASS_02 wait 0 if 0AB0: key_pressed 84 else_jump @PASS_01 Actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@) 073E: get_car_in_sphere 1@ 2@ 3@ radius 8.0 model -1 handle_as 5@ 05CA: AS_actor $PLAYER_ACTOR enter_car 5@ passenger_seat -1 10000 ms jump @PASS_01
|
|
| |
Den_spb | Дата: Пятница, 11.02.2011, 23:50 | Сообщение # 532 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Добрый день. То, что машина в данном случае замораживается - нормальное явление. Для разморозки надо применить команду 05EE. Рекомендую добавить проверки на существование для игрока и особенно - для машины, т.к. если машина найдена не будет, то при попытке совершения действий над ней игра вылетит. Код примерно выглядит так:Code {$CLEO} wait 0 while true wait 0 if not player.Defined($player_char) then continue end if 0AB0: 8 // Backspace then 0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to 0@ closest_ped_to 1@ if 056E: car 0@ defined then 072B: put_actor $PLAYER_ACTOR into_car 0@ passengerseat -1 05EE: unfreeze_car 0@ while_on_path repeat wait 0 until 8ab0: 8 end end end
|
|
| |
DK22Pac | Дата: Суббота, 12.02.2011, 01:49 | Сообщение # 533 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Можно ли проверить, сдаёт ли назад автомобиль?
|
|
| |
Den_spb | Дата: Суббота, 12.02.2011, 02:12 | Сообщение # 534 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Можно получить текущий номер передачи (0AB8:) и сравнить его с нулём. Проверку нулевого значения надо совместить с проверкой на то, что машина находится в движении, т.к. если машина неподвижна, то текущий номер передачи - тоже ноль.
|
|
| |
DK22Pac | Дата: Суббота, 12.02.2011, 11:04 | Сообщение # 535 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Спасибо. Сделал так Code 0AB8: get_vehicle 3@ current_gear_to 0@ 02E3: 1@ = car 3@ speed if and 1@ > 0.0 0@ == 0 Den_Spb, тут на одном сайте нашёл аналог твоего скрипта с поворотниками, меня там эта фраза заинтересовала: Quote Поворотники, аварийка, задний ход и индикаторы находятся в иерархии модели самого авто (прицепа).
Сообщение отредактировал DK22Pac - Суббота, 12.02.2011, 12:01 |
|
| |
-=MaZaHaKa=- | Дата: Суббота, 12.02.2011, 12:24 | Сообщение # 536 |
Группа: Пользователи
Сообщений: 2
Статус: Offline
| Den_spb, спасибо, но у меня опять проблема. Если использовать опкод Code 072B: put_actor $PLAYER_ACTOR into_car 0@ passengerseat -1 всё работает, а если использовать вот этот Code 05CA: AS_actor $PLAYER_ACTOR enter_car 0@ passenger_seat -1 -1 ms , то не работает. А я хочу тобы игрок садился в машину, а не сразу появлялся в ней
Сообщение отредактировал -=MaZaHaKa=- - Суббота, 12.02.2011, 13:23 |
|
| |
Den_spb | Дата: Суббота, 12.02.2011, 18:30 | Сообщение # 537 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Quote (DK22Pac) Сделал так Хорошо. Но вообще для проверки неподвижности есть специальный опкод - 01C1: car $TEMPVAR_ACTOR_CAR stopped Quote (DK22Pac) Поворотники, аварийка, задний ход и индикаторы находятся в иерархии модели самого авто (прицепа). Знаю этот скрипт. Для поворотников там используются стандартные объекты иерархии (модели повреждённых деталей транспорта), которые добавляются в основную модель на этапе её создания в 3ds Max. Если нужно осуществить мигание поворотника, то с помощью стандартных опкодов эти объекты периодически создаются и удаляются. Quote (-=MaZaHaKa=-) А я хочу тобы игрок садился в машину, а не сразу появлялся в ней Как разморозить машину в данном случае - не знаю.
|
|
| |
DK22Pac | Дата: Суббота, 12.02.2011, 19:27 | Сообщение # 538 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Quote (Den_spb) Знаю этот скрипт. Для поворотников там используются стандартные объекты иерархии (модели повреждённых деталей транспорта), которые добавляются в основную модель на этапе её создания в 3ds Max. Если нужно осуществить мигание поворотника, то с помощью стандартных опкодов эти объекты периодически создаются и удаляются. Ясно. Я думал там через какие-то замуты создаются новые элементы в иерархии. Ну твой скрипт явно выигрывает у этого.
|
|
| |
Den_spb | Дата: Суббота, 12.02.2011, 19:41 | Сообщение # 539 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Преимущество того скрипта в том, что поворотники получаются более реалистичными, т.к. они являются смоделированными объектами, к тому же они находятся точно на нужном месте (там, куда их поставит моделлер). Преимущество моего скрипта - универсальность (не нужно редактировать модели или прописывать какие-то настройки).
|
|
| |
DK22Pac | Дата: Суббота, 05.03.2011, 21:41 | Сообщение # 540 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Что ещё в структуре педа можно задеять для "отметки" педа?
|
|
| |