Ir para conteúdo
  • Cadastre-se

Pedido de script[TibiaBot NG] - Mineração!


Posts Recomendados

Bom galera, eu jogo um OT que tem o sistema de mineração. Nele, nós temos uma picareta e a parede (específica) para dropar os "Golden Nuggets". Quando dropa, a parede volta ao normal. Eu preciso de um script que detecte a picareta (ID=3456) na bag, mova o char até a parede que tenha os Nuggets e USE a picareta nela. Quando acabar os Nuggets de uma, ela vai pra outra, e assim sucessivamente. ID das paredes com nuggets: dirt_wall = [13635, 13635, 13637, 13638, 13639, 13640];

ABAIXO TEM UMA FOTO EXPLICANDO MELHOR O QUE EU PRECISO!

Sem_ttulo.png

ALGUÉM TEM A SOLUÇÃO DESSE PROBLEMA?!

Editado por rbsvianna (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Primeiramente obrigado por ter respondido. Não sei se coloquei o pedido no lugar certo. O script que eu preciso não é pre inserir uma função em um ot e sim em um bot, no caso, o tibiabot ng.

Link para o post
Compartilhar em outros sites

Abaixo segue o script que eu tenho, só que ele fica falando "Tentando minerar a parede X... " e não faz nada. Esse script na verdade é uma edição que eu fiz daquele de usar Obsidian Knife no corpo do monstro. Só troquei as variáveis e o nome das funções.

 

const
dwarf_pick = 3456;
dirt_wall = [13635, 13636, 13637, 13638, 13639, 13640];
function searchIntArray(id:integer): boolean;
var
i: integer;
begin
result := false;
for i := low(dirt_wall) to high(dirt_wall) do begin
if dirt_wall = id then result := true;
end;
end;
function GetItemFromOpenBackpack(ID: integer): TItem;
var
y: integer;
begin
Result := nil;
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 := Self.Containers.Container[x].Item[y];
Exit;
end;
end;
end;
end;
function DirtWalls(id:integer): Boolean;
var
x, y: integer;
pick: TItem;
t: integer;
begin
UpdateWorld;
pick := GetItemFromOpenBackpack(dwarf_pick);
if pick = nil then
begin
Self.DisplayText('A pick não foi encontrada. Abra a bag onde ela está.');
exit;
end;
t := -1;
for x := -1 to 1 do begin
for y := -1 to 1 do begin
// if Screen.Tile[7+x, 5+y].Count >= 3 then begin
// t := -2
// end else t := -1;
if searchIntArray(Screen.Tile[7+x, 5+y].Item[screen.Tile[7+x, 5+y].Count+t].ID) = true then begin
UpdateWorld;
pick := GetItemFromOpenBackpack(dwarf_pick);
if pick <> nil then begin
pick.UseWithGround(Self.X+X, Self.Y+Y, Self.Z);
Self.DisplayText('Tentando minerar a parede ' + IntToStr(Screen.Tile[7+x, 5+y].Item[screen.Tile[7+x, 5+y].Count-1].ID) + '.');
Sleep(100);
UpdateWorld;
end;
end;
end;
end;
end;
begin
while not terminated do begin
UpdateWorld;
DirtWalls(dirt_wall);
Sleep(1000);
end;
end;
 

Creio que o problema esteja ali no UseWithGround.. não deveria ser algo como UseWithWall?

Não entendo mt como funciona esses comandos porque nunca vi uma lista deles. Quem sabe, por favor, ajuda ai! 

Editado por rbsvianna (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo