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 =)