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