Прочитал первый топик, решил попробывать реализовать сразу оба скрипта.. Понятное дело в окне ответа..
Code: Select all
sub castSpell( spellname, target )
var i, cast_time = uo.getglobal( "time-" + spellname )
if cast_time == "N/A" then
uo.print( "Неизвестное заклинание, засекаю время." )
castTimer( spellname, target )
return false
endif
cast_time = val( cast_time )
if target then
uo.waittargetobject( target )
endif
deljournal( "fizzles" )
uo.cast( spellname )
for i=cast_time to 1 step -1
uo.print( "До конца каста: " + str( i ) + "сек." )
wait( 1000 )
if uo.injournal( "fizzles" ) then
uo.print( "Каст не удался." )
return false
endif
next
endsub
sub castTimer( spellname, target )
if target then
uo.waittargetobject( target )
endif
var time = 0, mana = uo.mana
deljournal( "fizzles" )
uo.cast( spellname )
repeat
wait( 1000 )
time = time + 1
until uo.injournal( "fizzles" ) OR uo.mana < mana
if not uo.injournal( "fizzles" ) then
uo.print( "Каст прошёл удачно, время записано: " + str( time ) + " сек." )
uo.setGlobal( "time-" + spellname, str( time ) )
else
uo.print( "Каст неудался, время не записано." )
endif
endsub
spellname - название каста, который кастуем. target - объект на который кастуем или false, если не нужно указывать куда кастовать.
Вроде так + пара мелочей, вроде того, чтобы скрипт не дох от фразы "fizzles" со стороны других игроков
