Ir ao depot caso seja atacado.

Const
WaypointFilePath ='C:\program files\tibiabot ng 8.4\GoToEdronDp.wpt'

Var
Run: Boolean

function GetCreatureByID(ID: integer): TCreature;
var
x: integer;
begin
Result := nil;
for x := 0 to Creatures.Count - 1 do
begin
if x >= Creatures.Count then Break;
if Creatures.Creature[x].ID = ID then
begin
Result := Creatures.Creature[x];
Exit;
end;
end;
end;

procedure Event_Attacked(ID: integer);
Var
Creature: TTCreature
begin
if Self.Attacking = ID then Exit;
Creature := GetCreatureByID(ID);
if Creature <> nil then
begin
if not Creature.NPC then Run := True;
end;
end;


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 UseLadder(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: UseLadder(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;

Var
Waypoint: Integer
WaypointsCount: Integer
Index: Integer
begin
Index := 0;
Run := False;
WaypointsCount := CountWaypoints(WaypointFilePath);
WP := ExtractWaypointsFromFile(WaypointFilePath, WaypointsCount);
while not Terminated do
begin
UpdateWorld;
ProcessEvents

if Run then
Repeat
Sleep(500);
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]);
UpdateWorld;
until ((Index = WaypointsCount) or Terminated)

Sleep(100);
end;
end;

Como Utilizar:

Primeiramente você deve configurar um Waypoints da Cav aonde seu bot está ao DP ou área de PZ que você quer que o seu char vá caso seja atacado. Após isso voce salvar ele com um determinado nome e lá encima no script aonde está escrito a seguinte linha de comando "C:\program files\tibiabot ng 8.4\GoToEdronDp.wpt" Você subtitui pelo caminho aonde você salvo o arquivo. Ex: Se você salvou na pasta no TibiaBot NG você vai ter que especificar o caminho ali que no caso ficará assim: C:\Arquivos de Programas\TibiaBot NG\nomedoarquivo.wpt. Somente isso e seu char irá para o Depot ou áre de pz quando for atacado. Obrigado a todos.

Pesquisar no site

By Chuck Norriz © 2009 Todos os direitos reservados.