Buscar

Cópia de Meditation

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Program Fishing;
//
// Servidor Reborn Shard
//
//
// Diagrama mostrando onde pode pegar peixe ou não. (X - pode, 0 - não pode, é o barco., # - é o seu char.):
//
// \x -6-5-4-3-2-1 0 1 2 3 4 5 6
// y\
// -6 X X X X 0 0 0 0 0 X X X X
// -5 X X X X 0 0 0 0 0 X X X X
// -4 X X X X 0 0 0 0 0 X X X X
// -3 X X X X 0 0 0 0 0 X X X X
// -2 X X X X 0 0 0 0 0 X X X X
// -1 X X X X 0 0 0 0 0 X X X X
// 0 X X X X 0 0 # 0 0 X X X X
// 1 X X X X 0 0 0 0 0 X X X X
// 2 X X X X X X X X X X X X X
// 3 X X X X X X X X X X X X X
// 4 X X X X X X X X X X X X X
// 5 X X X X X X X X X X X X X
// 6 X X X X X X X X X X X X X
//Mensagens que podem ser recebidas ao pescar.
//
//Mes1 = 'Voce retira fish';
//Mes2 = 'You fish a while, but fail to catch anything.';
//Mes3 = 'Nao a peixe aqui.';
//Mes4 = 'Voce nao tem linha de visao do alvo.';
//Mes5 = 'Tente pescar na agua.';
//Mes7 = 'Voce encontrou um Mapa !!!';
//
//
//Movimentos de um barco.
//Com1 = 'Raise Anchor';
//Com2 = 'Drop Anchor';
//Com3 = 'Forward';
//Com4 = 'Back';
//Com5 = 'Left';
//Com6 = 'Right';
//Com7 = 'Stop';
//Com8 = 'Turn Left';
//Com9 = 'Turn Right';
//Answer1 = 'Aye';
//Answer2 = 'We've stopped Cap'n';
//Answer3 = 'There's a boat next to you.'
//Answer4 = 'We cannot turn that way Cap'n'
{$Include 'all.inc'}
const
bag = $0E76; // TYPE DA BAG DENTRO DO HATCH { MUDAR AQUI }
var
x, y, i, j : integer;
Time : TDateTime;
fish : array [1..4] of integer;
map : array [1..2] of integer;
fishBox, pole, box, objeto : cardinal;
procedure fecharPorta(chave, porta : cardinal);
var sair : boolean;
begin
repeat
sair := true;
Time := Now;
UseObject(chave);
WaitTargetObject(porta);
wait(200);
if InJournalBetweenTimes('unlock', Time, Now) >= 0 then
sair := false;
until sair;
end;
procedure fecharBarco;
var portaEsquerda, portaDireita, chave : cardinal;
begin
chave := $400CF3A3; //Colocar o ID da chave do barco. { MUDAR AQUI }
portaEsquerda := $400D9CF4; //Colocar o ID da porta (prancha) esquerda. { MUDAR AQUI }
portaDireita := $400D9D0B; //Colocaro ID da porta (prancha) direita. { MUDAR AQUI }
UseObject(backpack);
wait(200);
if TargetPresent then
CancelTarget;
fecharPorta(chave, portaEsquerda);
fecharPorta(chave, portaDireita);
wait(200);
end;
procedure virar;
var TimeInterno : TDateTime;
loop1, loop2 : integer;
begin
TimeInterno := Now;
UOSay('Turn Left');
wait(200);
if (inJournalBetweenTimes('boat|cannot', TimeInterno, Now) >= 0) then //Obstáculo
begin
TimeInterno := Now;
loop1 := 0;
UOSay('Right');
repeat
wait(100)
loop1 := loop1 + 1;
until (inJournalBetweenTimes('boat|cannot|stopped', TimeInterno, Now) >= 0) OR (loop1 >= 50);
if (loop1 < 50) then //Obstáculo à direita.
begin
TimeInterno := Now;
loop2 := 0;
UOSay('Left');
repeat
wait(100)
loop2 := loop2 + 1;
until (inJournalBetweenTimes('boat|cannot|stopped', TimeInterno, Now) >= 0) OR (loop2 >= 50);
if (loop2 < 50) then //Obstáculo à esquerda.
begin
UOSay('Back');
wait(5000);
virar;
end;
end;
end;
end;
procedure mover;
var TimeInterno : TDateTime;
loop : integer;
begin
TimeInterno := Now;
loop := 0;
UOSay('Forward');
repeat
wait(100)
loop := loop + 1;
until (inJournalBetweenTimes('stopped', TimeInterno, Now) >= 0) OR (loop >= 150);
if (loop < 150) then //Obstáculo à frente.
begin
virar;
mover;
end
else
begin
UOSay('Stop');
wait(200);
end;
end;
procedure useObjectIn(objeto : cardinal; x, y : integer);
var TimeInterno : TDateTime;
k : integer;
begin
if TargetPresent then
CancelTarget;
TimeInterno := Now;
UseObject(objeto);
WaitTargetTile(0, x, y, 251);
k := 0;
repeat
wait(100);
k := k + 1;
until (inJournalBetweenTimes('pull out|while|no|too|fishing|fail|encontrou', TimeInterno, Now) >= 0) OR (k > 300);
if (inJournalBetweenTimes('pull out|fail', TimeInterno, Now) >= 0) then
useObjectIn(objeto, x, y);
end;
procedure contarPeixesMapas(fishbox : cardinal);
var a, b, m, p: integer;
begin
useobject(fishbox);
wait(200);
useobject(box);
wait(200);
for a := 1 to 4 do
begin
wait(200);
FindType(fish[a], fishbox);
p:= p + FindFullQuantity; // Contando os Fishs
end;
useobject(fishbox);
wait(300);
for b := 1 to 2 do
begin
FindType(map[b], fishbox);
m:= m + FindCount; // Contando os Maps
end;
Addtosystemjournal('O Hatch possui: ' + inttostr(p) + ' Peixes. Valor Arrecadado: ' + inttostr(p*6) + ' Kgps. Maps: ' + inttostr(m) + ' unidades')
end;
begin
Unequip(RhandLayer);
Unequip(LhandLayer);
fishBox := $400389E9; //Colocar o ID do baú do barco. { MUDAR AQUI }
wait(200);
useobject(fishbox);
wait(200);
box := FindType(bag, fishbox);
wait(200);
pole := FindType($0DBF, backpack);
fish[1] := $09CC;
fish[2] := $09CD;
fish[3] := $09CE;
fish[4] := $09CF;
map[1] := $14EB;
map[2] := $14EC;
SetARStatus(true); //Reconnector
Hungry(1, backpack);
repeat
contarPeixesMapas(fishBox);
fecharBarco;
for x := -5 to 5 do //Muda o alvo no eixo X.
begin
for y := -5 to 5 do //Muda o alvo no eixo Y.
begin
ClearJournal;
if (y < 2) AND ((x > -3) OR (x < 3)) then
 continue;
 Time := Now;
 UseObjectIn(pole, GetX(self) + x, GetY(self) + y);
 UseObject(fishBox); //Abre o baú do barco para achar a bag dentro dele.
 UseObject(box); // Abre a bag dentro do baú do barco para jogar os peixes dentro
 if (inJournalBetweenTimes('pull out', Time, Now) >= 0) then //Verifica se pegou algum peixe.
 for i := 1 to 4 do //Para tentar todos os tipos de peixe.
 if FindType(fish[i], ground) > 0 then
 begin
 objeto := FindType(fish[i], ground);
 MoveItem(objeto, 0, box, 0, 0, 0); //Move o peixe para a bag dentro do baú do navio.
 wait(200);
 end
 else
 UseObject(fishBox); //Abre o baú do barco para poder jogar o mapa dentro dele.
 if (inJournalBetweenTimes('encontrou', Time, Now) >= 0) then //Verifica se pegou algum mapa do tesouro.
 for j := 1 to 2 do //Para tentar todos os tipos de mapa.
 if FindType(map[j], ground) > 0 then
 begin
 objeto := FindType(map[j], ground);
 MoveItem(objeto, 0, fishBox, 0, 0, 0); //Move o mapa do tesouro para o baú do navio.
 wait(200);
 end;
end;
end;
ClearJournal
Mover;
wait(500);
until False;
End.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Mais conteúdos dessa disciplina