Среда, 24.04.2024, 01:57
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Вопросы по созданию КЛЕО-скриптов
izerliДата: Четверг, 21.04.2011, 11:05 | Сообщение # 586
Группа: Проверенные
Сообщений: 90
Статус: Offline
Quote (Vital)
Ну вообщем меня интересует следующее :
где узнать ид педов ?
как проверить что у игрока находится в руках определенное оружие и если это то оружие записать его в переменную

data/peds.ide первый столбец - id педов.
Code

0470: 0@ = actor $PLAYER_ACTOR current_weapon

и потом работаешь с этой переменной. в нее запишется номер оружия которое в руках. номера всех оружий можешь посмотреть в справке Sanny Bilder
---------------
есть встречный вопрос. может быть кто-то помнит, что если стрелять из машин вбок то стекло в двери исчезало. так вот, никто не знает как заставить его исчезнуть?


Сообщение отредактировал izerli - Четверг, 21.04.2011, 11:08
 
sexyДата: Четверг, 21.04.2011, 18:00 | Сообщение # 587
Группа: Пользователи
Сообщений: 23
Статус: Offline
Thank you
А как создать желтый квадрат на радаре над сферой в миссии

Добавлено (21.04.2011, 18:00)
---------------------------------------------
Thank you
А как создать желтый квадрат на радаре над сферой в миссии

 
Den_spbДата: Четверг, 21.04.2011, 19:27 | Сообщение # 588
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (sexy)
А как создать желтый квадрат на радаре над сферой в миссии
См. справку Sanny Builder, раздел Документация по SCM - GTA SA - Иконки радара
 
VitalДата: Суббота, 23.04.2011, 17:02 | Сообщение # 589
Группа: Проверенные
Сообщений: 206
Статус: Offline
izerli, есть еще опкод, который проверяет текущее оружие.
02D8: actor $PLAYER_ACTOR current_weapon == 23 //23 - номер оружия, они есть в справке СБ
В нем переменные не нужны, а работает он так же. А если надо проверить наличие определенного оружия не в руках, а вообще, то используй:
actor.HasWeapon(1@,23)
1@ - переменная актера
23 - номер оружия


SCRIPTER
 
sexyДата: Суббота, 23.04.2011, 20:11 | Сообщение # 590
Группа: Пользователи
Сообщений: 23
Статус: Offline
Как раз это мне и надо
 
izerliДата: Воскресенье, 24.04.2011, 11:33 | Сообщение # 591
Группа: Проверенные
Сообщений: 90
Статус: Offline
Quote (Vital)
02D8: actor $PLAYER_ACTOR current_weapon == 23

не знал, спасибо. приму его на заметку.
но ему нужно было еще и записать потом его в переменную, так что переменные все равно выплыли бы)


Сообщение отредактировал izerli - Воскресенье, 24.04.2011, 11:36
 
DK22PacДата: Вторник, 26.04.2011, 09:35 | Сообщение # 592
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Денис, ты не знаешь, как создаются короны для светофоров? Написал небольшой код, и выяснил, что они не цепляются к обьектам, т.е. в их структуре X, Y, Z, - мировые координаты. Или это в dff зашито?
PS вот код для создания проекций под всеми коронами в игре.
Code
{$CLEO .cs}
0000:
while true
     for 7@ = 0xC3E058 to 0xC3EF58 step 0x3C
         0A8E: 8@ = 7@ + 0x38 // *CEntity
         0A8D: 8@ = read_memory 8@ size 4 virtual_protect 0
         if
             8@ > 0
         then
             0A8E: 18@ = 7@ + 0x0  
             0A8D: 21@ = read_memory 18@ size 4 virtual_protect false // X
             inc(18@, 4)  
             0A8D: 22@ = read_memory 18@ size 4 virtual_protect false // Y
             inc(18@, 4)  
             0A8D: 23@ = read_memory 18@ size 4 virtual_protect false // Z
             0A8E: 18@ = 7@ + 0x2C  
             0A8D: 4@ = read_memory 18@ size 1 virtual_protect false // Red    
             inc(18@)  
             0A8D: 5@ = read_memory 18@ size 1 virtual_protect false // Green  
             inc(18@)  
             0A8D: 6@ = read_memory 18@ size 1 virtual_protect false // Blue  
             inc(8@, 0x14) // *RwMatrix
             0A8D: 8@ = read_memory 8@ size 4 virtual_protect false
             inc(8@, 0x30)
             0A8D: 24@ = read_memory 8@ size 4 virtual_protect false // X
             inc(8@, 0x4)
             0A8D: 25@ = read_memory 8@ size 4 virtual_protect false // Y
             inc(8@, 0x4)
             0A8D: 26@ = read_memory 8@ size 4 virtual_protect false // Z
             005B: 24@ += 21@
             005B: 25@ += 22@
             005B: 26@ += 23@                  
             016F: add_shadow_type 3 rotation_factor 0.0 4.0 1 RGB 4@ 5@ 6@ at 24@ 25@ 26@
         else
             0A8E: 18@ = 7@ + 0x0  
             0A8D: 21@ = read_memory 18@ size 4 virtual_protect false // X
             inc(18@, 4)  
             0A8D: 22@ = read_memory 18@ size 4 virtual_protect false // Y
             inc(18@, 4)  
             0A8D: 23@ = read_memory 18@ size 4 virtual_protect false // Z
             0A8E: 18@ = 7@ + 0x2C  
             0A8D: 4@ = read_memory 18@ size 1 virtual_protect false // Red    
             inc(18@)  
             0A8D: 5@ = read_memory 18@ size 1 virtual_protect false // Green  
             inc(18@)  
             0A8D: 6@ = read_memory 18@ size 1 virtual_protect false // Blue                  
             016F: add_shadow_type 3 rotation_factor 0.0 4.0 1 RGB 4@ 5@ 6@ at 21@ 22@ 23@
         end
     end  
     003D:      
end


Сообщение отредактировал DK22Pac - Вторник, 26.04.2011, 09:40
 
Den_spbДата: Вторник, 26.04.2011, 19:38 | Сообщение # 593
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (DK22Pac)
Денис, ты не знаешь, как создаются короны для светофоров? Написал небольшой код, и выяснил, что они не цепляются к обьектам, т.е. в их структуре X, Y, Z, - мировые координаты. Или это в dff зашито?
Созданием эффектов для светофоров, в т.ч. и корон, занимается процедура CTrafficLights_Render_TrafficLight (0x0049DAB0). Короны действительно не цепляются к объектам - это и не нужно, т.к. работающий светофор всегда неподвижен:
Code
.text:0049DD49 0F8                 push    0 // указатель на структуру объекта (светофора)
.text:0049DD4B 0FC                 push    eax
.text:0049DD4C 100                 call    CCoronas__addCorona ; Call Procedure

Quote (DK22Pac)
PS вот код для создания проекций под всеми коронами в игре.
Хороший примерчик.
 
dyomДата: Понедельник, 02.05.2011, 08:42 | Сообщение # 594
Группа: Пользователи
Сообщений: 19
Статус: Offline
Всем привет!Можете помочь с анимациями в vc?
Как, что?Я смотрел вроде нужен один опкод.Дак вот мне нужен опкод и анимации!
 
ILYALIONДата: Понедельник, 02.05.2011, 10:51 | Сообщение # 595
Группа: Проверенные
Сообщений: 325
Статус: Offline
Что значит этот опкод?
0407: store_coords_to 2@ 3@ 4@ from_car 1@ with_offset 0.0 0.0 0.0
В скачанном мною скрипте в нём ошибка
 
DK22PacДата: Понедельник, 02.05.2011, 11:36 | Сообщение # 596
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Он находит коордианты точки, которая находится на определённом оффсете огт автомобиля.
В этом примере наъодятся координаты на оффсетах 0.0, 0.0, 0.0, т.е., центр автомобиля. Тогда это можно заменитб этим:
Code
car.StorePos(1@, 2@, 3@, 4@)
 
