[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 101 из 128«1299100101102103127128»
Форум » Игры серии 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)

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, но лучше ставить точный угол.

Sweeper
Проверенные
23.06.14 13:48
Offline
У меня зависает игра, когда свою миссию пытаюсь запустить. Вот большой код:

название миссии, которое в стартере, выдаёт(правда в символах), а вот дальше зависает. И не знаю почему, вроде всё сделал.
Отредактировал Sweeper - Понедельник, 23.06.14, 13:49

wmysterio
Администраторы
Скриптер
23.06.14 14:25
Offline
Цитата Sweeper ()
У меня зависает игра, когда свою миссию пытаюсь запустить
Были незначительные ошибки. В основном в местах где нужно $PLAYER_ACTOR использовалось $PLAYER_CHAR. Вот примерный вариант:

Sweeper
Проверенные
23.06.14 14:42
Offline
Цитата wmysterio ()
Вот примерный вариант
У меня резко появились актеры, начали говорить, приехала машина и игра зависла happy И это было всё быстро wacko
Отредактировал Sweeper - Понедельник, 23.06.14, 16:36

wmysterio
Администраторы
Скриптер
23.06.14 16:48
Offline
Цитата Sweeper ()
И это было всё быстро
между диалогами нужно ставить задержку. Она должна быть равна тому же времени, что и диалоги:
Код
00BB: show_text_lowpriority GXT 'ZN_PT_1' time 4000 flag 1  //pit  
  0605: actor $PITER perform_animation "IDLE_CHAT" IFP "PED" framedelta 4.0 loop 1 lockX 0 lockY 0 lockF 0 time 4000  
  0967: actor $PITER move_mouth 4000 ms  
wait 4000 // ставим задержку и ждём окончания реплики
  0968: actor $PITER stop_mouth // заставляем актёра заткнутся после окончания реплики
// дальше тоже самое с остальными репликами
дальше в конце миссии
Код
actor.SetImmunities($PLAYER_CHAR, 1, 1, 1, 1, 1) // исправьте $PLAYER_CHAR на $PLAYER_ACTOR
в блоке выгрузки актёров и транспорта лучше поставить условия на существование:
Код
:FARM_01_END
wait 0   
if
056D:   actor $PITER defined
then
actor.RemoveReferences($PITER)
actor.DestroyInstantly($PITER)
end
if
056D:   actor $SHON defined
then
actor.RemoveReferences($SHON)
actor.DestroyInstantly($SHON)
end
if
056D:   actor $SHON defined
then
actor.RemoveReferences($WILLIAM)
actor.DestroyInstantly($WILLIAM)
end
if
056E:   car 0@ defined
then
car.RemoveReferences($MASHINKA)
car.Destroy($MASHINKA)
end
return

Sweeper
Проверенные
23.06.14 20:26
Offline
Цитата wmysterio ()
между диалогами нужно ставить задержку. Она должна быть равна тому же времени, что и диалоги
Задержку я делал, но всё равно не получалось.
Бывает, экран затемнится и всё, игра зависла. Я вечером ещё раз пересмотрю скрипт и добавлю, что ты написал.
там были лишние проверки на розыск, потому что в стартере есть и миссия не должна повторяться.

Добавлено (23.06.14, 19:26)
---------------------------------------------
Я переделал скрипт. Уже немного лучше. Но на 4 фразе игра зависает.

Я выделил жирным курсивом чтобы ты не искал её. Сначала Си Джей говорит, руками машет, но потом игра вылетает. Что здесь не так?
Отредактировал Sweeper - Понедельник, 23.06.14, 20:32

wmysterio
Администраторы
Скриптер
23.06.14 20:47
Offline
Цитата Sweeper ()
но потом игра вылетает
а это что?
Код
0968: actor $PLAYER_ACRTOR stop_mouth // $PLAYER_ACTOR
Будьте внимательными wink

Sweeper
Проверенные
24.06.14 13:29
Offline
Цитата wmysterio ()
а это что?
Спасибо happy , теперь скрипт работает дольше, но всё равно вылет в конце есть.

Добавлено (24.06.14, 12:29)
---------------------------------------------
Теперь у меня код выглядит так



