Как проверить сработал ли реколл?

Ask for help

Moderators: Murderator+, Murderator

Post Reply
Robin
Posts: 5
Joined: 2004-07-18 08:50:15

Как проверить сработал ли реколл?

Post by Robin »

Хай Алл!

Помогите с сабжем плиз!

Ну скрипт я сам напишу - просто алгоритм подскажите. Никак додуматься не могу. В скрипте чар реколится по руне - как проверить сработал ли спелл перед тем как дальше скрипт продолжить? Ну можно проверять координаты - но там у меня руны разные могут быть - можно ли не сверяя абсолютные координаты чара и руны проверить успех рекола?
Ugrum.
Posts: 69
Joined: 2004-04-05 11:59:21
Location: RunUO

Post 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
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post 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


Не гарантирует. Иногда чара при физле реколла может отбросить немного, координаты сменятся. В каком-то скрипте, кажись Сергиуса на движение, проверка реколла производится путем проверки смены координат с учетом некоего радиуса... Что тоже не очень удобно если по какой-то причине надо среколлиться рядом. Надежнее проверять звук реколла.
Robin
Posts: 5
Joined: 2004-07-18 08:50:15

Post by Robin »

Спасибо большое!
Всё гениальное просто.

Чара при физле как таковом вроде не откидывает никогда никуда :) По крайней мере на сфере.
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Robin wrote:Спасибо большое!
Всё гениальное просто.

Чара при физле как таковом вроде не откидывает никогда никуда :) По крайней мере на сфере.


Именно на сфере и откидывает иногда...
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

никогда о таком не слышал, это чтото экзотическое
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Yoko wrote:никогда о таком не слышал, это чтото экзотическое


Может быть, может я ошибаюсь... Но есть еще один аргумент в пользу определения успешности реколла не через смену координат: такая проверка будет успешной только если в момент реколла чар стоит. Если же реколл осуществляется на ходу или бегу (что обычно и требуется в большинстве скриптов, по крайней мере, на добычу) - такая проверка бесполезна...
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

проверяй ману, журнал или в радиусе перемещение, хотя на самом деле скрипты с реколом на бегу используются редко
Lord Ruslan Nightmare
Expert!
Posts: 359
Joined: 2004-04-25 11:11:07
Contact:

Post by Lord Ruslan Nightmare »

1) заранее где-нибудь запомнить, в какое именно место чар реколлится. Та же проверка смены координат - только он будет ждать, пока не окажется в нужной точке (или поблизости от неё)
2) Сложная проверка через звуки (,set soundecho 1 и дальше uo.injournal). Можно улавливать звук физзла. Реколл состоит из двух звуков, следующих друг за другом: звук накастовавшегося телепорта и звук телепортировавшегося в какое-то место NPC (т.е. тебя).
Ну, и журнал, мана....и прочие приметы :)
Без труда не выловишь и рыбку из пруда,
А без пруда не выловишь её и с трудом...
doomhammer
Junior Expert
Posts: 25
Joined: 2004-07-26 19:51:05
Location: Alkar Realms
Contact:

Post 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

Если мана потрачена, то рекол был успешным.
Alkar Realms shard
www.ultima.alkar.net (Ukraine)
evil_Gremlin
Posts: 54
Joined: 2004-05-11 12:27:22
Contact:

Post by evil_Gremlin »

Я всегда успешность каста проверяю по мане или регам
Каждый манчкин в старости мечтает иметь кресло-качалку ;)
Lord Ruslan Nightmare
Expert!
Posts: 359
Joined: 2004-04-25 11:11:07
Contact:

Post 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 секунд должна произойти телепортация чара в какую-то местность.
Last edited by Lord Ruslan Nightmare on 2004-08-06 00:01:02, edited 1 time in total.
Без труда не выловишь и рыбку из пруда,
А без пруда не выловишь её и с трудом...
Post Reply