Вопросы по созданию КЛЕО-скриптов
|
|
Den_spb | Дата: Среда, 02.06.2010, 22:07 | Сообщение # 211 |
Создатель сайта
Группа: Администраторы
Сообщений: 1598
Статус: Offline
| Quote (klm88) Каким кодом можно привязать часть маршрута автобуса к путям машин(где они есть). Есть опкоды для работы с путями машин (если нужно это) - их можно найти в Поиске Опкодов по словосочетанию "car path". Quote (klm88) Как правильно и куда нужно перепрыгнуть чтоб правильно задать условия if or если их больше 9. Почитай в справке, как оформляются условия (глава Условия). У тебя в коде написана бессмыслица. Не делай того, чего не понимаешь - сначала разберись. Quote (klm88) игра будет вылетать через какое то время? Игра не вылетит - на это здесь нет причин. Но записывать указатель на что-либо в переменную-таймер бессмысленно, т.к. этот указатель будет тут же стёрт и обратиться к созданному объекту будет нельзя. Quote (klm88) А есть ли какой код типа : actor $PLAYER ACTOR near car 1@ in radius 5.0 5.0 5.0 ? что то там только 08A0: actor 0@ in_radius 100.0 near_model #NULL Не понял, что должен делать код? Quote (klm88) Что нужнее проверять чтоб не было вылетаний: if not сar 1@wrecked ,или if car 1@ defined ? Хороший вопрос. Прежде всего нужно проверять, существует ли машина кодом 056E: car 1@ defined (для актёра аналогичный код - actor defined, для объекта - object exists). Код сar 1@wrecked проверяет, выведена ли машина из строя (взорвана, потоплена) - если применить его к несуществующей машине, то игра вылетит. Quote (klm88) если поставить ignore paths то будет ли пытаться выехать на левую полосу? Насколько помню, после установки ignore paths машина поедет в точку по кратчайшей траектории (по прямой) Quote (klm88) Что значит 072B: put_actor $Player actor into_car 36@ passengerseat -1 ? a ecли сделать -8 или 6,9 - то вылетит ? Опкод сажает актёра в машину на указанное пассажирское сиденье. -1 в скриптинге обычно означает любое или неопределенное значение. Quote (klm88) Как лучше добавить педов садится-выходить из автобуса на остановках Если нужно сделать выход пассажиров из автобуса, то: 1.создаешь пассажиров 2.сажаешь их в автобус 3.даешь команду на выход из автобуса 4.удаляешь у актёров references. Чтобы пассажиры входили в автобус, нужно "ловить" педов, находящихся неподалёку от автобуса кодами типа "get actor". Quote Что означает create actor in car@ handle as @? Создаёт актёра и сажает его в указанную машину.
|
|
| |
klm88 | Дата: Четверг, 03.06.2010, 00:18 | Сообщение # 212 |
Группа: Пользователи
Сообщений: 21
Статус: Offline
| Спасибо. Car.SetDriverBehaviour(0@, IgnoreRoadPaths) -такой что ли код для езды по прямой без путей? А куда это лучше поставить : перед car 1@ drive to 1.0 2.0 3.0 или после ?
Сообщение отредактировал klm88 - Четверг, 03.06.2010, 00:22 |
|
| |
Den_spb | Дата: Четверг, 03.06.2010, 03:17 | Сообщение # 213 |
Создатель сайта
Группа: Администраторы
Сообщений: 1598
Статус: Offline
| Quote (klm88) А куда это лучше поставить : перед car 1@ drive to 1.0 2.0 3.0 или после ? По-моему не важно.
|
|
| |
klm88 | Дата: Четверг, 03.06.2010, 09:03 | Сообщение # 214 |
Группа: Пользователи
Сообщений: 21
Статус: Offline
| А этим кодом ловить педов? 02DD: 88@ = get_random_ped_in_zone 'SAN_AND' with_pedtype_civilian 1 gang 0 criminal/prostitute 1 есть код 0376: 18@ = create_random_actor_at -1576.88 55.26 8.57 ,как проверять тут : if random actor available ?(это чтобы его посадить в тачку) А код 0202: actor $PLAYER_ACTOR near_car 40@ radius 45.0 45.0 flag 0 сработает ли в обоих случаях когда актор он_фут и когда в тачке? На каком расстоянии исчезают тачки из поля зрения актёра? (мне показалось что больше чем 100(м)). Каким кодом можно заставить педа копать или долбить землю лопатой?
Сообщение отредактировал klm88 - Четверг, 03.06.2010, 15:01 |
|
| |
Den_spb | Дата: Четверг, 03.06.2010, 16:03 | Сообщение # 215 |
Создатель сайта
Группа: Администраторы
Сообщений: 1598
Статус: Offline
| Quote (klm88) А этим кодом ловить педов? Code repeat wait 0 08E5: get_actor_in_sphere 27@ 28@ 29@ radius 50.0 handle_as 0@ until 056D: actor 0@ defined Quote (klm88) Каким кодом можно заставить педа копать или долбить землю лопатой? Если в игре есть такие анимации, то их можно применять к актерам скриптом (см. справку, раздел Анимации)
|
|
| |
klm88 | Дата: Четверг, 03.06.2010, 19:03 | Сообщение # 216 |
Группа: Пользователи
Сообщений: 21
Статус: Offline
| у меня @ для сфер не хватит не хватит,их всего 36 сфер+актёров по 5 на каждую надо.А хэндле это что даёт,надо чтоб сели pasengersit 1-9-99 . Хотел такой код применить 0376: 18@ = create_random_actor_at -1576.88 55.26 8.57 но как его проверять не знаю,или можно его вообще не проверять?
Сообщение отредактировал klm88 - Четверг, 03.06.2010, 21:42 |
|
| |
DK22Pac | Дата: Четверг, 03.06.2010, 22:41 | Сообщение # 217 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Скажите а если уникальный актёр умер, то когда игра сама снимет ему уникальность? И ещё. Куда в таком варианте вернётся 'указатель' после return? На проверку (2)? if(1) Actor.Defined(1@) then gosub @obj_create else if Object.Exists(5@) then Object.Destroy(5@) end end if(2) Actor.Defined(2@) then ...
Сообщение отредактировал DK22Pac - Четверг, 03.06.2010, 23:05 |
|
| |
Den_spb | Дата: Пятница, 04.06.2010, 04:36 | Сообщение # 218 |
Создатель сайта
Группа: Администраторы
Сообщений: 1598
Статус: Offline
| Quote (DK22Pac) Скажите а если уникальный актёр умер, то когда игра сама снимет ему уникальность? По моим наблюдениям игра не снимает уникальность мёртвых актёров. А у взорванных машин уникальность снимается (игра их сама удаляет). Quote (DK22Pac) Куда в таком варианте вернётся 'указатель' после return? На проверку (2)? Да. Это лучше видно, если скомпилировать и декомпилировать скрипт (return продолжает выполнение кода со следующей после gosub строки)
|
|
| |
klm88 | Дата: Пятница, 04.06.2010, 14:27 | Сообщение # 219 |
Группа: Пользователи
Сообщений: 21
Статус: Offline
| в коде 05CD: AS_actor -1 exit_car 22@ что такое -1 значит.(тот кто садился на место -1 чтоли ? а тут ещё 05CF: AS_actor 102@ exit_car 73@ when_at 2316.4 -1519.2 24.3 актор 102@ значит выйдет когда кар на этих координатах? А когда актёры садятся в тачки - это анимация или просто код put actor in car driversit/passngrsit ? Den_spb,что значит этод код: Можно ли так набитьCode thread 'USFPEDS' 1@ = 0 10@ = 15 17@ = 4 25@ = 12 9@ = 9
..... 04C4: store_coords_to 11@ 12@ 13@ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0 08E5: get_actor_in_sphere 11@ 12@ 13@ radius 25@ handle_as 1@(17@,16i) 05CA: AS_actor 1@(17@,16i) enter_car 0@ passenger_seat 6 5000 ms if 002D: 10@ >= 9@ // (int) jf @PEDS_813 Actor.RemoveReferences(1@(17@,16i)) wait 10000 jump @NONAME_4076
:PEDS_813 wait 0 1@ = 0 10@ = 15 17@ = 4 25@ = 21 wait 10000
Сообщение отредактировал klm88 - Пятница, 04.06.2010, 23:00 |
|
| |
Den_spb | Дата: Пятница, 04.06.2010, 23:23 | Сообщение # 220 |
Создатель сайта
Группа: Администраторы
Сообщений: 1598
Статус: Offline
| Quote (klm88) что такое -1 значит.(тот кто садился на место -1 чтоли ? Возможно, это означает - "любой актёр, находящийся в данной машине" Quote (klm88) а тут ещё 05CF: AS_actor 102@ exit_car 73@ when_at 2316.4 -1519.2 24.3 актор 102@ значит выйдет когда кар на этих координатах? Судя по описанию опкода - да. Quote (klm88) А когда актёры садятся в тачки - это анимация или просто код put actor in car driversit/passngrsit ? Актёров надо сажать в машины этими кодами: Code 05CB: AS_actor $PLAYER_ACTOR enter_car 41@ as_driver 10000 ms // на водительское место 05CA: AS_actor $ACTOR_SMOKE enter_car 41@ passenger_seat 0 10000 ms // на место пассажира Quote (klm88) 08E5: get_actor_in_sphere 11@ 12@ 13@ radius 25@ handle_as 1@(17@,16i) Записывает в переменную случайного педа, находящегося в сфере с заданным центром и радиусом.
|
|
| |
Den_spb | Дата: Пятница, 04.06.2010, 23:33 | Сообщение # 221 |
Создатель сайта
Группа: Администраторы
Сообщений: 1598
Статус: Offline
| Quote (klm88) Можно ли так набить Замени 1@(17@,16i) на обычную переменную, например 26@. Опкод поиска случайного актёра помести в цикл:Code repeat wait 0 08E5: get_actor_in_sphere 27@ 28@ 29@ radius 50.0 handle_as 0@ until 056D: actor 0@ defined Иначе, если например в данной сфере нет педов, то игра вылетит при попытке посадить несуществующего педа в машину. В конец скрипта нужно добавить 0A93.
|
|
| |
klm88 | Дата: Суббота, 05.06.2010, 02:23 | Сообщение # 222 |
Группа: Пользователи
Сообщений: 21
Статус: Offline
| Проще хотел сделать - надо просто из одного скрипта сделать jump переход на выполнение другого cs. файла и потом вернуться назад .Как этот переход на другой скрипт расписать можно?
|
|
| |
Den_spb | Дата: Суббота, 05.06.2010, 02:56 | Сообщение # 223 |
Создатель сайта
Группа: Администраторы
Сообщений: 1598
Статус: Offline
| Quote (d88) Ты можешь сделать так чтоб они всё мигали жёлтым? Наверно уже неактуально, но всё-таки: http://sannybuilder.com/forums/viewtopic.php?pid=11073#p11073 Quote (klm88) Проще хотел сделать - надо просто из одного скрипта сделать jump переход на выполнение другого cs. файла и потом вернуться назад . Проще думаю как раз объединить скрипты. Если не получается, то координировать их совместную работу с помощью обмена данными (например, с помощью глобальных клео-переменных, о которых я уже говорил)
|
|
| |
klm88 | Дата: Суббота, 05.06.2010, 10:45 | Сообщение # 224 |
Группа: Пользователи
Сообщений: 21
Статус: Offline
| A если сs. сделать kak cm. то внем можно больше @ делать - 1023@ ,но там надо li что либо писать чтобы типа if or $onmission=0 i/ili =1 to jump na metky :START_CAR1? Что такое файлы с расширением с. ?
Сообщение отредактировал klm88 - Суббота, 05.06.2010, 10:49 |
|
| |
Den_spb | Дата: Суббота, 05.06.2010, 16:36 | Сообщение # 225 |
Создатель сайта
Группа: Администраторы
Сообщений: 1598
Статус: Offline
| cm - это клео-миссия. Запускается клео-миссия отдельным скриптом, в который нужно добавить проверку $onmission, т.к. в любой момент времени может быть запущена только одна миссия.
|
|
| |