>>>Уже разобрался. Сорри. Можно удалить топик.
не могу уже... сдаюсь... в общем пытаюсь сделать небольшой скриптик, что бы чар собирал из разных сундуков необходимые ресы перед полетом в шахту, проверял что есть, чего нет, добирал недостающее. В случае нехватки писал чего и сколько не хватает.
Сначала попробовал на одном сундуке - все работало. Одним сабом. ПОтом решил расширить: добавил еще два сундука и вывел "ифы" в отдельный саб... и он начал находить только бучер... остального не видит... пфф... наверняка где-нибудь глупая ошибка, но я уже не соображаю. Посмотрите свежим взглядом, пожалуйста.
с нетерпением жду поправок и замечаний!
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
с уважением.