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
=)))спаб канеш, но ты не читал посты выше? прочти, и посмари что я выложил и что ты..=) и что мне нужно..