Раса: Человек
Класс: Sorceror
Уровень: ~
Клан: Алый Маг
Описание «системы крафта» на примере Arcanum’a и возможность перенятия ее положительных сторон под реализацию в НВН.
1. Большая доля интереса в приведенной в качестве примера системе лежит в преподнесении игрового мира игрокам (ее то даже и «системой крафта» назвать язык не поворачивается – скорее это стиль прохождения игры «технологом»). Изюминка Арканума – это представленный вполне традиционный фэнтазийный мир в котором противоборствуют за право стать «двигателем прогресса» классическая для фэнтази магия и альтернативная технология (причем технология несмотря на свои технические достижения действительно альтернативная – в лучших традициях Жюля Верна и Николы Тесла). И технология в этой борьбе постепенно берет верх. Если сравнить тут мир Арканума с миром НВН – в последнем будет явно бросаться в глаза забитость темы технологии в игровом мире (но оно и понятно – ведь НВН мир исключительно фэнтазийный). Есть те же дварфы роющие руды и уважающие тяжелую промышленность, есть те же гномы любящие замысловатые механизмы и изобретения, есть те же люди средние во всем и стремящиеся к получению большего за меньшие сроки – но ничего сложнее арбалета или баллисты НВН им придумать не дала. Зато прекрасно развита система всяческого зачарования.
В принципе тему технологии в НВН развить возможно и в том числе до уровня влияния на игровую квенту мира подобно Аркануму (кстати говоря в обоих игровых мирах присутствует отсылка на некий город аля «Атлантида» достигший невероятных высот в своем техническом развитии и потерпевший ошеломительный крах и практически полное уничтожение). И тогда в игре появятся «слухи» о неимоверных изобретениях, о чудесных мастерах и мастерских, о таинственной силе «технологии» - и возможно и крафт тогда станет не тяжбой которую предстоит преодолеть игроку на пути к достижению намеченной цели, а стилем игры подобно Аркануму.
2. Подобно школам магии, в Аркануме технология разделена на дисциплины, занимающиеся отдельными вопросами науки (химия, электрика, механика, пиротехника, огнестрельное оружие, кузнечное дело, травничество, терапевтика) по которым можно классифицировать любой предмет из игрового мира. Каждый изученный пункт такой дисциплины требует определенного значения интеллекта и передвигает «карму» персонажа по отдельной шкале (подобно направленности в НВН) «магия/технология» в сторону технологии, шкала в свою очередь определяет как будет действовать на вашего персонажа магия или технология (поскольку одно в мире Арканума не терпит другого); кроме того изучение пунктов дисциплин: 1) повышает квалификацию персонажа в выбранной специальности (от «дилетанта» до «профессора») что выражается так же численно в абстрактных очках требующихся далее в качестве мерила необходимого уровня знания в дисциплине при сборке изученных схем; 2) каждый изученный пункт в дисциплине открывает для персонажа стандартную схему для сборки уникального игрового предмета который невозможно купить и часто даже добыть каким-либо иным путем, и которые обычно на порядок превосходят качество аналогичных изделий приобретаемых в стандартных магазинах и потому довольно полезен игроку по мере развития. Причем надо заметить что сами схемы сборки выглядят довольно логично и реалистично, что придает системе некоторую долю интереса – например дилетант в сборке огнестрельного оружия может собрать из ржавой трубки и сломанного кремниевого пистолета неплохой новенький кремниевый пистолет, специалист может собрать из зрительной трубки и точной винтовки снайперскую винтовку, а профессор по сборке огнестрельного оружия может собрать из трубы и охотничьей винтовки «слоновье ружье». Изучив дополнительно схемы например пуль – можно собрать из селитры и угля запас боеприпасов при достаточном уровне развития в пиротехнике. А изучив например эксклюзивную схему копьемета – из слоновьей пушки и качественного кинжала с помощью недюжих познаний в огнестрельном оружии и кузнечном деле можно соорудить аналог «базуки». В игре надо сказать есть даже аналог «энергетического» оружия ака «пушка тесла» собирающийся с познаниями в электрике и огнестрельном оружии из снайперской винтовки и жезла тесла, которые в свою очередь позволяют собрать в стандартных схемах эти две дисциплины. А так же возможность собирать «силовую» броню и механических «хенчменов» разного сорта. Разнообразные экзотические схемы находятся разными способами в разных местах игры – некоторые самые распространенные можно купить в лавках ученых-инженеров, некоторые совершенно уникальны и могут быть добыты в процессе прохождения определенного квеста. Все они являются одноразово-применяемым предметом, добавляющим при использовании изученные таким образом схемы в список известных персонажу схем (принцип в общем-то аналогичный изучению заклинаний со свитка визардом в НВН). В описании схемы указанно краткое описание собираемого предмета, требующиеся компоненты (стандартно 2 компонента), и значения очков развития соответствующих компонентам дисциплин (обычно для каждого компонента, реже только для одного – требуя от второго компонента только его наличие). Обычно в таких схемах ярко выражена дисциплина, к которой относится собираемый предмет и либо требуется определенные познания в смежной, либо реже требование в познаниях смежной дисциплины заменяет редкий эксклюзивный предмет, который не так то просто добыть или имеющийся в игре только в единственном числе. Разнообразные ресурсы для сбора предметов в игре можно: 1) часто найти на каких-либо «свалках», складах или в мусорках; 2) купить в соответствующем магазине; 3) добыть в природе, обнаружив в местах его распространения; 4) добыть в ходе квеста в единичном экземпляре; 5) собрать. Естественно что при такой игровой особенности в игре присутствует просто огромная масса разнообразных предметов чисто «бытового» назначения, которые на самом деле являются ничем иным как ресурсом для «крафта» и иногда действительно играют в игре какую-то собственную роль (например в игре есть очки которые добавляют +1 восприятия будучи надетыми персонажем с восприятием меньшим 8 и являются в свою очередь ресурсом для крафта и т.д.). В игре так же присутствует «институт» в библиотеке которого за кругленькую сумму денег можно неоднократно приобрести весьма увесистые различные технические пособия по дисциплинам повышающие на определенное значение текущие очки развития, будучи в инвентаре персонажа (это удобно например если у вас есть схема на сборку какого-либо интересного устройства и уникальные запчасти для него, но не хватает уровня развития в одной из смежных дисциплин либо вы вообще не планируете ее развитие, однако по случаю нахождения необходимых деталей хотели бы все же воспользоваться возможностью собрать устройство). Стечение списка этих факторов делают систему «крафта» увлекательной, а именно: - классификация предметов по техническим дисциплинам (вносящая определенную логику); - выборочное повышение уровня знаний в технических дисциплинах с возможностью применить их непосредственно или скрещивать для получения уникальных изделий; - охота за редкими схемами и непосредственное изучение разнообразных схем сборки предметов (часто этим можно даже зарабатывать в игре – собирая из доступных по обстоятельствам дешевых компонентов дорогие вещи); - охота за редкими компонентами для сборки уникальных вещей и непосредственная добыча разнообразных ресурсов для изготовления предметов для повседневных нужд (раскачанный «крафтер» в Аркануме напоминает эдакого супер мастера-самоделкина который может из подручного мусора, перочинного ножика и пластиковой бутылки собрать и запустить адронный коллайдер, зарядив его батарейками из овощей натыренных из ближайшего сельского огорода). Созданный таким образом персонаж (с упором на развитие в технологических дисциплинах) получается напрямую зависим в игре от вещей – вся его прокачка это прокачка умения создавать одно из другого; помести его в благоприятную ресурсами среду – и он превзойдет с помощью собранных из них устройств кого угодно, помести в «сферический вакуум» - и он окажется полным нулем в игре…
Движок Авроры вполне позволяет реализовать подобную систему и для НВН (надо отметить так же что дополнительной отличительной особенностью вещей в Аркануме является их изнашиваемость: например при критических промахах оружием, или воздействием на броню особых веществ или явлений - огня, кислоты, взрывов, специфических ловушек, уронов элементальных созданий и т.д.). Вместо технических дисциплин и их абстрактного уровня развития вполне подойдут определенные навыки (я уже давал подобную возможную их сводку):
Цитата(Флэристан @ 14 March 2011, 18:45) [snapback]42329[/snapback]
…Теперь посмотрим какое разнообразие навыков нам предлагает НВН..: - крафт брони (сборка всяческой брони и одежды); - крафт оружия (сборка всяческого оружия и боеприпасов); - крафт ловушек (очень универсальный на самом деле навык – ведь к ловушкам можно добавить в принципе любые механизмы); - лечение (почему бы не использовать этот навык для варки зелий и создания лечебных комплектов?); - знание заклинаний (по аналогии с лечением его вполне можно использовать для создания всяческих зачарованных предметов); - знание легенд (в принципе можно использовать этот навык для получения разного рода информации о любом участвующем в крафте предмете от требующихся/составляющих предмет компонентов/значениях и типах навыков и до сведений о возможных местах добычи ресурсов/предметов); - оценка (если для какого-либо вида крафта потребуется создание промежуточных компонентов, я думаю она подойдет не хуже аптекарских весов или глаза-алмаза ювелира); - поиск (все уже давно поняли что этот навык незаменим при «нахождении» разного рода компонентов для крафта встречающихся в природе); - разоружение ловушек (по аналогии со сборкой этот навык можно требовать если вы захотите «разобрать» какое-либо механическое устройство на его компоненты для вполне ясных нужд); - установка ловушек (в принципе этот навык можно отнести по аналогии со своими смежными к умению обращаться со всяческими механизмами а следовательно для их возможного «ремонтирования» или иного вида эксплуатации).
Вместо раздела с изученными схемами пойдет используемая книга с конвертацией в диалог со списком стандартных и изученных схем и активаторами на их сборку с проверкой нужных компонентов в инвентаре. Вместо прокачки технологических дисциплин можно сделать квесты на получение в «институте» статусов специалистов по достижению определенного уровня навыка и изучения стандартных схем. Получаемые в процессе «крафта» вещи можно привязать к соответствующему уровню навыков требующихся для их создания (так что бы их не мог использовать персонаж который не смог бы их создать). И сделать их уникальными в игре и превосходящими по всем показателям обычные. Единственное что требует значительных затрат в введении такой системы крафта – это обеспечение трехкратного разнообразия предметов участвующих в системе: ресурсы распространенные в игре повсеместно; уникальные предметы создаваемые системой крафта; стандартные и экзотические схемы предметов создаваемые системой крафта.
Для упрощения представления такой системы в работе, можно привести пример создания серии однотипных вещей и всех требований к ним: - Серия: «Самодельный меч->Отличный меч->Зачарованный меч->Громобой»; - Дисциплина: «создание оружия/создание ловушек»; - Ресурсы: «заготовка для меча, руда, точило, серебро, кварцевый кристалл»; - Последовательность: 1) прокачка навыка «создания оружия» до +10 и получение в изученные стандартные схемы схему изготовления «Самодельного меча» (находим немного руды в ближайшей пещере, покупаем заготовку для меча у местного кузнеца, используем нашу книгу со схемами и получаем в результате длинный меч с мощными критическими ударами - 1д8, радуемся что благодаря прокачке крафта мы теперь не хуже ВМа с его улучшенным множителем критического удара); 2) прокачиваем навык до +20 и получаем по квесту у нашего мастера в изученные схему изготовления «Отличного меча» (покупаем у какогонить хитрого дварфа-оружейника точило, берем наш любимый Самодельный меч, используем нашу книгу со схемами и получаем в результате длинный меч с мощными критическими ударами - 1д8 + острый, радуемся что благодаря прокачке крафта мы теперь вообще как ВМ с его улучшенным множителем критического удара и расширенным диапазоном); 3) качаем навык до +30 (скиллпоинтами, характеристикой, вещами фитами – как угодно в общем) и получаем в изученные схему изготовления «Зачарованного меча» (долго и упорно ищем в горах и пещерах серебряную жилу и добываем немного серебряной руды, берем наш ненаглядный Отличный меч, используем книгу со схемами и получаем в результате длинный меч с мощными критическими ударами - 1д8 + острый +1 Бонус Зачарования, радуемся что благодаря прокачке крафта мы теперь можем охотиться на оборотней и всякую нечисть с посеребренным мечем совсем как какойнить ведьмак-бард или маг); 4) изучаем немного смежную дисциплину «создание ловушек» и получаем возможность собрать простейшие ловушки (долго и упорно ищем по миру схемку сборки «Громобоя» - наконец находим ее и учим использовав и получив соответствующую схему в свою книгу, находим у ближайшей скалы залежи кварца и подбираем парочку, создаем набор электрической ловушки, используем нашу книгу со схемами и получаем в результате длинный меч с мощными критическими ударами - 1д8 + острый +1 Бонус Зачарования + 1д8 электро, радуемся что благодаря прокачке крафта мы теперь вообще немеряно круты с таким мечем и пойдем теперь с ним хоть на дракона). и т.д. и т.п...
Флэр, пословица "краткость - сестра таланта" к тебе не применима))
Зы. По факту. Осилил только первых два абзаца. Много буков и воды. Что такое Арканум, думаю любой уважающий себя любитель рпг знает. Как бы чуть не то пальто...
Раса: Человек
Класс: Sorceror
Уровень: ~
Клан: Алый Маг
Краткость все-таки не всегда уместна, хоть и сестра таланта. (IMG:style_emoticons/default/smile.gif) Ну, вот оказывается не любой – так что вот попросили описать. Более интересной «системы крафта» я ни в одной другой РПГ не встречал. (IMG:style_emoticons/default/smile.gif)
Это могло бы быть фишкой отдельного проэкта по НВН, ибо подобные особенности системы крафта нехило завязаны с атмосферой и устройством мира в котором проходит игра.
Раса: Человек
Класс: Sorceror
Уровень: ~
Клан: Алый Маг
Я вот думал над этим: дело в том, что НВН не уступает и где-то даже более благодатен, чем Арканум в возможностях реализации «глубокой» системы крафта. (одна только возможность крафтить боеприпасы с всевозможными примочками на «удар» - от простых фаерболов и стен огня в стиле «Рембо» и до экзотических парализаторов или эффектов мгновенной смерти, открывает непаханое поле для фантазии) Но тут встает вопрос другой (я б сказал этический) – дело в том, что при этом всякие «клерики» и «сорки» однозначно уже теряют свое положение «уберкласса» в пользу таинственного «крафтера», который может изготовить «игрушек» по сравнению с которыми первые просто невинные дети. Как это возможно будет контролировать в онлайн игре, и нужно ли вообще это будет контролировать? Не делать же любому скрафченному предмету флаг «нондроп» - слишком топорно. Или смириться с тем, что игра сменит полярность центрированности от персонажей к всевозможным игровым вещам и путям их добычи (где крафт будет лишь одним из возможных методов)… Получается что такая система крафта сделает автоматически из любой фэнтази «Арканум» - где весь игровой мир крутится вокруг идеи противоборства магии и технологии. Надо думать. (IMG:style_emoticons/default/smile.gif)
Собственно тема актуальна на данный момент, хотя и устарела информация данная Флером, но думаю не стоит создавать новую тему. Если данный вопрос где - то разбирался дайте ссыль. Может кто нить ответить на вопрсоы поповоду крафта... К примеру: 1)Сейчас имею Мифриловую рапиру на 21 уровень со следующими особенностями: +5 Магический урон 1д6 Сильные критический урон 1д6 Острота Вопрос: могу ли я положить на данную рапиру еще эффекты или усилить имеющиеся? Данные эффекты накладываются только при крафте или при помощи уже ювелирки? Если нельзя уже нечего сделать, то можно ли было изначально усилить имеющиеся эффекты, скажем 2д6, а не 1д6? 2)У меня сейчас есть несколько вещей на +3/+3. В основном с кожевничества идет +3 тела/+3 дексы. Но в свое время оч помогли подогрев +3 силы/+3 дексы. Вопрос: какой нужен быть класс крафтера, что бы он делал вещи +3 силы/ +3 дексы? И будут ли убирать систему привязанности к классу? Так как больно уж не удобная она! (IMG:style_emoticons/default/sad.gif) У меня начальный класс клир, но от туда я черпаю только касты, сам же одеваюсь на силу и ловкость, а по идеи буду получать с крафта вещи на мудрость+ловкость!? 3)На сколько я знаю при помощи ювелирки можно улучшать разные вещи (одежду, сапоги, кольца, перчатки и тп). Вопрос: есть ли где нить какая нить таблица или хотя бы мелкое описание какие плюсы я могу повесить на вещи? И что для этого нужно? Может игроки хотя бы в кратце могли бы описать, что вешает ювелирка на высоком уровне навыка? Что бы знать, к чему стремиться...
Подробное описание по крафту вещей из металла, кожи, дерева, драгоценных камней и рун уже делаю. Как завершу, выложу описание на сайте взамен того, что сейчас там находится.
Что до улучшения параметров у вещей, то как я уже говорил ранее, сейчас это зависит напрямую от развитого значения мастерства крафтера, а также от типа материала.
В дальнейшем есть идея создания отдельного раздела, посвященного улучшению уже готовых вещей. Вот в нем можно будет вещь "заточить". Но будет вероятность неудачи при чрезмерной "заточке".
Если изначально вещь была +1, то при попытке ее улучшить до +2 шанс 65%, до +3 - 25%, до +4 - 10%, и соответственно до +5 - 5%. Если вещь изначально имеет иную "плюсовость", то и шансы будут сдвигаться. Правда, тут есть один положительный момент, вещь не будет ломаться при "заточке", иначе данный крафт потеряет вообще всякий смысл, а будет использовать редкие ресурсы, которые потребуются для улучшения вещи. Если "заточка" удачная, вещь улучшается, если нет, то просто пропадают затрачиваемые ресурсы, и бонусы остаются без изменений. Также нельзя будет улучшить вещь сразу с +1 на +5. При "заточке" всегда будут промежуточные стадии улучшения вещи.
Возможно, что все ограничится тем, что каждую вещь можно будет улучшить только 1 раз. В общем, я еще подумаю, и посмотрю, как лучше.
В данный момент оружие или вещи усиливаются только 1 раз. Крафт состоит из двух этапов. Создание вещи на определенном типе оборудования, и дальнейшее усиление вещи за счет ювелирного крафта. Учитывая последнее изменение, на вещь нельзя наносить параметры, которые на ней уже имеются.
Да, также после обновления будет введено ограничение, как максимальное количество бонусов на вещи, напрямую зависящее от типа использованного материала. Не очень хочется видеть вещи, на которых висит n-ое количество бонусов, что сводит на нет весь интерес от создания и улучшения вещи.
По поводу улучшения от 1 до 5 очень порадовало, но по поводу улучшения только один раз огорчает конечно... Просто получается мне заточили рапирку на 21 левл и достаточно слабовато, и теперь я нечего не смогу сделать тупо из-за одной глупой ошибки по не опытности...(IMG:style_emoticons/default/sad.gif) Да хотел спросить: сейчас можно ли накрафтить шмотку, что бы она требовала больше 23 левл? И я как понимаю в дальнейшем буду специальные ограничения?
Цитата
Как завершу, выложу описание на сайте взамен того, что сейчас там находится.
Эм, ну можно, конечно, проверять перед каждым новым наложением бонуса, какого уровня будет вещь, чтобы вещей выше 23 уровня не получалось. В любом случае, можно смотреть уровень персонажа, и если он ниже уровня вещи, то выводить сообщение, что вещь получится выше вашего уровня. А также спрашивать - "Вы уверены, что хотите сделать подобную вещь?".
Это сильно бы облегчило жизнь крафтерам. Особенно тем, кто сами крафтом не занимается, а лишь готов тоскать материал для производства нужных им вещей...
Цитата(Yalini @ 28 February 2012, 03:06) [snapback]44916[/snapback]
Эм, ну можно, конечно, проверять перед каждым новым наложением бонуса, какого уровня будет вещь, чтобы вещей выше 23 уровня не получалось. В любом случае, можно смотреть уровень персонажа, и если он ниже уровня вещи, то выводить сообщение, что вещь получится выше вашего уровня. А также спрашивать - "Вы уверены, что хотите сделать подобную вещь?".
Всплывает одна из фундаментальных проблем нвн-скрипт на скоко я знаю (IMG:style_emoticons/default/smile.gif) , никто пока не выковырял формулу подсчета стоимости/уровня вещи от пропертиев вещи.
Ali Daydreamer, вот уж сложности. Давно есть кастомная функция определения уровня вещи. Тем более есть 2da таблица, из которой берется уровень по стоимости вещи.
Раса: Человек
Класс: Sorceror
Уровень: ~
Клан: Алый Маг
Формулы и не будет – зависимость не линейная, можно только составить таблицу. А дальше дело за скриптом, который: снимает стоимость модифицируемого предмета (GetGoldPieceValue), добавляет к ней стоимость модифицирующего свойства (GetItemPropertyCostTableValue), и сравнив с таблицей цен (см. ниже) выводит уровневые требования получаемого предмета.
(слева уровень – справа цена в ГП по превышению которой этот уровень требуется)
Суть в том, чтоб получить уровневые требования создаваемого предмета не постфактум его создания, а перед тем как создать, насколько я понимаю. В принципе можно конечно создавать вещь-копию и оценивать ее каждый раз, но мне думается таким скриптом оценивать проще, чем заморачиваться с дубликатами.
Флэристан, проще создавать "теневую" копию, чем так. Иначе придется обращаться к большому количеству разнообразных 2da таблиц, в которых хранится информация о стоимости бонуса. Что, сам понимаешь, намного будет медленнее, чем создание предварительной копии, оценка ее стоимости и вывод предварительной информации на обозрение игроку.
Цитата(Yalini @ 28 February 2012, 22:06) [snapback]44928[/snapback]
Флэристан, проще создавать "теневую" копию, чем так. Иначе придется обращаться к большому количеству разнообразных 2da таблиц, в которых хранится информация о стоимости бонуса. Что, сам понимаешь, намного будет медленнее, чем создание предварительной копии, оценка ее стоимости и вывод предварительной информации на обозрение игроку.
А как же кэшировать данные часто используемых таблиц при старте модуля в локалках этого модуля?
Я имел ввиду не то, вернее я наверное немного затупил с уровнем (IMG:style_emoticons/default/smile.gif) , ибо требуемый уровень действительно есть функция от текущей стоимости и так как градаций всего 20 или 60 то можно вполне определить ее дискретно.
А вот стоимость вещи без ее создания не определишь (IMG:style_emoticons/default/smile.gif) , хотя теоретически не невозможно (IMG:style_emoticons/default/smile.gif) . Я про то что когда занимался этой проблемой не нашел математической функции определения дифференциала стоимости который образуется при добавления определенного свойства, Yalini да как ты сказал, есть 2да таблицы где есть базовая стоимость вещи без пропертиев, и базовая стоимость свойства помойму даже есть в другой 2да, но и что дадуть эти данные если один фиг зависимость неизвестна. И как ты написал приходится создавать "теневую вещь", а вот если бы была математическая функция то можно было бы использовать ее плюшки анализируя и преобразовывая ее (и производительность сэкономив для чегото другого, например для более больших опций в генераторе вещей).
Цитата(Флэристан @ 28 February 2012, 18:16) [snapback]44926[/snapback]
Формулы и не будет – зависимость не линейная
(IMG:style_emoticons/default/biggrin.gif) Фраза войдет в историю (IMG:style_emoticons/default/smile.gif) . Если ты не знал даже по значениям есть математические методики вывода полиномной функции (помойму какой-то метод ньютона или лапласа). Можешь попробовать в экселе написать 2 столбца данных, нарисовать точечную диаграмму, щелкнуть в диаграмме правой кнопкой - "добавить линию тренда" и поставит там галку чтоб подписывала функцию. Чем больше порядок функции тем она точнее. Хотя конечно хрен знает как в нвн действительно устроена эта функция, непрерывная ли она или какая. вот в этом собственно и проблема
Ali Daydreamer, зачем их кэшировать, если давно добавлен параметр в настройках ini файла, отвечающий за кэширование 2da таблиц? Потом, даже если их и кэшировать, то процесс нахождения нужного параметра в таблице довольно длительный процесс. А еще нужно посчитать стоимость каждого бонуса. Потом сложить, и снова обратиться в таблицу, дабы узнать, какой же уровень имеет вещь (IMG:style_emoticons/default/smile.gif) По мне проще написать библиотеку, отвечающую за превращение числовых данных в строковые значения, чем обращаться в таблицу с конкретным бонусом, узнавать его стоимость, потом складывать, обращаться со следующим бонусом, снова складывать, и т.д. Ведь лучше работать с одним объектом, чем с данными, хоть и кэшированными. Нет, конечно, можно поступить совсем просто. Для бонусов, которые еще не нанесены на вещь, выводить информацию в токен, используя обычные локальные переменные, как я это делал с рецептами в свое время. Но тут нельзя забывать про то, что вещь может уже быть созданной, и игрок просто желает ее улучшить. Также на вещи некоторые бонусы могут повторяться.
Сейчас я делаю что. Создаю вещь и перехожу к изменению названия и описания. Залезая в 2da таблицу, используя стоимость вещи, узнаю ее уровень. Собранную информацию формирую в описание и копирую вещь из временного хранилища, в котором производились все операции над вещью, в оборудование, с которым работает игрок.
Аналогично можно сделать и с копией, на которую будут нанесены бонусы (процесс довольно быстрый, не то что функция создания или удаления вещи). Единственое, при таком процессе не будут отниматься ресурсы, затрачиваемые на создание вещи, а также не будет происходить последний процесс копирования вещи в оборудование. Если игрок отказывается от создания, то вещь будет удалена.
Причем, чтобы функции создания вещи и нанесения бонусов не запускалась дважды, при нажатии кнопки "Создать" можно использовать уже созданную копию вещи. Таким образом избегаем двойное создание одной и той же вещи и, соответственно, выполнение остальных действий. Удалить ее недолго, а вот вторично выполнять весь цикл создания вещи, процесс длительный и ресурсоемкий.
Единственное, что стоило бы оптимизировать, это обращение в таблицу за уровнем. Т.е. при первом обращении в таблицу надо создать массив данных, при обращении в который сразу будет выводится уровень вещи. Иначе же каждый раз приходится прокручивать таблицу из 2da файла. Массив очень простой:
1-0001000;2-0001500;3-0002500 и т.д.
Нули нужны для поиска нужного количества знаков. Максимум 7 знаков, т.е. 1 млн.
Что мы делаем? Считываем стоимость вещи (с нанесенными бонусами). Далее, залезаем в массив, и используя тот же цикл перебора уровней, коих в таблице 60, (в принципе можно обрезать и на 30 уровне; все быстрее будет; учитывая потолок в 23 уровня) ищем нужный уровень вещи по ее стоимости.
Правда, я не знаю точно, что будет быстрее. Считывание и сравнивание данных через цикл или считывание данных из массива через тот же цикл? В любом случае, что в таблице, что в массиве, будет происходить поиск нужного значения. В принципе, можно и не городить огород (чтобы не использовать тяжелую функцию парсинга строки), а сохранить полученные данные из таблицы на переменные, на прокручивание которых уйдет гораздо меньше времени, чем если использовать одну строку.
Если есть идеи, как это сделать иначе, предлагайте.
Формулы не будет не потому что невозможно ее определить по нелинейной зависимости, а потому что тулсет не маткад. Ты понял, о чем речь – работая с таким уровнем данных, проще использовать аналоговый, а не цифровой подход и сделать таблицу.
Цитата(Yalini @ 28 February 2012, 16:39) [snapback]44932[/snapback]
Если есть идеи, как это сделать иначе, предлагайте.
Походу с такими пирогами действительно создать вещь проще. (IMG:style_emoticons/default/wacko.gif) Можно сделать 2 контейнера: в 1 закладывается исходная вещь и выбирается добавляемый бонус – когда он выбран, во 2 создается копия этой вещи с флагом «нондроп» (тогда ее оттуда нельзя будет взять) и добавленным выбранным бонусом. Если результат устраивает игрока – он подтверждает создание, и вещь в 1 контейнере удаляется (с проверкой ее наличия), а во 2 контейнере убирается с вещи флаг «нондроп». Если не устравиет – отменяет, и вещь во 2 контейнере уничтожается (лучше уничтожать циклом все содержимое контейнера-2 на тот случай если кто-то зависнет при создании, чтоб не оставалось левых копий). Как-то так.
Цитата(Yalini @ 29 February 2012, 01:39) [snapback]44932[/snapback]
Т.е. при первом обращении в таблицу надо создать массив данных, при обращении в который сразу будет выводится уровень вещи. Иначе же каждый раз приходится прокручивать таблицу из 2da файла. Массив очень простой: 1-0001000;2-0001500;3-0002500 и т.д.
ну собственно это я и имел под словом "кэшировать", кстати, я вспомнил, галка о кэшировании 2да все-же субъективно у меня было ощущение что работала медленней чем записанные при старте модуля псвдо-массивы уже разнесенные по типам (кстати да еще эти пляски с переводом из стринга) и т.п.
(IMG:style_emoticons/default/smile.gif) , вообще это скорее мечта - чтоб все характеристики вещи можно было получить с помощью математической функции без ее(вещи) создания (IMG:style_emoticons/default/smile.gif) .. да и в душе то знаешь что поидее все это не не возможно, и мечту можно "сбыть".
Цитата
1-0001000;2-0001500;3-0002500 и т.д. Если есть идеи, как это сделать иначе, предлагайте.
А если например эту таблицу написать в каком-нибуть инклюде имеенно в самом коде, столбик текста типа swich,case. мне кажтся что подобную "табличку" по другому чем в скомпилированном скрипте уже не как эффективнее не сделаешь.
Set Invisible (Unapprove Post)
3 User(s) are reading this topic (3 Guests and 0 Anonymous Users)