>>>Уже разобрался. Сорри. Можно удалить топик.
не могу уже... сдаюсь... в общем пытаюсь сделать небольшой скриптик, что бы чар собирал из разных сундуков необходимые ресы перед полетом в шахту, проверял что есть, чего нет, добирал недостающее. В случае нехватки писал чего и сколько не хватает.
Сначала попробовал на одном сундуке - все работало. Одним сабом. ПОтом решил расширить: добавил еще два сундука и вывел "ифы" в отдельный саб... и он начал находить только бучер... остального не видит... пфф... наверняка где-нибудь глупая ошибка, но я уже не соображаю. Посмотрите свежим взглядом, пожалуйста.
с нетерпением жду поправок и замечаний!
Code: sub OrePack() var CountRes, ValRes, Valsum, ResCargo, a, b, c, sum
ResCargo = '0x401150F7'
DIM ContNumb[3] ContNumb[0] = '0x4009C34C' # Srolls, Bottles, Bandages ContNumb[1] = '0x4005D9B6' # Reagents, Runes ContNumb[2] = '0x4010272A' # Arrows, Buthers
DIM Res[18] Res[0] = '0x1F14' # Rune Res[1] = '0x13F6' # Butcher Res[2] = '0x0F0C' # GH Bottles Res[3] = '0x0F09' # Total Mana Bottles Res[4] = '0x0F08' # Invis Bottles Res[5] = '0x1F49' # GH Scrolls Res[6] = '0x1F50' # Reflect Scrolls Res[7] = '0x1F4C' # Recall Scrolls Res[8] = '0x0E21' # Badnages Res[9] = '0x0F7B' # BM Res[10] = '0x0F7A'# BP Res[11] = '0x0F84'# GA Res[12] = '0x0F85'# GS Res[13] = '0x0F86'# MR Res[14] = '0x0F88'# NS Res[15] = '0x0F8C'# SA Res[16] = '0x0F8D'# SS Res[17] = '0x0F3F'# Arrows
for a = 0 to 17 CountRes = uo.count(Res[a]) ValRes = CheckValCont(a, 1) b = CheckValCont(a, 2) if CountRes < ValRes then sum = ValRes - CountRes ValSum = "'"+str(sum)+"'" uo.findtype(Res[a],'-1',ContNumb[b]) if uo.getquantity('finditem') < sum then c = CheckValCont(a, 3) uo.print("Не хватает: "+c+" !") endif uo.moveitem('finditem',ValSum,ResCargo) endif wait(500) next endsub
sub CheckValCont(ResNumb, arg) var result
DIM Res[18] Res[0] = "Rune" Res[1] = "Butcher" Res[2] = "GH Bottles" Res[3] = "Total Mana Bottles" Res[4] = "Invis Bottles" Res[5] = "GH Scrolls" Res[6] = "Reflect Scrolls" Res[7] = "Recall Scrolls" Res[8] = "Badnages" Res[9] = "BM" Res[10] = "BP" Res[11] = "GA" Res[12] = "GS" Res[13] = "MR" Res[14] = "NS" Res[15] = "SA" Res[16] = "SS" Res[17] = "Arrows"
if arg == 1 then if ResNumb < 2 then result = 1 if ResNumb > 1 then result = 5 if ResNumb > 4 then result = 10 if ResNumb > 7 then result = 75 if ResNumb > 16 then result = 125 endif endif endif endif endif endif
if arg == 2 then if ResNumb > 1 and ResNumb < 9 then result = 0 endif if ResNumb > 8 and ResNumb < 17 then result = 1 endif if ResNumb == 0 then result = 1 endif if ResNumb == 1 then result = 2 endif if ResNumb == 17 then result = 2 endif endif
if arg == 3 then result = Res[ResNumb] endif return result endsub
с уважением.
|