Page 1 of 2

Help! Особенно люди с мидлы!

Posted: 2005-02-28 21:21:22
by zolupo

Code: Select all

sub reagents()
UO.Print("Script by Aza(c)")
UO.Exec("set finddistance 2")
UO.Exec("set distance 2")
VAR i
DIM Reg[5]
Reg [0]=0x18E9 ;Nightshade
Reg [1]=0x0000 ;Blood Moss
Reg [2]=0x18E5 ;Mandrake
Reg [3]=0x18E9 ;Ginseng
Reg [4]=0x0000 ;Garlic

while true
 For i=0 to 4
   UO.Findtype(Reg[i],-1,1)
   If UO.FindCount()> 0 then
   UO.Print("Start harvestering")
    while not UO.InJournal("You put") or UO.InJournal("You must wait") or UO.InJournal("That is")
     UO.Print("Harvestering "+UO.GetGraphic('finditem'))
     UO.Useobject('finditem')
     UO.Ignore('finditem')
     wait(2000)
    wend
wend
end sub


Несколько проблем: почему то не работает ,сет , может ли быть такое что дев ету функцию запретил?
Почему скрипт не реагирует на условие
while not UO.InJournal("You put") or UO.InJournal("You must wait") or UO.InJournal("That is") и после заданных фраз все равно продолжает етот цикл выполнять.. ?
Играю на мидле

Posted: 2005-03-01 01:01:31
by AlexeyVorotnikov
Попробуй использовать такую форму:

Code: Select all

UO.Set("finddistance", "2")
UO.Set("distance", "2")

Девелопер тут совершенно не при чём. (Кстати а как ты определил, что set не работает?)
Условие цикла должно выглядеть так:

Code: Select all

while not (UO.InJournal("You put") or UO.InJournal("You must wait") or UO.InJournal("That is")) 

После этого цикла должно стоять UO.DeleteJournal().

Posted: 2005-03-01 09:53:59
by zolupo
определил так
раньше при юзе сет дистанс писалось
distance set =2 в клиенте
а теперь нет

кстати и просто когда в клиенте пишешь ,set finddistance 2 он не реагирует никак
и после етого пытаетса поюзать реги которые за два километра от меня находятса..

Posted: 2005-03-01 09:58:43
by zolupo
все равно не реагирует на условия цикла
как будто их нету вообще

Posted: 2005-03-01 10:04:26
by 666Man666
zolupo wrote:определил так
раньше при юзе сет дистанс писалось
distance set =2 в клиенте
а теперь нет

кстати и просто когда в клиенте пишешь ,set finddistance 2 он не реагирует никак
и после етого пытаетса поюзать реги которые за два километра от меня находятса..
Чтобы писалось "distance set =2 в клиенте" поставь в main галочку Verbose menu....

Posted: 2005-03-01 10:08:58
by 666Man666
zolupo wrote:все равно не реагирует на условия цикла
как будто их нету вообще
Гы... непонятное условие, скажи по русски что оно должно делать?... по скрипту видно если в паке есть объект из массива.... то если в журнале кака-ято мура.... надо юзать найденный обьект.... и что дальше?

Posted: 2005-03-01 10:35:33
by zolupo
по скрипту он ищет объекты заданых типов из масивав радиусе 2 тайла вокруг
если нашел - юзает пока не появитса фраза из условия

а трабл в том что когда фраза появляетса - он продолжает юзать

Posted: 2005-03-01 10:36:06
by zolupo
дальше он ищет следующий объект и юзает его

Posted: 2005-03-01 10:49:16
by 666Man666
тогда

Code: Select all

UO.DeleteJournal()
while not UO.InJournal("You put") or not UO.InJournal("You must wait") or not UO.InJournal("That is")

Posted: 2005-03-01 12:43:19
by zolupo

Code: Select all

sub reagents()
UO.Print("Script by Aza(c)")
UO.Set("distance", "2")
UO.Set("finddistance", "2")
VAR i
DIM Reg[4]
Reg [0]=0x18E5 ;Nightshade
Reg [1]=0x0000 ;Blood Moss
Reg [2]=0x18DF ;Mandrake
Reg [3]=0x18E9 ;Ginseng
Reg [4]=0x0000 ;Garlic

