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

Anything and all.

Moderators: Murderator+, Murderator

zolupo
Posts: 53
Joined: 2005-01-27 09:10:39

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

Post 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") и после заданных фраз все равно продолжает етот цикл выполнять.. ?
Играю на мидле
AlexeyVorotnikov
Junior Expert
Posts: 138
Joined: 2004-09-18 15:12:06

Post 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().
zolupo
Posts: 53
Joined: 2005-01-27 09:10:39

Post by zolupo »

определил так
раньше при юзе сет дистанс писалось
distance set =2 в клиенте
а теперь нет

кстати и просто когда в клиенте пишешь ,set finddistance 2 он не реагирует никак
и после етого пытаетса поюзать реги которые за два километра от меня находятса..
zolupo
Posts: 53
Joined: 2005-01-27 09:10:39

Post by zolupo »

все равно не реагирует на условия цикла
как будто их нету вообще
666Man666
Junior Expert
Posts: 474
Joined: 2004-11-13 00:43:55
Location: Киберзадроцк
Contact:

Post by 666Man666 »

zolupo wrote:определил так
раньше при юзе сет дистанс писалось
distance set =2 в клиенте
а теперь нет

кстати и просто когда в клиенте пишешь ,set finddistance 2 он не реагирует никак
и после етого пытаетса поюзать реги которые за два километра от меня находятса..
Чтобы писалось "distance set =2 в клиенте" поставь в main галочку Verbose menu....
666Man666
Junior Expert
Posts: 474
Joined: 2004-11-13 00:43:55
Location: Киберзадроцк
Contact:

Post by 666Man666 »

zolupo wrote:все равно не реагирует на условия цикла
как будто их нету вообще
Гы... непонятное условие, скажи по русски что оно должно делать?... по скрипту видно если в паке есть объект из массива.... то если в журнале кака-ято мура.... надо юзать найденный обьект.... и что дальше?
zolupo
Posts: 53
Joined: 2005-01-27 09:10:39

Post by zolupo »

по скрипту он ищет объекты заданых типов из масивав радиусе 2 тайла вокруг
если нашел - юзает пока не появитса фраза из условия

а трабл в том что когда фраза появляетса - он продолжает юзать
zolupo
Posts: 53
Joined: 2005-01-27 09:10:39

Post by zolupo »

дальше он ищет следующий объект и юзает его
666Man666
Junior Expert
Posts: 474
Joined: 2004-11-13 00:43:55
Location: Киберзадроцк
Contact:

Post 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")
zolupo
Posts: 53
Joined: 2005-01-27 09:10:39

Post 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


вот маленько доработал, кое чо забытое добавил
но теперь он почему то вообще левые типы ищет, которых я не задавал в массиве
666Man666
Junior Expert
Posts: 474
Joined: 2004-11-13 00:43:55
Location: Киберзадроцк
Contact:

Post by 666Man666 »

Мдя... непонимаю я твоего скрипта.... юзать реги на полу? нафиг ...
zolupo
Posts: 53
Joined: 2005-01-27 09:10:39

Post by zolupo »

ето не реги на полу юзать а кусты регов
короче лажу какуюто замутил дев наш теперь реги выращиваютса
а ето скрипт на сборку
AlexeyVorotnikov
Junior Expert
Posts: 138
Joined: 2004-09-18 15:12:06

Post by AlexeyVorotnikov »

Я сам давно собирался написать скрипт на сбор регов. Если сегодня будет время -- напишу.
666Man666
Junior Expert
Posts: 474
Joined: 2004-11-13 00:43:55
Location: Киберзадроцк
Contact:

Post 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
Last edited by 666Man666 on 2005-03-01 15:27:38, edited 1 time in total.
zolupo
Posts: 53
Joined: 2005-01-27 09:10:39

Post by zolupo »

твой ищет также левые объекты
а когда находит вообще 0 действия
666Man666
Junior Expert
Posts: 474
Joined: 2004-11-13 00:43:55
Location: Киберзадроцк
Contact:

Post 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
AlexeyVorotnikov
Junior Expert
Posts: 138
Joined: 2004-09-18 15:12:06

Post 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
zolupo
Posts: 53
Joined: 2005-01-27 09:10:39

Post by zolupo »

папа:)


ПС
dim reagentsTypes[4]
reagentsTypes[0] = 0x18E9 # Wild Ginseng
reagentsTypes[1] = 0x18E1 # Wild Garlic
reagentsTypes[2] = 0x18DF # Mandrake
reagentsTypes[3] = 0x18E5 # Nightshade
AlexeyVorotnikov
Junior Expert
Posts: 138
Joined: 2004-09-18 15:12:06

Post by AlexeyVorotnikov »

zolupo wrote:папа:)

Э... в каком смысле?
zolupo
Posts: 53
Joined: 2005-01-27 09:10:39

Post by zolupo »

otec injekta :)
Locked