Forum www.elfngboot.fora.pl Strona Główna
 Strona glówna  •  FAQ  •  Szukaj  •  Użytkownicy  •  Grupy  •  Galerie  •  Rejestracja  •   Profil  •  Zaloguj się, by sprawdzić wiadomości  •  Zaloguj 
Depositer Gold 
Napisz nowy temat   Odpowiedz do tematu    Forum www.elfngboot.fora.pl Strona Główna -> Bot NG / Skrypty
Zobacz poprzedni temat :: Zobacz następny temat  
Autor
Wiadomość
jabol123
Administrator



Dołączył: 05 Mar 2009
Posty: 26
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Czw 21:12, 05 Mar 2009  

Auto depositer gold


Kod:

////////////////////////////////////////////
const
  CaveToBankWaypoints = 'F:\CtBw1.wpt' // Waypoint z Expa do banku
  BankToCaveWaypoints = 'F:\BtCw2.wpt' // Waypoint z banku do Expa
 
  MinCap = 10;
  WaitTime = 10;
////////////////////////////////////////////




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 DepositeGold;
begin
  UpdateWorld;
  Sleep(2000);
  Self.Say('hi');
  Sleep(2000);
  Self.Say('deposit all');
  Sleep(2000);
  Self.Say('yes');
  Sleep(2000);
  Self.Say('bye');
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
  Coins := CountItemAmountFromOpenBackpack(3031);
  if Self.Capacity > MinCap then exit;


//-------------------------------------------//
//***** Get from the Cave to the banker *****//
//-------------------------------------------//
                                             //
                                             //
  FollowWaypoint(CaveToBankWaypoints);       //
                                             //
                                             //
//*******************************************//


  While (Coins > 0) and (not terminated) do
  begin
    DepositeGold;
    Sleep(WaitTime*1000);
    updateworld;
    Coins := CountItemAmountFromOpenBackpack(3031);
  end;
  if Terminated then Exit;


//-------------------------------------------//
//**** Return from the banker to the cave ***//
//-------------------------------------------//
                                             //
                                             //
  FollowWaypoint(BankToCaveWaypoints);       //
                                             //
                                             //
//*******************************************//


  Sleep(1000);
end;


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum www.elfngboot.fora.pl Strona Główna -> Bot NG / Skrypty Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1
   
 
Opcje 
Zezwolenia Opcje
Kto jest na Forum Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Kto jest na Forum
 
Jumpbox
Kto jest na Forum
Skocz do:  


fora.pl - załóż własne forum dyskusyjne za darmo
Theme FrayCan created by spleen & Download
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin