[ Новые сообщения · Участники · Правила форума · Поиск · 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)

Sweeper
Проверенные
21.06.14 16:15
Offline
А почему у него нету проверки на загрузку модели? Или это необязательно?

wmysterio
Администраторы
Скриптер
21.06.14 16:47
Offline
Цитата Sweeper ()
Или это необязательно?
Если модели загружены опкодом 038B, то проверка уже не обязательна.

BoPoH
Друзья
21.06.14 17:07
Offline
Цитата Slivkin-Sergey ()
Кстати, а что, если опкод поместить в бесконечный цикл?..

Не получится.

)))DiMoN(((
Пользователи
21.06.14 20:38
Offline
wmysterio, спасибо всё работает!

Sweeper
Проверенные
21.06.14 22:21
Offline
Цитата wmysterio ()
то проверка уже не обязательна.
А если я всё же сделаю проверку, то это никак не повлияет на работу скрипта?

wmysterio
Администраторы
Скриптер
21.06.14 22:43
Offline
Цитата Sweeper ()
А если я всё же сделаю проверку, то это никак не повлияет на работу скрипта?
нет, не повлияет. Это делается обычно для страховки от неожиданностей.

Оптимально делать проверку, а топом загружать модель, а не наоборот:
Код
if
not Model.Available(#MODEL)
then
Model.Load(#MODEL)
038B: load_requested_models
end

Sweeper
Проверенные
22.06.14 00:22
Offline
Цитата wmysterio ()
Оптимально делать проверку, а топом загружать модель, а не наоборот
Зря ты это сказал, потому что я очень любопытный) А почему так оптимальней? Разве есть разница? А если будет несколько моделей, то что писать if and или if or?
Отредактировал Sweeper - Воскресенье, 22.06.14, 00:24

BoPoH
Друзья
22.06.14 01:09
Offline
Цитата Sweeper ()
А почему так оптимальней? Разве есть разница? А если будет несколько моделей, то что писать if and или if or?

Потому что, возможно, такая модель уже загружена. Следовательно, нет смысла тратить время на повторную загрузку.
Если будет несколько моделей, то писать нужно if and. Хотя, лучше проверять их по отдельности, в таком случае, ведь какая-то из моделей может быть загружена, а какая-то - нет.
Отредактировал BoPoH - Воскресенье, 22.06.14, 01:29

Sweeper
Проверенные
22.06.14 12:28
Offline
Код
:OLD_FRIEND
thread 'FARM_01'

:prov_load
wait 0
if
not model.Available(#WMYCLOT) //питер
then
model.Load(#WMYCLOT)
else jump @prov_load1

:Prov_load1     
if
not model.Available(#VWMYCD)
then
model.Load(#VWMYCD)  //вильям
else  
jump @Prov_load2

:prov_load2
if
not model.Available(#SOMYST)
then
model.Load(#SOMYST)  //шон
else jump @prov_load3

:prov_load3
if
not model.Available(#WALTON)
then
model.load(#WALTON)  //машина
038B: load_requested_models

Вот такая проверка сойдет?

wmysterio
Администраторы
Скриптер
22.06.14 13:03
Offline
Цитата Sweeper ()
Вот такая проверка сойдет?
Если Вы используете блоки, то завершайте конструкции словом end.
Код
:OLD_FRIEND
thread 'FARM_01'
wait 0
if
not model.Available(#WMYCLOT) //питер
then
model.Load(#WMYCLOT)
end   
if
not model.Available(#VWMYCD)
then
model.Load(#VWMYCD)  //вильям
end
if
not model.Available(#SOMYST)
then
model.Load(#SOMYST)  //шон
end
if
not model.Available(#WALTON)
then
model.load(#WALTON)  //машина
end
038B: load_requested_models
// дальше
Конструкцию с ELSE можно убрать, так как судя по вашему коду всё равно будет осуществляться прыжок на меткую

Sweeper
Проверенные
23.06.14 00:35
Offline
Есть опкод, заставляющий актера шевелить губами:
Код
0967: actor 0@ move_mouth 4000 ms
И опкод, который останавливает это действие:
Код
0968: actor 0@ stop_mouth
Зачем он нужен и нужно ли его писать, если через 4 секунды он закончит говорить?
и ещё вопрос: какой командой можно заставить актера пойти в заданную точку?
Отредактировал Sweeper - Понедельник, 23.06.14, 01:09

BoPoH
Друзья
23.06.14 00:50
Offline
Цитата Sweeper ()
Зачем он нужен и нужно ли его писать, если через 4 секунды он закончит говорить?

Чтобы преждевременно остановить движение губ.

Sweeper
Проверенные
23.06.14 01:20
Offline
Цитата BoPoH ()
Чтобы преждевременно остановить движение губ.
т.е., его писать не обязательно?

Добавлено (23.06.14, 00:20)
---------------------------------------------
Покопался в опкодах, что этот делает?

Код
05D3: AS_actor $PLAYER_ACTOR goto_point 681.8004 -474.1063 15.5363 mode 4 time 3000 ms

wmysterio
Администраторы
Скриптер
23.06.14 03:10
Offline
Цитата Sweeper ()
что этот делает?
заставляет актёра идти в указанную точку
Цитата Sweeper ()
его писать не обязательно?
не обязательно. зависит от ситуации. в миссиях обычно используют при видеороликах.

Sweeper
Проверенные
23.06.14 12:11
Offline
Цитата wmysterio ()
заставляет актёра идти в указанную точку
А что означает mode 4? И время зачем?

BoPoH
Друзья
23.06.14 12:24
Offline
Цитата Sweeper ()
А что означает mode 4? И время зачем?

mode - это вроде как скорость. А время нужно для того, чтобы переместить актёра в соответствующую точку, если он не успеет дойти за указанное время.

Sweeper
Проверенные
23.06.14 12:34
Offline
Цитата BoPoH ()
mode - это вроде как скорость. А время нужно для того, чтобы переместить актёра в соответствующую точку, если он не успеет дойти за указанное время.
Спасибо, сейчас попробую.

wmysterio
Администраторы
Скриптер
23.06.14 12:59
Offline
Цитата Sweeper ()
сейчас попробую
Этот опкод лучше подойдёт для последовательностей анимаций. Если нужно просто заставить актёра идти куда-то, то лучшим вариантом будет опкод:
Код
07CD: AS_actor 80@ walk_to 362.2674 -2035.844 6.836 stop_with_angle 90.0 within_radius 1.0
Он тоже подходит для последовательностей, но им легче управлять. Он избавляет нас от вычисления времени, мы можем указать на какой угол развернётся актёр, когда достигнет цели.
Цитата Sweeper ()
А что означает mode 4
Указывает каким образом он будет идти/бежать. Возможно указывает что он будет делать после(например остановится, дальше пойдёт, будет петлять около точки). Нужно тестировать.

Sweeper
Проверенные
23.06.14 13:20
Offline
Цитата wmysterio ()
мы можем указать на какой угол развернётся актёр, когда достигнет цели.
А как оставить его неизменным?

wmysterio
Администраторы
Скриптер
23.06.14 13:44
Offline
Цитата Sweeper ()
А как оставить его неизменным?
Попробуй указать -1, но лучше ставить точный угол.

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