Page 1 of 1
Как проверить сработал ли реколл?
Posted: 2004-07-29 08:12:21
by Robin
Хай Алл!
Помогите с сабжем плиз!
Ну скрипт я сам напишу - просто алгоритм подскажите. Никак додуматься не могу. В скрипте чар реколится по руне - как проверить сработал ли спелл перед тем как дальше скрипт продолжить? Ну можно проверять координаты - но там у меня руны разные могут быть - можно ли не сверяя абсолютные координаты чара и руны проверить успех рекола?
Posted: 2004-07-29 10:42:32
by Ugrum.
Code: Select all
.........
myx=uo.getx()
myy=uo.gety()
REPEAT
uo.recall ........
wait(3500)
.............
If myx<>uo.getx() or myy<>uo.gety() then
recOk = True
EndIf
............
UNTIL recOk
Posted: 2004-07-29 12:07:51
by Edred
Ugrum. wrote:Code: Select all
.........
myx=uo.getx()
myy=uo.gety()
REPEAT
uo.recall ........
wait(3500)
.............
If myx<>uo.getx() or myy<>uo.gety() then
recOk = True
EndIf
............
UNTIL recOk
Не гарантирует. Иногда чара при физле реколла может отбросить немного, координаты сменятся. В каком-то скрипте, кажись Сергиуса на движение, проверка реколла производится путем проверки смены координат с учетом некоего радиуса... Что тоже не очень удобно если по какой-то причине надо среколлиться рядом. Надежнее проверять звук реколла.
Posted: 2004-07-29 16:29:02
by Robin
Спасибо большое!
Всё гениальное просто.
Чара при физле как таковом вроде не откидывает никогда никуда

По крайней мере на сфере.
Posted: 2004-07-29 17:29:53
by Edred
Robin wrote:Спасибо большое!
Всё гениальное просто.
Чара при физле как таковом вроде не откидывает никогда никуда

По крайней мере на сфере.
Именно на сфере и откидывает иногда...
Posted: 2004-07-29 23:03:52
by Yoko
никогда о таком не слышал, это чтото экзотическое
Posted: 2004-07-31 14:52:33
by Edred
Yoko wrote:никогда о таком не слышал, это чтото экзотическое
Может быть, может я ошибаюсь... Но есть еще один аргумент в пользу определения успешности реколла не через смену координат: такая проверка будет успешной только если в момент реколла чар стоит. Если же реколл осуществляется на ходу или бегу (что обычно и требуется в большинстве скриптов, по крайней мере, на добычу) - такая проверка бесполезна...
Posted: 2004-07-31 21:02:57
by Yoko
проверяй ману, журнал или в радиусе перемещение, хотя на самом деле скрипты с реколом на бегу используются редко
Posted: 2004-08-03 12:01:11
by Lord Ruslan Nightmare
1) заранее где-нибудь запомнить, в какое именно место чар реколлится. Та же проверка смены координат - только он будет ждать, пока не окажется в нужной точке (или поблизости от неё)
2) Сложная проверка через звуки (,set soundecho 1 и дальше uo.injournal). Можно улавливать звук физзла. Реколл состоит из двух звуков, следующих друг за другом: звук накастовавшегося телепорта и звук телепортировавшегося в какое-то место NPC (т.е. тебя).
Ну, и журнал, мана....и прочие приметы

Posted: 2004-08-04 03:49:30
by doomhammer
sub recall()
var M1,M2,M # описание переменных: м1 -мана до рекола, М2 - после, М - разница
repeat
M1=uo.mana # Запись в пер. М1 кол-ва маны до рекола
uo.waittargetobject('runebook')
uo.cast('Recall')
wait(1000)
M2=uo.mana # Запись маны после рекола
M=M1-M2 # сравнение
if M>0 then# проверка: потрачена ли мана
uo.print('Recall succesfull')
until M>0
end sub
Если мана потрачена, то рекол был успешным.
Posted: 2004-08-05 04:57:45
by evil_Gremlin
Я всегда успешность каста проверяю по мане или регам
Posted: 2004-08-05 08:05:01
by Lord Ruslan Nightmare
Code: Select all
sub recallto(runebook,runenum)
var recalled = 0,recallcasted,i,countdown = 0
uo.set("soundecho","1")
while not recalled
if uo.mana < 23 then
meditate()
endif
uo.recall(runebook,runenum)
i = 0
while i < 10000 and not uo.injournal("[snd 01FC]")
wait(100)
i = i + 1
if countdown > 0 then
countdown = countdown - 100
endif
if uo.injournal("[snd 01FC]) then
recallcasted = 1
countdown = 3000
uo.deletejournal()
endif
if uo.injournal("[snd 01FE]") and countdown > 0 then
recalled = 1
endif
wend
wend
end sub
набросал на глаз, но вроде правильно... временные промежутки условны - надо подобрать более точно. Весь реколл занимает 10 сек, после того, как накастовался реколл, в течение 3 секунд должна произойти телепортация чара в какую-то местность.