Page 1 of 1

Добор регов Хелп

Posted: 2007-09-01 10:56:40
by $keR
Добрый день всем, вот немогу сделатиь так,чтобы он из двух-3-4.. сумок реги доберал..
тоесть сделать массив сумок, и он,если нашел одну из массива брал из нее..
как ето все воплотить в жизнь, может кто поможет, ?



Code: Select all

Sub REGS() 
 
#uo.exec('addobject symka')
#while uo.targeting()
#wait(100)
#wend
VAR amount = 10
VAR r, q
#VAR RegBag = 0x416D75BB # ICE
VAR RegBag = 0x4019722A  # DECPISE
Dim reg[8]
reg[1] = 0x0F84
reg[2] = 0x0F85
reg[3] = 0x0F86
reg[4] = 0x0F7A
reg[5] = 0x0F7B
reg[6] = 0x0F8C
reg[7] = 0x0F8D
reg[8] = 0x0F88
uo.ignorereset()



 For r = 1 to 8
 if uo.count( reg[r] )<>amount then
  q = amount - uo.count( reg[r] )
 
   if q <> 0 then
     if q > 0 then
     
      uo.useobject( RegBag )
      CheckLag()
      uo.findtype( reg[r] , -1 , RegBag )
     
       If uo.findcount() == 0 then
        uo.print('нехватает реагента!')
        return
       endif
       
      uo.moveitem('finditem', STR(q) ,'backpack')
      wait(100)
      CheckLag()
     
        else   
     
      q = q*-1     
     uo.findtype( reg[r] , -1 ,'my')
     uo.moveitem('finditem', STR(q) , RegBag )
     wait(400)
     CheckLag()
           endif
   endif
     endif
 next
uo.print('!! -= Done =- !!')
end sub

Posted: 2007-09-13 02:16:02
by $keR
ну че никто не может помоч чтоли?

Posted: 2007-09-13 22:46:16
by ruff
возьми типы регов в кавычки

Posted: 2007-09-14 13:47:28
by $keR
ты читал что я вообще написал?
если нет, то прочитаи еще разок,
для непонятливых:
идея такова.. составить массив сумок в которых могут быть реги.. при запуске скрипта чар доберает реги из тои сумки(из массива) которая рядом с ним..
кто может- помогите!

Posted: 2007-09-14 14:32:16
by ruff
ну рас такой умный сам воплощай свои идеи в жизнь %)

Posted: 2007-09-14 19:03:02
by Scripts Writer
Ищи сумку по типу на полу,если нашол то если тип найденной сумки совпал с типом из массива то открывай и бери, иначе либо ищи другую сумку с другим типом либо сравнивай тип найденной на полу с другим элементом массива.

Posted: 2007-09-15 02:29:33
by $keR
вот вот.. ето я понимаю, а как ето воплотить в жизнь не знаю
подскажите начало.. шаблон хотябы..

Posted: 2007-09-15 03:07:45
by Destruction
Не совсем вижу проблемы..

Code: Select all

var N = 3
DIM reagent_packs[ val( str( N ) ) ]
reagent_packs[ 0 ] = "0x00000000"
reagent_packs[ 1 ] = "0x00000000"
reagent_packs[ 2 ] = "0x00000000"
for i = 0 to N -1
   ; если мало регов
   ; добираем реги из сумки reagent_pack[ i ]
   ; иначе
   ; i = N -1 - выход из цикла.
next


Или я что-то не так понял? Могу и ф-цию добора приложить, если нужно..

Posted: 2007-09-15 14:47:29
by $keR
делал примерно такое же.. он из первои из массива доберал, как написать чтобы он искал,

uo.getdistance(reagent_packs)<3
немогу додумать,что нужно.. чтобы он искал пак.. проверял тоесть ,если он рядом или нет, если первого пака не обнаружил, тоищеи второи.. и т.д.. дистанЦия "3"

Posted: 2007-09-15 14:53:52
by Scripts Writer

Code: Select all

ищешь по типу на полу
если нашел то
  сравниваешь ид найденной и из массива
иначе
  ищешь другую

Posted: 2007-09-15 18:26:14
by Destruction
Ага, я кажись переварил проблему :)

У тебя есть ID сумок, но ты не до каждой можешь дотянуться в "данный" момент?

Посмотри, что вернёт uo.getX() например.. Вроде должно неплохо помочь :)

Posted: 2007-09-15 18:45:41
by Scripts Writer
Пусть дистанцией проверяет если не можешь достать

Posted: 2007-09-16 07:01:00
by $keR
Scripts Writer wrote:

Code: Select all

ищешь по типу на полу
если нашел то
  сравниваешь ид найденной и из массива
иначе
  ищешь другую

ток искать нада по ID

мм
вобщем ты правельно меня понял, я просто не знаю как ето в жизнь воплотить... -(

Posted: 2007-09-16 07:26:35
by Destruction
$keR wrote:ток искать нада по ID

Это какой такой интересной коммандой ?))

Posted: 2007-09-16 09:27:48
by Scripts Writer
А что может иметь ID но не иметь типа? Даже если у тебя 4-5 разных типов сумок то забей их и не надо будет в иной раз вписывать ID новой сумки с регами

Posted: 2007-09-17 04:34:35
by $keR
так как мне сделать?
uo.findetypefromground('type')
чет не поиму...

Posted: 2007-09-18 07:44:27
by $keR

Code: Select all




Sub REGS()
 
 
VAR amount = 110
VAR r, q,i

Dim item[2]
item[0]='type_bag_1'
item[1]='type_bag_2'
for i=0 to 1

Dim reg[8]

reg[1] = 0x0F84
reg[2] = 0x0F85
reg[3] = 0x0F86
reg[4] = 0x0F7A
reg[5] = 0x0F7B
reg[6] = 0x0F8C
reg[7] = 0x0F8D
reg[8] = 0x0F88
uo.ignorereset()


uo.findtype(item[i],-1,'ground')
if uo.findcount('finditem') then
uo.useobject(findeitem)
#что тут писать?
#и как сделать чтою
return
end if
 For r = 1 to 8
 if uo.count( reg[r] )<>amount then
  q = amount - uo.count( reg[r] )
 
   if q <> 0 then
     if q > 0 then
     
     # uo.useobject(RegBag)
      CheckLag()
      uo.findtype( reg[r] , -1 , item[i] )
     
       If uo.findcount() == 0 then
        uo.print('нехватает реагента!')
        return
       endif
       
      uo.moveitem('finditem', STR(q) ,'backpack')
      wait(100)
      CheckLag()
     
        else   
     
      q = q*-1     
     uo.findtype( reg[r] , -1 ,'my')
     uo.moveitem('finditem', STR(q) , item[i])
     wait(400)
     CheckLag()
     
     endif
   endif
   
 endif
 next
uo.print('!! -= Done =- !!')
end sub


ногами не бить, немогу додумать как сделать..

Posted: 2007-09-22 08:55:00
by $keR
ну так что,поможет ктонить мне ?

Posted: 2007-10-02 21:12:55
by Fenixsis

Code: Select all

Ну вот у меня работает скрипт выкладывает если больше и добирает...


sub Regipo50Shtuk()
uo.useobject ('0x400cc6a3')
wait(3000)
#Реги
CheckLag()
getreg('0x0F7B',(50-UO.BM),50)#BM
CheckLag()
getreg('0x0F7A',(50-UO.BP),50)#BP
CheckLag()
getreg('0x0F84',(50-UO.GA),50)#GA
CheckLag()
getreg('0x0F85',(50-UO.GS),50)#GI
CheckLag()
getreg('0x0F86',(50-UO.MR),50)#MR
CheckLag()
getreg('0x0F88',(50-UO.NS),50)#NS
CheckLag()
getreg('0x0F8C',(50-UO.SA),50)#SA
CheckLag()
getreg('0x0F8D',(50-UO.SS),50)#SS
#Свитки
#Алхимия
end sub

sub getreg(reg, kol, kol1)
if kol>0 then
UO.FindType(reg,'0x0000','meshok')
UO.Grab(Str(kol),'finditem')
wait(700)
 UO.MoveItem("finditem", "0","backpack", "150", "150", "150") 
endif
if kol<0 then
UO.FindType(reg,'0x0000','backpack')
UO.SetReceivingContainer('meshok')
UO.Grab(Str(UO.GetQuantity('finditem')-kol1),'finditem')
wait(700)
UO.MoveItem("finditem", "0","0x400cc6a3", "120", "120", "120") 
UO.UnSetReceivingContainer()
endif
end sub


sub CheckLag()
   UO.DeleteJournal()
   UO.Click('backpack')
   repeat
      wait(50)
   until UO.InJournal('backpack')
end sub

Posted: 2007-10-03 10:14:38
by $keR
=)))спаб канеш, но ты не читал посты выше? прочти, и посмари что я выложил и что ты..=) и что мне нужно..