ILYALIONДата: Понедельник, 02.05.2011, 17:12 | Сообщение # 597
Группа: Проверенные
Сообщений: 325
Статус: Offline
Я создал скрипт:
Code
{$CLEO}     
model.Load(#BMOTR1)    
04ED: load_animation "HANDSUP"   
038B: load requested models   
:NONAME_22
wait 0   
if   
     Model.Available(#BMOTR1)
jf @NONAME_22   
1@ = Actor.Create(CivMale, #BMOTR1, 2459.3569 -1715.1859 13.5534)
Actor.Angle(1@) = 90.0
0605: actor 1@ perform_animation_sequence "PED" IFP_file "HANDSUP" 4.0 loop 0 0 0 1 time 1
0A93:
но sanny builder пишет: недостаточно параметров. ожидалось 6 параметров. Что я делаю не так?

Добавлено (02.05.2011, 17:12)
---------------------------------------------
Разобрался, просто надо было запятые между координатами поставить. Но теперь другая проблема: пед появляется в другом месте, относительно всех координат(выше, южнее, западнее). Почему так происходит?

Сообщение отредактировал ILYALION - Понедельник, 02.05.2011, 16:25
 
Den_spbДата: Понедельник, 02.05.2011, 18:37 | Сообщение # 598
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (ILYALION)
Но теперь другая проблема: пед появляется в другом месте, относительно всех координат(выше, южнее, западнее). Почему так происходит?
Актёр всегда создаётся в том месте, координаты которого указаны в скрипте. Если актёр создаётся далеко от игрока (там, где не загружена карта), то он может провалиться сквозь землю и оказаться в другом месте.
Замечания: 1. "HANDSUP" - это название анимации, а "PED" - название архива с анимациями. В твоём скрипте они перепутаны местами. Загружать архив "PED" не нужно, следует только проверять, загружен ли он в память перед использованием анимаций из него (см. раздел Анимации для актёров в справке SB). 2. В скрипт желательно добавить команду удаления модели из памяти Model.Destroy(#BMOTR1) (после команды создания актёра).
 
ILYALIONДата: Понедельник, 02.05.2011, 20:01 | Сообщение # 599
Группа: Проверенные
Сообщений: 325
Статус: Offline
Получилось. Просто я загружал сэйв в доме СиДжея, а там видимо ещё не грузилась карта. Потом я загрузился у гаража в дороти, переместил координаты, и всё заработало.
Code
{$CLEO}    
model.Load(#BMOTR1)   
04ED: load_animation "PISS_LOOP"  
038B: load requested models  
:NONAME_22
wait 50  
if  
    Model.Available(#BMOTR1)
jf @NONAME_22  
1@ = Actor.Create(CivMale, #BMOTR1, -2015.2667, 149.9514, 27.6875)
Actor.Angle(1@) = 178.5807
Model.Destroy(#BMOTR1)
0605: actor 1@ perform_animation_sequence "HANDSUP" IFP_file "PED" 4.0 loop 0 0 0 1 time 300000   
0A93:
Но вот вопрос: как видно из скрипта, я загружал анимацию "PISS_LOOP", а использовал "HANDSUP". Получается, анимации не надо загружать в память? И как сделать, чтобы пед появлялся тогда, когда я на 200 метров ближе к точке его появления?
 
ILYALIONДата: Понедельник, 02.05.2011, 20:39 | Сообщение # 600
Группа: Проверенные
Сообщений: 325
Статус: Offline
Недавно заметил, что одна из улиц Сан Фиерро у меня перестала существовать, как твёрдая поверхность! Все проваливаются сквозь неё, и текстура у неё другая(я показал на скринах). Вот какой она должна быть:. А вот какая она в игре, и причём машины по воздуху ездят! dff, txd и col файлы присутствуют в gta3.img. Почему так происходит?
Прикрепления: 6965948.jpg (150.1 Kb) · 5108914.jpg (87.3 Kb)
 
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Поиск: