Page 1 of 1

Херь со скриптом...

Posted: 2006-02-19 15:47:44
by Waterboy
Есть вот такой скрипт...

Code: Select all

#Для работы скрипта надо: 
#1.  Сундук. 
#2.  В сундуке логи(все какие вы решили потратить) 
#3.  В сундуке 2 Backpack'a. 
#3.1 В 1-ом Backpack'е мешки(Bag или Belt pouch), в них будут складываться посохи/удочки. 
#3.2 2-ой Backpack пустой, в него будут складываться мешки(взятые из 1-го Backpack'a) 
#    заполненые    посохами/удочками. 
#4.  Любой инструмент для плотничной работы. В частности: 
#    a dovetail saw - '0x1028' 
#    a smoothing plane - '0x1032' 
#    a jointing plane - '0x1030' 
#    an inshave - '0x10E6' 
#    a froe - '0x10E5' 
#    a scorp - '0x10E7' 
#    ... 
#    Все типы привыдены для инструментов такого - / направления. 
#    Значение "LogColor='0x0000'" менять не нужно, из сундука беруться первыми простые логи(если есть), 
#    если нет, то любые другие, беруться до тех пока их не остаеться 4. После следющий тип логов. 
#    Поэтому в сундук класть только логи для прокачки ! 
#    
#    Для работы скрипта НУЖНО ТОЛЬКО заменить значения !!! 

sub Carp() 
#===================== 
VAR BagSer            #| Эти значения менять не нужно. 
Var LogColor='0x0000' #| 
Var fiz=0,ud=0,sum=254#| 
Var ProductOL='0x0000'#| 
Var LogType='0x1BDD'  #| 
#===================== 

#Измените значение на ID сундука(с логами и 2-мя Backpack'aми) 
Var MainBox='0x4046E3DE' 
#Измените значение на ID Backpack'a(с пустыми мешками) 
Var BoxEB='0x4049042C ' 
#Измените значение на ID Backpack'a(для мешков с удочками/посохами) 
Var BoxFB='0x404902B9 ' 
#Измените значение на Type мешков. (bag - '0x0E76', Belt pouch - '0x09B0') 
Var BagType='0x0E76' 
#Измените значение на Type инструмента для плотничной работы. См. описание. 
Var CarpentrTool='0x1034 ' 

UO.Useobject(MainBox) 
Wait(500) 
UO.Useobject(BoxEB) 
Wait(500) 
UO.Useobject(BoxFB) 
Wait(500) 
UO.Exec("set finddistance 0") 
UO.FindType(BagType,-1,1) 
If UO.FindCount('finditem')<1 then 
   UO.FindType(BoxEB,-1,MainBox) 
   UO.FindType(BagType,-1,BoxEB) 
   BagSer=UO.GetSerial('finditem') 
   UO.Grab('1',BagSer) 
   Wait(500) 
   UO.Moveitem(BagSer,'1','ground') 
   Wait(500) 
   UO.Useobject(BagSer) 
else 
   BagSer=UO.GetSerial('finditem') 
   UO.Useobject(BagSer) 
Endif 



Repeat 
  While NOT UO.Hidden() 
    UO.UseSkill('Hiding') 
    Wait(3000) 
  Wend 

UO.FindType(LogType,-1,2) 
LogColor=UO.GetColor('finditem') 
  If UO.GetQuantity('finditem')<5 then 
   UO.FindType(LogType,LogColor,MainBox)  
    If UO.GetQuantity('finditem')<5 then 
   UO.FindType(LogType,-1,MainBox) 
   UO.Grab('5','finditem') 
   wait(500) 
    Endif 
   UO.Grab('5','finditem') 
   wait(500) 
  Endif 

 If (UO.SkillVal("Carpentry",1) > 683) then 
   UO.WaitMenu('Carpentry','Weapons & Tools','Weapons & Tools','fishing pole') 
   ProductOL='0x0DBF' 
  else 
   UO.WaitMenu ('Carpentry','Weapons & Tools','Weapons & Tools','quarter staff') 
   ProductOL='0x0E89' 
  Endif 
