MIning help
Posted: 17.06.2008 18:54
Ребят кто поможет огромное спасибо! копает> прилетает, выкладывает в сундук> выходит из скрипта...только не понимаю почему((( хочется что бы дальше летел и делал все так же :о)
Program MinerLumber;
{$Include 'all.inc'}
const
MaxVes=420; //Ves pri kotorom recolimsya domoi
////////////
RemarkRune=0; //esli zaryadov menshe 30 to remark, 1-da,0-net
////////////
/////////// tut tvoi dannie
RuneBag= $40016B0D; //id baga s runami
Sunduk = $40022053; //sunduk s regami i vsem ostalnim
RSunduk= $40022053; //kuda rudu skidivat
HomeX=1315; ///x rune to home
HomeY=2255; ///y rune to home
RuneHome=$4001E531; //runa domoi
////////////
msge1='There is no ore here to mine.';
msge2='Try mining in rock.';
msge3='You have no line';
msg1='You put the';
msg2='You loosen some rocks but fail to find any useable ore.';
busy='do this now';
ReadyToRecall='Select rune to recall from.';
Fizzles='The spell fizzles.';
paralize='You can not pick|reach that';
recparalize='reach that';
Pickaxe1 = $0E85; // Типы кирок
Pickaxe2 = $0E86;
ColReg=100; //Количество регов у персонажа
ColRec=3; //Количество свитков Recoll у прсонажа
Invis=$0F09; //Type Inviski
Recall=$1F4C; //Type Recall
FishSt=$097A; //Type Fish Steake
Bint=$0E21;
RBint=$0E22;
LogFile='C:\Mining_log.dat';
var
MRune: array[0..200] of cardinal;
RUDCOL:array[0..12] of string;
RUDCOD:array[0..12] of word;
PKchar:array [0..1] of word;
Fields:array [0..10] of word;
Zakl: array [0..48] of string;
Ore:array [0..3] of word;
CheckTime:TDateTime;
ret,c1,c2,ColRun,PKAlarm:integer;
//#############################################################/
procedure WriteToFile(data: string);
var
file: TFileStream;
begin
try
data:=FormatDateTime('dd.mm.yyyy hh:mm:ss > ', Now) + data+ #13#10;
file := TFileStream.Create(LogFile,fmOpenReadWrite);
file.seek(0, soFromEnd);
except
file := TFileStream.Create(LogFile,fmCreate);
end;
file.WriteBuffer(data,Length(data));
file.Free;
end;
//#############################################################/
Procedure Inviska;
begin
FindType(Invis,backpack)
if (FindCount>0) and (Hidden=false) then
begin
UseType(Invis,$FFFF);
WriteToFile('Invisku пьем');
wait(500);
exit;
end;
WriteToFile('Нету инвизок');
end;
//#############################################################/
function RecallToAttack:integer;
var
mx,my,i,z,paraliz:integer;
tmptime:TDateTime;
begin
Addtosystemjournal(IntToStr(GetX(self))+ ' ' + IntToStr(GetY(self)));
WriteToFile(IntToStr(GetX(self))+ ' ' + IntToStr(GetY(self)));
CancelTarget;
CancelWaitTarget;
Result:=0;
paraliz:=0;
Addtosystemjournal(FormatDateTime('dd.mm.yyyy hh:mm:ss > ', Now) + 'Пора по съёбкам');
WriteToFile('Пора по съёбкам');
mx:=GetX(self);
my:=GetY(self);
While not Dead do
begin
If (GetX(self)=HomeX) and (GetY(self)=HomeY) then break;
if TargetPresent then CancelTarget;
FindType(Recall,backpack);
if (FindQuantity <> 0) and (Ret=0) then
begin
for z:=1 to 4 do
begin
If (paraliz=1) then break;
Addtosystemjournal('Используем свиток');
WriteToFile('Используем свиток');
tmptime:=Now;
if (InJournalBetweenTimes(Zakl[47],CheckTime,Now)<>-1) or (InJournalBetweenTimes(Zakl[14],CheckTime,Now)<>-1) then
begin
Inviska;
end;
UseObject(finditem);
WaitForTarget(1500);
if (InJournalBetweenTimes(recparalize,TmpTime,Now)<>-1) then
begin
Addtosystemjournal('Парализованы');
WriteToFile('Парализованы');
paraliz:=1;
break;
end;
if (InJournalBetweenTimes(busy,TmpTime,Now)=-1) then
begin
if (TargetPresent) or (InJournalBetweenTimes(ReadyToRecall,TmpTime,Now)<>-1) then
begin
WaitForTarget(800);
break;
end;
end;
Addtosystemjournal('Чем-то занят');
WriteToFile('Чем-то занят');
end;
If TargetPresent then
begin
tmptime:=Now;
TargetToObject(RuneHome);
for i:=0 to 80 do
begin
If (GetX(self)=HomeX) and (GetY(self)=HomeY) then
begin
Result:=1;
Addtosystemjournal(FormatDateTime('dd.mm.yyyy hh:mm:ss > ', Now) + 'Удачно)))');
WriteToFile('Удачно');
break;
end;
If InJournalBetweenTimes(Fizzles,TmpTime,Now)<> - 1 then break;
wait(50);
end;
end;
end;
if Result=1 then break;
Addtosystemjournal( FormatDateTime('dd.mm.yyyy hh:mm:ss > ', Now) + 'По свитку не вышло');
WriteToFile('По свитку не вышло');
tmptime:=Now;
Cast('Recall')
wait(1000);
if (InJournalBetweenTimes(busy,TmpTime,Now)=-1) then WaitForTarget(1000);
If TargetPresent then
begin
tmptime:=Now;
TargetToObject(RuneHome);
for i:=0 to 100 do
begin
If (GetX(self)=HomeX) and (GetY(self)=HomeY) then
begin
Result:=1;
Addtosystemjournal(FormatDateTime('dd.mm.yyyy hh:mm:ss > ', Now) + 'Удачно)))');
WriteToFile('Удачно');
break;
end;
wait(40);
If InJournalBetweenTimes(Fizzles,TmpTime,Now)<> - 1 then break;
end;
end;
if Result=1 then break;
If (GetX(self)=HomeX) and (GetY(self)=HomeY) then break;
Addtosystemjournal( FormatDateTime('dd.mm.yyyy hh:mm:ss > ', Now) + 'По книжке тоже');
WriteToFile('По книжке тоже');
end;
CancelTarget;
CancelWaitTarget;
end;
//#############################################################/
Function CheckZakl(oldcheck:TDateTime):Integer;
var
x:integer;
begin
Result:=0;
for x := 0 to 48 do
begin
if InJournalBetweenTimes(Zakl[x],oldcheck,Now)<> -1 then
begin
Addtosystemjournal( 'Произнесено ' + Zakl[x]);
WriteToFile( 'Произнесено ' + Zakl[x]);
Result:=1;
break;
end;
waitconnection(3000);
end;
if InJournalBetweenTimes('Return',oldcheck,Now)<> -1 then
begin
Addtosystemjournal( 'Возвращаемся');
WriteToFile( 'Возвращаемся');
Ret:=1;
RecallToAttack;
PKAlarm:=9;
end;
waitconnection(3000);
CheckTime:=Now;
end;
//#############################################################/
//#######################################################/
Procedure ControlPk;
var
y,x,z:integer;
ListPK : TStringList;
Zres:integer;
begin
FindDistance:=20;
IgnoreReset;
Ignore(self);
Ignore($0001B871);
Ignore($0001258F);
Ignore($0001D93C);
Zres:=CheckZakl(CheckTime);
if PKAlarm<>0 then exit;
If (Zres=1) or (HP<MaxHP) then
begin
PKAlarm:=1;
if RecallToAttack=0 then
begin
Addtosystemjournal( FormatDateTime('dd.mm.yyyy hh:mm:ss > ', Now) + 'Убили...');
WriteToFile('Убили');
PKAlarm:=9;
end;
exit;
end;
ListPK:=TStringList.Create;
for x:=0 to 1 do
begin
waitconnection(3000);
FindType(PKchar[x],ground);
GetFindedList(ListPK);
if (ListPK.count > 0) then
begin
for y:= 0 to (ListPK.count-1) do
begin
if PKAlarm<>0 then exit;
if ((IsNPC(StrToInt('$'+ListPK.strings[y]))) and (GetNotoriety(StrToInt('$'+ListPK.strings[y]))>=1)) or (Zres=1) or (HP<MaxHP) then
begin
Addtosystemjournal( FormatDateTime('dd.mm.yyyy hh:mm:ss > ', Now) + 'Рядом Игрок ' + GetName(StrToInt('$'+ListPK.strings[y]))+ 'Дистаниция до него '+ IntToStr(GetDistance(StrToInt('$'+ListPK.strings[y]))));
WriteToFile('Рядом Игрок ' + GetName(StrToInt('$'+ListPK.strings[y]))+ 'Дистаниция до него '+ IntToStr(GetDistance(StrToInt('$'+ListPK.strings[y]))));
PKAlarm:=1;
if RecallToAttack=0 then
begin
Addtosystemjournal( FormatDateTime('dd.mm.yyyy hh:mm:ss > ', Now) + 'Убили...');
WriteToFile('Убили');
PKAlarm:=9;
end;
break;
end;
end;
ListPK.Free;
end;
if PKAlarm<>0 then break;
end;
FindDistance:=15;
for x:=0 to 8 do
begin
FindType(Fields[x],ground);
if FindCount >0 then
begin
Addtosystemjournal( FormatDateTime('dd.mm.yyyy hh:mm:ss > ', Now) + 'Рядом какойто filds ');
WriteToFile('Рядом какойто filds');
PKAlarm:=1;
if RecallToAttack=0 then
begin
Addtosystemjournal( FormatDateTime('dd.mm.yyyy hh:mm:ss > ', Now) + 'Убили...');
WriteToFile('Убили');
PKAlarm:=9;
end;
break;
end;
end;
end;
//#############################################################/
Procedure CheckLag;
var
LagTime:TDateTime;
tmp:integer;
begin
LagTime:=Now;
repeat
tmp:=0;
ClickOnObject(backpack);
repeat
wait(100);
tmp:=tmp+1;
until (InJournalBetweenTimes('backpack',LagTime,Now)<>-1) or (tmp>70);
until InJournalBetweenTimes('backpack',LagTime,Now)<>-1;
end;
//#############################################################/
Function OreColor(color:word):string;
var z:integer;
begin
Result:='Неизвестная руда';
For z:=0 to 12 do
begin
if color=rudcod[z] then
begin
Result:=RudCol[z];
break;
end;
end;
end;
//#############################################################/
procedure DropIngs;
var
z:integer;
TmpTime:TDateTime;
begin
TmpTime:=Now;
Addtosystemjournal( FormatDateTime('dd.mm.yyyy hh:mm:ss > ', Now) + 'Сброс руды');
if TargetPresent then CancelTarget;
if WarMode = true then SetWarMode(false);
UseObject(backpack);
wait(1000);
waitconnection(3000);
While lastcontainer<>RSunDuk do
begin
UseObject(RSunDuk);
wait(1000);
if (InJournalBetweenTimes(paralize,TmpTime,Now)<> -1) then wait(30000);
end;
Addtosystemjournal( 'Sunduk otkrit');
for z:=0 to 3 do
begin
waitconnection(3000);
FindType(Ore[z],backpack)
while FindCount>0 do
begin
MoveItem(FindItem,0,RSunduk,0,0,0);
Addtosystemjournal( 'Выложено '+ IntToStr(FindQuantity)+ ' ' + OreColor(GetColor(FindItem)));
wait(1000);
Checklag;
waitconnection(5000);
FindType(Ore[z],backpack)
end;
end;
end;
//#######################################################/
procedure FullHealChar;
// лечение чара до максимума
var stime : TDateTime;
i : integer;
begin
Addtosystemjournal('Проверяем жизнь');
while (HP < MaxHP) do
begin
WriteToFile('Лечимся');
if TargetPresent then CancelTarget;
stime := Now;
if UseType(Bint,$FFFF) = 0 then break;
WaitForTarget(5000);
If TargetPresent then TargetToObject(Self);
i := 0;
repeat
wait(100);
i := i + 1;
until (InJournalBetweenTimes('You put the bloody bandage|failed|You apply', stime, Now)<>-1) or (i > 300);
waitconnection(3000);
end;
end;
//#######################################################/
Function CheckRecall(var mx:integer;my:integer;stime:TDateTime):integer;
var
txt:string;
i:integer;
begin
Result:=0;
txt:='The spell fizzles.';
for i:=0 to 200 do
begin
If (GetX(self)<>mx) or (GetY(self)<>my) then
begin
Result:=1;
break;
end;
if InJournalBetweenTimes(txt, stime, Now)<> -1 then break;
wait(200);
end;
If Result=0 then addtosystemjournal(FormatDateTime('dd.mm.yyyy hh:mm:ss > ', Now) + 'Recall fizzl');
If Result=0 then WriteToFile('Recall fizzl');
end;
//#######################################################/
Function RecallTo(RuneID:Cardinal):integer;
var
mx,my,i:integer;
tmptime : TDateTime;
begin
Result:=0;
Addtosystemjournal(FormatDateTime('dd.mm.yyyy hh:mm:ss > ', Now) + 'Полетели');
WriteToFile('Полетели');
Waitconnection(3000);
UseType(FishST,$FFFF);
UseObject(backpack);
wait(500);
CheckLag;
mx:=GetX(self);
my:=GetY(self);
For i:=1 to 9 do
begin
if TargetPresent then CancelTarget;
Cast('Recall')
WaitForTarget(10000);
tmptime:=Now;
If TargetPresent then TargetToObject(RuneID);
if CheckRecall(mx,my,tmptime)=1 then
begin
Result:=1;
break;
end;
end;
Addtosystemjournal('Прилетели');
WriteToFile('Прилетели');
end;
//#######################################################/
procedure Medita;
// медитация до полного восстановления маны
var
tmptime : TDateTime;
k : Integer;
begin
Addtosystemjournal('Проверяем манну');
SetWarMode(false);
waitconnection(5000);
if (Mana < MaxMana) then
begin
tmptime := Now;
k:=0;
repeat
useskill('meditation');
wait(2500);
k := k + 1;
checksave;
until (InJournalBetweenTimes('peace', tmptime, Now)<>-1) or (k = 100);
addtosystemjournal(FormatDateTime('dd.mm.yyyy hh:mm:ss > ', Now) + 'медитация закончена');
end;
end;
//#######################################################/
procedure CheckReg;
var z:integer;
begin
z:=0;
Addtosystemjournal( FormatDateTime('dd.mm.yyyy hh:mm:ss > ', Now) + 'Проверяем экипировку');
While lastcontainer<>SunDuk do
begin
UseObject(SunDuk);
wait(1000);
end;
wait(1000);
FindType(BP,backpack);
If FindQuantity < ColReg then
begin
z:=FindQuantity;
FindType(BP,Sunduk);
If FindQuantity < ColReg then
begin
Addtosystemjournal( 'Мало BP!!!!!!!! выход');
PKAlarm:=9;
exit;
end;
MoveItem(FindItem,ColReg-z,backpack,0,0,0);
wait(1000);
Checklag;
end;
waitconnection(3000);
FindType(BM,backpack);
If FindQuantity < ColReg then
begin
z:=FindQuantity;
FindType(BM,Sunduk);
If FindQuantity < ColReg then
begin
Addtosystemjournal( 'Мало BM!!!!!!!! выход');
PKAlarm:=9;
exit;
end;
MoveItem(FindItem,ColReg-z,backpack,0,0,0);
wait(1000);
Checklag;
end;
waitconnection(3000);
FindType(MR,backpack);
If FindQuantity < ColReg then
begin
z:=FindQuantity;
FindType(MR,Sunduk);
If FindQuantity < ColReg then
begin
Addtosystemjournal( 'Мало MR!!!!!!!! выход');
PKAlarm:=9;
exit;
end;
MoveItem(FindItem,ColReg-z,backpack,0,0,0);
wait(1000);
Checklag;
end;
waitconnection(3000);
FindType(Recall,backpack);
If FindQuantity < ColRec then
begin
z:=FindQuantity;
FindType(Recall,Sunduk);
If FindQuantity < ColRec then
begin
Addtosystemjournal( 'Мало Скролов!!!!!!! выход');
PKAlarm:=9;
exit;
end;
MoveItem(FindItem,ColRec-z,backpack,0,0,0);
wait(1000);
Checklag;
end;
waitconnection(3000);
FindType(RBint,backpack);
If FindQuantity > 0 then
begin
MoveItem(FindItem,ColRec-z,Sunduk,0,0,0);
wait(1000);
Checklag;
end;
FindType(Bint,backpack);
If FindQuantity < 50 then
begin
z:=FindQuantity;
FindType(Bint,Sunduk);
If FindQuantity < 100 then
begin
Addtosystemjournal( 'Мало бинтов!!!!!!! выход');
PKAlarm:=9;
exit;
end;
MoveItem(FindItem,50-z,backpack,0,0,0);
wait(1000);
Checklag;
end;
waitconnection(3000);
FindType(FishST,backpack);
If FindQuantity < ColReg then
begin
z:=FindQuantity;
FindType(FishST,Sunduk);
If FindQuantity < ColReg then
begin
Addtosystemjournal( 'Мало еды!!!!!!!');
end;
MoveItem(FindItem,ColReg-z,backpack,0,0,0);
wait(2000);
end;
FindType(Invis,backpack);
If FindQuantity < 1 then
begin
FindType(Invis,Sunduk);
If FindQuantity < 5 then
begin
Addtosystemjournal( 'Мало Invisok!!!!!!!');
end;
MoveItem(FindItem,1,backpack,0,0,0);
wait(2000);
end;
end;
//#######################################################/
procedure readrune;
var
ListRune: TStringList;
x:integer;
begin
While lastcontainer<>backpack do
begin
UseObject(backpack);
wait(1000);
end;
Addtosystemjournal('Открываем RuneBag');
While lastcontainer<>RuneBag do
begin
UseObject(RuneBag);
wait(1000);
end;
ListRune:=TStringList.Create;
FindType($FFFF,RuneBag);
GetFindedList(ListRune);
ColRun:=ListRune.count-1;
for x:= 0 to (ListRune.count-1) do
begin
Mrune[x]:=StrToInt('$'+ListRune.strings[x]);
end;
ListRune.Free;
Addtosystemjournal('Naideno Run ' + IntToStr(ColRun+1));
end;
//#############################################################/
procedure Detect;
var
TmpTime:TDateTime;
ms1,ms2:string;
i,x:integer;
begin
ms1:='You find';
ms2:='You can see';
if WarMode = true then SetWarMode(false);
Tmptime:=Now;
UseSkill('Detect Hidden');
wait(1000);
i:=0;
Addtosystemjournal('Ищем врагов');
while (InJournalBetweenTimes(ms1,TmpTime,Now)=-1) and (InJournalBetweenTimes(ms2,TmpTime,Now)=-1) and (i<8) do
begin
ControlPK;
i:=i+1;
If PKAlarm <> 0 then exit;
wait(1000);
end;
If (InJournalBetweenTimes(ms1,TmpTime,Now)<>-1) then
begin
Addtosystemjournal('Вражина найдена');
WriteToFile('Вражина найдена');
PKAlarm:=1;
if RecallToAttack=0 then
begin
Addtosystemjournal( FormatDateTime('dd.mm.yyyy hh:mm:ss > ', Now) + 'Убили...');
WriteToFile('Убили');
PKAlarm:=9;
exit;
end;
end
if PKAlarm<>0 then exit;
ControlPK;
waitconnection(3000);
end;
//#######################################################/
procedure CheckHide;
var
TmpTime:TDateTime;
ms1,ms2:string;
i:integer;
begin
ms1:='You have hidden yourself well';
ms2:='to hide here';
if Hidden then exit;
Detect;
if WarMode = true then SetWarMode(false);
repeat
UseSkill('Stealth');
Tmptime:=Now;
wait(2000);
i:=0;
while (InJournalBetweenTimes(ms1,TmpTime,Now)=-1) and (InJournalBetweenTimes(ms2,TmpTime,Now)=-1) and (i<8) do
begin
ControlPK;
i:=i+1;
If PKAlarm <> 0 then exit;
wait(1000);
end;
waitconnection(3000);
until Hidden;
end;
//#######################################################/
Procedure Kopka;
var
i,j,t1,t2:integer;
m1,m2,me1,me2,me3,kk,cp,cf:integer;
ctime : TDateTime;
begin
For i:=-2 to 2 do
begin
UseType(FishST,$FFFF);
for j:=-2 to 2 do
begin
repeat
Checkhide;
t1:=0;
if TargetPresent then CancelTarget;
if WarMode = true then SetWarMode(false);
waitconnection(5000);
ctime := Now;
UseType(Pickaxe1,$FFFF);
ControlPK;
WaitForTarget(10000);
If TargetPresent then TargetToTile(0, GetX(self)+i, GetY(self)+j, GetZ(self));
repeat
ControlPK;
If PKAlarm <> 0 then exit;
waitconnection(3000);
me1:=InJournalBetweenTimes(Msge1, ctime, Now);
me2:=InJournalBetweenTimes(Msge2, ctime, Now);
me3:=InJournalBetweenTimes(Msge3, ctime, Now);
m1:=InJournalBetweenTimes(Msg1, ctime, Now);
m2:=InJournalBetweenTimes(Msg2, ctime, Now);
wait(100);
t1:=t1+1;
waitconnection(5000);
until (me1<>-1) or (me2<>-1) or (me3<>-1) or (m1<>-1) or (m2<>-1) or (t1>300);
until (me1<>-1) or (me2<>-1) or (me3<>-1);
if (Weight > MaxVes) then
begin
Addtosystemjournal(FormatDateTime('dd.mm.yyyy hh:mm:ss > ', Now) + 'Набрали руду');
m1:=RecallTo(RuneHome);
DropIngs;
CheckReg;
FullHealChar;
Medita;
exit;
end;
end;
end;
end;
//#######################################################/
Procedure EntArray;
begin
Fields[0]:=$3979; //Energy fild
Fields[1]:=$3996;
Fields[2]:=$3920;
Fields[3]:=$398C;
Fields[4]:=$3914;
Fields[5]:=$3967;
Fields[6]:=$0080;
Fields[7]:=$3956;
Fields[8]:=$3947;
RUDCOL[0] := 'Iron';
RUDCOD[0] := $0000;
RUDCOL[1] := 'Blue Steel';
RUDCOD[1] := $0123;
RUDCOL[2] := 'Silver';
RUDCOD[2] := $0482;
RUDCOL[3] := 'Golden';
RUDCOD[3] := $084D;
RUDCOL[4] := 'Orion';
RUDCOD[4] := $0489;
RUDCOL[5] := 'Verite';
RUDCOD[5] := $07D1;
RUDCOL[6] := 'Shadow';
RUDCOD[6] := $0451;
RUDCOL[7] := 'Valorite';
RUDCOD[7] := $0424;
RUDCOL[8] := 'Mytheril';
RUDCOD[8] := $05CB;
RUDCOL[9] := 'Titanium';
RUDCOD[9] := $042D;
RUDCOL[10] := 'Magma';
RUDCOD[10] := $043A;
RUDCOL[11] := 'BlackRock';
RUDCOD[11] := $0455;
RUDCOL[12] := 'DeathRock';
RUDCOD[12] := $0001;
Ore[0]:= $19B7; // 1 Ore
Ore[1]:= $19BA; // 2 Ore
Ore[2]:= $19B8; // 3 Ore
Ore[3]:= $19B9; // 4 Ore
//\\\\\\\\/
Zakl[0]:='Uus Jux';
Zakl[1]:='Rel Wis';
Zakl[2]:='In Por Ylem';
Zakl[3]:='Des Mani';
Zakl[4]:='Ex Uus';
Zakl[5]:='Uus Wis';
Zakl[6]:='An Nox';
Zakl[7]:='An Mani';
Zakl[8]:='Vas Flam';
Zakl[9]:='An Por';
Zakl[10]:='In Nox';
Zakl[11]:='Rel Por';
Zakl[12]:='In Sanct Ylem';
Zakl[13]:='In Flam Grav';
Zakl[14]:='Por Ort Grav';
Zakl[15]:='Ort Rel';
Zakl[16]:='In Jux Hur Ylem';
Zakl[17]:='An Grav';
Zakl[18]:='Kal In Ex';
Zakl[19]:='In Jux Sanct';
Zakl[20]:='Por Corp Wis';
Zakl[21]:='An Ex Por';
Zakl[22]:='In Nox Grav';
Zakl[23]:='Kal Xen';
Zakl[24]:='An Ort';
Zakl[25]:='Corp Por';
Zakl[26]:='Vas Ort Flam';
Zakl[27]:='An Lor Xen';
Zakl[28]:='Vas Des Sanct';
Zakl[29]:='In Ex Grav';
Zakl[30]:='Wis Quas';
Zakl[31]:='Vas Ort Grav';
Zakl[32]:='In Sanct Grav';
Zakl[33]:='Kal Vas Flam';
Zakl[34]:='Vas Rel Por';
Zakl[35]:='Ort Sanct';
Zakl[36]:='Vas An Ort';
Zakl[37]:='Flam Kal Des Ylem';
Zakl[38]:='Vas Ylem Rel';
Zakl[39]:='In Vas Por';
Zakl[40]:='Vas Corp Por';
Zakl[41]:='An Corp';
Zakl[42]:='Kal Vas Xen Hur';
Zakl[43]:='Kal Vas Xen Corp';
Zakl[44]:='Kal Vas Xen Ylem';
Zakl[45]:='Kal Vas Xen Flam';
Zakl[46]:='Kal Vas Xen An Flam';
Zakl[47]:='attacking you'
Zakl[48]:='kill'
//\\\\\\/
PKchar[0]:= $0190; //Man
PKchar[1]:= $0191; //Woman
end;
//#######################################################/
begin
FindDistance:=17;
FindVertical:=10;
EntArray;
CheckTime:=Now;
ReadRune;
CheckReg;
while 1=1 do
begin
for c1:=0 to ColRun do
begin
PKAlarm:=0;
RecallTo(Mrune[c1]);
Kopka;
If (PKAlarm=9) then exit;
If (PKAlarm<>0) then
begin
FullHealChar;
Medita;
DropIngs;
CheckReg;
wait(1000*600);
end;
end;
if (GetX(self)<>HomeX) and (GetY(self)<>HomeY) then RecallTo(RuneHome);
DropIngs;
CheckReg;
FullHealChar;
Medita;
end;
end.