Замена одного обьекта другим

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
колхоз
Posts: 34
Joined: 2004-06-27 19:59:56

Замена одного обьекта другим

Post by колхоз »

Я короче переделываю Ветерановский скрипт на ламбер.
У меня есть 2 обьекта runebook1 и runebook2. Скрипт в начале просит тыкнуть на них:

Code: Select all

uo.Print('Viberi runebook1: ') 
uo.Exec('addobject runebook1')
while uo.Targeting()
wait(100)
wend
uo.Print('Viberi runebook2: ')
uo.Exec('addobject runebook2')
while uo.Targeting()
wait(100)
wend

Оба рунбука по 21 заряду. Скрипт использует runebook1 чтобы реколится домой, а runebook2 в это время не используется вообще. Мне надо сделать чтобы когда uo.injournal("Not enough charges"), эти 2 обьекта менялись какбы местами. Тоесть скрипт уже использовал бы runebook2 для реколов домой, а runebook1 неиспользовался бы. Как это сделать?
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

В скрипте в реколлах используй вместо ссылки на объект рунбуки переменную, например rb. А ее определяй из

rb = UO.GetSerial( 'runbook1' )

когда надо переопределяй ее

rb = UO.GetSerial( 'runbook2' )

Все тривиально.
колхоз
Posts: 34
Joined: 2004-06-27 19:59:56

Post by колхоз »

Last edited by колхоз on 2006-12-18 00:52:01, edited 2 times in total.
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Lobster wrote:Вот до чего я дошёл, но это не работает. В чем проблема?


Дык ты хочешь отладку программы превратить в игру вопросы-ответы? Она же тебе говорит почему не работает, она не может работать - ошибки в каждой второй строке. Ты сначала синтаксис поправь в скрипте, а потом если не работает - пиши.

И когда постишь скрипт - пости все функции в нем задействованные.


if RechargeBook==1 then
RechargeBook()
wait(4000)
end if

Вот тут ты зря переменную и функцию назвал одним именем. Кстати, ты это дальше делаешь постоянно.

if not rb = UO.GetSerial('runebook2') then

Вот тут надо писать ==

else
goto fly
end if
fly:

Такая конструкция вообще смысла не имеет. Уберешь else, goto, метку и будет все равно тоже самое

uo.exec("recall rb 2")

Так эта команда работать не будет. Используй либо UO.Recall(rb, "2") либо строку "recall " + rb + " 2"
колхоз
Posts: 34
Joined: 2004-06-27 19:59:56

Post by колхоз »

Ладно проехали, придумаю чёто другое. Я ещё начинающий... 8)
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Lobster wrote:Ладно проехали, придумаю чёто другое. Я ещё начинающий... 8)


Так никогда не научишься. Чтобы научиться надо вцепиться зубами в этот скрипт и добивать его пока все не заработает как надо. Поправь то что я тебе написал и пробуй снова.
колхоз
Posts: 34
Joined: 2004-06-27 19:59:56

Post by колхоз »

Да я уже сделал по другому 8)
колхоз
Posts: 34
Joined: 2004-06-27 19:59:56

Post by колхоз »

Только вот парит такая хрень:

Code: Select all

UO Client performed an unrecoverable invalid operation. Terminate?
Что-то сделать с этим можно?
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

что-то где-то не так :)
Post Reply