Вопросы по созданию КЛЕО-скриптов
|
|
Den_spb | Дата: Суббота, 03.12.2011, 14:23 | Сообщение # 931 |
 Создатель сайта
Группа: Администраторы
Сообщений: 1611
Статус: 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 |
 Создатель сайта
Группа: Администраторы
Сообщений: 1611
Статус: Offline
| ">=" означает "больше или равно".
|
|
| |
ILYALION | Дата: Суббота, 03.12.2011, 17:29 | Сообщение # 934 |
Группа: Проверенные
Сообщений: 325
Статус: Offline
| Как можно проверить, справа или слева от центра автомобиля сидит игрок?
|
|
| |
Den_spb | Дата: Суббота, 03.12.2011, 17:56 | Сообщение # 935 |
 Создатель сайта
Группа: Администраторы
Сообщений: 1611
Статус: 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 |
 Создатель сайта
Группа: Администраторы
Сообщений: 1611
Статус: 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 |
 Создатель сайта
Группа: Администраторы
Сообщений: 1611
Статус: 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 |
 Создатель сайта
Группа: Администраторы
Сообщений: 1611
Статус: 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 |
 Создатель сайта
Группа: Администраторы
Сообщений: 1611
Статус: 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 |
 Создатель сайта
Группа: Администраторы
Сообщений: 1611
Статус: 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
|
|
| |