Page 1 of 1

Вопрос

Posted: 2005-03-15 19:44:32
by CErebrus
Можно ли в переменный массив Dim вместо значения указывать действие
Вот пример

Code: Select all

..............
Dim a[2]
a[0] = 'cast (какоенибудь заклинание)'
a[1] = 'cast (какоенибудь заклинание)'
a[2] = 'cast (какоенибудь заклинание)'
For i = 0 to 2
..............

Заклинание любое !Но а если к делу то именно рекалл так как я досих пор не могу понять как осуществляеться рекалл по рунбуку в цикле пробега по всем рунам в книге и после последней руны возврашение опять к первой.
Если не трудно то напишите ваши способы осушествления етого (не прошу писать готовое решение,если вам не трудно то распишите пожалуйста по русски а я поробую понять вашу логику)

Posted: 2005-03-16 05:56:28
by Askaneli
uo.recall('ИД рунбуки','Значение ответа в infogump')

Например в рунбуке 9 рунок, для каждой из них своё значение ответа.
Их и надо заносить в массив и подставлять по очереди. Дальше думай.

Ещё
uo.set('norbcalc',1)
uo.set('norbcheck',1)

Posted: 2005-03-16 15:44:58
by CErebrus
Ну вот! вроде бы так:
скрипт был на скупку регов
посмотри правильно ли все

Code: Select all

..........................................
Dim vendor[2]
vendor[1]='0x0190'
vendor[2]='0x0191'
Dim run[9]
run[1] = ' 21'
run[2] = ' 33'
run[3] = ' 46'
run[4] = ' 58'
run[5] = ' 64'
run[6] = ' 73'
run[7] = ' 88'
run[8] = ' 94'
run[9] = ' 1025'
VAR i
VAR l
UO.Exec("set norbcheck 1")
UO.Exec("set norbcalc 1")
UO.Exec("set finddistance 2")
For i=1 to 9
   UO.Recall('runebook',run[i])
   wait(3000)
   UO.Useskill('Meditation')
   wait(3000)
   For l=1 to 2
      repeat
         UO.FindType(vendor[x],-1,'ground')
         If (UO.GetName('finditem')==UO.GetName()) then
            UO.Ignore('finditem')
            UO.FindType(vendor[x],-1,'ground')
            wait(4000)
         endIf
         if UO.FindCount()<>0 then
            wait(1000)
            UO.Say('Hi '+UO.GetName('finditem'))
            wait(2000)
            UO.Buy(buyName,UO.GetName('finditem'))
            wait(2000)
            UO.Ignore('finditem')
         EndIf
      Until UO.FindCount()==0
         Next
   Next
UO.Exec("set finddistance 14")
UO.IgnoreReset()
End Sub   


Вначале скрипта естественно стоит добавление рунбуки.
И вот еше вопрос как сделать так, чтобы когда доходил до 9 руны он брал скупал реги и опять начинал покругу с 1 руны?

Posted: 2005-03-16 16:56:41
by Sfagnum
CErebrus wrote:

Code: Select all

..........................................
Dim vendor[2]
vendor[1]='0x0190'
vendor[2]='0x0191'
VAR i, l
UO.Exec("set norbcheck 1")
UO.Exec("set norbcalc 1")
UO.Exec("set finddistance 2")
For i=1 to 9
   if RunebookRecall(n) == 0 then
         UO.ClouseUO()
   end if
   UO.Useskill('Meditation') ## не понял зачем оно...
   wait(3000)
   For l=1 to 2
         UO.FindType(vendor[l],-1,'ground')
         while UO.FindCount()>0
            If UO.GetSerial('finditem')<>UO.GetSerial() then
               UO.Say('Hi '+UO.GetName('finditem')) ##Зачем?
               wait(2000) ##Зачем?
               UO.Buy(buyName,UO.GetName('finditem'))
               wait(2000) ##лишнее
            EndIf
            UO.Ignore('finditem')
            UO.FindType(vendor[l],-1,'ground')
         wend
         UO.IgnoreReset()
   Next
UO.Exec("set finddistance 14")
End Sub   

sub RunebookRecall(n)
var oldX=uo.getX()
var oldY=uo.getY()
Dim run[9]
run[1] = ' 21'
run[2] = ' 33'
run[3] = ' 46'
run[4] = ' 58'
run[5] = ' 64'
run[6] = ' 73'
run[7] = ' 88'
run[8] = ' 94'
run[9] = ' 1025'
var time
   repeat
      UO.Exec('warmode 0')
      UO.Recall('runebook',run[n])      
      repeat
         wait(500)
      until oldX<>uo.getX() or oldY<>uo.getY() or uo.Dead() or uo.InJournal('needs') or uo.InJournal('fizzles') or time+200<uo.Timer()      
      if uo.Dead() or uo.InJournal('needs') then
         return 0
      end if
   until oldX<>uo.getX() or oldY<>uo.getY() or UO.Dead()
   if UO.Dead() then
      return 0
   end if
   return 1
end sub
вообщем не плохо... но я тут малёх подрисовал на свой вкус...
и поправил пару критичных моментов.
но
1. если под ДРВ, то не будет работать без определённой установки
2. крайне не практичный и экономически не оправданный скрипт.

Posted: 2005-03-16 19:26:59
by CErebrus
объясни почему не будет работать на дрв!

Posted: 2005-03-16 19:39:34
by Sfagnum
CErebrus wrote:объясни почему не будет работать на дрв!
не правильно выразился... покупать не будет... там маааленькая заглушечка нужна ;)

Posted: 2005-03-16 20:58:52
by CErebrus
можешь написать какая? если не секрет :D

Posted: 2005-03-16 21:23:02
by Sfagnum
buydelay

Posted: 2005-03-17 18:31:57
by CErebrus
?? непонятно в чем проблема

Posted: 2005-03-17 22:33:50
by Sfagnum
CErebrus wrote:?? непонятно в чем проблема
если всё работает - хорощо ;)

Posted: 2005-03-18 02:27:20
by Goggy
Sfagnum wrote:
CErebrus wrote:?? непонятно в чем проблема
если всё работает - хорощо ;)


ага щаааззззз...
если у него всё работает то типу просто супер повезло :lol: :lol:

Posted: 2005-03-18 11:15:15
by Sfagnum
Goggy wrote:ага щаааззззз...
я в курсе ;) сам скупаю, так что... по покупкам на ДРВ я т.с. собаку сЪил ;)
Goggy wrote:если у него всё работает то типу просто супер повезло :lol: :lol:
я думаю просто он не тестил данный момент... судя по вопросам... или установил много раньше и забИл ;)

Posted: 2005-03-19 13:34:03
by CErebrus
?? МОжете написать в чем суть а не просто buydelay !А то я не понимаю

Posted: 2005-03-19 14:13:10
by CErebrus
Кхе Вот сейчас ради интереса тестанул скрипт свой ! Вначале не скупал помнял задержки и еще кое где и все намана стала ! да я не спорю что иногда рунбука физлит но он всеравно идет и пролетает по всем рунам и скупает реги ! Конечно сюда ходилку добавить можно тогда будет еще лучше
Напишите свои проблемы со скриптом

Posted: 2005-03-19 22:32:24
by Sfagnum
CErebrus wrote:Кхе Вот сейчас ради интереса тестанул скрипт свой ! Вначале не скупал помнял задержки и еще кое где и все намана стала !
об этом я и говорил ;)

Posted: 2005-03-19 23:05:34
by CErebrus
:wink: теперь понял ! у меня еше тока нада в массиве было убрать пробелы

Posted: 2005-03-19 23:42:19
by Sfagnum
CErebrus wrote::wink: теперь понял !
кстате ИМХО это лучше делать в скрипте... а так очччень часто будешь забывать устанавливать ;)