Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[ Service ] Waypoints ! Tibia Ng !


Spevil

Rekomendowane odpowiedzi

Opublikowano

61kina 72/71 p set k axe dark helmet leather bootsy dwarv shield

zeby duzo kasy lecialo.

  • Odpowiedzi 173
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

///// This script will require you to edit your tibia.dat file to remove the
///// the "not passable properties" of fire, energy, and poison if monsters you 
///// hunt create these fields. There are some OT server sites with such a tool.
///// Download them at your own risk, changing the .dat file can cause problems
///// with your tibia client, so make sure to backup a copy and test with care.

///// Turn off autochase while using this program.  Disable it both in Tibiabot 
///// advanced settings and on the tibia client itself.

///// Known problems include sometimes getting trapped if your chasing a monster
///// and the location you are trying to get to is a PZ.  The script will
///// will not crash but will simply not run from the monster.

///// I added comments so that it will be easier for people to edit this script to
///// suit their needs. I utilize only a few sqm's to run to, although far more are 
///// possible, but it may cause problems for you if you run from too far away.

/////  ENJOY!

const
RampsID = [1950, 1952, 1954, 1956, 385, 1947, 434, 414, 604, 7020]
Wanted='Dragon Lord';// which monster to keep diagonal, see lines 113 and 485 for more options
Wanted2='Dragon';// which monster to keep diagonal, see lines 113 and 485 for more options
AttackAt = 16;//will chase out of fire range when creatures health is at or below this amount
              //set to 100 to always keep distance

function GetCreatureByID(ID: integer): TCreature;
var
  x: integer;
  Finished: boolean; 
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;

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;  

function TileIsWalkable(X, Y, Z: integer): boolean;
var Tile: TTile; 
begin 
  Result := True;
  Tile := GetTileFromXYZ(X, Y, Z);
  If (Tile <> nil) and (Tile.Count <> 0) then 
    for Z := 0 to Tile.Count - 1 do 
    begin 
      if Tile.Item[Z].Properties.Hole then Result := False; 
      else if Tile.Item[Z].Properties.Stairs then Result := False; 
      else if not Tile.Item[Z].Properties.Walkable then Result := False;
      else
      begin
      for x := low(RampsID) to high(RampsID) do
       begin
        if Tile.Item[Z].ID = RampsID[x] then Result := False;
       end;
      end;  
    end; 
end;

Function MoveFromRange: boolean;
  begin 
  Result := True;  
  Creature := GetCreatureByID(Self.Attacking);
      if Creature <> nil then
      //northwest
      if ((Creature.X-self.X = 2) and (Creature.Y-self.Y = 2)) or
         ((Creature.X-self.X = 2) and (Creature.Y-self.Y = 3)) or
         ((Creature.X-self.X = 3) and (Creature.Y-self.Y = 2)) or
         ((Creature.X-self.X = 3) and (Creature.Y-self.Y = 3)) or
      //southwest
         ((Creature.X-self.X = 2) and (Creature.Y-self.Y = -2)) or
         ((Creature.X-self.X = 2) and (Creature.Y-self.Y = -3)) or
         ((Creature.X-self.X = 3) and (Creature.Y-self.Y = -2)) or
         ((Creature.X-self.X = 3) and (Creature.Y-self.Y = -3)) or
      //northeast
         ((Creature.X-self.X = -2) and (Creature.Y-self.Y = 2)) or
         ((Creature.X-self.X = -2) and (Creature.Y-self.Y = 3)) or
         ((Creature.X-self.X = -3) and (Creature.Y-self.Y = 2)) or
         ((Creature.X-self.X = -3) and (Creature.Y-self.Y = 3)) or
      //southeast
         ((Creature.X-self.X = -2) and (Creature.Y-self.Y = -2)) or
         ((Creature.X-self.X = -2) and (Creature.Y-self.Y = -3)) or
         ((Creature.X-self.X = -3) and (Creature.Y-self.Y = -2)) or
         ((Creature.X-self.X = -3) and (Creature.Y-self.Y = -3)) then
      Result := False; 
      end;
          