UO.DeleteJournal() 
UO.UseType(CarpentrTool) 
  Repeat 
   Wait(100) 
  Until (UO.InJournal("You put") or UO.InJournal("You fail")) 
  If UO.InJournal("You put") then 
   ud=ud+1 
  else 
   fiz=fiz+1 
  Endif 

UO.FindType(ProductOL,-1,2) 
  While UO.FindCount() > 0 
   UO.MoveItem('finditem','1',BagSer) 
   Wait(500) 
   UO.FindType(ProductOL,-1,2) 
  Wend 

UO.FindType(ProductOL,-1,BagSer) 
UO.Print("В текущей сумке "+STR(UO.FindCount('finditem'))+" шт.") 
UO.Print("Рука дрогнула "+STR(fiz)+" раз. Сделано "+STR(ud)+" шт.") 
UO.Print("Процент дрожания руки: "+MID((STR(fiz/(fiz+ud)*100)),0,2)+"%") 
  If UO.FindCount('finditem') > sum then 
   UO.Moveitem(BagSer,'1',BoxFB) 
   Wait(500) 
   UO.FindType(BoxEB,-1,MainBox) 
   UO.FindType(BagType,-1,BoxEB) 
   BagSer=UO.GetSerial('finditem') 
   UO.Grab('1',BagSer) 
   Wait(500) 
   UO.MoveItem(BagSer,'1','ground') 
   Wait(500) 
 Endif 
Until ((UO.SkillVal("Carpentry",1) > 999) or (UO.Dead())) 
End sub

