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

или

Также указывайте полный код скрипта, иначе причина ошибок может быть и не выявлена.

Внимание! От этого момента тема предназначена ещё и для заказов скриптов и миссий. Я это сделал по одной причине - пользователи постоянно путают/или не ищут темы и приводят заказ здесь. Теперь этой путаницы не будет. Здесь можно проводить заказы, но Вы должны указать в начале поста текст "НА ЗАКАЗ". Постарайтесь как можно детальнее объяснить суть скрипта.
Прикрепления: 0248203.png(1Kb) · 9085525.png(0Kb)

)))DiMoN(((
Пользователи
20.06.14 19:01
Offline
wmysterio, спасибо! Теперь всё работает исправно! Но как сделать чтобы объект имел угол поворота как и у актёра?

wmysterio
Администраторы
Скриптер
20.06.14 19:04
Offline
Цитата )))DiMoN((( ()
Но как сделать чтобы объект имел угол поворота как и у актёра?
Код
1@ = Actor.Angle($PLAYER_ACTOR) // получаем значение угла актёра
object.Angle(0@) = 1@ // и присваиваем его объекту

Slivkin-Sergey
Модераторы
20.06.14 19:07
Offline
Цитата wmysterio ()
Дальше нужно загрузить модель с помощью опкода 038B.

То есть модели НЕ загрузятся без 038B?

wmysterio
Администраторы
Скриптер
20.06.14 19:15
Offline
Цитата Slivkin-Sergey ()
То есть модели НЕ загрузятся без 038B?
Я делал тесты. В 90% случаях игра или вылетала или не отображала ничего. В остальных случаях модель вероятнее всего уже была загружена предыдущей сессией игры или ещё что-то. Это что-то также срабатывает когда выполнить команды с несуществующим субъектом. Когда я разрабатывал GTA SA - Narc Project игра постоянно вылетала в одном месте. Я нашел ошибку только недавно. Как оказалось - поворачивал несуществующую машину. Однако в некоторых ситуациях поворот несущ. транспорта какбы пропускался и скрипт продолжал работать.

)))DiMoN(((
Пользователи
20.06.14 19:49
Offline
wmysterio, спасибо всё получилось!

wmysterio
Администраторы
Скриптер
20.06.14 19:50
Offline
Цитата )))DiMoN((( ()
спасибо всё получилось!
Всегда рад помочь wink

Slivkin-Sergey
Модераторы
20.06.14 21:52
Offline
Цитата BoPoH ()
Единственная проблема, которая там возникает - в коде игры походка игрока всегда возвращается обратно.

Кстати, а что, если опкод поместить в бесконечный цикл?..

)))DiMoN(((
Пользователи
21.06.14 15:21
Offline
я сделал скрипт с другим объектом на основе того, но он вообще никак не реагирует на команды. В начале игры объект сам создается, пока игра не вылетит. Вот сам скрипт:

Код
{$CLEO}
0000: NOP

:TRAMPLIN_1
wait 0
if or
player.Defined($PLAYER_CHAR)
not actor.Dead($PLAYER_ACTOR)
Actor.Driving($PLAYER_ACTOR)
0AB0:   key_pressed 77
jf @TRAMPLIN_1
model.Load(#AD_JUMP)
038B: load_requested_models

:TRAMPLIN_2
04C4: store_coords_to $X $Y $Z from_actor $PLAYER_ACTOR with_offset 0.0 10.0 -0.7
Object.Create(0@, #AD_JUMP, $X, $Y, $Z)
1@ = Actor.Angle($PLAYER_ACTOR)
object.Angle(0@) = 1@
model.Destroy(#AD_JUMP)

:TRAMPLIN_3
wait 0
if or
actor.Dead($PLAYER_ACTOR)
0AB0:   key_pressed 80
then
object.Destroy(0@)
jump @TRAMPLIN_3
end
jump @TRAMPLIN_1


В чем здесь причина?

Добавлено (21.06.14, 14:21)
---------------------------------------------
А и кстати, как сделать чтобы объект создавался с углом в 90 градусов относительно актёра?

wmysterio
Администраторы
Скриптер
21.06.14 15:41
Offline
Цитата )))DiMoN((( ()
В начале игры объект сам создается
не правильно записано условие
Код
if or // Здесь нужно AND
  player.Defined($PLAYER_CHAR)  
  not actor.Dead($PLAYER_ACTOR)  
  Actor.Driving($PLAYER_ACTOR)  
  0AB0:   key_pressed 77  
  jf @TRAMPLIN_1
 
Цитата )))DiMoN((( ()
как сделать чтобы объект создавался с углом в 90 градусов относительно актёра?
Код
1@ = Actor.Angle($PLAYER_ACTOR)  
1@ += 90.0 // поворачиваете на нужный угол
  object.Angle(0@) = 1@

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

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