Содержание
В этой статье мы рассмотрим, как можно комбинировать источники ценности и логические функции, чтобы создать очень мощные источники ценообразования.
Описание функций строки цен
Сначала мы кратко рассмотрим функциональные возможности, которые можно использовать. Строки ценообразования поддерживают ссылку на источник значения для определенного элемента, простые математические функции и логические функции, такие как ifgte() и round(). Мы разберем все это немного подробнее, а потом покажем несколько интересных примеров полезных и хорошо известных строк и объясним, почему они такие, какие они есть.
Основы математики
Все ваши операции ценообразования могут использовать простую арифметику, например сложение, вычитание, умножение и деление. Очевидно, вы знакомы с процентами, поскольку большинство моих операций используют разные проценты, например 120% крафта, оцениваемого как 1,2*крафта.
Вы можете использовать арифметику, чтобы объединить разные источники цен или изменить источник стоимости другим источником стоимости. Самый распространенный способ использования этого – это, конечно, просто добавить стоимость двух разных источников ценообразования. Вы также обычно хотите использовать это, чтобы получить различные кратные той же строки цены для минимальной, обычной и максимальной цены. К примеру, 120% крафта как минимум, 200% крафта как обычного и 500% крафта как максимума.
Ссылаясь на стоимость конкретного товара
Я показал это немного раньше в своей последней публикации в этом руководстве. Я использую это в источнике цен Expulsom. Для этого просто добавьте скобку после названия источника значения, затем напишите «i:», а затем itemID элемента, на который вы хотите ссылаться. ItemIDs можно найти, найдя элемент wowhead, и это будет номер в веб-адресе.
Это очень полезно, в частности, для создания строк ценообразования для материалов BoE, а также для создания строк, оценивающих ожидаемую стоимость процессов со случайными результатами, такими как разочарование и поиск.
Чтобы использовать его для этого, вы просто должны создать простую формулу для ожидаемой стоимости, умножив вероятность одного из результатов на урожайность. Поэтому для поиска мы умножили бы вероятность каждого драгоценного камня на руду для каждого из драгоценных камней, а затем добавили их все вместе.
Использование логических функций
TSM также обладает хорошим количеством логических функций. Их можно использовать для определения минимального из двух значений, а максимальное, чтобы округлить число или сравнить числа. Именно благодаря этому можно увидеть, какое большее число и просто перечислить несколько.
Ниже представлен список всех логических функций, задокументированных на веб-сайте TSM.
- min()
- max()
- first()
- check()
- convert()
- ifgt()
- ifgte()
- iflt()
- iflte()
- ifeq()
- round()
- roundup()
- rounddown()
Как видите, список достаточно длинный, но, к счастью, мы можем сгруппировать их, поскольку многие из них имеют схожую функциональность.
Min() and max()
Min и max возвращают минимальное или максимальное значение. Чтобы воспользоваться им, просто введите, например, min(crafting,dbmarket). Это возвратит минимальное значение crafting или dbmarket. Min и max полезны в строках ценообразования, где нужно сравнить два источника. Простые примеры i 120% max(avgbuy,dbmarket). Это вернет больше всего из двух источников + полезно в операциях пролистывания, чтобы гарантировать, что вы никогда не опубликуете свои элементы дешевле, чем вы их купили.
First()
First просто вернет первый действительный источник цены. Вы можете использовать это, чтобы проверить dbmarket на редкий элемент, а затем вернуться в regionmarketavg, если он не может найти dbmarket.
Check()
Проверка была старым способом использования логики в стиле if, она фактически потеряла смысл из-за добавления явных функций if, поэтому мы не будем вдаваться в это.
Convert()
Convert возьмет источник цены и проверит, можно ли конвертировать предмет. Это актуально для вечных из гнева (eternals from Wrath), которые можно превратить в кристаллизированный огонь или землю.
Вариации if
TSM4 имеет 5 различных функций if. Все они оцениваются одинаково. Они принимают 3 или 4 аргумента, например ifgte(a,b,c,d). Функция будет сравнивать a и b на основе логики, которую подразумевает название функции, а затем возвращать значение в C, если оценка истинна, или d в любых других случаях. Для тех, кто знаком с программированием, это будет обычным делом.
Вариацииif:
ifgt = Если больше
ifgte = Если больше или равно
Iflt = если меньше
iflte = Если меньше или равно
ifeq = если равно
Вот простой пример:
ifgt(dbmarket,2g,70%dbmarket,1c)
Эта формула сравнивает dbmarket с 2 золотыми. Если dbmarket предмет превышает 2 золота, это будет оценено как 70% dbmarket, иначе это будет 1 медь. Это можно использовать в качестве максимальной цены для закупочных материалов, если вы, например, хотите избежать самых дешевых.
Округление
Круглые функции тоже очень похожи. Имена почти точно говорят о том, что они делают. round() будет использовать стандартные правила округления, а roundup() и rounddown() будут округлять в большую или меньшую сторону. Функция имеет два аргумента round(a,b), где a – это значение, которое нужно округлить, а b – значение, которое нужно округлить.
round(crafting,10s) округлит, например, стоимость изготовления до ближайших 10 серебряных. Округление может быть полезным, чтобы убедиться, что ваши обычные цены лучше, что может помочь вам увеличить продажи.
Некоторые наглядные примеры
Мы уже показали вам несколько примеров выше, но здесь мы рассмотрим еще несколько, чтобы показать вам, как это можно использовать.
Уровень расщепления BfA крафтовых наручей
Создаем этот источник для определения значения расщепления при работе с необычными наручами. Это будет измерять значение величины материалов, которые вы получаете из этого и включает в себя изменение для конкретного procs. Чтобы сделать это, вы просто берёте среднее значение пыли необычного наручия и умножаете это на шанс получить необычные наручи. Затем вы умножаете стоимость материалов, получаемых с редких наручей на вероятность получения редких наручей. Затем вы добавляете их вместе.
0.85*(dbmarket(i:152875)*5.64)+0.15*1.5*(dbmarket(i:152875)+dbmarket(i:152876))
Снайперская нить BilisOnyxia
Это очень популярная струна, которую, мы уверены, многие из вас используют для снайперской стрельбы.
Она очень длинная и содержит много вложенных функций ifgt(). Что она делает так это то, что каждая функция ifgt() сравнивает стоимость предмета с установленным количеством золота, а затем дает процент, за который вы готовы купить предмет. Идея заключается в том, что вы готовы платить больше за дорогие товары по их стоимости, чем за дешевые.
Если значение выше 250 000 золотых, то первый ifgt будет оцениваться как 80% от минимальной цены и использоваться, если он ниже, он перейдет к следующему ifgt и продлится до конца, где любые значения ниже 1000g будут проигнорированы. Это позволяет использовать строку для множества различных элементов с одной строкой.
Мы используем аналогичную логику в своей строке боевых питомцев.
ifgte(ItemQuality, 1, ifgt(minprice, 250000g, 80% minprice, ifgt(minprice, 100000g, 70% minprice, ifgt(minprice, 50000g, 60% minprice, ifgt(minprice, 10000g, 50% minprice, ifgt(minprice, 5000g, 30% мінімальна ціна, ifgt(minprice, 1000g, 10% мінімальна ціна, 0c)))))), 0c)
Вывод
Логические функции и математика могут использоваться для создания сложных строк ценообразования, что поможет вам опередить конкурентов. Они также могут упростить настройки TSM, поскольку можно использовать единый набор строк и операций для многих рынков.