Форум » » Вопросы » Ответить

Вопросы

Seregatlt: Предлагаю тут задавать свои вопросы, и мой первый можно ли как то создать ехе файл чтоб играть без плеера?

Ответов - 440, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 All

MasterSet: Вот задачка для мозгового штурма, мой мозг уже сломался. Нужен математический склад ума. Нужно реализовать расчет шанса пробития разным оружием разной брони. При этом болшая тяжесть брони может как увеличивать так и уменьшать этот шанс, в зависимости от того каким оружием бьют. Поясняю на примере: Кинжал хорошо пробивает самую легкую броню (скажем 80% шанс), но плохо берет латы (например шанс 20%) В свою очередь топор пробивает тяжелую броню с легкостью (80%), но шанс повредить человеку в легкой ниже - тот просто успевает отскочить (20%) При всем при этом оружия несколько типов, есть не только восходящие и нисходящие последовательности но и сходящиеся - меч к примеру лучше против средней тяжести брони, но пасует на легких и тяжелых. Вопрос, есть ли возможность реализовать это без поименного перечисления всех вариантов броня/оружие по парам. Ибо гемор страшный выходит. Я жертва комбинаторного взрыва?

Ntropy: По мне нужно броне и оружию добавить характеристик, типа скорости и вязкости и с ними уже формулу составлять.

Logger: По моему - можно не заморачиваться особо вообще (если не стоит задача построить мат. модель боя на холодном оружии). Потому как если "по уму", то надо еще считать 1) вероятность соскальзывания удара или удара "по касательной". Особенно важно для тяжелых доспехов класса чешуя/латы 2) вероятность нанесения повреждений не пробивая брони. Удар дубины по кольчуге не оставит на кольчуге никаких поврежений....надо будеть только вытряхнуть мешок ломаных костей из этой кольчуги. Аналогично для топора и т.п. 3) кинжал может пробивать и тяжелый доспех (латы/чешуя) при условии что кинжал предназначен именно для пробивания доспехов (по просту - острое граненое шило с закаленным концом) 4) положение противников во время боя. Двуручный меч/секира наносит страшный удар...но если противник с нинжалом подошел вплотную, то просто не получится нужный замах 5) собственно тип удара. Укол эстоком и рубящий удар эстоком будут иметь огромную разницу в последствиях. и много других тонкостей... А можно ничего не считать, а довольствоваться двумя параметрами...например: 1) коэффициент поражения оружия (КО) - эффективность оружия (перочинный нож - миниум, двуручная секира - максимум) 2) коээфициент защиты доспеха (КД) - эффективность доспеха (нет - нет и защиты, латы - маск. защита) При расчете боя к каждому парамету добавляется некий параметр Мастерство (того, кто держил оружие или одел доспех, показывающий общее умение вести себя в бою) и 1D6. Если КО+М+1D6 > КД+М+1D6 - удар прошел. Вычитаем из Хитов носителя доспеха разницу межды правой и левой частью. Если < - то удар не прошел (не пробил доспех или обладатель последнего увернулся) Система позволяет моделировать практически все ньюансы, от ловкого противника без доспеха до неповоротливого слабака в хороших латах. На потерю в скорости от тяжелого доспеха можно поправку не делать, в течении пары минут любой сможет быстро бегать в латах (если он их до этого регулярно носил), а дольше бой будет редко продолжаться, если это не битва 2х армий.


MasterSet: Logger пишет: "по уму", то надо еще считать Знаем плавали. Я лет пять назад озадачивался построением реалистичной системы для настольных RPG. Много говорил с истфехами, читал оружейные форумы и даже одного военного историка мучил неделю. Но когда в общих чертах составил систему сразу стало понятно что для настолки это не пойдет - совершенно муторно это считать, бой будет не интересным и очень долгим. В случае реализации на компьютере чуть легче, но всеравно безблагодатно, так что... Logger пишет: А можно ничего не считать Да хотелось сделать даже еще проще чем ты предполагаешь и обойтись одним параметром. Там система то на самом деле примитивная и с небольшим количеством оружия / брони. А мастерство боя ГГ вообще зависит исключительно от способностей самого игрока - оно параметрами не задается. Ладно, буду делать таблицу.

MasterSet: Вот, тупой вопрос, но что-то меня переклинило. Как сделать переход на текущую локацию (т.е. что бы локация обновилась) если это надо реализовать в общем случае. Т.е. нужен предмет в инвентаре, кликнув на который ты обновишь описание локации в которой находишься.

Ntropy: CURLOC() - возвращает название текущей локации. нужно сделать [pre2]gt curloc()[/pre2] P.S. взято из хелпа http://qsp.su/files/index.php?subcat=5

MasterSet: Я тоже так думал, но что-то не пашет. Наверное ошибся где-нибудь - щас перепроверю. Вот еще вопрос, можно ли стандартными средствами вывести окошко выбора "да/нет"?

Ntropy: MasterSet вроде нет, только окошко с одной кнопкой и текстом или окошко с полем ввода текста и одной кнопкой. Нужно делать отдельную локацию

Nex: Ntropy скобки не нужны.

Hertz: к вопросу об оружии - ошибка в том, что ты совмещаешь две совершенно не связанные вероятности, а именно - вероятность что то или иное оружие пробьет броню и что броня достаточно легка, чтобы увернуться. т.е. их просто нужно разделить и затем по формуле объединять в одну вероятность.

MasterSet: Hertz пишет: к вопросу об оружии В том то и дело, что я морочился сначала с двумя (даже тремя) показателями, а потом подумал какого? Можно объединить. Сопственно все уже воплощено в коде и работает. Проблема только в том, что упростить удалось незначительно, хотелось большего.

WladySpb: По любой рпг системе, лучше разделять броню\шанс пробоя и меткость\уклонение. Но вообще не рекомендую заморачиваться на реализм. Поскольку максимальный реализм - это смерть от одного удара в сердце кинжалом, или от удара топором по голове, причём вне зависимости от уровня и статов) Я в своё время обдумывал реалистичный набор статов и параметров, получилось что реально скучно это будет, либо вообще не играбельно.

MasterSet: WladySpb пишет: По любой рпг системе, лучше Я бы был поосторожнее с утверждениями про любую систему. И выше про реализм уже писал кстати, прмерно то же что и ты ) То что я пишу, ни разу не попытка сделать сложно и/или реалистично. Очень даже наоборот. Просто надо развести несколько типов оружия.

WladySpb: MasterSet Введи классификацию с типами оружия, правда, тебе всё равно придётся создавать что-то типа БД по оружию, любое усложнение системы, даже самое маленькое, влечёт за собой огромные усложнения кода.

MasterSet: Угу. Я так и сделал уже.

MasterSet: Вот такой вопрос. У меня есть некоторая переменная, допустим first Ее в качестве значения использует другая переменная из некого массива, допустим $massive[1] = 'first' В нужном месте мы получаем ее примерно такой манипуляцией: index = 1 $number = $massive[index] Какую манипуляцию произвести, что бы переменная first увеличила свое значение на единицу, если на руках у нас только значение $number Т.е. нельзя просто написать first = first + 1, поскольку нам она дана только как значение $number. Уххх... надеюсь понятно.

Yashko: Ничччего не понял. Тебе надо добавить к first +1, используя только $number?

Byte: dynamic '<<$number>>+=1'

MasterSet: ага, вот зачем динамик нужен. Щас попробуем

MasterSet: Нет, Байт, это не то. Такой код выводит значение first + 1 на экран. А мне нужно чтобы реальное значение first как переменной увеличилось на 1, без демонстрации данного факта игроку.



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