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

Slivkin-Sergey
Модераторы
06.08.13 17:48
Offline
wmysterio, честно? Пользуюсь, но не знал, что есть такой урок. Не искал, т.к. не знал (глупо, но так и есть). А давно ввели эту start_scene_skip?

Добавлено (06.08.13, 16:47)
---------------------------------------------
И извини за столь необдуманный вопрос...

Добавлено (06.08.13, 16:48)
---------------------------------------------
И ещё вопрос: за что отвечает чекбокс fading?


wmysterio
Администраторы
Скриптер
06.08.13 17:55
Offline
Цитата (Slivkin-Sergey)
А давно ввели эту start_scene_skip?
Давно. Ещё до того, как я начал учится скриптингу
Цитата (Slivkin-Sergey)
чекбокс
Это не чекбокс wacko Но если по существу, то это проверка: "Экран затемнился/осветлился?"

Slivkin-Sergey
Модераторы
06.08.13 19:38
Offline
Цитата (wmysterio)
"Экран затемнился/осветлился?"
Имеется ввиду окончательно затемнился/осветлился?

Кстати, ещё вопрос: вот код:
Код
:ARRIVAL_6
wait 1000
fade 0 500
0701: end_scene_skip
wait 700
Car.PutAt(3@, 1853.1478, -1402.5585, 13.3906)
Car.Angle(3@) = 2.1827
05D6: clear_scmpath
05D7: add_point_to_scmpath 1853.1136 -1366.7424 13.3984
05D7: add_point_to_scmpath 1853.0967 -1357.7725 13.3909
07E7: AS_assign_scmpath_to_actor 4@ in_car 3@ speed 15.0 flags 1 0 1
Camera.SetPosition(1858.5485, -1354.2671, 13.5506, 0.0, 0.0, 0.0)
Camera.OnPed($PLAYER_ACTOR, 15, 2)
041E: set_radio_station 12
wait 1000
fade 1 500
wait 500
0707: start_scene_skip_to @ARRIVAL_7
wait 3000
03D1: play_wav 2
wait 1100
0729: AS_actor $PLAYER_ACTOR hold_cellphone 1
wait 2000
00BB: show_text_lowpriority GXT 'M1S4' time 4500 flag 1    
wait 4500
00BB: show_text_lowpriority GXT 'M1R7' time 4500 flag 1    
wait 4500
0729: AS_actor $PLAYER_ACTOR hold_cellphone 0
wait 2000
0633: AS_actor $PLAYER_ACTOR exit_car    
repeat    
wait 1
until 8448: not actor $PLAYER_ACTOR in_car 3@
00AE: set_car 3@ traffic_behaviour_to 2
05D6: clear_scmpath
00AD: set_car 3@ max_speed_to 20.0
Car.DriveTo(3@, 1853.5114, -1195.6464, 23.093)
wait 500
05D4: AS_actor $PLAYER_ACTOR rotate_angle 91.1921      
Camera.OnPed($PLAYER_ACTOR, 15, 1)
wait 500
repeat
wait 0
until 81C1: not car 3@ stopped    
wait 1000
00BB: show_text_lowpriority GXT 'M1R8' time 4500 flag 1    
wait 4500


Надеюсь, для понимания не слишком много. В общем, суть в том, что камера почему-то вместо того, чтоб смотреть на игрока, смотри на педа 4@ (водителя машины 3@). В чём проблема?

Добавлено (06.08.13, 17:45)
---------------------------------------------
И ещё вопрос: почему после обновления Sanny Builder'а у меня перестали отображаться списки (ну там, подклассов Actor., Car. и т.д.)  и прочие подсказки?

