Page 1 of 1
Помощь в скриптах
Posted: 2004-11-08 23:33:17
by Immelstorn
Здравствуйте многоуважаемые комрады)
Я можно сказать тут новенький, только начал писать сам скрипты на инже и вот сразу возник один вопрос, информацию по которому мне негде найти не удалось. Поможете нубу?)
В-общем, задача такая. Необходимо сделать так, чтобы после каждого "проката" скрипта инжа брала следующую переменную из определенного массива и подставляла значение в какую-нибудь функцию. Например, реколлилась каждый раз в следующее место или брала следующий предмет из массива. Заранее благодарю)
Re: Помощь в скриптах
Posted: 2004-11-09 08:42:58
by Sfagnum
Code: Select all
sub test
var i
dim a[n]
a[0]='...'
.....
a[n-1]='...'
for i = 0 to n-1
...
funct(a[i])
...
next
end sub
Posted: 2004-11-09 12:50:08
by Yoko
Code: Select all
sub init()
uo.setglobal("ArrCount","10")
uo.setglobal("ArrItem0","0x12345678")
uo.setglobal("ArrItem1","0x23456781")
uo.setglobal("ArrItem2","0x34567812")
....
uo.setglobal("ArrNow","0")
end sub
sub doit()
var x=val(uo.getglobal("ArrNow"))
uo.print(uo.getglobal("ArrItem"+str(x))
x=x+1
if x>val(uo.getglobal("ArrCount")) then
x=0
end if
uo.setglobal("ArrNow",str(x))
end sub
ещё раз напоминаю, что Set/GetGlobal и Set/GetEasyUO работают только с текстовыми данными, так что при необходимости используется преобразование
Posted: 2004-11-09 19:37:52
by Immelstorn
Все отлично заработало, спасибо!
Re: Помощь в скриптах
Posted: 2004-11-09 21:12:05
by Edred
Вот так не делай. Получишь весьма неожиданный результат. Я уже напоролся. Надо вводить доп. переменную и присваивать ей значение ячейки массива, и потом уже это переменную передавать в качестве параметра.
Re: Помощь в скриптах
Posted: 2004-11-09 22:25:05
by Sfagnum
Edred wrote:Вот так не делай. Получишь весьма неожиданный результат. Я уже напоролся. Надо вводить доп. переменную и присваивать ей значение ячейки массива, и потом уже это переменную передавать в качестве параметра.
спасибо буду знать.
а тоя ещё на эти грабли не наступал.
Re: Помощь в скриптах
Posted: 2004-11-10 12:22:25
by Edred
Sfagnum wrote:Edred wrote:Вот так не делай. Получишь весьма неожиданный результат. Я уже напоролся. Надо вводить доп. переменную и присваивать ей значение ячейки массива, и потом уже это переменную передавать в качестве параметра.
спасибо буду знать.
а тоя ещё на эти грабли не наступал.
Насколько я разобрался, скрипт передает в функцию не ячейку массива, а все равно весь массив (то есть сам массив). А так как на той стороне ожидается строка (у меня массив текстовых строк был) - то в нее засовывается то ли первый элемент массива, то ли последний, то ли все в одну строку склеиваются...
Posted: 2004-11-10 12:42:21
by Immelstorn
Знаете, мне все это нужно было для написания подобных скриптов:
sub Test()
VAR i
DIM A[2]
A[0]='0x4022B5CD'
A[1]='0x401B61E6'
for i=0 to 1
uo.moveitem(A[i],1,'0x4029642F')
wait(1000)
next
end sub
И надо сказать, все заработало, так что никаких подводных камней не вижу))
Posted: 2004-11-10 14:58:48
by Sfagnum
Immelstorn wrote:И надо сказать, все заработало, так что никаких подводных камней не вижу))
эт нормально...
у меня вот тож скрипт сперва с UO.UseType('...') без проблем, потом начал глюковать безбожно, поработает-поработает, а потом УПС.. и type not founded, перешёл на UO.Exec("usetype '...'")... таже хрень... и опять же не сразу.
в итоге сейчас юзаю uo.useobject...
ттт - пока всё работает с неделю уже.