Форум » » Roguelike «Серафим» » Ответить

Roguelike «Серафим»

Irel: “Столетиями шли войны, и мир не мог не измениться…” Так начинается вступление Серафима, игры в сеттинге темного фэнтези и первого рогалика на платформах для создания текстовых квестов. Небеса, подземелья, ангелы и демоны, добро и зло, не имеющее границ. Эта тема посвящена ему.

Ответов - 43, стр: 1 2 3 All

Byte: Нашёл ещё пару багов. Один из них - получилось, что на карте оказалось 2 ГГ: Другой - npc (мясная стена) напал на игрока, изображение ГГ заменилось на npc и он стал перемещаться вместе с ним.. м.б. это нормально для этой "мясной стены"?: UPD: Всё, понял. 2е - не баг. Нужно "атаковать на месте". Что с 1м?

Byte: Irel, ещё: на локации "нпс_жизнь" условия вида [pre2]if X<=игрокX and Y>=игрокY and X!игрокX and Y!игрокY:[/pre2] сократи до [pre2]if X<игрокX and Y>игрокY:[/pre2] Зачем делать проверки "больше или равно" / "меньше или равно", а затем ещё на "не равно"?.. там 8 таких условий.

Irel: Спасибо Байт. К сожалению, я не имел возможностью просмотреть форум, перед тем как выкинуть игру на конкурс. В новой версии, которая будет выложена на сайт, будут произведены соответствующие изменения.


Byte: Жаль, что та ошибка с else всё-таки присутствует :( Надеюсь, в скором времени будет исправлено.. Может, ещё не совсем поздно обновить конкурсную версию? Баллы за это снимают?

Irel: Новая версия доступна для скачивания. Изменения 0.3: + Новая локация "облачные руины" (7 уровней). + Добавлен легендарный доспех. + Устранение багов. + Новые мобы.

Nex: Блин, я тебе про старые баги ещё не успел багреп отослать. Он тебе уже не нужен?

Irel: Нужен-нужен. Просто я не думал, что ты его пишешь.

Byte: Irel, когда выйдет 5.4 - вышлю подправленный вариант.. там установка громкости реализована немного по-другому.. вместо play 'file.wav:10' будет play 'file.wav',10.

Irel: Да, мне давно известна эта особенность. По-хорошему надо поставить if на версии плейера.

Nex: Так, вдогонку к тем письмам, что я отправил, ещё один совет по оптимизации: локация нпс_жизнь, после строки [pre2]шаг=шаг+1[/pre2] вставить [pre2]if шаг!нпс_максимум and нпсZ[шаг]!игрокZ: jump 'другой'[/pre2] чтобы не тратить ресурсы на "проживание" мобов вне уровня игрока. Это не всё, есть большое замечание по локации counter, но это лучше "вживую" обсуждать, т.к. там много подробностей.

Irel: Просмотрел письма. Обновленную версию выложу теперь уже после завершения конкурса. Отдельное спасибо за оптимизацию. Пересечемся в аське.

Byte: Тогда лучше вставить не " if шаг!нпс_максимум and нпсZ[шаг]!игрокZ: jump 'другой' ", а [pre2] if шаг>нпс_максимум:exit if нпсZ[шаг]!игрокZ:jump 'другой'[/pre2] при этом в конце кода строчку " if шаг!нпс_максимум: jump 'другой' " заменить на [pre2]jump 'другой'[/pre2] т.е. без условия.. это лучше, потому что в предыдущем варианте последний НПС (шаг=нпс_максимум) обрабатывался бы в любом случае, независимо от его нахождения..

Byte: и ещё метку ":конец" тогда можно совсем убрать, а единственный jump 'конец' заменить на jump 'другой'

Nex: Byte верно :) как-то я не заметил

Byte: Случайно увидел в коде (локация "лавка"): $меню[2]='Продать:вещь_продать' & $меню[0]='-:вещь_отмена' & $меню[1]='-:вещь_отмена' Название пункта меню "-" означает разделитель.. На него нельзя "нажать" и, соответственно, игроку нельзя перейти на "вещь_отмена".. С учётом этого, это верный код или недосмотр?

Byte: Irel, если будешь обновлять "Серафима" - бери исходный вариант из каталога (я там исправил вызовы "PLAY" с громкостью, для 5.4).

Byte: В 0.7 при генерации иногда зависает где-то в области циклов [pre2] :лестница ok2=0 & x=rand(карта_размерX,1) & y=rand(карта_размерY,1) & z=карта_уровень if $карта['<<x>>,<<y>>,<<z>>']=$тайл_пол or $карта['<<x>>,<<y>>,<<z>>']=$тайл_полкровь or $карта['<<x>>,<<y>>,<<z>>']=$тайл_вода: ok2=1 & $карта['<<x>>,<<y>>,<<z>>']=$тайл_подъем if ok2=0: jump 'лестница' if без_лестницы!1: :лестница2 ok2=0 & x=rand(карта_размерX,1) & y=rand(карта_размерY,1) & z=карта_уровень if $карта['<<x>>,<<y>>,<<z>>']=$тайл_пол or $карта['<<x>>,<<y>>,<<z>>']=$тайл_полкровь or $карта['<<x>>,<<y>>,<<z>>']=$тайл_вода: ok2=1 & $карта['<<x>>,<<y>>,<<z>>']=$тайл_спуск if ok2=0: jump 'лестница2' end[/pre2] Видимо, могут генериться уровни без пола, крови и воды? (Показывает 24%).

Byte: И еще - на локации fog_gen [pre2] x=0 & y=0 & z=карта_уровень :nw туман['<<x>>,<<y>>,<<z>>']=1 x=x+1 if x<=карта_размерX: jump 'nw' y=y+1 & *nl if y<=карта_размерY: x=0 & jump 'nw' else exit[/pre2] & *NL нужно убрать - из-за него во время генерации появляется куча пустых строк.. else exit - тоже можно убрать, здесь он ни к чему.. UPD: Заметил, что & *nl в таком же контексте присутствует на многих локациях - везде нужно убрать: fog_gen карта_небо карта_руины карта_руины2 карта_харибда конец_игры

Byte: Хм, 0.7b всё равно иногда зависает при генерации карты. Вот сейчас на 20%.

Byte: Хм, это было всего 1 раз.. может, я просто не дождался тогда? :/ Потом перезапускал много раз - не зависало.



полная версия страницы