while true
 For i=0 to 4
   UO.Findtype(Reg[i],-1,1)
   If UO.FindCount()> 0 then
   UO.Print("Start harvestering")
    Repeat
    UO.DeleteJournal()
     UO.Print("Harvestering "+UO.GetGraphic('finditem'))
     UO.Useobject('finditem')
     UO.Ignore('finditem')
     wait(2000)
    Until UO.InJournal("You put") or UO.InJournal("You must wait")
   endif
 next
wend
end sub


вот маленько доработал, кое чо забытое добавил
но теперь он почему то вообще левые типы ищет, которых я не задавал в массиве

Posted: 2005-03-01 12:47:14
by 666Man666
Мдя... непонимаю я твоего скрипта.... юзать реги на полу? нафиг ...

Posted: 2005-03-01 12:56:42
by zolupo
ето не реги на полу юзать а кусты регов
короче лажу какуюто замутил дев наш теперь реги выращиваютса
а ето скрипт на сборку

Posted: 2005-03-01 13:04:32
by AlexeyVorotnikov
Я сам давно собирался написать скрипт на сбор регов. Если сегодня будет время -- напишу.

Posted: 2005-03-01 13:10:54
by 666Man666
Попробуй...

Code: Select all

sub GrabReagents()
var n
Dim Reg[6]
Reg[0] = 5
Reg[1] = UO.NS ;Nightshade
Reg[2] = UO.BM ;Blood Moss
Reg[3] = UO.MR ;Mandrake
Reg[4] = UO.GI ;Ginseng
Reg[5] = UO.GA ;Garlic
UO.Set('finddistance','3')
   For n = 1 TO Reg[0]
      REPEAT
         UO.FindType(Reg[n],'-1','1')
            If UO.FindCount() Then
               UO.UseObject('finditem')
               UO.DeleteJournal()
                  REPEAT
                     Wait(500)
                  Until UO.InJournal("You put") or UO.InJournal("You can't")
            End If
      Until UO.FindCount()==0 or UO.Dead()
   Next
UO.Print("Done!")
end sub

Posted: 2005-03-01 15:12:58
by zolupo
твой ищет также левые объекты
а когда находит вообще 0 действия

Posted: 2005-03-01 15:20:52
by 666Man666
zolupo wrote:твой ищет также левые объекты
а когда находит вообще 0 действия
Конешно ишет левые объекты, потаму, что какой-то "умник" забил в массив всякую пургу...

Code: Select all

Reg[1] = '0x18E5' ;Nightshade 
Reg[2] = '0x0000' ;Blood Moss
Reg[3] = '0x18DF' ;Mandrake
Reg[4] = '0x18E9' ;Ginseng
Reg[5] = '0x0000' ;Garlic

Posted: 2005-03-01 15:59:04
by AlexeyVorotnikov
Выкроил время. Написал-таки скрипт. Получилось что-то вроде этого:

Code: Select all

sub HarvestReagents()
  var numReagents = 2
  dim reagentsTypes[2]
  reagentsTypes[0] = 0x18E9 # Wild Ginseng
  reagentsTypes[1] = 0x18E1 # Wild Garlic

  var i
  var lastTimer

  UO.Set("distance", "2")
  UO.Set("finddistance", "2")

  UO.DeleteJournal()

  while true
    for i = 0 to numReagents -1
      UO.FindType(reagentsTypes[i], -1, "ground")
      while UO.FindCount() > 0
        UO.UseObject("finditem")

        lastTimer = UO.Timer()

        repeat
          wait(100)
        until UO.InJournal("You put") || UO.InJournal("You must wait") || UO.InJournal("That is too far away") || UO.Timer() > lastTimer + 200
        UO.DeleteJournal()

        UO.Ignore("finditem")

        UO.FindType(reagentsTypes[i], -1, "ground")
      wend
    next
    wait(1000)
  wend
end sub

Posted: 2005-03-01 17:39:13
by zolupo
папа:)


ПС
dim reagentsTypes[4]
reagentsTypes[0] = 0x18E9 # Wild Ginseng
reagentsTypes[1] = 0x18E1 # Wild Garlic
reagentsTypes[2] = 0x18DF # Mandrake
reagentsTypes[3] = 0x18E5 # Nightshade

Posted: 2005-03-01 23:37:41
by AlexeyVorotnikov
zolupo wrote:папа:)

Э... в каком смысле?

Posted: 2005-03-02 09:54:19
by zolupo
otec injekta :)