Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

Ошибка из-за бестиария

Больше
11 года 8 мес. назад #72958 от darkwork
Вылезла при начатии битыв такая ошибка:
[IMG

Залез в скрипты, мне указывается на вот эту строку:
if $game_party.bestiary[enemy.original_name][0] == false
Что здесь не так?
Изначпльно после ввода бестиария этой ошибки не ьыло, но когда я ввел новых монстров она вылезла!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby 2 место Готв Победитель Сбитой кодировки Учитель Оратор
Больше
11 года 8 мес. назад #72960 от Amphilohiy
Скриптеры на форуме ленивые, и наизусть ничего не помнят. И играют в доту.
Я так предпологаю, что проблема в этом "original_name". Ты точно всем существам задал корректное имя?

Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
11 года 8 мес. назад #72961 от darkwork
В каком плане оно может быть не корректным?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby 2 место Готв Победитель Сбитой кодировки Учитель Оратор
Больше
11 года 8 мес. назад #72962 от Amphilohiy
Увы, тоже не знаю, ибо с бестиарием никогда и не работал. И даже не уверен, что он бывает один. Можно ссылку на скрипт? Еще лучше демо, это бы упростило работу, ибо не факт, что я смогу воспроизвести ошибку. Можно в личку.

Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Спасибо сказали: darkwork

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Коммерсант Проект года 1 место Учитель Проект месяца 1 место
Больше
11 года 8 мес. назад - 11 года 8 мес. назад #72966 от Iren_Rin
Вы сообщение ошибки читали? Проблема в том что в $game_party метод bestiary возращает nil а не хэш.
Последнее редактирование: 11 года 8 мес. назад пользователем Iren_Rin.
Спасибо сказали: darkwork

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby 2 место Готв Победитель Сбитой кодировки Учитель Оратор
Больше
11 года 8 мес. назад #72969 от Amphilohiy
Вы сообщение читали?

Изначпльно после ввода бестиария этой ошибки не было, но когда я ввел новых монстров она вылезла!

Как так случилось, что добавление монстров убил свойство bestiary? Из двух индексировании вероятнее, что это относится к вызову [0].
Без обид, но как-то ты резковато.

Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Ветеран Даритель Стимкея Оратор Программист JavaScript
Больше
11 года 8 мес. назад - 11 года 8 мес. назад #72970 от Lekste
Как сказал Амфи, похоже original_name кому-то не задали. :)
Или моба с этим именем в бестиарий не внесли.
Последнее редактирование: 11 года 8 мес. назад пользователем Lekste.
Спасибо сказали: darkwork

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место 3 место Готв Победитель Сбитой кодировки Программист JavaScript 2 место Сбитая кодировка Писатель 3 место 2 место 3 место Организатор конкурсов
Больше
11 года 8 мес. назад - 11 года 8 мес. назад #72971 от Cerberus

Iren_Rin пишет: Вы сообщение ошибки читали? Проблема в том что в $game_party метод bestiary возращает nil а не хэш.

Не уверен. nil может лежать и в самом bestiary, если original_name неверно.

Жуть болотная, на лапках, в тапках и с пулемётом...
Последнее редактирование: 11 года 8 мес. назад пользователем Cerberus.
Спасибо сказали: darkwork, Iren_Rin

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
11 года 8 мес. назад #72972 от darkwork
Вот ссылка на скрипт этого бестиария:
nashdisk.ru/96d315/

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Коммерсант Проект года 1 место Учитель Проект месяца 1 место
Больше
11 года 8 мес. назад - 11 года 8 мес. назад #72975 от Iren_Rin

Cerberus пишет:

Iren_Rin пишет: Вы сообщение ошибки читали? Проблема в том что в $game_party метод bestiary возращает nil а не хэш.

Не уверен. nil может лежать и в самом bestiary, если original_name неверно.

Ты прав, не заметил второй вызов [] (так и работаю, не замечу то, не замечу это...:()
Тогда действительно ошибка с неправильным именем монстра наиболее вероятна.
Интересно, почему бестиарий лежит в $game_party а не в $game_troop?
Последнее редактирование: 11 года 8 мес. назад пользователем Iren_Rin.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
11 года 8 мес. назад #72976 от darkwork
И на какое имя его поменять?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby 2 место Готв Победитель Сбитой кодировки Учитель Оратор
Больше
11 года 8 мес. назад - 11 года 8 мес. назад #72978 от Amphilohiy
Пока что при попытке воспроизвести ошибку я натыкаюсь на проблемы смены регистра =\. Дарк, попробуй чутка помочь. Весь код метода (от 443 и до 451) замени на
Code:
def seen_the_enemy RETCON::Bestiary::check_for_bestiary members.each do |enemy| p $game_party.bestiary p enemy.enemy_id if $game_party.bestiary[enemy.original_name][0] == false $game_party.bestiary[enemy.original_name][0] = true end end end
Включи консоль и иди в битву. Примерно скажи что консоль выведет. Или скрин.

Iren_Rin, Game_Troop - это один отряд противников (причем необязательно одного типа). А Game_Party - Отряд героя, причем там же хранятся такие параметры, как золото. Бестиарий же определяет каких существ отряд видел, и какие он может показать. В целом логично.

Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Последнее редактирование: 11 года 8 мес. назад пользователем Amphilohiy.
Спасибо сказали: darkwork

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
11 года 8 мес. назад #72979 от darkwork
Теперь при запуске проекта выдаёт:
[IMG

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby 2 место Готв Победитель Сбитой кодировки Учитель Оратор
Больше
11 года 8 мес. назад #72980 от Amphilohiy
Чую я лишний end прихватил. Просто после функции добавь end.
Если не получится, то
ВНИМАНИЕ: Спойлер!

Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Спасибо сказали: darkwork

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
11 года 8 мес. назад #72981 от darkwork
Сделал, теперь такое чудо:
[IMG

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby 2 место Готв Победитель Сбитой кодировки Учитель Оратор
Больше
11 года 8 мес. назад #72982 от Amphilohiy
Мда, определенно проще проделать план Б из текста выше.

Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Организатор конкурсов 2 место
Больше
11 года 8 мес. назад #72983 от Lipton
Да тупо перед сравнением поставить проверку на существование и все. =)))
if $game_party.bestiary[enemy.original_name][0] != nil
А во внутрь все остальное. =)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
11 года 8 мес. назад #72984 от darkwork
Похоже я понял в чём проблема, я начинал этот проект путем копирования предыдущего и просто изменял мапы и персов т.д., соответственно имена мобов были из копируемого проекта, я сейчас попробывал моего осьминога из новога проекта назвать "Зомби"(как было в старом) и.... ВСЁ заработало, и так со всеми именами мобов! Но как же мне теперь без ущерба новому проекту сделать бестиарий рабочим уже на новых именах мобов????

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby 2 место Готв Победитель Сбитой кодировки Учитель Оратор
Больше
11 года 8 мес. назад #72985 от Amphilohiy
Просто скопируй тот скрипт, что ты тут выложил, вместо того, в котором мы напортачили. Сам скрипт вроде шибко в настройке не нуждается.

Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
11 года 8 мес. назад #72986 от darkwork
Уже так делал((((( не помогло. Я в самую первую очередь так сделал)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.139 секунд
Работает на Kunena форум