Code: Select all
Program hiding_and_stealth;
var
i:integer;
d:Cardinal;
TimeSay : TDateTime;
procedure Hungry(NeededLevel : Integer); {проверка голода от Миралекса!!!}
var HArray : array [0..10] of String;
CurrentLevel : Integer;
HasError : Boolean;
TimeSayHungry : TDateTime;
FoodID : Cardinal;
i,c,difference : Integer;
begin
if (NeededLevel < 0) or (NeededLevel > 10) then Exit;
HArray[0] := 'You are absolutely stuffed!';
HArray[1] := 'You are stuffed';
HArray[2] := 'hungry at all';
HArray[3] := 'You are a little hungry';
HArray[4] := 'You are somewhat hungry';
HArray[5] := 'You are REALLY hungry';
HArray[6] := 'Your stomash hurts';
HArray[7] := 'Your stomash hurts and you feel dizzy';
HArray[8] := 'You are starving';
HArray[9] := 'You are almost dying of hunger';
HArray[10] := 'You are DYING of hunger...';
HasError := true;
TimeSayHungry := Now;
UOSay('.hungry');
wait(100);
i:=0;
while i < 100 do
begin
for c := 0 to 10 do
if InJournalBetweenTimes(HArray[c],TimeSayHungry,Now) >= 0 then
begin
CurrentLevel := c;
HasError := false;
i := 100;
end;
wait(100);
i := i + 1;
end;
if HasError then
begin
AddToSystemJournal('Error with Hungry: Lag? Conection error? Something else?');
Exit;
end;
difference := CurrentLevel - NeededLevel;
if difference > 0 then for i := 1 to difference do
begin
wait(5000)
FoodID := FindType($097B,backpack);
if FoodID <> $00 then UseObject(FoodID)
else AddToSystemJournal('No Food');
wait(200);
end;
end;
begin
i:=0;
while i<1000 do
begin
TimeSay := Now;
while InJournalBetweenTimes('You have hidden yourself well',TimeSay,Now)<0 do
begin
useskill('Hiding');
wait(2000);
end;
TimeSay := Now;
while (InJournalBetweenTimes('You have revealed yourself!',TimeSay,Now)<0) and (InJournalBetweenTimes('You must
be hidden to use stealth',TimeSay,Now)<0) do
begin
if InJournalBetweenTimes('You have revealed yourself!',TimeSay,Now)<0 then i:=500;
if InJournalBetweenTimes('You must be hidden to use stealth',TimeSay,Now)<0 then i:=500;
useskill('Stealth');
wait(2000);
end;
Hungry(1);
end;
end.