Nie wiem czy działa.
Kod PHP:
////////////////////////////////////////////
const
AfkSpotToCaveWaypoints = 'C:\Program\TibiaBot NG\a2.wpt'
CaveWaypoints = 'C:\Program\TibiaBot NG\b.wpt'
CaveToAfkSpotWaypoints = 'C:\Program\TibiaBot NG\c.wpt'
minSoul = 5;
maxSoul = 95;
////////////////////////////////////////////
var
Coins: integer;
Function GetTileFromXYZ(X, Y, Z: integer): TTile;
begin
Result := nil;
if abs((Self.X - 7) - X) > 14 then Exit;
if abs((Self.Y - 5) - Y) > 11 then Exit;
if Self.Z <> Z then Exit;
Result := Screen.Tile[abs((Self.X - 7) - X), abs((Self.Y - 5) - Y)];
end;
Procedure UseTile(X,Y,Z: Integer);
Var
Tile: TTile;
begin
if Z = Self.Z then
begin
Tile := GetTileFromXYZ(X, Y, Z);
Tile.Item[1].Use;
end;
else Unreachable := True;
end;
Procedure UseRope(X,Y,Z: Integer);
begin
if Z = Self.Z then
begin
Self.Containers.UseItemWithGround(3003, X, Y, Z);
end;
else Unreachable := True;
end;
Procedure MoveTo(X,Y,Z: Integer);
begin
if Z = Self.Z then
begin
Self.MoveTo(X,Y,Z);
end;
else Unreachable := True;
end;
Procedure UseShovel(X,Y,Z: Integer);
begin
if Z = Self.Z then
begin
Self.Containers.UseItemWithGround(3457, X, Y, Z);
Self.Containers.UseItemWithGround(5710, X, Y, Z);
Sleep(1000);
Self.MoveTo(X, Y, Z);
end;
else Unreachable := True;
end;
Procedure WaypointToAction(X,Y,Z,Action :Integer);
begin
UpdateWorld;
Case Action of
1: UseRope(X,Y,Z);
2: UseTile(X,Y,Z);
3: MoveTo(X, Y+1, Z+1);
4: MoveTo(X, Y-1, Z-1);
5: MoveTo(X, Y, Z-1);
6: MoveTo(X, Y, Z);
7: UseShovel(X,Y,Z-1);
8: MoveTo(X, Y, Z);
9: Sleep(X*1000);
else
MoveTo(X,Y,Z);
end;
end;
Function WaypointReached(X,Y,Z,Action :Integer): Boolean;
begin
UpdateWorld;
Result := False;
Case Action of
1: if (Z = Self.Z + 1) then Result := True;
2: if (Z = Self.Z + 1) then Result := True;
3: if (Z = Self.Z) then Result := True;
4: if (Z = Self.Z) then Result := True;
5: if (Z = Self.Z) then Result := True;
6: if ((X = Self.X) and (Y = Self.Y) and (Z = Self.Z)) then Result := True;
7: if (Z = Self.Z) then Result := True;
8: if (abs(Z - Self.Z) = 1) then Result := True;
9: Result := True;
else
if ((X = Self.X) and (Y = Self.Y) and (Z = Self.Z)) then Result := True;
end;
end;
Function CountWaypoints(FilePath: String): Integre;
Var
i: Integer
WaypointFile: TextFile
begin
i := 0
AssignFile(WaypointFile, FilePath);
ReSet(WaypointFile);
while not EoF(WaypointFile) do
begin
temp:= ReadLn(WaypointFile);
i := i+1;
end;
Result:= (i/4);
end;
Function ExtractWaypointsFromFile(FilePath: String; Count: Integer): Integre;
Var
i: Integr
WaypointsArray: Integer
WaypointFile: TextFile
begin
WaypointsArray := VarArrayCreate([0, Count - 1, 0, 3], $C);
AssignFile(WaypointFile, FilePath);
ReSet(WaypointFile);
for i:=0 to Count-1 do
begin
WaypointsArray[i,0] := StrToInt(ReadLn(WaypointFile));
WaypointsArray[i,1] := StrToInt(ReadLn(WaypointFile));
WaypointsArray[i,2] := StrToInt(ReadLn(WaypointFile));
WaypointsArray[i,3] := StrToInt(ReadLn(WaypointFile));
end;
CloseFile(WaypointFile);
Result := WaypointsArray;
end;
Procedure FollowWaypoint(FilePath: String)
begin
Index := 0
Unreachable := False
WaypointsCount := CountWaypoints(FilePath);
WP := ExtractWaypointsFromFile(FilePath, WaypointsCount);
while (Index <> (WaypointsCount-1)) and (not Terminated) do
begin
if Unreachable then
begin
Index := Index+1;
Unreachable := False;
end;
if Index = (WaypointsCount-1) then Index := 0;
if WaypointReached(WP[Index,0],WP[Index,1],WP[Index,2],WP[Index,3]) then
Index := Index +1;
WaypointToAction(WP[Index,0],WP[Index,1],WP[Index,2],WP[Index,3]);
Sleep(1000);
end;
end;
while not terminated do
begin
updateworld;
if Self.Soul <= minSoul then
//----------------------------------------------//
//***** Get from the Cave to the banker ***** //
//----------------------------------------------//
FollowWaypoint(AfkSpotToCaveWaypoints);
//************************************//
Sleep(2000);
While (Self.Soul <= maxSoul) and (not terminated) do
begin
UpdateWorld;
FollowWaypoint(CaveWaypoints);
Sleep(2000);
end;
if Terminated then Exit;
//----------------------------------------------//
//**** Return from the banker to the cave ****//
//----------------------------------------------//
FollowWaypoint(CaveToAfkSpotWaypoints);
//************************************//
Sleep(1000);
end;
Zakładki