НО есть лажа......Он берет мешок и кидает его на пол...Делает всего одну удочку и скрипт вырубается..-((((
Помогите плиз...что не так???? Шард ДРВ....
Может скрипт выключается из-за того, что у мя 100 карпентра???

Posted: 2006-02-19 16:19:30
by Dron D.
Да именно так и есть. Пробуй так, работает пока ты жив.

Code: Select all

#Для работы скрипта надо: 
#1.  Сундук. 
#2.  В сундуке логи(все какие вы решили потратить) 
#3.  В сундуке 2 Backpack'a. 
#3.1 В 1-ом Backpack'е мешки(Bag или Belt pouch), в них будут складываться посохи/удочки. 
#3.2 2-ой Backpack пустой, в него будут складываться мешки(взятые из 1-го Backpack'a) 
#    заполненые    посохами/удочками. 
#4.  Любой инструмент для плотничной работы. В частности: 
#    a dovetail saw - '0x1028' 
#    a smoothing plane - '0x1032' 
#    a jointing plane - '0x1030' 
#    an inshave - '0x10E6' 
#    a froe - '0x10E5' 
#    a scorp - '0x10E7' 
#    ... 
#    Все типы привыдены для инструментов такого - / направления. 
#    Значение "LogColor='0x0000'" менять не нужно, из сундука беруться первыми простые логи(если есть), 
#    если нет, то любые другие, беруться до тех пока их не остаеться 4. После следющий тип логов. 
#    Поэтому в сундук класть только логи для прокачки ! 
#    
#    Для работы скрипта НУЖНО ТОЛЬКО заменить значения !!! 

sub Carp() 
#===================== 
VAR BagSer            #| Эти значения менять не нужно. 
Var LogColor='0x0000' #| 
Var fiz=0,ud=0,sum=254#| 
Var ProductOL='0x0000'#| 
Var LogType='0x1BDD'  #| 
#===================== 

#Измените значение на ID сундука(с логами и 2-мя Backpack'aми) 
Var MainBox='0x4046E3DE' 
#Измените значение на ID Backpack'a(с пустыми мешками) 
Var BoxEB='0x4049042C ' 
#Измените значение на ID Backpack'a(для мешков с удочками/посохами) 
Var BoxFB='0x404902B9 ' 
#Измените значение на Type мешков. (bag - '0x0E76', Belt pouch - '0x09B0') 
Var BagType='0x0E76' 
#Измените значение на Type инструмента для плотничной работы. См. описание. 
Var CarpentrTool='0x1034 ' 

UO.Useobject(MainBox) 
Wait(500) 
UO.Useobject(BoxEB) 
Wait(500) 
UO.Useobject(BoxFB) 
Wait(500) 
UO.Exec("set finddistance 0") 
UO.FindType(BagType,-1,1) 
If UO.FindCount('finditem')<1 then 
   UO.FindType(BoxEB,-1,MainBox) 
   UO.FindType(BagType,-1,BoxEB) 
   BagSer=UO.GetSerial('finditem') 
   UO.Grab('1',BagSer) 
   Wait(500) 
   UO.Moveitem(BagSer,'1','ground') 
   Wait(500) 
   UO.Useobject(BagSer) 
else 
   BagSer=UO.GetSerial('finditem') 
   UO.Useobject(BagSer) 
Endif 



Repeat 
  While NOT UO.Hidden() 
    UO.UseSkill('Hiding') 
    Wait(3000) 
  Wend 

UO.FindType(LogType,-1,2) 
LogColor=UO.GetColor('finditem') 
  If UO.GetQuantity('finditem')<5 then 
   UO.FindType(LogType,LogColor,MainBox)  
    If UO.GetQuantity('finditem')<5 then 
   UO.FindType(LogType,-1,MainBox) 
   UO.Grab('5','finditem') 
   wait(500) 
    Endif 
   UO.Grab('5','finditem') 
   wait(500) 
  Endif 

 If (UO.SkillVal("Carpentry",1) > 683) then 
   UO.WaitMenu('Carpentry','Weapons & Tools','Weapons & Tools','fishing pole') 
   ProductOL='0x0DBF' 
  else 
   UO.WaitMenu ('Carpentry','Weapons & Tools','Weapons & Tools','quarter staff') 
   ProductOL='0x0E89' 
  Endif 
UO.DeleteJournal() 
UO.UseType(CarpentrTool) 
  Repeat 
   Wait(100) 
  Until (UO.InJournal("You put") or UO.InJournal("You fail")) 
  If UO.InJournal("You put") then 
   ud=ud+1 
  else 
   fiz=fiz+1 
  Endif 

UO.FindType(ProductOL,-1,2) 
  While UO.FindCount() > 0 
   UO.MoveItem('finditem','1',BagSer) 
   Wait(500) 
   UO.FindType(ProductOL,-1,2) 
  Wend 

UO.FindType(ProductOL,-1,BagSer) 
UO.Print("В текущей сумке "+STR(UO.FindCount('finditem'))+" шт.") 
UO.Print("Рука дрогнула "+STR(fiz)+" раз. Сделано "+STR(ud)+" шт.") 
UO.Print("Процент дрожания руки: "+MID((STR(fiz/(fiz+ud)*100)),0,2)+"%") 
  If UO.FindCount('finditem') > sum then 
   UO.Moveitem(BagSer,'1',BoxFB) 
   Wait(500) 
   UO.FindType(BoxEB,-1,MainBox) 
   UO.FindType(BagType,-1,BoxEB) 
   BagSer=UO.GetSerial('finditem') 
   UO.Grab('1',BagSer) 
   Wait(500) 
   UO.MoveItem(BagSer,'1','ground') 
   Wait(500) 
 Endif 
Until not uo.dead()
End sub 

Posted: 2006-02-19 16:31:14
by Waterboy
Ничего не изменилось..-(((((
Мож, есть другой какой скрипт.......

Posted: 2006-02-19 23:29:52
by agem
Он у тебя работу заканчивает, или остается висеть работающим, но ничего не делает? Если второе, понатыкай везде UO.Print('что-нибудь') и посмотри, в каком месте он останавливается.

Posted: 2006-02-21 05:36:44
by Smog
Мда .... Все норм пашет ) в моем скрипте )

Code: Select all

sub Carp() 
#===================== 
VAR BagSer            #| Ýòè çíà÷åíèÿ ìåíÿòü íå íóæíî. 
Var LogColor='0x0000' #| 
Var fiz=0,ud=0,sum=254#| 
Var ProductOL='0x0000'#| 
Var LogType='0x1BDD'  #| 
#===================== 

#Èçìåíèòå çíà÷åíèå íà ID ñóíäóêà(ñ ëîãàìè è 2-ìÿ Backpack'aìè) 
Var MainBox='0x4026153C' 
#Èçìåíèòå çíà÷åíèå íà ID Backpack'a(ñ ïóñòûìè ìåøêàìè) 
Var BoxEB='0x403E738E' 
#Èçìåíèòå çíà÷åíèå íà ID Backpack'a(äëÿ ìåøêîâ ñ óäî÷êàìè/ïîñîõàìè) 
Var BoxFB='0x40121D45' 
#Èçìåíèòå çíà÷åíèå íà Type ìåøêîâ. (bag - '0x0E76', Belt pouch - '0x09B0') 
Var BagType='0x0E76' 
#Èçìåíèòå çíà÷åíèå íà Type èíñòðóìåíòà äëÿ ïëîòíè÷íîé ðàáîòû. Ñì. îïèñàíèå. 
Var CarpentrTool='0x1028' 

UO.Useobject(MainBox) 
Wait(500) 
UO.Useobject(BoxEB) 
Wait(500) 
UO.Useobject(BoxFB) 
Wait(500) 
UO.Exec("set finddistance 0") 
UO.FindType(BagType,-1,1) 
If UO.FindCount('finditem')<1 then 
   UO.FindType(BoxEB,-1,MainBox) 
   UO.FindType(BagType,-1,BoxEB) 
   BagSer=UO.GetSerial('finditem') 
   UO.Grab('1',BagSer) 
   Wait(500) 
   UO.Moveitem(BagSer,'1','ground') 
   Wait(500) 
   UO.Useobject(BagSer) 
else 
   BagSer=UO.GetSerial('finditem') 
   UO.Useobject(BagSer) 
Endif 



Repeat 
  While NOT UO.Hidden() 
    UO.UseSkill('Hiding') 
    Wait(3000) 
  Wend 

UO.FindType(LogType,-1,2) 
LogColor=UO.GetColor('finditem') 
  If UO.GetQuantity('finditem')<5 then 
   UO.FindType(LogType,LogColor,MainBox)  
    If UO.GetQuantity('finditem')<5 then 
   UO.FindType(LogType,-1,MainBox) 
   UO.Grab('5','finditem') 
   wait(500) 
    Endif 
   UO.Grab('5','finditem') 
   wait(500) 
  Endif 

 If (UO.SkillVal("Carpentry",1) > 683) then 
   UO.WaitMenu('Carpentry','Weapons & Tools','Weapons & Tools','fishing pole') 
   ProductOL='0x0DBF' 
  else 
   UO.WaitMenu ('Carpentry','Weapons & Tools','Weapons & Tools','quarter staff') 
   ProductOL='0x0E89' 
  Endif 
UO.DeleteJournal() 
UO.UseType(CarpentrTool) 
  Repeat 
   Wait(100) 
  Until (UO.InJournal("You put") or UO.InJournal("You fail")) 
  If UO.InJournal("You put") then 
   ud=ud+1 
  else 
   fiz=fiz+1 
  Endif 

UO.FindType(ProductOL,-1,2) 
  While UO.FindCount() > 0 
   UO.MoveItem('finditem','1',BagSer) 
   Wait(500) 
   UO.FindType(ProductOL,-1,2) 
  Wend 

UO.FindType(ProductOL,-1,BagSer) 
UO.Print("Â òåêóùåé ñóìêå "+STR(UO.FindCount('finditem'))+" øò.") 
UO.Print("Ðóêà äðîãíóëà "+STR(fiz)+" ðàç. Ñäåëàíî "+STR(ud)+" øò.") 
UO.Print("Ïðîöåíò äðîæàíèÿ ðóêè: "+MID((STR(fiz/(fiz+ud)*100)),0,2)+"%") 
  If UO.FindCount('finditem') > sum then 
   UO.Moveitem(BagSer,'1',BoxFB) 
   Wait(500) 
   UO.FindType(BoxEB,-1,MainBox) 
   UO.FindType(BagType,-1,BoxEB) 
   BagSer=UO.GetSerial('finditem') 
   UO.Grab('1',BagSer) 
   Wait(500) 
   UO.MoveItem(BagSer,'1','ground') 
   Wait(500) 
 Endif 
Until UO.Dead()
End sub 
Dron D.

repeat
..
until <условие>

выполняеться 1 раз по любому и дальше до тех пор пока услови не станет true =)