Добавлено (06.08.13, 18:38)
---------------------------------------------
Прошлый вопрос решён (позапрошлый - ждёт ответа), а вот и следующий:
Код
:STEVEN1_2
wait 0
Player.CanMove($PLAYER_CHAR) = False
02A3: enable_widescreen 1
Model.Load(#WBDYG1)
Model.Load(404)
Model.Load(#CELLPHONE)
038B: load_requested_models

:STEVEN1_3
wait 0
if and
Model.Available(#WBDYG1)
Model.Available(404)
Model.Available(#CELLPHONE)
jf @STEVEN1_3
03DE: set_pedestrians_density_multiplier_to 0.0
0395: clear_area 1 at 1776.9897 -1374.6147 15.7578 radius 20.0
$ACTOR_STEVENSON = Actor.Create(24, #WBDYG1, 1784.2153, -1356.4464, 15.7578)
Actor.Angle($ACTOR_STEVENSON) = 304.0088
0729: AS_actor $ACTOR_STEVENSON hold_cellphone 1
Actor.PutAt($PLAYER_ACTOR, 1805.2566, -1350.6976, 15.2154)
Actor.Angle($PLAYER_ACTOR) = 87.5168
05D3: AS_actor $PLAYER_ACTOR goto_point 1793.1633 -1349.9979 15.6473 mode 4 time -1 ms
Camera.SetPosition(1804.3176, -1352.339, 15.0343, 0.0, 0.0, 0.0)
Camera.PointAt(1795.5028, -1344.8152, 18.1527, 15, 2)
wait 500
fade 1 500
wait 500
00BB: show_text_lowpriority GXT 'M2S1' time 5500 flag 1    
wait 5500
wait 500
02A3: enable_widescreen 0
Camera.Restore_WithJumpCut()
fade 1 1000
wait 1000
return

Всё работает... кроме того, что камера продолжает быть за спиной у игрока... в чём проблема?
И за что отвечает Camera.SetAtPos?
Отредактировал Slivkin-Sergey - Среда, 07.08.13, 07:51

Dimon_gta
Пользователи
07.08.13 07:27
Offline
Доброе утро. Обясните пожалуйста как работать со специальными актерами.

Slivkin-Sergey
Модераторы
07.08.13 08:20
Offline
Dimon_gta, почитай уроки на сайте или смотри в справке SB статью "Специальные актёры".

Ещё вопросик появился:
Код
03DE: set_pedestrians_density_multiplier_to 0.0
0395: clear_area 1 at 1776.9897 -1374.6147 15.7578 radius 20.0
$ACTOR_STEVENSON = Actor.Create(24, #WBDYG1, 1784.2153, -1356.4464, 15.7578)
Actor.Angle($ACTOR_STEVENSON) = 304.0088
0729: AS_actor $ACTOR_STEVENSON hold_cellphone 1
Actor.PutAt($PLAYER_ACTOR, 1805.2566, -1350.6976, 15.2154)
Actor.Angle($PLAYER_ACTOR) = 87.5168
05D6: clear_scmpath
05D7: add_point_to_scmpath 1793.1633 -1349.9979 15.6473
05D8: AS_assign_scmpath to_actor $PLAYER_ACTOR flags 4 0
032A: set_behind_camera_mode_to 0
Почему-то актёр упорно не хочет прикладывать трубку к уху. Модель предварительно, конечно, загружена, но актёр, вместо прикладывания телефона к уху, просто берёт телефон в руку и всё...

Добавлено (07.08.13, 07:20)
---------------------------------------------
Как выяснилось, актёр прикладывает трубку к уху и сразу после этого быстро убирает... но почему?


SHooZ
Друзья
07.08.13 12:23
Offline
Slivkin-Sergey,  
Код
while not #CELLPHONE.Available()
               wait 0
               #CELLPHONE.Load()
               038B: load_requested_models
end
0729: AS_actor $ACTOR_STEVENSON hold_cellphone 1
//твой код
0729: AS_actor $ACTOR_STEVENSON hold_cellphone 0
#CELLPHONE.Destroy()

Совет: загружай модели непосредственно перед использованием, а после него не забывай их выгрузить.
Ах да, сначало телепортни игрока, а уже потом задавай анимацию)

Добавлено (07.08.13, 11:23)
---------------------------------------------
и зачем 2 раза задавать угол и координаты?


Slivkin-Sergey
Модераторы
07.08.13 12:31
Offline
SHooZ, я загружаю модель, качество анимации не должно зависеть от того, уничтожаю ли я модель после использования.
Я же говорю, модель загрузилась, но актёр только подносит телефон к уху и сразу бросает, а телефон остаётся в руке.
Цитата (deagle195)
Попробуй ввести строчку анимации верси С, а потом wait x.

В смысле? Зачем мне анимация?

SHooZ
Друзья
07.08.13 12:48
Offline
Slivkin-Sergey, 
Код
03DE: set_pedestrians_density_multiplier_to 0.0
0395: clear_area 1 at 1776.9897 -1374.6147 15.7578 radius 20.0
$ACTOR_STEVENSON = Actor.Create(24, #WBDYG1, 1805.2566, -1350.6976, 15.2154
Actor.Angle($PLAYER_ACTOR) = 87.5168
while not #CELLPHONE.Available()
     wait 0
     #CELLPHONE.Load()
     038B: load_requested_models
end
0729: AS_actor $ACTOR_STEVENSON hold_cellphone 1
05D6: clear_scmpath
05D7: add_point_to_scmpath 1793.1633 -1349.9979 15.6473
05D8: AS_assign_scmpath to_actor $PLAYER_ACTOR flags 4 0
032A: set_behind_camera_mode_to 0
//0729: AS_actor $ACTOR_STEVENSON hold_cellphone 0
#CELLPHONE.Destroy()
Отредактировал SHooZ - Среда, 07.08.13, 12:54

Slivkin-Sergey
Модераторы
07.08.13 12:52
Offline
SHooZ, я же говорю, с моделью проблем нет, проблема с анимацией: актёр прикладывает телефон к уху и сразу же отдёргивает.

wmysterio
Администраторы
Скриптер
07.08.13 13:02
Offline
Slivkin-Sergey, попробуй сделать задержку:
Код
0729: AS_actor $ACTOR_STEVENSON hold_cellphone 1
wait 2000
Мне это всегда помогало. Но нужно что бы $ACTOR_STEVENSON ничем не был занят, тобиш просто стоял.

SHooZ
Друзья
07.08.13 13:03
Offline
пардон, ошибся surprised
Отредактировал SHooZ - Среда, 07.08.13, 13:09

Slivkin-Sergey
Модераторы
07.08.13 14:42
Offline
SHooZ, я телепортирую игрока.

Добавлено (07.08.13, 13:42)
---------------------------------------------
Отлично, проблема с телефоном решена. Но теперь по "воле судьбы" всплывает старый вопрос: есть миссия, где игрок должен ездить в машине с актёром, который не должен умереть; во время поездки происходит диалог; и нужно, чтобы когда актёр был мёртв, миссия была провалена, а если игрок вышел из машины, то его бы позвали назад...


wmysterio
Администраторы
Скриптер
07.08.13 14:50
Offline
Slivkin-Sergey
Код
if
actor.Dead($ACTOR)
then
jump @FAILED
else
0AD0: show_formatted_text_lowpriority "Bla-Bla-Bla" time 4000
end
Делай это в цикле, заведи переменную-счётчик, которая будет считать время от начала диалога. Если её значение превысило допустимое, то выводить следующее сообщение а переменную сбивать на ноль. Сделаю наверное урок по этому.

Slivkin-Sergey
Модераторы
07.08.13 14:54
Offline
wmysterio, а как это делалось в оригинальных миссиях? Там всё попроще было, если не ошибаюсь...

wmysterio
Администраторы
Скриптер
07.08.13 14:56
Offline
Slivkin-Sergey, там делалось всё через dialog-режим или что-то в этом роде. Я предложил один из возможных вариантов.

Slivkin-Sergey
Модераторы
07.08.13 14:59
Offline
Цитата (wmysterio)
Делай это в цикле, заведи переменную-счётчик, которая будет считать время от начала диалога. Если её значение превысило допустимое, то выводить следующее сообщение а переменную сбивать на ноль. Сделаю наверное урок по этому.
Эмм... отсюда можно немного поподробней? Что за цикл? Когда его начинать? Вся поездка должна быть внутри цикла?
Цитата (wmysterio)
там делалось всё через dialog-режим
Так почему нельзя его использовать?

wmysterio
Администраторы
Скриптер
07.08.13 15:03
Offline
Цитата (Slivkin-Sergey)
Вся поездка должна быть внутри цикла?
Да, иначе каким макаром мы узнаем когда выводить следующий текст? :)
Цитата (Slivkin-Sergey)
Так почему нельзя его использовать?
Где ты видел в моей реплике слово "нельзя"? smile Можно, я разбираюсь как в оригинале это использовали

Slivkin-Sergey
Модераторы
07.08.13 15:12
Offline
wmysterio, можешь рассказать, как его использовать? Может, он полегче способа с циклами.

И да: зачем нужен 060A: create_decision_maker_type 0 store_to 207@ // decision\allowed\m_.ped files ,

wmysterio
Администраторы
Скриптер
07.08.13 15:19
Offline
Цитата (Slivkin-Sergey)
зачем нужен 060A: create_decision_maker_type 0 store_to 207@ // decision\allowed\m_.ped files
Читай этот урок.
Цитата (Slivkin-Sergey)
можешь рассказать, как его использовать?
Я разбираюсь (сам пока не в курсе, но мне кажется, что загвоздка где-то там, или похожее что-то)
Так, режим диалога здесь не причём. Там всё в цикле делалось, моя теория подтвердилась.

Slivkin-Sergey
Модераторы
07.08.13 15:30
Offline
Цитата (wmysterio)
Я разбираюсь (сам пока не в курсе
Это как?

Блин, весь день пишу один долбаный ролик, столько проблем с ним... можешь написать небольшой цикл с двумя-тремя фразами?

Добавлено (07.08.13, 14:30)
---------------------------------------------

Цитата (wmysterio)
Там всё в цикле делалось, моя теория подтвердилась.
Я посмотрел код миссии "Девочка Свита", никакого цикла не обнаружил.

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