begin
  while not Terminated do
  begin
    UpdateWorld;
    if Self.Attacking <> 0 then
    begin
      Creature := GetCreatureByID(Self.Attacking);
      if Terminated=True then exit;
      if (Creature <> nil) and (MoveFromRange) then
      if (Creature.Health<=AttackAt) then
      if (Creature.Name=Wanted) or (Creature.Name=Wanted2) then 
//// Add more monsters here in the same format if you want to run from them
//// make sure to add them also to the constant list at the top
      begin
      //Northwest of Creature
       if (Creature.X > Self.X) and (Creature.Y > Self.Y) then
           begin
           Tile:=GetTileFromXYZ(Self.X, Creature.Y + 1, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Self.X, Creature.Y + 1, Creature.Z)) then 
           begin
           Self.MoveTo(Self.X, Creature.Y + 1, Creature.Z); 
           end;
           Tile:=GetTileFromXYZ(Creature.X + 1, Self.Y, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 1, Self.Y, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 1, Self.Y, Creature.Z); 
           end;    
           Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y - 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y - 2, Creature.Z)=true) then 
           begin
           Self.MoveTo(Creature.X - 2, Creature.Y - 2, Creature.Z);
           end;
           Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y - 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y - 3, Creature.Z)=true) then 
           begin
           Self.MoveTo(Creature.X - 2, Creature.Y - 3, Creature.Z); 
           end;
           Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y - 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y - 2, Creature.Z)=true) then 
           begin
           Self.MoveTo(Creature.X - 3, Creature.Y - 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y - 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y - 3, Creature.Z)=true) then 
           begin
           Self.MoveTo(Creature.X - 3, Creature.Y - 3, Creature.Z); 
           end;
           end;          
      //Southwest of Creature
      if  (Creature.X > Self.X) and (Creature.Y < Self.Y) then
           begin
           Tile:=GetTileFromXYZ(Self.X, Creature.Y - 1, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Self.X, Creature.Y - 1, Creature.Z)) then 
           begin
           Self.MoveTo(Self.X, Creature.Y - 1, Creature.Z); 
           end;
           Tile:=GetTileFromXYZ(Creature.X + 1, Self.Y, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 1, Self.Y, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 1, Self.Y, Creature.Z); 
           end;    
           Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y + 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y + 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 2, Creature.Y + 2, Creature.Z);
           end;
           Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y + 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y + 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 2, Creature.Y + 3, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y + 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y + 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 3, Creature.Y + 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y + 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y + 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 3, Creature.Y + 3, Creature.Z);
           end;
           end;
           //Northeast of Creature
           if (Creature.X < Self.X) and (Creature.Y > Self.Y) then
           begin
           Tile:=GetTileFromXYZ(Self.X, Creature.Y + 1, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Self.X, Creature.Y + 1, Creature.Z)) then 
           begin
           Self.MoveTo(Self.X, Creature.Y + 1, Creature.Z); 
           end; 
           Tile:=GetTileFromXYZ(Creature.X - 1, Self.Y, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 1, Self.Y, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 1, Self.Y, Creature.Z); 
           end;   
           Tile:=GetTileFromXYZ(Creature.X - 1, Self.Y, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 1, Self.Y, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 1, Self.Y, Creature.Z); 
           end;
           Tile:=GetTileFromXYZ(Self.X, Creature.Y + 1, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Self.X, Creature.Y + 1, Creature.Z)) then 
           begin
           Self.MoveTo(Self.X, Creature.Y + 1, Creature.Z); 
           end;    
           Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y - 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y - 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 2, Creature.Y - 2, Creature.Z);
           end;
           Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y - 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y - 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 2, Creature.Y - 3, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y - 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y - 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 3, Creature.Y - 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y - 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y - 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 3, Creature.Y - 3, Creature.Z);
           end;
           end;
           //Southeast of Creature
           if (Creature.X < Self.X) and (Creature.Y < Self.Y) then
           begin
           Tile:=GetTileFromXYZ(Self.X, Creature.Y - 1, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Self.X, Creature.Y - 1, Creature.Z)) then 
           begin
           Self.MoveTo(Self.X, Creature.Y - 1, Creature.Z); 
           end;
           Tile:=GetTileFromXYZ(Creature.X - 1, Self.Y, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 1, Self.Y, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 1, Self.Y, Creature.Z); 
           end;    
           Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y + 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y + 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 2, Creature.Y + 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y + 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y + 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 2, Creature.Y + 3, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y + 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y + 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 3, Creature.Y + 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y + 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y + 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 3, Creature.Y + 3, Creature.Z);
           end;
           end;
           //North of Creature            
           if (Creature.X = Self.X) and (Creature.Y > Self.Y) then                 
           begin
           Tile:=GetTileFromXYZ(Creature.X - 1, Self.Y, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 1, Self.Y, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 1, Self.Y, Creature.Z); 
           end;
           Tile:=GetTileFromXYZ(Creature.X + 1, Self.Y, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 1, Self.Y, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 1, Self.Y, Creature.Z); 
           end;    
           Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y - 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y - 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 2, Creature.Y - 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y - 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y - 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 2, Creature.Y - 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y - 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y - 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 2, Creature.Y - 3, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y - 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y - 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 3, Creature.Y - 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y - 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y - 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 3, Creature.Y - 3, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y - 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y - 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 2, Creature.Y - 3, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y - 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y - 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 3, Creature.Y - 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y - 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y - 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 3, Creature.Y - 3, Creature.Z);
           end;
           end;
           //East of Creature
           if (Creature.X < Self.X) and (Creature.Y = Self.Y) then
           begin
           Tile:=GetTileFromXYZ(Self.X, Creature.Y -1, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Self.X, Creature.Y -1, Creature.Z)) then 
           begin
           Self.MoveTo(Self.X, Creature.Y -1, Creature.Z); 
           end;
           Tile:=GetTileFromXYZ(Self.X, Creature.Y + 1, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Self.X, Creature.Y + 1, Creature.Z)) then 
           begin
           Self.MoveTo(Self.X, Creature.Y + 1, Creature.Z); 
           end;
           Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y - 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y - 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 2, Creature.Y - 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y + 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y + 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 2, Creature.Y + 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y - 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y - 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 2, Creature.Y - 3, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y - 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y - 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 3, Creature.Y - 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y - 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y - 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 3, Creature.Y - 3, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y + 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y + 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 2, Creature.Y + 3, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y + 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y + 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 3, Creature.Y + 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y + 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y + 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 3, Creature.Y + 3, Creature.Z);
           end;
           end;
           //South of Creature
           if (Creature.X = Self.X) and (Creature.Y < Self.Y) then
           begin
           Tile:=GetTileFromXYZ(Creature.X - 1, Self.Y, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 1, Self.Y, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 1, Self.Y, Creature.Z); 
           end;
           Tile:=GetTileFromXYZ(Creature.X + 1, Self.Y, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 1, Self.Y, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 1, Self.Y, Creature.Z); 
           end;    
           Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y + 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y + 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 2, Creature.Y + 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y + 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y + 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 2, Creature.Y + 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y + 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y + 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 2, Creature.Y + 3, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y + 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y + 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 3, Creature.Y + 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y + 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y + 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X + 3, Creature.Y + 3, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y + 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y + 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 2, Creature.Y + 3, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y + 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y + 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 3, Creature.Y + 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y + 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y + 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 3, Creature.Y + 3, Creature.Z);
           end;
           end;
           //West of Creature
           if (Creature.X > Self.X) and (Creature.Y = Self.Y) then
           begin
           Tile:=GetTileFromXYZ(Self.X, Creature.Y - 1, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Self.X, Creature.Y - 1, Creature.Z)) then 
           begin
           Self.MoveTo(Self.X, Creature.Y - 1, Creature.Z); 
           end;
           Tile:=GetTileFromXYZ(Self.X, Creature.Y + 1, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Self.X, Creature.Y + 1, Creature.Z)) then 
           begin
           Self.MoveTo(Self.X, Creature.Y + 1, Creature.Z); 
           end;    
           Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y - 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y - 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 2, Creature.Y - 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y + 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y + 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 2, Creature.Y + 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y + 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y + 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 2, Creature.Y + 3, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y + 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y + 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 3, Creature.Y + 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y + 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y + 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 3, Creature.Y + 3, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y - 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y - 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 2, Creature.Y - 3, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y - 2, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y - 2, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 3, Creature.Y - 2, Creature.Z);
           end; 
           Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y - 3, Creature.Z);
           if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y - 3, Creature.Z)) then 
           begin
           Self.MoveTo(Creature.X - 3, Creature.Y - 3, Creature.Z);
           end;
           end; 
        end;
      //Diagonal if higher than Attackat health and 1sqm away
      Creature := GetCreatureByID(Self.Attacking);
      if Terminated=True then exit;
      if (Creature <> nil) and (MoveFromRange) then
      if (Creature.Health>AttackAt) then
      if (Creature.Name=Wanted) or (Creature.Name=Wanted2) then  
