Postado Março 23, 2011 14 anos Ola,como muitas pessoas tem dificuldades para fazer o depositer do NG vim ajudar '-' Tutorial Apos configurar certinho e fazer tudo direitinho,voce deve pegar seu WPT da cave normal e add o script como mostra o tutorial do Edson Script Mostrar conteúdo oculto //////////////////////////////////////////// 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; Se ajudei REP+ Qualquer duvida postar que tentarei ajudar da melhor maneira.
Postado Março 29, 2011 14 anos Em 29/03/2011 em 13:26, matt disse: para depositar todo gold eu coloco quanto? GoldAmount = 1700; Muda ae que da certo poe o gold que quer ele volte Editado Março 29, 2011 14 anos por luizbrunetto (veja o histórico de edições)
Postado Abril 8, 2011 14 anos Ae sem querer floodar,mas minha duvida é a seguinte: É só isso o depositer de grana? e como o char vai falar pro npc? Hi,Deposit all,yes?? n tem q colocar o nome do npc em algum lugar ai? E como faz pra depositar itens no dp? ( iron ore,small stone,empty flask) ??
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.