uo.recall или работа с str

General Injection issues

Moderators: Murderator+, Murderator

Post Reply
pumbey
Posts: 36
Joined: 2005-03-23 11:45:32
Contact:

uo.recall или работа с str

Post by pumbey »

Итак
Для шарда zhr.ru. Дорабатывая скрипт на ламбер, столкнулся с тем что у нас на сервере классовому крафту не очень желательно иметь майджери , то есть хочеться реколиться с помощью uo.recall
итак скрипт
(предаврительно пытка рунбуки infogump'ом показала - 16=1 руне,17=2, 18=3, и т.д.)

Code: Select all

Sub main()
var runbook = 0x00000
UO.Set("Norbcheck 1")
UO.Set("NorbCalc 1")
uo.recall('runbook 17');то есть рекол по руне №2
end sub


В поиске я нащел подобную тему но к сожалению отвта на свой вопрос не нашел :(
И что характерно - все работает
Немного оформим скрипт

Code: Select all

Sub main()
var runbook = 0x00000 - серийник книжки
var rh=4 ;руна домой - порядковый номер в рунбуке
var rl=12 ;руна в лес - порядковый номер в рунбуке
UO.Set("Norbcheck 1")
UO.Set("NorbCalc 1")
uo.recall('runbook str(rh+15)');то есть рекол по руне №2
end sub
-начинает жаловаться на неверный usage
при эиом если
f= str(rh+15)
uo.print(f)
то выдает правильное значение, то есть 19(в данном случае)
...
Вопрос, как все таки забить номер руны в переменную?
=)
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Code: Select all

uo.recall(runebookobject,runenumber)

Скорее всего нужно передавать в качестве параметра runenumder число , а не строку...

Попробуй

Code: Select all

uo.recall('runbook val(rh+15)')
admir
Posts: 528
Joined: 2005-01-13 07:20:54

Post by admir »

uo.recall('runbook str(rh+15)')
? запатая и кавычки
uo.recall('runbook', 'rh+15')
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Re: uo.recall или работа с str

Post by Edred »

pumbey wrote:

Code: Select all

uo.recall('runbook str(rh+15)');то есть рекол по руне №2
Вопрос, как все таки забить номер руны в переменную?


Кавычки означают - все внутри текст. В том числе и вызов str(). Проверь:

Code: Select all

UO.Print( 'Привет str(10)' )

На экране получишь именно такой же текст. Уже догадался что тебе надо?

Code: Select all

uo.recall('runbook ' + str(rh+15))


ЗЫ: 15 + 4 = 19, а не 17 :lol:
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

кто вочто горазд... что не пост так ошибка..
uo.recall(runbook, str(rh+15))
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Grin wrote:кто вочто горазд... что не пост так ошибка..
uo.recall(runbook, str(rh+15))

Здравомыслящий человек наконец-то пришёл :roll:
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Grin wrote:кто вочто горазд... что не пост так ошибка..
uo.recall(runbook, str(rh+15))


Включая твой :) runbook - насколько я понял - это ссылка на уже определенный объект, так что в кавычках его писать надо:

Code: Select all

uo.recall('runbook', str(rh+15))


:lol:
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Code: Select all

Sub main() 
var runbook = 0x00000 - серийник книжки
var rh=4 ;руна домой - порядковый номер в рунбуке
var rl=12 ;руна в лес - порядковый номер в рунбуке
UO.Set("Norbcheck 1")
UO.Set("NorbCalc 1")
uo.recall('runbook str(rh+15)');то есть рекол по руне №2
end sub


Читай прежде чем писать... гррр
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Мдя, склероз... :oops:

Destruction: Согласен, ты даже забыл, что флудить - это плохо!
admir
Posts: 528
Joined: 2005-01-13 07:20:54

Post by admir »

и вправду ) все объявленные переменные должны быть без кавычек )
SLAK
Posts: 182
Joined: 2005-08-19 16:12:23
Contact:

Post by SLAK »

admir wrote:и вправду ) все объявленные переменные должны быть без кавычек )
]

Code: Select all

var book=0x12345678
uo.recall('book','1')
pumbey
Posts: 36
Joined: 2005-03-23 11:45:32
Contact:

Post by pumbey »

Итак.. Спасибо всем кто принял живое участие в данной проблеме..ЛАрчик открылся довольно просто

Code: Select all

sub test()
var rh=1
var runebook=0x60B0D0A5
var done=rh+15
UO.Set('norbcheck', '1')
UO.Set('norbcalc', '1')
uo.recall(runebook, done)
end sub
- вот наконец то заработавщий вариант..
к сожалению ни val, ни str не заработали - если небыло удовлетворительного аргумента - скидывалось на 0

З.Ы.Отдельный респект 2Grin за идею
=)
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

кстати очень страно почему рекол не отработал;)
это одна из немногих функций которая делат правельную конвертацию.. хотя и лишнею;)
в общем юзайте перл%) он таким не страдает%)
Post Reply