[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии GTA » GTA San Andreas » Вопросы по скриптингу Sanny Builder (Вы можете получить ответы на вопросы по SB)
Вопросы по скриптингу Sanny Builder
wmysterio
Администраторы
Скриптер
22.11.11 21:52
Offline
Если у вас возник вопрос по скриптингу Sanny Builder, обращайтесь! Мы постараемся решить вашу проблему wink Это ещё не значит, что все прям бросятся решать во чтобы то не стало, но ответ вы сможете вы получить как вариант решения или как невозможность или сложность решения.
УВАЖАЕМЫЕ ПОЛЬЗОВАТЕЛИ! ПРОСЬБА КОД СКРИПТОВ ПОМЕЩАТЬ В КОНСТРУКЦИЮ КОДА:

или

Также указывайте полный код скрипта, иначе причина ошибок может быть и не выявлена.
Прикрепления: 0248203.png(0.9 Kb) · 9085525.png(0.2 Kb)

wmysterio
Администраторы
Скриптер
10.07.13 21:04
Offline
Цитата (Sweeper)
В чем отличия между $PLAYER_ACTOR и $PLAYER_CHAR?
$PLAYER_CHAR является объектом класса Player, то есть сам игрок.

Что бы игроку были доступны команды актёра его эмулируеют как $PLAYER_ACTOR опкодом:
Код
01F5: $PLAYER_ACTOR = get_player_actor $PLAYER_CHAR
То есть получаем актёра, которым управляет игрок.

Yurko_UA
Друзья
11.07.13 16:54
Offline
Цитата (Sweeper)
Почему новая Sanny Builder пишет: неизвестная команда car.Defined(1@)? А в старой версии все было нормально.
В КЛЕО версии 4.1.1.30f такого прикола нету, а в ранних версиях есть

Добавлено (11.07.13, 15:54)
---------------------------------------------
Такая вот проблемка. 

Беру любого педа с определенного радиуса опкодом 0AE1, и заставляю его идти к определенной точке опкодом

Код
0A2E: AS_actor $actor go_to $x2 $y2 $z2 mode 7 -1 ms stop_radius 2.0


Он пошел, как только ступил на точку $x2 $y2 $z2, сразу же идет по своим делам,  а не стоит молча.

Как решить проблему?
Отредактировал Yurko_UA - Четверг, 11.07.13, 10:05

wmysterio
Администраторы
Скриптер
11.07.13 17:24
Offline
Цитата (Yurko_UA)
Как решить проблему?
Используй опкод
Код
07CD: AS_actor $actor walk_to $x2 $y2 $z2 stop_with_angle 270.0 within_radius 2.0
Будет идти в точку и остановится, если конечно он сможет туда добраться smile

Yurko_UA
Друзья
11.07.13 17:31
Offline
Цитата (wmysterio)
Придёт в точку и остановится, если конечно он сможет туда добраться
Неа. Идет, приходит и уходит. Может конечно с кодом что-то не то:


Код
:HOTDOG_MISSION_4
wait 0
if
0AE1: $actor = random_actor_near_point $x $y $z in_radius 30.0 find_next 0 pass_deads 1   
jf @HOTDOG_MISSION_16
if
8449: not actor $actor in a car     
jf @HOTDOG_MISSION_16   
marker.CreateAboveActor($marker,$actor)
0165: set_marker $marker color_to 1
07CD: AS_actor $actor walk_to $x2 $y2 $z2 stop_with_angle 270.0 within_radius 2.0
$wait = 0
jump @HOTDOG_MISSION_5
Отредактировал Yurko_UA - Четверг, 11.07.13, 17:32

wmysterio
Администраторы
Скриптер
11.07.13 18:45
Offline
Цитата (Yurko_UA)
Идет, приходит и уходит. Может конечно с кодом что-то не то
Мне кажется нужно убрать сведения о событиях(event), но практически это реализовать я не знаю.
Проще найти актёра, узнать его тип, модель и создать нового на этом месте

Yurko_UA
Друзья
11.07.13 22:06
Offline
Цитата (wmysterio)
Мне кажется нужно убрать сведения о событиях(event), но практически это реализовать я не знаю. Проще найти актёра, узнать его тип, модель и создать нового на этом месте
Я придумал кое-что, что можно сделать...

Добавлено (11.07.13, 21:06)
---------------------------------------------

Цитата (wmysterio)
Мне кажется нужно убрать сведения о событиях(event),
Наверное, как-то через память?

wmysterio
Администраторы
Скриптер
11.07.13 22:52
Offline
Цитата (Yurko_UA)
Наверное, как-то через память?
Нет. Скорее всего нужно создать модель поведения актёра и убрать событие на движение. Типа этого
0708: reset_decision_maker $DECISION_MAKER event 27
и присвоить эту модель актёру.

К сожалению я не в курсе какой номер у события движения.

Yurko_UA
Друзья
11.07.13 22:59
Offline
Цитата (wmysterio)
Нет. Скорее всего нужно создать модель поведения актёра и убрать событие на движение. Типа этого 0708: reset_decision_maker $DECISION_MAKER event 27
и присвоить эту модель актёру.

К сожалению я не в курсе какой номер у события движения.
Мда... надо поискать...

SanKing
Друзья
12.07.13 17:48
Offline
Попробуй это:
0687: clear_actor $actor task

Yurko_UA
Друзья
12.07.13 19:33
Offline
SanKing, пробовал, не помогло.

KiLLeR96
Друзья
Модератор
15.07.13 00:08
Offline
Как сделать такую вещь: при нажатии кнопки в радиусе 10 метров вокруг CJ дохнут все педы?

Viktor_Kew
Пользователи
16.07.13 01:38
Offline
Помогите сделать цикл: при нажатии на F3, будет начинаться сам цикл, После истечения 30 секунда цикл автомаьически останавливается
Что в цикле: каждые 250 мл. Секунда на экране будет выводиться рандомное число от 20 до 30. И на конец: если цикл не перестал работать, то по нажатию F3 мы его отключаем.
Спасибо

wmysterio
Администраторы
Скриптер
16.07.13 02:15
Offline
Цитата (Viktor_Kew)
Помогите сделать цикл: при нажатии на F3, будет начинаться сам цикл, После истечения 30 секунда цикл автомаьически останавливаетсяЧто в цикле: каждые 250 мл. Секунда на экране будет выводиться рандомное число от 20 до 30. И на конец: если цикл не перестал работать, то по нажатию F3 мы его отключаем.
Спасибо
Вот вроде то, что Вы просили:
Код
{$CLEO}
0000:

while true
      repeat
          wait 0
      until 0ab0: 114 // F3   
      1@ = 0
        
      repeat
          wait 250
          0209: 0@ = random_int_in_ranges 20 30
          0ACE: show_formatted_text_box "%d" 0@
          1@ += 250
            
          if
          1@ > 30000
          then
              break
          end
      until 0ab0: 114 // F3   
wait 0
end

Viktor_Kew
Пользователи
16.07.13 14:08
Offline
Нечего не происходит

wmysterio
Администраторы
Скриптер
16.07.13 16:53
Offline
Viktor_Kew, Всё работает. Я лично тестировал. В текст-бокс выводит случайное число каждые 250 мсек при нажатии F3.

Vital
Модераторы
Скриптер
16.07.13 19:03
Offline
Dimon_gta,
Во-первых, лучше для тебя и для других выкладывать исходник (файл, который пишешь в SB первоначально), а не декомпилированный вариант. 
Во-вторых, совет, если пишешь 038B, то проверять на загруженность с помощью model.available не нужно, так как эта команда принудительно загружает модели. 
В-третьих, если это CLEO скрипт, то лучше не использовать глобальные переменные ($CAR1), это может привести к неприятным последствиям (в некоторых случаях).
В-четвёртых, по твоей проблеме могу сказать, что зависание в воздухе из-за lockincurrentposition, этот опкод закрепляет актёра/машину и другие вещи в том положении, в котором они находятся, то есть при создании машины/актёра они сразу блокируются и не смогут двигаться, даже опускаться на землю. Если есть сомнения в координате земли (если, например, создаёшь актёра или машину в неизвестном месте, а по отношению к чему-либо), то в Z можно написать -100.0. Это даёт актёру/машине возможность встать ровно на поверхность, не появляясь в воздухе с риском упасть.
2109: create_special_actor $VITAL in_front_of_computer

Dimon_gta
Пользователи
16.07.13 19:53
Offline
Спасибо! Все помогло.

Vital
Модераторы
Скриптер
16.07.13 20:30
Offline
Dimon_gta, не за что. Если будут вопросы, не стесняйся, на форуме здесь всегда помогут чем смогут.
2109: create_special_actor $VITAL in_front_of_computer

KiLLeR96
Друзья
Модератор
17.07.13 00:02
Offline
А как насчёт моего вопроса?

mos_cracin
Пользователи
17.07.13 13:29
Offline
Да, много я делал скриптов, но они были простые... как-то рас я создал 17 скриптов, для того что-бы этих ситуаций на дороге было везде.. но как сделать так что-бы в одном скрипте я бы расбросал  персов и тачки по всей карте, и по обочень... ну в одном слове random...пожалуйста помогите..

Форум » Игры серии GTA » GTA San Andreas » Вопросы по скриптингу Sanny Builder (Вы можете получить ответы на вопросы по SB)
Поиск: