Code: Select all
program taming;
var
Char : Array[1..2] of string;
Zver : Array[1..2] of Cardinal;
procedure IsCurMessages;
var D : TDateTime;
begin
{5 minutes in DateTime = 5 / 1440 = 0.00347}
D := Now - (0.00347);
InJournalBetweenTimes(CharName + ': I am already performing another action.',D,Now);
if LineCount > 15 then
begin
AddToSystemJournal('Error with target. Disconnected');
Disconnect;
end;
end;
procedure Hungry(NeededLevel : Integer);
var HArray : array [0..10] of String;
CurrentLevel : Integer;
HasError : Boolean;
TimeSayHungry : TDateTime;
FoodID : Cardinal;
i,c,difference : Integer;
begin
FindVertical:=26;
findtype($097B,0);
FoodID := FindItem; {You must SET FoodID!}
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? No connect? Something else?');
Exit;
end;
difference := CurrentLevel - NeededLevel;
if difference > 0 then for i := 1 to difference do
begin
UseObject(FoodID);
wait(2000);
end;
end;
procedure First(Char : array of String; Zver : array of Cardinal);
var
b,f : TDateTime;
tmp,i : integer;
Begin
while True do
begin
IsCurMessages;
Hungry(1);
i:=0;
while i < 10 do
begin
for tmp:=1 to 2 do
begin
WaitTargetObject(zver[tmp]);
UseSkill('Animal Taming');
b:=Now;
WaitJournalLine(b, 'You successfully tame|You failed', 40000);
WaitJournalLine(b, Char[2]+': all release', 4000);
UOsay('all release');
UOsay(IntToStr(tmp));
i := i + 1;
end;
end;
End;
End;
procedure Second(Char : array of String; Zver : array of Cardinal);
var
i,tmp : integer;
b,f : TDateTime;
begin
f:=Now;
while true do
begin
IsCurMessages;
Hungry(1);
i:=0;
while i < 10 do
begin
WaitJournalLine(f,Char[1]+': 1'+'|'+Char[2]+': 2',0);
if InJournalBetweenTimes(Char[1]+': 1',f,Now) >= 0 then tmp := 1;
if InJournalBetweenTimes(Char[2]+': 2',f,Now) >= 0 then tmp := 2;
f:=Now;
WaitTargetObject(Zver[tmp]);
UseSkill('Animal Taming');
b:=Now;
WaitJournalLine(b,'You successfully tame|You fail', 20000);
UOsay('all release');
i := i + 1;
end;
End;
End;
begin
SetARStatus(true);
FindVertical:=30;
Char[1]:='Barsuello';
Char[2]:='Generous';
Zver[1]:=$0114671E;
Zver[2]:=$01146D08;
Case CharName Of
Char[1] : First(Char,Zver);
Char[2] : Second(Char,Zver);
else AddToSystemJournal('Error');
End;
End.
что я неправильно делал ? компилятор ругается о Out Of Range... я так понял что-то с функцией Wait...
другие ошибки можете не говорить.. так как многа нашол но вот это Out Of Range оно и раньше было на некоторых функциях... щас вот на этом.. ваще не понимаю почему.... памяти чтоли не хватает... вобщем хелп