Четверг, 25.04.2024, 07:59
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Вопросы по созданию КЛЕО-скриптов
Den_spbДата: Суббота, 03.12.2011, 14:23 | Сообщение # 931
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
При 100 мс скрипт будет работать "через раз". Чтобы скрипт работал с такой же частотой, как отрисовка, ставь 0 мс.
 
ILYALIONДата: Суббота, 03.12.2011, 16:49 | Сообщение # 932
Группа: Проверенные
Сообщений: 325
Статус: Offline
В этом опкоде
Code
0185:   car 0@ health >= 250
проверяются жизни авто "больше или равно 250" или "больше 250"?
 
Den_spbДата: Суббота, 03.12.2011, 16:50 | Сообщение # 933
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
">=" означает "больше или равно".
 
ILYALIONДата: Суббота, 03.12.2011, 17:29 | Сообщение # 934
Группа: Проверенные
Сообщений: 325
Статус: Offline
Как можно проверить, справа или слева от центра автомобиля сидит игрок?
 
Den_spbДата: Суббота, 03.12.2011, 17:56 | Сообщение # 935
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Проверяем, занимает ли игрок водительское место:
Code
046C: 0@ = car 1@ driver  
if
     003B:   0@ == $player_actor // (int)  
then
     ...
Проверяем, занимает ли игрок место с определённым номером:
Code
0432: 0@ = get_actor_handle_from_car 1@ passenger_seat 0  
if
     003B:   0@ == $player_actor // (int)  
then
     ...
 
ILYALIONДата: Суббота, 03.12.2011, 19:42 | Сообщение # 936
Группа: Проверенные
Сообщений: 325
Статус: Offline
Да, но у меня ексть праворульные машины, а мне надо именно слева или справа от центра
 
Den_spbДата: Суббота, 03.12.2011, 20:43 | Сообщение # 937
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Тогда надо посчитать координаты игрока в системе координат машины. Или определить, какое место занимает игрок, а затем вычислить координаты соответствующего дамми в системе координат машины.
 
ILYALIONДата: Воскресенье, 04.12.2011, 16:20 | Сообщение # 938
Группа: Проверенные
Сообщений: 325
Статус: Offline
Как закрыть капот машины?

Добавлено (04.12.2011, 13:39)
---------------------------------------------
Нашёл только

Code
068A: set_car 0@ repair_componentA 0
, но он мне не подходит, так как чинит капот авто, а мне надо, чтобы капот закрывался, но не чинился.

Добавлено (04.12.2011, 14:07)
---------------------------------------------
И можно ли как то зафиксировать компонент авто в определённом положении? А то команда

Code
0657: car 0@ open_componentA 0
не даёт фиксации, если капот повреждён - капот закрывается.

Добавлено (04.12.2011, 16:20)
---------------------------------------------
Нашёл опкод закрытия капота

Code
08A6: set_car 0@ componentA 0 rotation_to 0.0
 
Den_spbДата: Воскресенье, 04.12.2011, 16:22 | Сообщение # 939
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Можно вращать и перемещать любые компоненты и через память. Об этом подробно расписано здесь:
http://sannybuilder.com/forums/viewtopic.php?id=304
http://modsforgta.ucoz.ru/forum/9-53-1
 
walkДата: Воскресенье, 04.12.2011, 16:41 | Сообщение # 940
Группа: Проверенные
Сообщений: 96
Статус: Offline
Den_spb, как переместить актёра в интерьер, в котором находиться игрок?
 
Den_spbДата: Воскресенье, 04.12.2011, 16:51 | Сообщение # 941
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
См. справку SB: Документация по SCM - GTA SA - Интерьеры
 
walkДата: Воскресенье, 04.12.2011, 17:00 | Сообщение # 942
Группа: Проверенные
Сообщений: 96
Статус: Offline
Den_spb,
написал подобную бредятину, но при заходе в интерьер игра вылетает

Code
09E8: 27@ = actor $PLAYER_ACTOR active_interior
if
8038:  27@ == 0
then
09E8: 26@ = actor 1@ active_interior  
if
003b: 26@ > 0
then

else
select_interior 27@
0860: link actor 1@ to interior 27@  
04C4: store_coords_to 23@ 24@ 25@ from_actor $PLAYER_ACTOR with_offset 1.0 0.0 0.0  

actor.PutAt(1@,23@ 24@ 25@)
 
Den_spbДата: Воскресенье, 04.12.2011, 17:32 | Сообщение # 943
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Попробуй так:
Code
09E8: 27@ = actor $PLAYER_ACTOR active_interior  
09E8: 26@ = actor 1@ active_interior
if
     803B:   not  27@ == 26@ // (int)  
then
     select_interior 27@
     0860: link actor 1@ to interior 27@
     04C4: store_coords_to 23@ 24@ 25@ from_actor $PLAYER_ACTOR with_offset 1.0 0.0 0.0   
     actor.PutAt(1@ 23@ 24@ 25@)     
end
 
walkДата: Понедельник, 05.12.2011, 05:06 | Сообщение # 944
Группа: Проверенные
Сообщений: 96
Статус: Offline
Den_spb, спасибо, получилось, но пришлось сделать задержку wait 1000. Опкод записывает, что актёр в интерьере, ещё при проигрывании анимации входа. И получается, что актёр появлялся в городе, а не в самом интерьере. Ну в принципе и так сойдёт. Спасибо!

Добавлено (05.12.2011, 05:06)
---------------------------------------------
И ещё вопрос, как вывести координаты на экран?

 
Den_spbДата: Понедельник, 05.12.2011, 12:51 | Сообщение # 945
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (walk)
И ещё вопрос, как вывести координаты на экран?
Я делал так:
Code
{$CLEO}
wait 0
while true
     wait 0
     if
         player.Defined($player_char)
     then
         actor.StorePos($player_actor 0@ 1@ 2@)
         0172: 3@ = actor $player_actor Z_angle
         0092: 0@ = float 0@ to_integer  
         0092: 1@ = float 1@ to_integer  
         0092: 2@ = float 2@ to_integer  
         0092: 3@ = float 3@ to_integer  
         03F0: enable_text_draw 1  
         045A: draw_text_1number 5.0 5.0 GXT 'NUMBER' number 0@  // ~1~
         045A: draw_text_1number 5.0 15.0 GXT 'NUMBER' number 1@  // ~1~
         045A: draw_text_1number 5.0 25.0 GXT 'NUMBER' number 2@  // ~1~
         045A: draw_text_1number 5.0 55.0 GXT 'NUMBER' number 3@  // ~1~
     end
end
 
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Поиск: