Опубликовано 14 мая, 201115 г. comment_58563 Апдейт. Признаюсь, днём я просматривал алгоритм боя наискосок, поэтому вопросы появились только сейчас. Альтир, у тебя в коде локации playerturn обрабатывается каждая ситуация в отдельности? Не проще ли сначала модифицировать if'ами pdam, endam и т.д., а потом запустить общую для всех проверку на получение повреждений? Проверка на смерть и победу в каждом if'e тем более кажется лишней, можно поместить одну общую после ссылки :batcon (там где печать полученных и нанесённых повреждений). Кстати, из-за такой архитектуры не показывается информация о последнем ударе. Короче говоря, получается, что твоя программа рассматривает каждую комбинацию arg[] в отдельности, в обособленных кусках. Разве это логично? Я что-то не понимаю? Жалоба
Опубликовано 15 мая, 201115 г. comment_58568 Что ж, если ты настаиваешь на дайсах, то пусть будут. Я не настаиваю, просто с дайсами уже проверенная система. Наверное, перед началом игры стоит пустить краткую обучаловку, чтобы объяснить игроку, что здесь за что отвечает? Может просто написать это в отдельном файле, или перед первым боем вывести описание боя. Делать полноценное обучение, по-моему, не стоит - не настолько все сложно, чтобы все разжевывать по шагам и на примере. Можно запихнуть это в начале, где идут воспоминания героя. Иногда из списка возможных ударов пропадает "сильный", даже если на него хватает сил - это бага или фича? Пропадает после его использования? Его можно использовать только через 3 хода (можно изменить, если нужно). Если пропадает после другого удара - надо смотреть. Противник иногда зависает, когда у него остаётся мало сил. Я исправил один баг в пересчете вероятностей выбора удара, если случайное число выпадало максимально возможным, то не выбиралось ни одно действие. Поставил в разбросе -1, думаю неточность в 1-2 десятых процента не существенна. Сила в течение боя меняется крайне редко, так что незачем и ей давать прикрышку "/30" Я сначала думал сделать как раньше - сильный удар уменьшает силу, но потом решил не делать. Можно убрать или оставить, если потом что-то будет изменять силу (например, грибы силы)). Альтир, у тебя в коде локации playerturn обрабатывается каждая ситуация в отдельности? На счет этого. Все бы было хорошо и можно было бы выводить на экран только сообщение об ударе игрока и врага. Но для каждой ситуации нужно информировать игрока что произошло. Например, ты бьешь простым ударом, враг тоже - пишется что и ты и враг ударили/неударили, отняли столько-то хп, если ты бьешь обычным ударом, а враг защищается - выводится, что ты попытался ударить/неударил, но враг удачно/неудачно защитился, отнял/неотнял столько-то хп. То есть для двух вариантов действий уже 7 вариантов вывода сообщений, кроме проверок и вывода сообщений о смерти от соответствующего удара. Все это, наверное, можно уменьшить и переделать, но потом получится такая каша, что добавление чего-то нового будет реальной проблемой (сейчас достаточно с копипастить и немного подредактировать). Есть еще вариант заготовить куски фраз, а потом их скомпоновать в одну строчку, что-то вроде: 'Враг'+$ename+'использует'+$acttext1[args[1]]+'и'+$acttext2[enhitch]+.... Но по-моему возни с этим будет больше, чем написать пару десятков строчек комментариев (в основном используя тот же копипаст). Это было бы нужно, если бы в игре было пара сотен видов ударов и заклинаний. Но если есть идеи как все это упростить... Изменено 15 мая, 201115 г. пользователем Альтир Жалоба
Опубликовано 15 мая, 201115 г. comment_58569 Пропадает после его использования? Его можно использовать только через 3 хода (можно изменить, если нужно). Мне кажется незачем. Если игрок хочет поскорей закончить бой, пускай сливает силу. Можно убрать или оставить, если потом что-то будет изменять силу (например, грибы силы)). Если использовать грибы (хотя в их необхоимости сомневаюсь даже я), то в стате получится "32/30". Это глупости. Но если есть идеи как все это упростить... Я предоплагал, что в таких случаях используются вот такие проверки: if args[0]=0: pdam=(func('dice', pbdem[0], pbdem[1], pbdem[2])*(100+cpstr)/100+cpstr/5)*hitch/ptire enemytext = "Противник ударил и нанёс " + pdam +" урона" //Текст, разумеется, должен быть более распрёстранённым end if if args[0]=1: pdam=0 enemytext = "Противник защитился" end if if args[0]=2: pdam=(3*(func('dice', pbdem[0], pbdem[1], pbdem[2])*(100+cpstr)/100+cpstr/5)*hitch/2)/ptire enemytext = "Противник использовал мощный удар и нанёс " + pdam +" урона" end if if args[1]=0: endam=(func('dice', enbdem[0], enbdem[1], enbdem[2])*(100+censtr)/100+censtr/5)*enhitch/entire playertext = "Вы ударили и нанесли " + pdam +" урона" end if <Тут проверки на остальные удары игрока по тому же принципу> А тут общая проверка на попадание, блок, критический удар, победу или смерть. pdam, endam, enemytext и playertext дополняются или полностью заменяются по необходимости. *nl battleturn+' Ход| ' + enemytext + playertext Жалоба
Опубликовано 16 мая, 201115 г. comment_58575 Как ты себе представляешь пополнение и замену строк? Через $MID и $replace? Все равно получится куча if-ов, может только не один в другом, а вряд. enemytext = "Противник ударил и нанёс " + pdam +" урона" А если ты защитился? "Противник нанес вам 20 урона.""Вы полностью защитились от удара противника". А если промах? "нанес вам 0 урона"? К тому же, по идее нельзя нанести больше урона, чем есть хп. Все это переписывать заново? А нужно было тогда вообще сохранять эти переменные? Впрочем, можешь попробовать написать так как хочешь. Возможно получится лучше. Жалоба
Опубликовано 16 мая, 201115 г. comment_58576 Я тут подумал, если в бою интеллект особо роли играть не будет (как сейчас), то нужно в текстовой части делать способы, как избежать сложных боев с помощью интеллекта. А иначе выбор умного будет заведомо не играбельным. Или ввести в бой что-то использующее интеллект, магию там или еще что. Или, например, сделать чтобы кол-во зарядов дыхания зависело от интеллекта. Жалоба
Опубликовано 16 мая, 201115 г. comment_58577 Впрочем, можешь попробовать написать так как хочешь. Возможно получится лучше. Я совсем не настаиваю на изменениях, в конце-концов ты намного лучше в этом разбираешься. Я просто не до конца понял алгоритм и спросил почему так, а не иначе. Я тут подумал, если в бою интеллект особо роли играть не будет (как сейчас), то нужно в текстовой части делать способы, как избежать сложных боев с помощью интеллекта. А иначе выбор умного будет заведомо не играбельным. Это само собой. Посмотри, даже сейчас в "мышах" есть обходные пути. Или ввести в бой что-то использующее интеллект, магию там или еще что. Или, например, сделать чтобы кол-во зарядов дыхания зависело от интеллекта. Это не кажется логичным. Жалоба
Опубликовано 17 мая, 201115 г. comment_58605 Наконец-то буходные закончились.... закончил с генерацией, статы подкорректировал, вот выкладываю, что получилось на счет интеллекта - он может влиять на критический удар. Жалоба
Опубликовано 17 мая, 201115 г. comment_58607 Винг Алый, если все согласны с этим вариантом, то выкладывай файл с текстом, я начну его реализовывать. Жалоба
Опубликовано 18 мая, 201115 г. comment_58615 Что то нету никого.... тихо как то... Альтир, тебе в каком формате текст скидывать, у меня все в MS offis visio 2002-2010, но если надо могу и вытащить текст от туда Жалоба
Опубликовано 19 мая, 201115 г. comment_58627 У меня нет визио, так что нужно вытаскивать. Да и удобнее будет, наверное, копировать текст из текстового файла. Жалоба
Опубликовано 19 мая, 201115 г. comment_58629 Вот вытащил текст, выкладываю: генерация в тексте.rar без схемы смысла в нем мало. не думаю что при генерации нужно выводить много текста, но может я и не прав. Жалоба
Опубликовано 22 мая, 201115 г. comment_58697 Альтир, отлично поработал! Протестировал... есть один баг, после шага выборы ветки развития, выбор "общение" три из четырех выборов выдают ошибку 119 (строка 2) локация pcreate общение, это выборы бегали по логову, наблюдали за играми и играли в салочки, причем саму строчку текста они выписывают а переход не работает. а так вроде все нормально Жалоба
Опубликовано 22 мая, 201115 г. comment_58698 Создание персонажа.rar Исправил. Забыл стереть строчки, оставшиеся при копировании из текстового файла. Странно что при запуске из редактора эта ошибка не появляется и играет дальше. Жалоба
Опубликовано 22 мая, 201115 г. comment_58699 Альтир, кстати, ты скидываешь старый файл, с ошибкой... Я ее там где ты сказал нашел, и у себя подправил - вроде все работает нормально. теперь надо чем то далее заниматься... Возможно проблема возникает в следствии одинаковости имен и скачивается старая версия... Попробую поработать над замком, глава б что-ли, исследование и все такое прочее, кричите ежели что... кстати Альтир, благородство в статах специально не отображается? Изменено 22 мая, 201115 г. пользователем Винг Алый Жалоба
Опубликовано 23 мая, 201115 г. comment_58714 кстати Альтир, благородство в статах специально не отображается? Да нет, забыл просто. Пока что это тестовый вариант отображения статов, думаю, нужно немного подробнее написать, и начинать отображать только после завершения создания персонажа (сейчас сделано просто чтобы видно было). Ну и имя, цвет и пол, думаю, не стоит писать (типа чтоб не забыть, что ли?) Жалоба
Опубликовано 16 ноября, 201213 г. comment_69003 Все же, жаль, что сия затея была забыта. Однако, её тема еще пригодится. Вот здесь имеет место быть уже готовая и отлично работающая вещь, по сути своей похожая на то, что задумывалось в этой теме. С драконом в главной роли, да. И хотя сюжет содержит много заезженнейших штампов (горы золота, похищенные принцессы прилагаются) однако, оно стоит времени на него потраченного. Присутствует даже некий элемент стратегии х) Ах да, знание английского настоятельно рекомендуется, т.к. даже скопировать текст в переводчик не выйдет. Лапками всё, господа. Или мозгами ::cool И напоследок. Создатели сего сайта (ссылка выше) разработали эдакий скриптовый язык, на котором и пишут свои "игры" - и он находится в свободном доступе кое-кому может быть интересна и кнопочка внизу их сайта. "Мы ищем талантыписателей" Жалоба
Опубликовано 16 ноября, 201213 г. comment_69005 Прошел. Маало) И да. Штампы) Но мне понравилось Жалоба
Опубликовано 16 ноября, 201213 г. comment_69007 Хорошая вещь, порадовала. Спасибо за ссылку, Буран Жалоба
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.