Суббота, 20.04.2024, 01:20
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Вопросы по созданию КЛЕО-скриптов
ILYALIONДата: Вторник, 02.08.2011, 16:03 | Сообщение # 796
Группа: Проверенные
Сообщений: 325
Статус: Offline
В опкоде 00EE: actor $PLAYER_ACTOR 0 near_point -37.231 -1558.5866 radius 6.5 6.5 in_car второй радиус это радиус в высоту?

Добавлено (02.08.2011, 16:03)
---------------------------------------------
А какие бывают номера костей? Мне нужна именно правая ладонь. А нельзя приделать оружие, а не объект?


Сообщение отредактировал ILYALION - Вторник, 02.08.2011, 16:53
 
DK22PacДата: Вторник, 02.08.2011, 16:59 | Сообщение # 797
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Quote (ILYALION)
В опкоде 00EE: actor $PLAYER_ACTOR 0 near_point -37.231 -1558.5866 radius 6.5 6.5 in_car второй радиус это радиус в высоту?

1ый - по оси X, второй - по оси Y.
Quote (ILYALION)
Мне нужна именно правая ладонь.

Пробуй 5 или 6.
Quote (ILYALION)
А нельзя приделать оружие, а не объект?

Прикрепи обект с моделью оружия.
 
ILYALIONДата: Вторник, 02.08.2011, 18:21 | Сообщение # 798
Группа: Проверенные
Сообщений: 325
Статус: Offline
А тогда в опкоде 00EE высота берётся любая? Если я использую опкод 00BC: text_highpriority 'MTIME3' 5000 ms 1, то как Sanny Builder поймёт, откуда брать текст-из american.gxt или из fxt файла, и как указать игре выбрать нужный fxt файл из всех тех, которые у меня находятся в CLEO/CLEO_TEXT?
 
VitalДата: Вторник, 02.08.2011, 18:47 | Сообщение # 799
Группа: Проверенные
Сообщений: 206
Статус: Offline
ILYALION, если ты создаешь текст в .fxt, то по автомату игра выберет его. Я так делал перевод DYOM'а (версии 4.1) с помощью .fxt файла. Выбирать ничего не нужно, игра автоматически находит, какая запись в каком файле.
В опокде 00ЕЕ раз нету третьей координаты (Z - высота), значит ты можешь находиться на любой высоте, хоть миллион, хоть минус миллион. Если нужна конкретная высота, то используй другой опкод, например 0100


SCRIPTER
 
ILYALIONДата: Вторник, 02.08.2011, 21:55 | Сообщение # 800
Группа: Проверенные
Сообщений: 325
Статус: Offline
Vital, спасибо. Как можно объединить следующие условия:
4@ > 25
00EE: actor $PLAYER_ACTOR 0 near_point -37.231 -1558.5866 radius 30.9 30.9 in_car
6@ == 2, Чтобы выполнялось сдедующее: или 4@ > 25 и одновременно игрок находится в точке 37.231 -1558.5866 радиусом 30.9 30.9 в авто, или 6@=2.
Т.е:
Code
if or
4@ > 25                    //эти 2 условия
00EE:   actor $PLAYER_ACTOR 0 near_point -37.231 -1558.5866  radius 30.9 30.9 in_car//надо объединить
6@ == 2                    //а вот это отдельно
then
...

Добавлено (02.08.2011, 21:44)
---------------------------------------------
У меня не работает скрипт

Зависает, как только подъезжаю к тому месту, где должны создаваться актёры. Если удалить всё, после метки :1SPEED, то всё работает хорошо. В чём проблема?

Добавлено (02.08.2011, 21:55)
---------------------------------------------
DK22Pac, у меня объект не прицепляется к руке игрока. Я делал так:

Code
{$CLEO}     
model.Load(#LAPD1)  
model.Load(334)  
04ED: load_animation "NULL"
038B: load requested models  
:NONAME_22
wait 0  
if and   
    Model.Available(#LAPD1)
    Model.Available(334)
jf @NONAME_22  
:NET
wait 0
if
00EC:   actor $PLAYER_ACTOR 0 near_point 2491.6575 -1663.4751 radius 30.0 30.0  
jf @NET
009A: 2@ = create_actor 6 #LAPD1 at 2491.5132 -1667.3541 13.3437
Actor.Angle(2@) = 358.4333
Model.Destroy(#LAPD1)
Object.Create(3@,334,2491.5132, -1667.3541,-32.0)
09A0: actor 2@ attach_object 3@ with_offset 1.0 0.0 0.0 on_bone 6 16 perform_animation "NULL" IFP_file "NULL" time -1  
Model.Destroy(334)
0A93:
В чём проблема?
 
DK22PacДата: Среда, 03.08.2011, 01:47 | Сообщение # 801
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Quote (ILYALION)
DK22Pac, у меня объект не прицепляется к руке игрока. Я делал так:

Code
{$CLEO}       
#LAPD1.Load
model.Load(334)    
038B: load requested models    
:NET   
wait 0   
if
      player.Defined(0)
jf @NET
if   
      00EC: actor $PLAYER_ACTOR 0 near_point 2491.6575 -1663.4751 radius 30.0 30.0    
jf @NET   
009A: 2@ = create_actor 6 #LAPD1 at 2491.5132 -1667.3541 13.3437   
Actor.Angle(2@) = 358.4333   
#LAPD1.Destroy
Object.Create(3@, 334,2491.5132, -1667.3541,-32.0)   
070A: AS_actor 2@ attach_to_object 3@ offset 0.0 0.0 0.0 on_bone 6 16 perform_animation "NULL" IFP_file "NULL" time -1   
actor.RemoveReferences(2@)
object.RemoveReferences(3@)  
Model.Destroy(334)  
0A93:

Добавлено (03.08.2011, 01:47)
---------------------------------------------

Quote (ILYALION)
Зависает, как только подъезжаю к тому месту, где должны создаваться актёры. Если удалить всё, после метки :1SPEED, то всё работает хорошо. В чём проблема?

Тут у тебя несколько ошибок:
1) Ты забыл команду задержки (wait или 003D:);
2) В таком цикле надо обязательно проверять, сушествует ли игрок;
3) Перед тем, как записывать в переменную хендл авто игрока, надо проверить, находится ои он за рулём автомобиля;
4) Чтобы не удалять референс, хендл авто лучше записывать опкодом 0811;
5) Скорость в переменную записывается как float.
Code
{$CLEO .cs}  
wait 0  
:START  
wait 0  
if  
Player.Defined($PLAYER_CHAR)  
else_jump @START  
if  
00EC: actor $PLAYER_ACTOR 0 near_point -59.7656 -1593.14 radius 150.0 150.0  
else_jump @START  
model.Load(#LAPD1)  
model.Load(596)  
038B: load requested models  
009A: 0@ = create_actor 6 #LAPD1 at -56.0847 -1590.3318 2.8584  
Actor.Angle(0@) = 322.6035  
0638: AS_actor 0@ stay_put 1
car.Create(1@,596,-60.1223, -1591.3063, 2.6107)  
Car.Angle(1@) = 232.5829  
car.DoorStatus(1@) = 0  
009A: 2@ = create_actor 6 #LAPD1 at -61.4467 -1592.4645 2.6107  
036A: put_actor 2@ in_car 1@  
0638: AS_actor 2@ stay_put 1  
model.Destroy(#LAPD1)  
model.Destroy(596)  

:1SPEED
003D:
if
     player.Defined(0)
jf @1SPEED
if
     actor.Driving($PLAYER_ACTOR)
jf @1SPEED
0811: 3@ = actor $PLAYER_ACTOR car_nosave
02E3: 4@ = car 3@ speed  
0209: 6@ = random_int_in_ranges 1 11  
if and  
4@ > 25.0  
00EE: actor $PLAYER_ACTOR 0 near_point -37.231 -1558.5866 radius 30.9 30.9 in_car  
jf @1SPEED  
if or  
00EE: actor $PLAYER_ACTOR 0 near_point -40.568 -1573.0104 radius 6.5 6.5 in_car  
00EE: actor $PLAYER_ACTOR 0 near_point -34.5664 -1574.284 radius 6.5 6.5 in_car  
00EE: actor $PLAYER_ACTOR 0 near_point -28.1351 -1577.505 radius 6.5 6.5 in_car  
00EE: actor $PLAYER_ACTOR 0 near_point -50.1422 -1588.973 radius 6.5 6.5 in_car  
00EE: actor $PLAYER_ACTOR 0 near_point -45.9694 -1591.463 radius 6.5 6.5 in_car  
00EE: actor $PLAYER_ACTOR 0 near_point -40.8672 -1595.787 radius 6.5 6.5 in_car  
00EE: actor $PLAYER_ACTOR 0 near_point -57.878 -1583.2549 radius 8.0 8.0 in_car  
then
if actor.Defined(0@)
then  
model.Load(334)  
04ED: load_animation "MISC"  
038B: load requested models  
01B2: give_actor 0@ weapon 3 ammo 1  
0638: AS_actor 0@ stay_put 0  
0605: actor 0@ perform_animation_sequence "HIKER_POSE" IFP_file "MISC" 4.0 loop 1 0 0 0 time 7000  
Model.Destroy(334)  
03BC: 5@ = create_sphere_at -64.3976 -1594.6892 2.6759 radius 3.0  
00BC: text_highpriority 'DPS_MARK' 7000 ms 1
wait 7100
04EF: release_animation "MISC"  
end
end
0A93:


Сообщение отредактировал DK22Pac - Среда, 03.08.2011, 01:37
 
ILYALIONДата: Среда, 03.08.2011, 06:49 | Сообщение # 802
Группа: Проверенные
Сообщений: 325
Статус: Offline
DK22Pac, можете объяснить, в чём я ошибся? Смысл вышеприведённого Вами скрипта в том, чтобы приближении к одному месту ближе, чем на 150м, создавались копы. Потом, если скорость моего авто больше 90 км/ч
Code
if and   
  4@ > 25.0   
  00EE: actor $PLAYER_ACTOR 0 near_point -37.231 -1558.5866 radius 30.9 30.9 in_car   
  jf @1SPEED  
, то копы, если я проеду дорогу в определённых местах,
Code
if or   
  00EE: actor $PLAYER_ACTOR 0 near_point -40.568 -1573.0104 radius 6.5 6.5 in_car   
  00EE: actor $PLAYER_ACTOR 0 near_point -34.5664 -1574.284 radius 6.5 6.5 in_car   
  00EE: actor $PLAYER_ACTOR 0 near_point -28.1351 -1577.505 radius 6.5 6.5 in_car   
  00EE: actor $PLAYER_ACTOR 0 near_point -50.1422 -1588.973 radius 6.5 6.5 in_car   
  00EE: actor $PLAYER_ACTOR 0 near_point -45.9694 -1591.463 radius 6.5 6.5 in_car   
  00EE: actor $PLAYER_ACTOR 0 near_point -40.8672 -1595.787 radius 6.5 6.5 in_car   
  00EE: actor $PLAYER_ACTOR 0 near_point -57.878 -1583.2549 radius 8.0 8.0 in_car   
  then
останавливали меня
Code
model.Load(334)   
  04ED: load_animation "MISC"   
  038B: load requested models   
  01B2: give_actor 0@ weapon 3 ammo 1   
  0638: AS_actor 0@ stay_put 0   
  0605: actor 0@ perform_animation_sequence "HIKER_POSE" IFP_file "MISC" 4.0 loop 1 0 0 0 time 7000   
  Model.Destroy(334)   
  03BC: 5@ = create_sphere_at -64.3976 -1594.6892 2.6759 radius 3.0   
  00BC: text_highpriority 'DPS_MARK' 7000 ms 1  
  wait 7100  
  04EF: release_animation "MISC"  
Но ничего не происходит. Я даже переделал условие: не 90 км/ч, а брал случайное число из маленьк. интервала и делал проверку на равность одной из переменных этим числам, но меня не останавливали. Почему?
 
ILYALIONДата: Среда, 03.08.2011, 07:04 | Сообщение # 803
Группа: Проверенные
Сообщений: 325
Статус: Offline
DK22Pac, вышеприведённый Вами первый код не работал. Я его переделал и всё работает.
Code
{$CLEO}        
  #LAPD1.Load  
  model.Load(334)     
  038B: load requested models     
  :NET    
  wait 0    
  if  
       player.Defined(0)  
  jf @NET  
  if    
       00EC: actor $PLAYER_ACTOR 0 near_point 2491.6575 -1663.4751 radius 30.0 30.0     
  jf @NET    
  009A: 2@ = create_actor 6 #LAPD1 at 2491.5132 -1667.3541 13.3437    
  Actor.Angle(2@) = 358.4333     
  Object.Create(3@, 334,2491.5132, -1667.3541,-32.0)    
  070A: AS_actor 2@ attach_to_object 3@ offset 0.0 0.0 0.0 on_bone 6 16 perform_animation "NULL" IFP_file "NULL" time -1  
  0A93:
Как изменить угол дубинки? (Как я хочу видно на прикреплённом скрине)
Прикрепления: 4646612.jpg (95.0 Kb)
 
DK22PacДата: Среда, 03.08.2011, 13:05 | Сообщение # 804
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Quote (ILYALION)
DK22Pac, можете объяснить, в чём я ошибся? Смысл вышеприведённого Вами скрипта в том, чтобы приближении к одному месту ближе, чем на 150м, создавались копы. Потом, если скорость моего авто больше 90 км/ч

Возможно, ошибка здесь:
Quote (ILYALION)
if and
4@ > 25.0
00EE: actor $PLAYER_ACTOR 0 near_point -37.231 -1558.5866 radius 30.9 30.9 in_car

После того, как эта проверка выполнится, будут произведены другие проверки:
Quote (ILYALION)
if or
00EE: actor $PLAYER_ACTOR 0 near_point -40.568 -1573.0104 radius 6.5 6.5 in_car
00EE: actor $PLAYER_ACTOR 0 near_point -34.5664 -1574.284 radius 6.5 6.5 in_car
00EE: actor $PLAYER_ACTOR 0 near_point -28.1351 -1577.505 radius 6.5 6.5 in_car
00EE: actor $PLAYER_ACTOR 0 near_point -50.1422 -1588.973 radius 6.5 6.5 in_car
00EE: actor $PLAYER_ACTOR 0 near_point -45.9694 -1591.463 radius 6.5 6.5 in_car
00EE: actor $PLAYER_ACTOR 0 near_point -40.8672 -1595.787 radius 6.5 6.5 in_car
00EE: actor $PLAYER_ACTOR 0 near_point -57.878 -1583.2549 radius 8.0 8.0 in_car 

А ведь игрок не успеет доехать в любые из этих точек.
http://pastebin.com/vp8VGW0U


Сообщение отредактировал DK22Pac - Среда, 03.08.2011, 13:11
 
ILYALIONДата: Среда, 03.08.2011, 16:47 | Сообщение # 805
Группа: Проверенные
Сообщений: 325
Статус: Offline
DK22Pac, а как изменить угол дубинки?
 
DK22PacДата: Среда, 03.08.2011, 17:33 | Сообщение # 806
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
ILYALION, в 3ds max'е можешь изменить пзицию и поворот pivot'а.
 
d88Дата: Среда, 03.08.2011, 19:00 | Сообщение # 807
Группа: Проверенные
Сообщений: 113
Статус: Offline
DK22Pac, a ты не знаешь, как увеличить силу удара актёра?
 
VitalДата: Вторник, 16.08.2011, 17:23 | Сообщение # 808
Группа: Проверенные
Сообщений: 206
Статус: Offline
У меня вот два вопроса возникло. Первый: как сделать, чтобы на одной территории была не одна банда, а несколько (как в одном из чит-кодов) Вот код, я пробовал, но попадаются только члены одной банды, а не двух.
Code

0767: set_zone 'LA' popcycle_group_for_peds_and_cars_to 7   
0767: set_zone 'VE' popcycle_group_for_peds_and_cars_to 7
0767: set_zone 'SF' popcycle_group_for_peds_and_cars_to 7
076C: set_zone 'LA' gang 0 density_to 75
076C: set_zone 'LA' gang 1 density_to 75  
076C: set_zone 'VE' gang 0 density_to 75
076C: set_zone 'VE' gang 1 density_to 75  
076C: set_zone 'SF' gang 0 density_to 75
076C: set_zone 'SF' gang 1 density_to 75
08EA: enable_gangs_spawn 1
0879: enable_gang_wars 0  
0237: set_gang 0 weapons_to 29 31 16  
0237: set_gang 1 weapons_to 24 30 16

И второе: я хотел бы узнать, есть ли хотя бы парочка свободных адресов структуры актеров (неиспользованные игрой). То есть, хотя бы два адреса, не занятых ничем, куда можно что-нибудь записать, и тогда актер бы хранил информацию до смерти. Причем тогда можно было бы обойтись без массивов из кучи актеров. Вот пример, который я хотел привести, и который хотел бы осуществить. Есть два массива с текстами: один - с именами, другой - с фамилиями. И индекс (в виде случайного числа) записывался бы каждому "пойманному" актеру в свободные адреса структуры (если есть и если не заняты). И тогда можно было бы сделать отображение имен и фамилий (случайных для каждого актера) как в STALKER'е. Можно ли так сделать? Без массивов.


SCRIPTER
 
Den_spbДата: Вторник, 16.08.2011, 23:54 | Сообщение # 809
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (DK22Pac)
4) Чтобы не удалять референс, хендл авто лучше записывать опкодом 0811;
Seemann рекомендовал использовать 03C0. Референс он не включает (делает машину "уникальной" только опкод 0327).

Quote (Vital)
Первый: как сделать, чтобы на одной территории была не одна банда, а несколько (как в одном из чит-кодов) Вот код, я пробовал, но попадаются только члены одной банды, а не двух.
Я бы попробовал использовать команды 076C по очереди:
Code
while true
     wait 0
     if
         32@ > 10000
     then
         32@ = 0  
         076C: set_zone 'LA' gang 1 density_to 75
     else
         if
             32@ > 5000
         then
             076C: set_zone 'LA' gang 0 density_to 75
         end         
     end
end


Quote (Vital)
И второе: я хотел бы узнать, есть ли хотя бы парочка свободных адресов структуры актеров (неиспользованные игрой).
Можно попробовать поискать свободные смещения самому, но проще и надёжнее воспользоваться другим способом: создать в скрипте hex-буффер, в котором будут хранится нужные данные.
 
DK22PacДата: Среда, 17.08.2011, 00:37 | Сообщение # 810
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Quote (Den_spb)
0811

Этот опкод использовался в миссиях, и записывал хендл он в пременную $TEMPVAR_CAR.
Он тоже не присваивает референс.
Quote (Den_spb)
Seemann рекомендовал использовать 03C0. Референс он не включает (делает машину "уникальной" только опкод 0327).

Спасибо smile
Quote (Vital)
И второе: я хотел бы узнать, есть ли хотя бы парочка свободных адресов структуры актеров

Надо смотреть конструктор CPed, узнать размер структуры, сверять, все ли смещения там заполняются...


Сообщение отредактировал DK22Pac - Среда, 17.08.2011, 00:37
 
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Поиск: