Yoko
http://forum.yoko.com.ua/

Помощь в скриптах
http://forum.yoko.com.ua/viewtopic.php?f=1&t=1892
Page 1 of 1

Author:  Immelstorn [ 2004-11-08 23:33:17 ]
Post subject:  Помощь в скриптах

Здравствуйте многоуважаемые комрады)
Я можно сказать тут новенький, только начал писать сам скрипты на инже и вот сразу возник один вопрос, информацию по которому мне негде найти не удалось. Поможете нубу?)
В-общем, задача такая. Необходимо сделать так, чтобы после каждого "проката" скрипта инжа брала следующую переменную из определенного массива и подставляла значение в какую-нибудь функцию. Например, реколлилась каждый раз в следующее место или брала следующий предмет из массива. Заранее благодарю)

Author:  Sfagnum [ 2004-11-09 08:42:58 ]
Post subject:  Re: Помощь в скриптах

Code:
sub test
var i
dim a[n]
a[0]='...'
.....
a[n-1]='...'
  for i = 0 to n-1
    ...
    funct(a[i])
    ...
  next
end sub

Author:  Yoko [ 2004-11-09 12:50:08 ]
Post subject: 

Code:
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 работают только с текстовыми данными, так что при необходимости используется преобразование

Author:  Immelstorn [ 2004-11-09 19:37:52 ]
Post subject: 

Все отлично заработало, спасибо!

Author:  Edred [ 2004-11-09 21:12:05 ]
Post subject:  Re: Помощь в скриптах

Sfagnum wrote:
Code:
funct(a[i])


Вот так не делай. Получишь весьма неожиданный результат. Я уже напоролся. Надо вводить доп. переменную и присваивать ей значение ячейки массива, и потом уже это переменную передавать в качестве параметра.

Author:  Sfagnum [ 2004-11-09 22:25:05 ]
Post subject:  Re: Помощь в скриптах

Edred wrote:
Sfagnum wrote:
Code:
funct(a[i])


Вот так не делай. Получишь весьма неожиданный результат. Я уже напоролся. Надо вводить доп. переменную и присваивать ей значение ячейки массива, и потом уже это переменную передавать в качестве параметра.
спасибо буду знать.
а тоя ещё на эти грабли не наступал.

Author:  Edred [ 2004-11-10 12:22:25 ]
Post subject:  Re: Помощь в скриптах

Sfagnum wrote:
Edred wrote:
Sfagnum wrote:
Code:
funct(a[i])


Вот так не делай. Получишь весьма неожиданный результат. Я уже напоролся. Надо вводить доп. переменную и присваивать ей значение ячейки массива, и потом уже это переменную передавать в качестве параметра.
спасибо буду знать.
а тоя ещё на эти грабли не наступал.


Насколько я разобрался, скрипт передает в функцию не ячейку массива, а все равно весь массив (то есть сам массив). А так как на той стороне ожидается строка (у меня массив текстовых строк был) - то в нее засовывается то ли первый элемент массива, то ли последний, то ли все в одну строку склеиваются...

Author:  Immelstorn [ 2004-11-10 12:42:21 ]
Post subject: 

Знаете, мне все это нужно было для написания подобных скриптов:

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

И надо сказать, все заработало, так что никаких подводных камней не вижу))

Author:  Sfagnum [ 2004-11-10 14:58:48 ]
Post subject: 

Immelstorn wrote:
И надо сказать, все заработало, так что никаких подводных камней не вижу))
эт нормально...
у меня вот тож скрипт сперва с UO.UseType('...') без проблем, потом начал глюковать безбожно, поработает-поработает, а потом УПС.. и type not founded, перешёл на UO.Exec("usetype '...'")... таже хрень... и опять же не сразу.
в итоге сейчас юзаю uo.useobject...
ттт - пока всё работает с неделю уже.

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/