Перейти к содержимому


Фотография

Нужна помощь со скриптом.


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 Ghoulbb

Ghoulbb

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 40 сообщений

Отправлено 26 Февраль 2013 - 01:00

Мой первый опыт в скриптопостроении. Решил замутить простенький скрипт-диалог с персонажем.
Задумка — персонаж поэтапно рассказывает свою историю, в конце выдает игроку оружие, и опыт.

При повторном обращении в диалог не входит, лишь появляются фразы над головой при кликании на него.

Собственно, всё работает, за исключением одного момента: диалог можно прогонять бесчисленное множество раз. Поглядите, плиз на сам скрипт, что я сделал не так?

http://rusfolder.com/35191453


#2 Nordan

Nordan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 209 сообщений

Отправлено 26 Февраль 2013 - 17:41

Т.е. постоянно включается диалоговый режим, а "плавающие" сообщения не выводятся, я так понял?

Скрипт написан вроде нормально, чудит переменная, явно.
ЕМНИП, первые пять ЛВАР вообще лучше не трогать, ими управляет двиг (тоже где то читал об этом).

Попробуй вместо ЛВАРы подставить ГВАРу, чтоб уж точно проверить все ли нормально робит.

П.С. Здесь есть специальный тэг для отображения кодов программ, так что в следующий раз выложи код прямо сюда (ну не весь, конечно, только нужную часть :) ), облегчь жизнь себе и другим. ;)

П.П.С. Ну и еще одно, когда я пишу скрипты, я не ставлю пробелы в параметрах функций. Уж не знаю, как могут повлиять пробелы на исправность, но так мне спокойней. :)

Это сообщение отредактировано Nordan - 26 февраля 2013 | 18:57


#3 Ghoulbb

Ghoulbb

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 40 сообщений

Отправлено 26 Февраль 2013 - 18:04

Нашел ошибку. Сам скрипт тут оказался ни при чём.
Всё дело в scripts.lst

Я зарегал новые скрипты в конце этого файла.

Однако, не стал прописывать строки после символа " ; ", посчитав их комментами.

CODE

GCKeeper.int
GCGhost.int
ECGhoulBB.int


Ошибку обнаружил чисто случайно, просто "на дурака " дополнив сточки, как показано внизу.


CODE

GCKeeper.int   ; Gecko cemetery keeper                         # local_vars=1
GCGhost.int    ; Gecko cemetery ghost                          # local_vars=6
ECGhoulBB.int  ; Random Ghoul [BB] Traveller encounter (story) # local_vars=1


Я в непонятках. Как так закомментированные строки влияют на работу скрипта?
Или я чёт не догоняю?

Ну, в общем, работает всё, и ладно. Буду обкатывать дальше на предмет возможных ошибок в дальнейшем.

Приятная новость: почти закончил свой мод :)

Осталось только обработать примерно половину worldmap.txt и , соответственно, новые мессаги к новым энкаунтерам :)


#4 Nordan

Nordan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 209 сообщений

Отправлено 26 Февраль 2013 - 18:23

Слова после ";" в этом файле не считаются коментарием.

Там указывается имя (то что отразиться в списке скриптов в мэппере) и количество ЛВАРов.

Если имя ты можешь написать любое (главное чтоб было), то ЛВАРы нужно указывать точно, ибо двиг Фолла не умеет считать их динамически, а ориентируется как раз на это значение, т.е. если не указать количество, то они (ЛВАРы) просто не будут работать, что скорее всего и произошло, потому что у тебя в скрипте стоит "переключатель" именно от ЛВАРы, которая не работала...

И еще, по ходу строка в скриптс.лст у этого скрипта должна быть:

CODE
GCKeeper.int  ; Gecko cemetery keeper                         # local_vars=6

Потому что последняя ЛВАРА в этом скрипте имеет номер 5, и с учетом "нулевой" должно быть всего 6.

Это сообщение отредактировано Nordan - 26 февраля 2013 | 19:27


#5 Wasteland Ghost

Wasteland Ghost

    Маленькое Злое Привидение

  • Пользователи
  • PipPipPip
  • 3 451 сообщений

Отправлено 26 Февраль 2013 - 18:58

Ghoulbb, изобретать велосипед, конечно, весело, но всё-таки иногда полезно читать, чтобы не делать глупых ошибок. Например, туториал по скриптингу для начинающих от Raven'а. Там подробно объясняется всё и о скриптс.лст, и о переменных, и о прочем-всяком.

Насчёт первых пяти ЛВАР Nordan абсолютно прав: часть из них может изменяться движком, поэтому лучше использовать их в том же смысле, что и в оригинале.


#6 jordan

jordan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 142 сообщений

Отправлено 28 Март 2013 - 06:39

Для быстрого тестирования криттеров можно использовать test.int они уже прописаны в script.lst Поищите в начале файла.

Это сообщение отредактировано jordan - 28 марта 2013 | 07:40




Похожие темы Свернуть

  Название темы Форум Автор Статистика Последнее сообщение


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Рейтинг@Mail.ru