Добавлен ArhiMEN,
опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
Wurst
Тип:
Наработка
Версия Warcraft:
1.26 (default) +
Решил создать наработку для крафта предметов. Она безумно проста, но очень эффективна.
Код
import Tier2
import Tier1
import RegisterEvents
import Tier3
public tuple itemMap(int itemId, int craft1, int craft2, int craft3, int craft4, int craft5)
public let ITEMS = [itemMap(T2_ITEM_1, T1_ITEM_1, T1_ITEM_4, 0, 0, 0),
itemMap(T2_ITEM_2, T1_ITEM_2, T1_ITEM_3, 0, 0, 0),
itemMap(T3_ITEM_1, T2_ITEM_1, T2_ITEM_2, 0, 0, 0)]
function getSize() returns int
int index = 0
bool _stop = false
while _stop == false
if ITEMS[index].itemId == 0
_stop = true
return index - 1
index += 1
return 0
init
registerPlayerUnitEvent(EVENT_PLAYER_UNIT_PICKUP_ITEM) ->
let u = GetTriggerUnit()
for i = 0 to getSize()
if (u.hasItemById(ITEMS[i].craft1) or ITEMS[i].craft1 == 0) and (u.hasItemById(ITEMS[i].craft2) or ITEMS[i].craft2 == 0) and (u.hasItemById(ITEMS[i].craft3) or ITEMS[i].craft3 == 0) and (u.hasItemById(ITEMS[i].craft4) or ITEMS[i].craft4 == 0) and (u.hasItemById(ITEMS[i].craft5) or ITEMS[i].craft5 == 0)
u.getItemById(ITEMS[i].craft1).remove()
u.getItemById(ITEMS[i].craft2).remove()
u.getItemById(ITEMS[i].craft3).remove()
u.getItemById(ITEMS[i].craft4).remove()
u.getItemById(ITEMS[i].craft5).remove()
u.addItemById(ITEMS[i].itemId)
Как работает:
Я создал кортеж, с переменными itemId - id предмета и craft1 - craft5 - id предметов из которых он собирается. Их может быть от 2 до 5 и располагаться не по порядку.
Чтобы добавить свои предметы необходимо в массив ITEMS добавить id своих предметов по примеру в коде. Если вам нужно чтобы предмет собирался меньше чем из 5 предметов, нужно поставить в оставшихся craft нули.
Я создал кортеж, с переменными itemId - id предмета и craft1 - craft5 - id предметов из которых он собирается. Их может быть от 2 до 5 и располагаться не по порядку.
Чтобы добавить свои предметы необходимо в массив ITEMS добавить id своих предметов по примеру в коде. Если вам нужно чтобы предмет собирался меньше чем из 5 предметов, нужно поставить в оставшихся craft нули.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Комментарии пока отсутcтвуют.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.