Пытаясь упростить себе жизнь - добился обратного...

Ask for help

Moderators: Murderator+, Murderator

Post Reply
Vitle
Posts: 14
Joined: 2006-11-07 00:52:08
Location: Russia, Saratov
Contact:

Пытаясь упростить себе жизнь - добился обратного...

Post by Vitle »

>>>Уже разобрался. Сорри. Можно удалить топик.

не могу уже... сдаюсь... в общем пытаюсь сделать небольшой скриптик, что бы чар собирал из разных сундуков необходимые ресы перед полетом в шахту, проверял что есть, чего нет, добирал недостающее. В случае нехватки писал чего и сколько не хватает.

Сначала попробовал на одном сундуке - все работало. Одним сабом. ПОтом решил расширить: добавил еще два сундука и вывел "ифы" в отдельный саб... и он начал находить только бучер... остального не видит... пфф... наверняка где-нибудь глупая ошибка, но я уже не соображаю. Посмотрите свежим взглядом, пожалуйста.

с нетерпением жду поправок и замечаний!

Code: Select all

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


с уважением.
Post Reply