теперь что-то не так на выделенном моменте. Радар появляется и худ тоже, а дальше вылет.

wmysterio
Администраторы
Скриптер
24.06.14 15:59
Offline
Цитата Sweeper ()
Теперь у меня код выглядит так
1) Вы используете неправильный шаблон миссий. Используйте этот:
Код
{$CLEO .CM}

:MISSION_NAME
thread 'MISSION_NAME'
gosub @MISSION_NAME_29_57
if
wasted_or_busted
jf @MISSION_NAME_29_46
gosub @MISSION_NAME_29_144

:MISSION_NAME_29_46
$ONMISSION = 0
mission_cleanup
end_thread

:MISSION_NAME_29_57
increment_mission_attempts
$ONMISSION = 1

// СЮДА ПИШЕМ ВЕСЬ КОД НАШЕЙ МИССИИ ! ОТ САМОГО НАЧАЛА И ДО ФИНАЛА

gosub @MISSION_NAME_END // ДАЛЬШЕ ВЫВОДИМ ИНФОРМАЦИЮ О ПРОХОЖДЕНИИ МИССИИ
01E3: show_text_1number_styled GXT 'M_PASS' number 20000 time 5000 style 1 // МИССИЯ ВЫПОЛНЕНА
Player.Money($PLAYER_CHAR) += 20000
0394: play_music 1
return

// ВЫПОЛНЯЕТСЯ АВТОМАТИЧЕСКИ, ЕСЛИ CJ УБИЛИ ИЛИ АРЕСТОВАЛИ ( СРАБАТЫВАЕТ ОТ УСЛОВИЯ wasted_or_busted )
:MISSION_NAME_29_144  
wait 0
gosub @MISSION_NAME_END
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1 // МИССИЯ ПРОВАЛЕНА
return

// БЛОК ДЛЯ ВЫГРУЗКИ ИЗ ПАМЯТИ СУБЪЕКТОВ И ИХ УДАЛЕНИЕ
:MISSION_NAME_END
wait 0
// УДАЛЯЕМ АКТЁРОВ, МАШИН, ОБЪЕКТОВ И.Т.П.
return
Вы же используете шаблон, который сразу никогда не будет очищать память под миссию, так как она была произведена в ещё до начала миссии. Ваш код не рассчитан на вариант проигрыша миссии.

2) Вы используете опкод
Код
0A93: end_custum_thread
который соответствует формату Cleo-потока, а не миссии. Для миссий всегда используется
Код
end_thread

Я указал возможные ошибки. Ваш код будет таков:
И, пожалуйста, редактируйте проверенный годами этот шаблон, а не дополняйте свой. Вам от этого больше пользы будет smile

Sweeper
Проверенные
24.06.14 16:35
Offline
Цитата wmysterio ()
Ваш код не рассчитан на вариант проигрыша миссии
Здесь невозможно проиграть, т.к. нужно просто поговорить со старым другом. smile
Да ещё я в gosub'ах плоховато разбираюсь.

Добавлено (24.06.14, 15:35)
---------------------------------------------
Ура! Заработало! wmysterio, спасибо) Только я не понял твоих объяснений happy


wmysterio
Администраторы
Скриптер
24.06.14 17:21
Offline
Цитата Sweeper ()
Да ещё я в gosub'ах плоховато разбираюсь.
Для этого я и писал уроки по скриптингу - чтобы разобраться :)
Цитата Sweeper ()
Здесь невозможно проиграть
В любом случаи, нужно всегда рассчитывать на такой исход. Вдруг на игрока в этот момент упадёт самолёт biggrin или другой скрипт как-то повлияет на текущий. В этом и отличие новичка от опытного скриптера. Опытные всегда стараются продумать возможные варианты вылета игры и их устраняют. Новичкам достаточно и того, что работает.

Sweeper
Проверенные
24.06.14 17:36
Offline
Цитата wmysterio ()
Для этого я и писал уроки по скриптингу
Мне придется повторить эту тему biggrin

Добавлено (24.06.14, 16:36)
---------------------------------------------
А если в стартере написано
 

Код
0A94: start_custom_mission "FARM_01"
То это должно быть название файла такое "FARM_01.cm"?

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