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

Edron skrypt


duzy15

Rekomendowane odpowiedzi

Opublikowano

Witam

Potrzebuję skryptu do Tibia Ng a dokładniej chodzi o gobliny na edron chcę żeby zbierało mi kamienie i jak będzie mało capa zaniesie kamienie i kase do depo. Szukałem ale nie znalazłem skryptu więc proszę was o pomoc. Z góry dzięki

 

znalazłem na fotum tibi NG

http://forums.tibiabot.com/showthread.php?t=43704 mógł by mi ktos to przetłumaczyć?

 

jak chce władowac tego skrypta pisze cos takiego

[Error] Untitled(1): Syntax error

 

Udało mi się uruchomić ten skrypt i działa ale jak zaniesie small stones do depo stoi w nim i nic nie robi i nie wiem co jest źle że nie wraca na gobliny

 

Teraz to wogule sie nie da zaladowac skryptu chwile jest i znika z okienka prosze o pomoc

 

Proszę mi pomóc jak najszybciej prosze pisać na gg 428139

 

const

BackpackToEmpty = 2 // When at DP Empty This Backpack to Depot Chest (bp id which Stones are Stored in)

CaveToDepotWaypoints = 'C:\Program Files\TibiaBot NG\GobsToDP.ng.wpt' // Goblins to DP

DepotToCaveWaypoints = 'C:\Program Files\TibiaBot NG\DPToGobs.ng.wpt' // DP to Goblins

 

StonesAmount = 100; // Leave Cave when this Amount of Stones

WaitTime = 10;

 

var

Stones: 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);

var Tile: TTile

begin

if Z = Self.Z then

begin

repeat

Self.Containers.UseItemWithGround(5710, X, Y, Z);

Self.Containers.UseItemWithGround(3457, X, Y, Z);

Sleep(1000);

UpdateWorld;

Tile := GetTileFromXYZ(X, Y, Z);

until Tile.Item[0].Properties.Hole or Terminated

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 DepositeStones;

begin

UpdateWorld;

A := nil;

for x := 6 to 8 do

begin

if x > 8 then break;

for y := 4 to 6 do

begin

if y > 6 then break;

for i := 0 to Screen.Tile[x,y].Count - 1 do

begin

if i >= Screen.Tile[x,y].Count then break;

if Screen.Tile[x,y].Item.properties.depot then

begin

A := Screen.Tile[x,y].Item;

break;

end;

SLEEP(50);

end;

end;

end;

if A <> nil then

if BackpackToEmpty > 0 then

begin

A.Open;

C := Self.Containers.Count;

Sleep(1500);

UpdateWorld;

if C <> Self.Containers.Count then

begin

for G := Self.Containers.Container[backpackToEmpty - 1].Count - 1 downto 0 do

begin

if G >= Self.Containers.Container[backpackToEmpty - 1].Count then break;

Self.Containers.Container[backpackToEmpty - 1].Item[G].MoveToContainer(Self.Containers.Container[self.Containers.Count - 1],20,0);

sleep(100);

end;

end;

end;

else if BackpackToEmpty = 0 then

begin

A.Open;

C := Self.Containers.Count;

Sleep(1500);

UpdateWorld;

if C <> Self.Containers.Count then

begin

for ok := 0 to self.containers.Count - 2 do

begin

if ok >= Self.Containers.Count - 1 then break;

for G := Self.Containers.Container[ok].Count - 1 downto 0 do

begin

if G >= Self.Containers.Container[ok].Count then break;

Self.Containers.Container[ok].Item[G].MoveToContainer(Self.Containers.Container[

elf.Containers.Count - 1],100,0);

sleep(100);

end;

end;

end;

end;

end;

 

function CountItemAmountFromOpenBackpack(ID: integer): integer;

var

x: integer;

y: integer;

begin

Result := 0;

for x := 0 to Self.Containers.Count - 1 do

begin

if x >= Self.Containers.Count then Break;

for y := 0 to Self.Containers.Container[x].Count - 1 do begin

if y >= Self.Containers.Container[x].Count then Break;

if Self.Containers.Container[x].Item[y].ID = ID then begin

Result := Result + Self.Containers.Container[x].Item[y].Amount;

end;

end;

end;

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;

 

begin

updateworld

Stones := CountItemAmountFromOpenBackpack(1781);

if Stones < StonesAmount then Exit;

 

FollowWaypoint(CaveToDepotWaypoints);

 

While (Stones > 0) and (not terminated) do

begin

DepositeStones;

Sleep(WaitTime*1000);

updateworld;

Stones := CountItemAmountFromOpenBackpack(3031);

end;

if Terminated then Exit;

 

FollowWaypoint(DepotToCaveWaypoints);

 

Sleep(1000);

end;

Opublikowano

Musisz mieć 2 osobne wpt, jeden z goblinów do dp i drugi z dp na gobliny...

 

CaveToDepotWaypoints = 'C:\Program Files\TibiaBot NG\GobsToDP.ng.wpt' // Goblins to DP

DepotToCaveWaypoints = 'C:\Program Files\TibiaBot NG\DPToGobs.ng.wpt' // DP to Goblins

 

Tu musisz podać lokalizacje twoich wpt...

 

Aaa i jeszcze jedno ;]

 

StonesAmount = 100; // Leave Cave when this Amount of Stones

Tu wpisujesz po uzbieraniu ilu kamieni pojdzie do dp...

 

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

 

BackpackToEmpty = 2 // When at DP Empty This Backpack to Depot Chest (bp id which Stones are Stored in)

 

Tu wpisujemy nr bp do którego bot zbiera kamienie...

 

 

 

 

PS W razie problemów pisz, ale jednego posta, ewentualnie napisz na PW...-.^

EXPmIpC.gif

×
×
  • Dodaj nową pozycję...