Code: Select all
Program fighter;
{$Include 'checksave.inc'}
{$Include 'hungry.inc'}
{$Include 'iscurmess.inc'}
var
t:integer;
enemy:cardinal;
ghost:cardinal;
corpse:cardinal;
bandage:cardinal;
b:TDateTime;
procedure fulldisconnect;
begin
SetARStatus(false);
Disconnect;
end;
procedure resshim;
begin
b:=Now;
checksave;
hungry(1,ground);
setwarmode(false);
if (getquantity(findtype($0E21,ground))< 1) and (connected) then fulldisconnect
else bandage:= finditem;
ghost:=findtype($0192,ground);
iscurmessages;
waittargetobject(ghost);
UseObject(bandage);
WaitJournalline(b,'Thank you',25000);
end;
procedure resself;
begin
checksave;
AddToSystemJournal('I am killed!!');
UOSay('.forgivethee');
Wait(1000);
WaitGump('1');
setwarmode(true);
while dead do
begin
wait(1000);
end;
corpse:=findtype($2006,ground);
waittargetobject(corpse);
useobject(findtype($0F51,ground));
wait(1000);
hungry(1,ground);
UOSay('Thank You');
end;
Begin
SetARStatus(true);
Finddistance:=1;
Ignore(self);
enemy:=findtype($0190,ground);
IgnoreOff(self);
while true do
begin
if connected then
begin
for t:=1 to 10 do
begin
if dead then resself;
if (isdead(enemy)) or (findtype($0192,ground) > 0) then resshim;
checksave;
if (getquantity(findtype($0E21,ground)) < 1) and (connected) then fulldisconnect
else bandage:=finditem;
if targetpresent then canceltarget;
iscurmessages;
if enemy = 0 then
begin
resshim;
Ignore(self);
enemy:=findtype($0190,ground);
IgnoreOff(self);
end;
if (wartargetid <> enemy) or (iswarmode(self) = false) then attack(enemy);
waittargetobject(enemy);
useobject(bandage);
wait(6000);
end;
hungry(1,ground);
end;
Wait(100);
end;
End.