//// Add more monsters here in the same format if you want to be diagonal from them
//// make sure to add them also to the constant list at the top.
      if (abs(Creature.X-self.X) <= 1) and (abs(Creature.Y-self.Y) <= 1) then 
      begin
        if (Self.X<>Creature.X) and (Self.Y=Creature.Y) then   
            begin   
            Tile:=GetTileFromXYZ(Self.x,Self.y-1,self.z);   
            if Tile<>nil then   
            if TileIsWalkable(Self.x,Self.y-1,self.z) then   
               begin   
               Self.MoveUp;   
               Moved:=true;   
               end;   
            If (Moved=False) then   
               begin   
               Tile:=GetTileFromXYZ(Self.x,Self.y+1,self.z);   
               if Tile<>nil then   
               if TileIsWalkable(Self.x,Self.y+1,self.z) then   
               Self.MoveDown;   
               end;   
            end;   
            Moved:=false;   
            if (Self.X=Creature.X) and (Self.Y<>Creature.Y) then   
            begin   
            Tile:=GetTileFromXYZ(Self.x-1,Self.y,self.z);   
            if Tile<>nil then   
            if TileIsWalkable(Self.x-1,Self.y,self.z) then   
               begin   
               Self.MoveLeft;   
               Moved:=true;   
               end;   
            If (Moved=False) then   
               begin   
               Tile:=GetTileFromXYZ(Self.x+1,Self.y,self.z);   
               if Tile<>nil then   
               if TileIsWalkable(Self.x+1,Self.y,self.z) then   
               Self.MoveRight;   
               end;   
            end;
       end;
    end;
    sleep(500);
  end;
  end;

 

Script na uciekanie :)

 

co do wpt sam musisz sobie dorobić ;)

Opublikowano

Wanted='Dragon Lord';// wpisz moba od którego ma uciekać np . ty chcesz expic na dragach to wpisujesz Dragon

 

Wanted2='Dragon';// tu to samo ale inaczej ;D nie musisz tu nic wpisywac to służy jeżeli np. widzi dl-a i draga to zeby zignorował draga i uciekal od dl-a wpisujemy Dragon a na góre Dragon Lord

 

AttackAt = 16;// zmień z 16 na 100 żeby uciekał nie zależnie ' chyba ' od hp ;)

Opublikowano
jak i tamten script nie działa to tylko zostaje przejść na elfbot-a :\

 

 

 

Szkoda bo nie ma craca na elfa ;/ Jestem w kropce ;[ Ale dzieki za pomoc 5* sie należy :)

 

 

 

 

-----------------------------------------------------------------------------------------------------------

 

Fake'r

 

lec na soldy, wybierz odpowiednią kopalnie ! Tam musisz sobie ustawić wpt. pod siebie !! ;] Pzdro

WORLD TRADE SERVICE

 

 

tibiaziom1.png

 

milusiaxdd.png

 

antyvisla.jpg

 

elo3457.png

 

cigarettepacket2.th.jpg

Opublikowano
Dziękujemy że każdy moderator Tibi pracuję i usuwa spam !!!

 

@BUMP

 

Tez mnie to dziwi, niby tak popularny dział a modó brak O_o

 

@Fake'r

Dark catedral, kopalnie

 

76561198001815076.png
Opublikowano

Teraz coś dla mnie ;)

Profa:Knight

LVL:36

Skille:70/65

EQ:crus helm,k set,vampire shield,fur boots,dragonbonestaff

 

Szukam dobrej miejscówy na szybki exp z małym waste =D

 

Opublikowano
Teraz coś dla mnie ;)

Profa:Knight

LVL:36

Skille:70/65

EQ:crus helm,k set,vampire shield,fur boots,dragonbonestaff

 

Szukam dobrej miejscówy na szybki exp z małym waste =D

 

Ja od 30 lvl do 50 lvl bociłem na Dark Cathedral :)

Opublikowano
ile się tam expa wyciaga na godzine?

 

 

DC full -1 + slimes + rotworms + ghouls + tarantule to jak sam jesteś to 34k/h

Opublikowano

Na pewno będzie bocić na edron bo już mało osób pamięta o tym miejscu [ szczególnie na guardi ] im nowsze miejsce tym więcej ludzi ;]

 

http://www.speedyshare.com/339987607.html

 

Zaraz dodam Scripta

 

Const
List = ['Dragon', 'Dragon Lord'];
Spell = 'Exori Frigo';

function TestMonster(Crea: TCreature): boolean;
begin
Result := false;

   for z := Low(List) to High(List) do
   begin
     if AnsiLowerCase(Crea.Name) = AnsiLowerCase(List[z]) then
     Result := 'true';
   end;
end;

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; 

while not terminated do
begin
  updateworld;
  if Self.Attacking <> nil then
  begin
    creature := GetCreatureByID(self.attacking);
    if creature <> nil then
    begin
      updateworld;
      if (abs(creature.x - self.x) <= 3) and (abs(creature.y - self.y) <= 3) then
      if (TestMonster(creature)) then
        begin
          if Self.Attacking > 0 then
          self.say(Spell);
          sleep(2000);
        end;
    end;
   sleep(200);
  end;
end;

  • 2 tygodnie później...
Opublikowano

Gdzie bocic 27 lvl druid facc liczy sie exp! Wielkie thx~!~

2% młodzieży słucha prawdziwej muzyki, jeśli jesteś wśród tych 98% które lubi grać w ping-ponga ustaw to jako Twój opis.

Opublikowano
Gdzie bocic 27 lvl druid facc liczy sie exp! Wielkie thx~!~

 

Fibula roty, trolle ab

Opublikowano

Mam juz 29 lvl, i exp leci niemilosiernie powoli na rotach... Gdzie moge expic bez stawiania bota? Chce wbic gdzies jeszcze troche lvli a pozniej ustawic bota na dragach...

2% młodzieży słucha prawdziwej muzyki, jeśli jesteś wśród tych 98% które lubi grać w ping-ponga ustaw to jako Twój opis.

Opublikowano

Chciałbym prosić o Waypointy + Depositer (Kasa + Small Stones), Port Hope na Małpach.

Chciałbym aby złoto było chowane do Banku a kamyczki do Depo.

Bardzo bym chciał abyś zrobił go jeszcze dziś.

Dziekuje.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...