Вопросы по созданию КЛЕО-скриптов
|
|
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. Почему так происходит?
|
|
| |