Вопросы по созданию КЛЕО-скриптов
|
|
Den_spb | Дата: Суббота, 25.09.2010, 20:42 | Сообщение # 316 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Здесь можно пойти и другим путём - искать поблизости от летящего объекта другие объекты и машины (опкоды клео4 0AE1, 0AE2). Если объекты или машины найдены, то можно произвести над ними необходимые действия. А почему ты решил, что no_obstacles работает медленно и неточно?
|
|
| |
DK22Pac | Дата: Суббота, 25.09.2010, 21:22 | Сообщение # 317 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Например, даже если обьект движется только по оси Z, отрезок между 0.0 до 30.0 (Поправка: обьект тут ни при чём. Имелось ввиду, если надо проверить этот отрезок на наличие кое-каких преград.) Code for 0@=0.0 to 30.0 step 0.1 (Чем меньше, тем точнее. А чем больше итераций, тем больше будет тормозить игра.) if 86bd: NOT no_obstacles_between 0.0 0.0 0.0 and 0.0 0.0 0@ 1 1 1 1 then { 0.0 0.0 0@ - координаты столкновения } ... end end
Сообщение отредактировал DK22Pac - Суббота, 25.09.2010, 21:32 |
|
| |
klm88 | Дата: Понедельник, 27.09.2010, 16:24 | Сообщение # 318 |
Группа: Пользователи
Сообщений: 21
Статус: Offline
| Будет ли код 02AA: set_car 0@ immune_to_nonplayer 1 не давать тачке исчезать если удалиться от неё в другую область?(скрипт автобусов). А если поставить нонплэер0 или 2 ?
|
|
| |
Den_spb | Дата: Среда, 29.09.2010, 06:32 | Сообщение # 319 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Транспорт, созданный игрой, можно сделать уникальным с помощью такой операции:Code 0A97: 1@ = car 0@ struct 0AA6: call_method 0x6D5D70 struct 1@ num_params 1 pop 0 2 После этого транспорт не сможет исчезнуть до тех пор, пока не будет взорван или пока не будет снят уникальный статус командой car.removeReferences(0@)
|
|
| |
DK22Pac | Дата: Пятница, 01.10.2010, 23:26 | Сообщение # 320 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Можно так записать? Code 0390: load_txd_dictionary 'txd' // 1111.txd, ... 1131.txd 1@ = 0 for 0@ = 1111 to 1131 Inc(1@) 038F: load_texture 0@s as 1@ end
|
|
| |
Den_spb | Дата: Пятница, 01.10.2010, 23:37 | Сообщение # 321 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Так не получится. В строках за один символ отвечает один байт, хранение чисел организовано по-другому. Вроде в клео4 есть опкоды для конвертации чисел в строки.
|
|
| |
DK22Pac | Дата: Суббота, 02.10.2010, 13:39 | Сообщение # 322 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Можно ли использовать опкоды с получением структуры если достоверно не известно, найден или нет обьект
|
|
| |
Den_spb | Дата: Суббота, 02.10.2010, 19:11 | Сообщение # 323 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Не знаю, я бы сделал проверку на существование объекта.
|
|
| |
Zhenya | Дата: Воскресенье, 10.10.2010, 19:16 | Сообщение # 324 |
Группа: Пользователи
Сообщений: 26
Статус: Offline
| Den_spb, получается чтобы машина всегда оставлась надо так? Quote // 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 'CAR' :CAR_11 wait 0 if Player.Defined($PLAYER_CHAR) else_jump @CAR_11 Model.Load(#FORTUNE) 038B: load_requested_models :CAR_38 wait 0 if Model.Available(#FORTUNE) else_jump @CAR_38 0@ = Car.Create(#FORTUNE, -2029.671, 157.9567, 28.8359) Car.Angle(0@) = 90 Car.SetImmunities(0@, 1, 1, 1, 1, 1) Model.Destroy(#FORTUNE) 0A93: end_custom_thread 0A97: 1@ = car 0@ struct 0AA6: call_method 0x6D5D70 struct 1@ num_params 1 pop 0 2
http://img209.imageshack.us/img209/2344/signaturek.png
Сообщение отредактировал Zhenya - Воскресенье, 10.10.2010, 19:18 |
|
| |
Den_spb | Дата: Воскресенье, 10.10.2010, 19:29 | Сообщение # 325 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Во-первых, команды 0A97 и 0AA6 не будут выполнены, так как скрипт будет уже завершён. Эти команды следовало бы вставить перед 0A93. Во-вторых, эти команды тут и не нужны, т.к. транспорт, созданный скриптом и так имеет уникальный статус.
|
|
| |
Zhenya | Дата: Воскресенье, 10.10.2010, 19:34 | Сообщение # 326 |
Группа: Пользователи
Сообщений: 26
Статус: Offline
| Den_spb, спасибо, а вообще возможно ли сделать как только ты отодвинул машину от тех координат и куда нибудь отехал, она опять появилась?
http://img209.imageshack.us/img209/2344/signaturek.png
|
|
| |
Den_spb | Дата: Воскресенье, 10.10.2010, 19:44 | Сообщение # 327 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Это проще всего реализовать с помощью парковочного генератора, который создаётся и включается двумя командами: Quote 014B: 0@ = init_parked_car_generator #RHINO color -1 -1 1 alarm 0 door_lock 0 0 10000 at 2435.302 -1671.848 12.8007 angle 90.0 014C: set_parked_car_generator 0@ cars_to_generate_to 101 Назначение параметров написано в справке Sanny Builder (раздел Статьи - Введение в скриптинг - Транспорт) Однако в клео этот метод использовать не рекомендуется, если ты будешь сохранять игру, поскольку при сохранении игры парковки записываются в сейв. Пример скрипта:Quote {$CLEO} 014B: 0@ = init_parked_car_generator #RHINO color -1 -1 1 alarm 0 door_lock 0 0 10000 at 2435.302 -1671.848 12.8007 angle 90.0 014C: set_parked_car_generator 0@ cars_to_generate_to 101 0A93:
|
|
| |
Zhenya | Дата: Понедельник, 11.10.2010, 15:14 | Сообщение # 328 |
Группа: Пользователи
Сообщений: 26
Статус: Offline
| Den_spb, спасибо, в будещем мне это поможет Добавлено (11.10.2010, 15:14) --------------------------------------------- Den_spb, можно вопрос? Почему то у меня машина взрывается и колёса прокалываются, скажите пожалуйста что не так? 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 'CAR'
:CAR_11 wait 0 if Player.Defined($PLAYER_CHAR) else_jump @CAR_11 Model.Load(#FORTUNE) 038B: load_requested_models
:CAR_38 wait 0 if Model.Available(#FORTUNE) else_jump @CAR_38 0@ = Car.Create(#FORTUNE, -2029.671, 157.9567, 28.8359) Car.Angle(0@) = 90 Car.SetImmunities(0@, 1, 1, 1, 1, 1) Model.Destroy(#FORTUNE) 0A93: end_custom_thread
http://img209.imageshack.us/img209/2344/signaturek.png
Сообщение отредактировал Zhenya - Понедельник, 11.10.2010, 15:35 |
|
| |
Den_spb | Дата: Вторник, 12.10.2010, 00:45 | Сообщение # 329 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Quote (Zhenya) Почему то у меня машина взрывается и колёса прокалываются, скажите пожалуйста что не так? Если машина перевернётся, то она загорится и взорвётся независимо от того, есть ли у неё иммунитеты. Чтобы сделать колёса непробиваемыми, следует добавить команду: Quote 053F: set_car 0@ tires_vulnerability 0 p.s. угол, как и координаты, является дробным числом, поэтому следует писать так: Quote Car.Angle(0@) = 90.0
|
|
| |
Zhenya | Дата: Вторник, 12.10.2010, 13:46 | Сообщение # 330 |
Группа: Пользователи
Сообщений: 26
Статус: Offline
| Quote (Den_spb) Если машина перевернётся, то она загорится и взорвётся независимо от того, есть ли у неё иммунитеты. Но у меня как то получилсь то что я её взорвал с помощью огнемёта.. ну да ладно А на счёт колёс - спасибо
http://img209.imageshack.us/img209/2344/signaturek.png
|
|
| |