Ir para conteúdo
  • Cadastre-se

arquivado [pedido]Guardar itens DP e comprar potion


Posts Recomendados

Gostaria de um script que fosse parecido com esse,so que gostaria que invez de depositar o gold ele compra-se as pots e outro script que consigui-se depositar itens no DP

////////////////////////////////////////////

const

CaveToBankWaypoints = 'C:\Arquivos de programas\TibiaBot NG\Troll_Bank.wpt'

BankToCaveWaypoints = 'C:\Arquivos de programas\TibiaBot NG\Bank_Troll.wpt'

GoldAmount = 1700;

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

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

begin

UpdateWorld;

Sleep(2000);

Self.NPCSay('hi');

Sleep(2000);

Self.NPCSay('deposit');

Sleep(2000);

Self.NPCSay(IntToStr(Coins));

Sleep(2000);

Self.NPCSay('yes');

Sleep(2000);

Self.NPCSay('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 Coins < GoldAmount 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;

Link para o post
  • 9 years later...
  • Moderador

Este tópico foi arquivado para que possamos fazer a manutenção dos conteúdos na seção onde ele ficava.

 

Ele ficará disponível para consulta à aqueles que precisarem, no entanto permanecerá fechado. Se você precisar comentar sobre ou tirar alguma dúvida busque a seção coerente com o assunto desde tópico ou a de suporte.

 

 

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Link para o post
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por RHYANN IV
      .Qual servidor ou website você utiliza como base? 
      pokexmaster
       
      Qual o motivo deste tópico? 
      erro adm painel
       
      Está surgindo algum erro? Se sim coloque-o aqui. 
      NÃO CONSIGO ACESSAR A PAGINA D ADM DO SITE PRA COLOCAR ANUNCIO E APAGAR

       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • Por leozincorsair
      post duplicado
       
    • Por Jaurez
      .
    • Por Jnofom
      Tou sofrendo  pra add itens novo no serve o item editor não abre

    • Por LordGarvistar
      .Qual servidor ou website você utiliza como base? 
      nto hard
      Qual o motivo deste tópico?  Estou em busca de um sistema de task que funcione sem npc, o sistema é basicamente o player mata os bixos e conta uma task automatica, e quando ele mata, se completa automatico tambem.
       
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo