Среда, 24.04.2024, 04:04
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Вопросы по созданию КЛЕО-скриптов
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, спасибо, в будещем мне это поможет smile

Добавлено (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
 
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Поиск: