Можно конечно бить одну куклу - но это малоэффективно (IMHO).
Что делает скрипт? - Скрипт ходит между кукл и бьёт по ним -)
Скрипт писал для себя, так, что не ругайте сильно. Предполагается, что куклы расположены в ряд, двигаться нужно по оси X, между куклами расстояние 1 тайл.
Инструкция: Встаньте возле верхней куклы и врубите скрипт.
Code: Select all
; Тренировка на куклах v1.0 (c) Destruction.
sub DummyKiller()
DIM dummy[3]
dummy[0] = "0x4000F75F" ; ID первой куклы
dummy[1] = "0x4000F728" ; ID второй куклы
dummy[2] = "0x4000FA58" ; ID третьей куклы
var x = uo.getX()
var y = uo.getY()
repeat
Do.KillDummy( dummy[0] )
FastWalk(2,0)
Do.KillDummy( dummy[1] )
FastWalk(2,0)
Do.KillDummy( dummy[2] )
FastWalk(-2,0)
Do.KillDummy( dummy[1] )
FastWalk(-2,0)
until false
endsub
Sub FastWalk( x, y )
var to_x = uo.getX() + x
var to_y = uo.getY() + y
var press = 2
if getWalkDir( x, y, 1 ) <> uo.getDir() then
press = press + 1
endif
uo.press( getWalkDir( x, y, 0 ), press )
repeat
wait(50)
until uo.getX() == to_x && uo.getY() == to_y
endsub
Sub Do.KillDummy( id )
var type = "0x1070" ; тип куклы в обычном состоянии
repeat
wait(50)
until uo.getGraphic( id ) == type
uo.useobject( id )
while uo.getGraphic( id ) == type
wait(50)
wend
endsub
Примечание: Функция getWalkDir лежит в соответствующем топике.
PS: Писал специально более-менее понятно, чтобы всегда можно было запросто изменить под своих кукол.