Простой скрипт спарринга под инжу.

Особенности: встроен реконнектор.

Как работает: два перса стоят рядом, долбят друг-друга и сразу же хилят. Когда здоровье одного из них упадёт до 50%, то прекращают воевать до тех пор пока не полечатся.

Инструкция по настройке:
1) Прописываем ИД'шники персов
2) Указываем тип оружия и щита для каждого перса
3) Кладём каждому персу пару тысяч бинтов, несколько штук оружия и щитов
4) Ставим персов рядом и запускаем

PHP код:
var debug 0

sub fightForPlayer1
()
    var 
opponentSerial '0x0023089D'#идентификатор Перса №2
    
var useWeapon 1
    
var useShield 0
    
var weaponType '0x13F6'
    
var shieldType '0x1B76'
    
    
fight(opponentSerialuseWeaponweaponTypeuseShieldshieldType)
end sub

sub fightForPlayer2
()
    var 
opponentSerial '0x0021A7E0'#идентификатор Перса №1
    
var useWeapon 1
    
var useShield 0
    
var weaponType '0x13F6'
    
var shieldType '0x1B76'
    
fight(opponentSerialuseWeaponweaponTypeuseShieldshieldType)
end sub

sub equipArm
(useWeaponweaponTypeuseShieldshieldType)
    if 
useWeapon==1 then
        UO
.UseType(weaponType)
        
wait(300)
        
UO.CancelTarget()
    endif
    
    if 
useShield==1 then
        UO
.UseType(shieldType)
        
wait(300)
    endif
end sub

sub fight
(opponentSerialuseWeaponweaponTypeuseShieldshieldType)
    var 
bandageType '0x0E21'
    
uo.exec('terminate Reconnector')
    
uo.exec('exec Reconnector')
    
    
equipArm(useWeaponweaponTypeuseShieldshieldType)

    while 
not UO.Dead()
        if 
UO.WarMode()==AND IsPlayerNeedsToHeal('self'50)==AND IsPlayerNeedsToHeal(opponentSerial50)==0 then
            UO
.WarMode(1)
            
UO.Print('Fight!')
            
UO.Attack(opponentSerial)
        endif
        
        if 
IsPlayerNeedsToHeal('self'90)==1 then
            HealPlayer
('self',bandageTypeuseWeaponweaponTypeuseShieldshieldType)
        endif
        
        if 
debug == 1 then
            Uo
.Print('Self needs heal = '+Str(IsPlayerNeedsToHeal('self'50)))
            
Uo.Print('Self needs heal = '+Str(IsPlayerNeedsToHeal(opponentSerial50)))
            
UO.Print('My HP='+Str(UO.GetHP())+'/'+Str(UO.GetMaxHP())+' Opponent HP='+Str(UO.GetHP(opponentSerial))+'/'+Str(UO.GetMaxHP(opponentSerial)))
        endif
        
        if 
UO.WarMode()==AND (IsPlayerNeedsToHeal('self'50)==OR IsPlayerNeedsToHeal(opponentSerial50)==1then
            UO
.Print('Fight stopped')
            
UO.WarMode(0)
            While 
IsPlayerNeedsToHeal('self'100)==OR IsPlayerNeedsToHeal(opponentSerial100)==1
                UO
.WarMode(0)
                if 
IsPlayerNeedsToHeal('self'100)==1 then
                    HealPlayer
('self',bandageTypeuseWeaponweaponTypeuseShieldshieldType)
                endif
                
UO.WarMode(0)
                
                if 
IsPlayerNeedsToHeal(opponentSerial100)==1 then
                    HealPlayer
(opponentSerial,bandageTypeuseWeaponweaponTypeuseShieldshieldType)
                endif
                
                
UO.WarMode(0)
                
wait(1000)
                
UO.WarMode(0)
            
wend
        
endif
        
        
wait(1000)
    
wend
end sub

sub IsPlayerNeedsToHeal
(playerSerialhealPercent)
    if 
playerSerial == 'self' then
        
if UO.GetHP()*100<healPercent*UO.GetMaxHP() then
            
return 1
        
endif
        return 
0
    
endif
    
    if 
UO.GetHP(playerSerial)*100<healPercent*UO.GetMaxHP(playerSerialthen
        
return 1
    
endif
    return 
0
end sub

sub HealPlayer
(healTarget,bandageTypeuseWeaponweaponTypeuseShieldshieldType)
    
UO.WaitTargetObject(healTarget)
    
UO.UseType(bandageType)
    
wait(400)
    
equipArm(useWeaponweaponTypeuseShieldshieldType)
end sub

sub Reconnector
() 
var 
ReconnectTimeRFlag 
ReconnectTime 
'0' 
RFlag 
Repeat 
While (UO.ObjAtLayer('Bpack') == ''
if 
RFlag Then 
ReconnectTime 
MakeTime() 
RFlag 
endif 
Wait(20000# WorldSave Protection 
UO.Say(''
Wait(3000
UO.Say(''
Wait(3000
UO.Say(''
Wait(3000
UO.LDblClick(357,164
UO.LClick(616,459
Wait(3000
WEnd 
Wait
(3000
if (
RFlag == 0) and (ReconnectTime <> '0'Then 
UO
.TextOpen() 
UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime
RFlag 
ReconnectTime 
'0' 
endif 
Until false 
end sub 

sub MakeTime
() 
VAR 
DTRet
Ret 
STR(UO.Time()) 
"" 
For 0 To Len(Ret
Ret[Len(Ret)-i] + 
If (== 2) OR (== 4Then 
":" 
endif 
Next 
Ret 
STR(UO.Date()) 
"" 
For 0 To Len(Ret
Ret[Len(Ret)-i] + 
If (== 2) OR (== 4Then 
"." 
endif 
Next 
Ret 
" @ " 
RETURN Ret 
end sub