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: теперь понял !
кстате ИМХО это лучше делать в скрипте... а так очччень часто будешь забывать устанавливать ;)