Skocz do zawartości

Skrypty TibiaBot NG

Od ostatniej odpowiedzi w tym temacie minęło 141 dni. Pamiętaj, że odkopywanie takich tematów jest niewskazane, chyba że chcesz wnieść coś nowego do dyskusji.

Polecane posty

Witam,

z TibiaBot NG mam styczność pierwszy raz tak więc proszę o wyrozumiałość :D

 

Chciałbym dowiedzieć się jak poprawnie wprowadzać skrypty do bota

mianowicie chodzi mi o wyrzucanie labeli na dany sqm

 

 

auto 200 dropitemsxyzamount X Y Z ITEMID ILOSC

 

Dajmy na to że sqm ma współrzędne X: 33015 Y: 32046 Z:7, labei id 1111 (przykładowo) i chce wyrzucać po 1 labelu to w skrypt ma wyglądać tak jak poniżej?:

 

auto 200 dropitemsxyzamount 33015 32046 7 1111 1

 

Gdy wkleje to do bota w tools > scripter i dam execute script to wywala

 

[Error] Untitled(1): Syntax error

 

Trzeba to wklejać w jednej linijce napewno? I czy dobrze oczywiście podstawiłem liczby

 

Liczę na pomoc ;D

Udostępnij ten post


Link to postu
Pani Kasia

Potrzebuje Skryptu na Zakładanie Stealth Ringa Gdy ktos mnie przesunie :P pod RL ;) / google nic nie ma :<

 

EDIT: Pod NG nie pod Elfa ;D

2EDIT: Znalazlam jakis skrypt ale nie dziala, byc moze komus mogly pomoc przy tworzeniu go dla mnie ;)

Const RingID = 3049


function GetItemFromOpenBackpack(ID: integer): TItem; 
var 
 x: integer; 
 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;   

Begin
 UpdateWorld;
 X := Self.X;
 Y := Self.Y;
 Z := Self.Z;
 While not Terminated Do
 Begin
   UpdateWorld;
   If ((Self.X <> X) OR (Self.Y <> Y) OR (Self.Z <> Z)) then
   Begin
     If (not Self.LogoutBlock) then Self.Logout(True);
     Ring := GetItemFromOpenBackpack(RingID);
     If Ring <> nil then Ring.MoveToBody(Self.Ring,0)
   end
   Sleep(100);
 end;
end;  


cooltext454992920.gif

Udostępnij ten post


Link to postu
Pani Kasia

Pani Kasia

Witam...

 

Potrzebuję pilnie na dzisiaj najlepiej jak najszybciej, skrypta który kupi mi mace w sklepie wtedy gdy będzie miał odpowiednią ilośc kasy.

Udostępnij ten post


Link to postu

Potrzebuje jakiś dobry skrypt na obsidian knife.

Znaczy chodzi o to, że jak biją mnie np pare minosów i je ubije to bot próbując z nich zdjąć skórę poprostu się blokuje i jakby chcial iść i się wraca i tak ciągle na 2 kratki chodzi dopiero po jakimś czasie się odblokowuje.

I czy by się nie dało sciągać skór ze wszystkich minosów co są ubite na ziemi bo ten skrypt sciąga z tych co są o kratke obok.

Z góry dzięki

Udostępnij ten post


Link to postu

Pokaż jaki masz skrypt, żebym Ci tego samego nie dał.

 

 

Używanie Obsidian Knife'a :

CYTAT

const

obsidian_knife = 5908;

skin_body = [4011, 4047, 4052, 4057];

 

function searchIntArray(id:integer): boolean;

var

i: integer;

begin

result := false;

for i := low(skin_body) to high(skin_body) do begin

if skin_body = 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;

 

mam ten spr 2 i to samo.

Ale dokładniej chodzi o to że jak ubije minosy i lezą jeden na drugim to bot chce sciąć skórę z tego dolnego ale nie może i sie tak cofa i do przodu i sie tak jakby blokuje.

Więc najprostszym rozwiązaniem moim zdaniem będzie zrobienie to tak aby zbierał tylko te z wierzchu.

Udostępnij ten post


Link to postu
Pani Kasia

Sprawdź ten skrypt:

const 
obsidian_knife = 5908; 
skin_body = [4011, 4047, 4052, 4057]; 

function searchIntArray(id:integer): boolean; 
var 
i: integer; 
begin 
result := false; 
for i := low(skin_body) to high(skin_body) do begin 
 if skin_body[i] = 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 SkinBodies(id:integer): Boolean; 
var 
 x, y: integer; 
 knife: TItem; 
 t: integer; 
begin 
UpdateWorld; 
knife := GetItemFromOpenBackpack(obsidian_knife); 
if knife = nil then 
begin 
Self.DisplayText('An Obsidian Knife could not be found, please open a container with it.'); 
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; 
   knife := GetItemFromOpenBackpack(obsidian_knife); 
    if knife <> nil then begin 
     knife.UseWithGround(Self.X+X, Self.Y+Y, Self.Z); 
     Self.DisplayText('Attempted to skin a creature with the ID ' + 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; 
SkinBodies(skin_body); 
Sleep(100); 
end; 
end;  


52126142219396245817.jpeg

Udostępnij ten post


Link to postu

///// This script will require you to edit your tibia.dat file to remove the
///// the "not passable properties" of fire, energy, and poison if monsters you 
///// hunt create these fields. There are some OT server sites with such a tool.
///// Download them at your own risk, changing the .dat file can cause problems
///// with your tibia client, so make sure to backup a copy and test with care.

///// Turn off autochase while using this program.  Disable it both in Tibiabot 
///// advanced settings and on the tibia client itself.

///// Known problems include sometimes getting trapped if your chasing a monster
///// and the location you are trying to get to is a PZ.  The script will
///// will not crash but will simply not run from the monster.

///// I added comments so that it will be easier for people to edit this script to
///// suit their needs. I utilize only a few sqm's to run to, although far more are 
///// possible, but it may cause problems for you if you run from too far away.

/////  ENJOY!

const
RampsID = [1950, 1952, 1954, 1956, 385, 1947, 434, 414, 604, 7020]
Wanted='Dragon Lord';// which monster to keep diagonal, see lines 113 and 485 for more options
Wanted2='Dragon';// which monster to keep diagonal, see lines 113 and 485 for more options
AttackAt = 16;//will chase out of fire range when creatures health is at or below this amount
               //set to 100 to always keep distance

function GetCreatureByID(ID: integer): TCreature;
var
 x: integer;
 Finished: boolean; 
begin
 Result := nil;
 for x := 0 to Creatures.Count - 1 do
 begin
       if x >= Creatures.Count then Break;
       if Creatures.Creature[x].ID = ID then
       begin
       Result := Creatures.Creature[x];
       Exit;
       end;
 end;
end;

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;  

function TileIsWalkable(X, Y, Z: integer): boolean;
var Tile: TTile; 
begin 
 Result := True;
 Tile := GetTileFromXYZ(X, Y, Z);
 If (Tile <> nil) and (Tile.Count <> 0) then 
       for Z := 0 to Tile.Count - 1 do 
       begin 
       if Tile.Item[Z].Properties.Hole then Result := False; 
       else if Tile.Item[Z].Properties.Stairs then Result := False; 
       else if not Tile.Item[Z].Properties.Walkable then Result := False;
       else
       begin
       for x := low(RampsID) to high(RampsID) do
       begin
       if Tile.Item[Z].ID = RampsID[x] then Result := False;
       end;
       end;  
       end; 
end;

Function MoveFromRange: boolean;
 begin 
 Result := True;  
 Creature := GetCreatureByID(Self.Attacking);
       if Creature <> nil then
       //northwest
       if ((Creature.X-self.X = 2) and (Creature.Y-self.Y = 2)) or
       ((Creature.X-self.X = 2) and (Creature.Y-self.Y = 3)) or
       ((Creature.X-self.X = 3) and (Creature.Y-self.Y = 2)) or
       ((Creature.X-self.X = 3) and (Creature.Y-self.Y = 3)) or
       //southwest
       ((Creature.X-self.X = 2) and (Creature.Y-self.Y = -2)) or
       ((Creature.X-self.X = 2) and (Creature.Y-self.Y = -3)) or
       ((Creature.X-self.X = 3) and (Creature.Y-self.Y = -2)) or
       ((Creature.X-self.X = 3) and (Creature.Y-self.Y = -3)) or
       //northeast
       ((Creature.X-self.X = -2) and (Creature.Y-self.Y = 2)) or
       ((Creature.X-self.X = -2) and (Creature.Y-self.Y = 3)) or
       ((Creature.X-self.X = -3) and (Creature.Y-self.Y = 2)) or
       ((Creature.X-self.X = -3) and (Creature.Y-self.Y = 3)) or
       //southeast
       ((Creature.X-self.X = -2) and (Creature.Y-self.Y = -2)) or
       ((Creature.X-self.X = -2) and (Creature.Y-self.Y = -3)) or
       ((Creature.X-self.X = -3) and (Creature.Y-self.Y = -2)) or
       ((Creature.X-self.X = -3) and (Creature.Y-self.Y = -3)) then
       Result := False; 
       end;

begin
 while not Terminated do
 begin
       UpdateWorld;
       if Self.Attacking <> 0 then
       begin
       Creature := GetCreatureByID(Self.Attacking);
       if Terminated=True then exit;
       if (Creature <> nil) and (MoveFromRange) then
       if (Creature.Health<=AttackAt) then
       if (Creature.Name=Wanted) or (Creature.Name=Wanted2) then 
//// Add more monsters here in the same format if you want to run from them
//// make sure to add them also to the constant list at the top
       begin
       //Northwest of Creature
       if (Creature.X > Self.X) and (Creature.Y > Self.Y) then
       begin
       Tile:=GetTileFromXYZ(Self.X, Creature.Y + 1, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Self.X, Creature.Y + 1, Creature.Z)) then 
       begin
       Self.MoveTo(Self.X, Creature.Y + 1, Creature.Z); 
       end;
       Tile:=GetTileFromXYZ(Creature.X + 1, Self.Y, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 1, Self.Y, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 1, Self.Y, Creature.Z); 
       end;    
       Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y - 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y - 2, Creature.Z)=true) then 
       begin
       Self.MoveTo(Creature.X - 2, Creature.Y - 2, Creature.Z);
       end;
       Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y - 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y - 3, Creature.Z)=true) then 
       begin
       Self.MoveTo(Creature.X - 2, Creature.Y - 3, Creature.Z); 
       end;
       Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y - 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y - 2, Creature.Z)=true) then 
       begin
       Self.MoveTo(Creature.X - 3, Creature.Y - 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y - 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y - 3, Creature.Z)=true) then 
       begin
       Self.MoveTo(Creature.X - 3, Creature.Y - 3, Creature.Z); 
       end;
       end;            
       //Southwest of Creature
       if  (Creature.X > Self.X) and (Creature.Y < Self.Y) then
       begin
       Tile:=GetTileFromXYZ(Self.X, Creature.Y - 1, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Self.X, Creature.Y - 1, Creature.Z)) then 
       begin
       Self.MoveTo(Self.X, Creature.Y - 1, Creature.Z); 
       end;
       Tile:=GetTileFromXYZ(Creature.X + 1, Self.Y, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 1, Self.Y, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 1, Self.Y, Creature.Z); 
       end;    
       Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y + 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y + 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 2, Creature.Y + 2, Creature.Z);
       end;
       Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y + 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y + 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 2, Creature.Y + 3, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y + 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y + 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 3, Creature.Y + 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y + 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y + 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 3, Creature.Y + 3, Creature.Z);
       end;
       end;
       //Northeast of Creature
       if (Creature.X < Self.X) and (Creature.Y > Self.Y) then
       begin
       Tile:=GetTileFromXYZ(Self.X, Creature.Y + 1, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Self.X, Creature.Y + 1, Creature.Z)) then 
       begin
       Self.MoveTo(Self.X, Creature.Y + 1, Creature.Z); 
       end; 
       Tile:=GetTileFromXYZ(Creature.X - 1, Self.Y, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 1, Self.Y, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 1, Self.Y, Creature.Z); 
       end;   
       Tile:=GetTileFromXYZ(Creature.X - 1, Self.Y, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 1, Self.Y, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 1, Self.Y, Creature.Z); 
       end;
       Tile:=GetTileFromXYZ(Self.X, Creature.Y + 1, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Self.X, Creature.Y + 1, Creature.Z)) then 
       begin
       Self.MoveTo(Self.X, Creature.Y + 1, Creature.Z); 
       end;    
       Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y - 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y - 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 2, Creature.Y - 2, Creature.Z);
       end;
       Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y - 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y - 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 2, Creature.Y - 3, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y - 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y - 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 3, Creature.Y - 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y - 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y - 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 3, Creature.Y - 3, Creature.Z);
       end;
       end;
       //Southeast of Creature
       if (Creature.X < Self.X) and (Creature.Y < Self.Y) then
       begin
       Tile:=GetTileFromXYZ(Self.X, Creature.Y - 1, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Self.X, Creature.Y - 1, Creature.Z)) then 
       begin
       Self.MoveTo(Self.X, Creature.Y - 1, Creature.Z); 
       end;
       Tile:=GetTileFromXYZ(Creature.X - 1, Self.Y, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 1, Self.Y, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 1, Self.Y, Creature.Z); 
       end;    
       Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y + 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y + 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 2, Creature.Y + 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y + 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y + 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 2, Creature.Y + 3, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y + 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y + 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 3, Creature.Y + 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y + 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y + 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 3, Creature.Y + 3, Creature.Z);
       end;
       end;
       //North of Creature         	
       if (Creature.X = Self.X) and (Creature.Y > Self.Y) then             	
       begin
       Tile:=GetTileFromXYZ(Creature.X - 1, Self.Y, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 1, Self.Y, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 1, Self.Y, Creature.Z); 
       end;
       Tile:=GetTileFromXYZ(Creature.X + 1, Self.Y, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 1, Self.Y, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 1, Self.Y, Creature.Z); 
       end;    
       Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y - 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y - 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 2, Creature.Y - 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y - 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y - 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 2, Creature.Y - 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y - 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y - 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 2, Creature.Y - 3, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y - 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y - 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 3, Creature.Y - 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y - 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y - 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 3, Creature.Y - 3, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y - 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y - 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 2, Creature.Y - 3, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y - 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y - 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 3, Creature.Y - 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y - 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y - 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 3, Creature.Y - 3, Creature.Z);
       end;
       end;
       //East of Creature
       if (Creature.X < Self.X) and (Creature.Y = Self.Y) then
       begin
       Tile:=GetTileFromXYZ(Self.X, Creature.Y -1, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Self.X, Creature.Y -1, Creature.Z)) then 
       begin
       Self.MoveTo(Self.X, Creature.Y -1, Creature.Z); 
       end;
       Tile:=GetTileFromXYZ(Self.X, Creature.Y + 1, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Self.X, Creature.Y + 1, Creature.Z)) then 
       begin
       Self.MoveTo(Self.X, Creature.Y + 1, Creature.Z); 
       end;
       Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y - 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y - 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 2, Creature.Y - 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y + 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y + 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 2, Creature.Y + 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y - 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y - 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 2, Creature.Y - 3, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y - 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y - 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 3, Creature.Y - 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y - 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y - 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 3, Creature.Y - 3, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y + 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y + 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 2, Creature.Y + 3, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y + 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y + 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 3, Creature.Y + 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y + 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y + 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 3, Creature.Y + 3, Creature.Z);
       end;
       end;
       //South of Creature
       if (Creature.X = Self.X) and (Creature.Y < Self.Y) then
       begin
       Tile:=GetTileFromXYZ(Creature.X - 1, Self.Y, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 1, Self.Y, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 1, Self.Y, Creature.Z); 
       end;
       Tile:=GetTileFromXYZ(Creature.X + 1, Self.Y, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 1, Self.Y, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 1, Self.Y, Creature.Z); 
       end;    
       Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y + 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y + 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 2, Creature.Y + 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y + 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y + 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 2, Creature.Y + 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 2, Creature.Y + 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 2, Creature.Y + 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 2, Creature.Y + 3, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y + 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y + 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 3, Creature.Y + 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X + 3, Creature.Y + 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X + 3, Creature.Y + 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X + 3, Creature.Y + 3, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y + 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y + 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 2, Creature.Y + 3, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y + 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y + 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 3, Creature.Y + 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y + 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y + 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 3, Creature.Y + 3, Creature.Z);
       end;
       end;
       //West of Creature
       if (Creature.X > Self.X) and (Creature.Y = Self.Y) then
       begin
       Tile:=GetTileFromXYZ(Self.X, Creature.Y - 1, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Self.X, Creature.Y - 1, Creature.Z)) then 
       begin
       Self.MoveTo(Self.X, Creature.Y - 1, Creature.Z); 
       end;
       Tile:=GetTileFromXYZ(Self.X, Creature.Y + 1, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Self.X, Creature.Y + 1, Creature.Z)) then 
       begin
       Self.MoveTo(Self.X, Creature.Y + 1, Creature.Z); 
       end;    
       Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y - 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y - 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 2, Creature.Y - 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y + 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y + 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 2, Creature.Y + 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y + 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y + 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 2, Creature.Y + 3, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y + 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y + 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 3, Creature.Y + 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y + 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y + 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 3, Creature.Y + 3, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X - 2, Creature.Y - 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 2, Creature.Y - 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 2, Creature.Y - 3, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y - 2, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y - 2, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 3, Creature.Y - 2, Creature.Z);
       end; 
       Tile:=GetTileFromXYZ(Creature.X - 3, Creature.Y - 3, Creature.Z);
       if (Tile<>nil) and (TileIsWalkable(Creature.X - 3, Creature.Y - 3, Creature.Z)) then 
       begin
       Self.MoveTo(Creature.X - 3, Creature.Y - 3, Creature.Z);
       end;
       end; 
       end;
       //Diagonal if higher than Attackat health and 1sqm away
       Creature := GetCreatureByID(Self.Attacking);
       if Terminated=True then exit;
       if (Creature <> nil) and (MoveFromRange) then
       if (Creature.Health>AttackAt) then
       if (Creature.Name=Wanted) or (Creature.Name=Wanted2) then  
//// Add more monsters here in the same format if you want to be diagonal from them
//// make sure to add them also to the constant list at the top.
       if (abs(Creature.X-self.X) <= 1) and (abs(Creature.Y-self.Y) <= 1) then 
       begin
       if (Self.X<>Creature.X) and (Self.Y=Creature.Y) then   
               begin   
               Tile:=GetTileFromXYZ(Self.x,Self.y-1,self.z);   
               if Tile<>nil then   
               if TileIsWalkable(Self.x,Self.y-1,self.z) then   
               begin   
               Self.MoveUp;   
               Moved:=true;   
               end;   
               If (Moved=False) then   
               begin   
               Tile:=GetTileFromXYZ(Self.x,Self.y+1,self.z);   
               if Tile<>nil then   
               if TileIsWalkable(Self.x,Self.y+1,self.z) then   
               Self.MoveDown;   
               end;   
               end;   
               Moved:=false;   
               if (Self.X=Creature.X) and (Self.Y<>Creature.Y) then   
               begin   
               Tile:=GetTileFromXYZ(Self.x-1,Self.y,self.z);   
               if Tile<>nil then   
               if TileIsWalkable(Self.x-1,Self.y,self.z) then   
               begin   
               Self.MoveLeft;   
               Moved:=true;   
               end;   
               If (Moved=False) then   
               begin   
               Tile:=GetTileFromXYZ(Self.x+1,Self.y,self.z);   
               if Tile<>nil then   
               if TileIsWalkable(Self.x+1,Self.y,self.z) then   
               Self.MoveRight;   
               end;   
               end;
       end;
       end;
       sleep(500);
 end;
 end;


52126142219396245817.jpeg

Udostępnij ten post


Link to postu

A mi tam śmiga perfekcyjnie już od tygodnia, tylko jest jedno "ale". Botuje sobie paladynem na trollach w ręce mam speary, ustawiłem żeby mi je zbierał do plecaka, ale nie wiem jak ustawić żeby je dorzucał do ręki, bo kiedy skończą się te w ręce, to zaczyna z fista bić :/. Wiecie jak to załatwić? (SKRYPT)


"Nie boję się stada lwów dowodzonych przez barana, boję się stada baranów dowodzonych przez lwa"

paagan.png

Udostępnij ten post


Link to postu

W Cave hunting w looting klikasz PPM -> Add -> Custom i wpisujesz ID Speara 3277.

I użyj tego skryptu:

(Tam gdzie jest WeaponID wpisz id MACE)

const
 WeaponID = 3319
 SpearID = 3277
 SpearOz = 20
 SpearAmount = 1
 Fluid = [99, 2886, 2887, 2887, 2888, 2889, 2890, 2891]
Procedure PickUpSpears(Spears: TItem);
begin
 if (Self.Capacity <= (Spears.Amount * SpearOz)) then
 begin
   if (Self.Capacity/SpearOz) > 1 then
     Spears.MoveToContainer(Self.Containers.Container[0], 0, Int(Self.Capacity/SpearOz));
 end else Spears.MoveToContainer(Self.Containers.Container[0], 0, 0);
 Sleep(500);
end;
Procedure FindSpears;
var
 x, y, z, i, f: integer;
 Tile: TTile;
begin
 for x := -1 to 1 do
 begin
   for y := -1 to 1 do
   begin
     Tile := Screen.Tile[x + 7, y + 5];
     begin
       for i := 0 to Tile.Count-1 do
       begin
         if i >= Tile.Count then Break;
         if Tile.Item[i].ID = SpearID then
         begin
           if i = 1 then PickUpSpears(Tile.Item[i]);
           else for f := Low(Fluid) to High(Fluid) do if Tile.Item[i-1].ID = Fluid[f] then PickUpSpears(Tile.Item[i]);
           else Tile.Item[i-1].MoveToGround(Self.X+Random(-2,3), Self.Y+Random(-2,3), Self.Z, 0);
         end;
       end;
     end;
   end;
 end;
end;
Function GetItemFromOpenBackpack(ID, Index: integer): TItem;
var
 x: integer;
 y: integer;
begin
 Result := nil;
 for x := 0 to Self.Containers.Count - 1 do
 begin
   if x >= Self.Containers.Count then Break;
   if x = Index then Continue;
   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 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;
while not terminated do
begin
 UpdateWorld;
 FindSpears;
 Weapon := GetItemFromOpenBackpack(WeaponID, Self.Containers.Count);
 if Weapon <> nil then Weapon.MoveToBody(Self.Arrow, 0);
 Spear := GetItemFromOpenBackpack(SpearID, 0);
 if Spear <> nil then Spear.MoveToContainer(Self.Containers.Container[0], 0, 0);
 if (Self.RightHand.ID = SpearID) then
 begin
   if (Self.RightHand.Amount < 90) then
   begin
     Spear := GetItemFromOpenBackpack(SpearID, Self.Containers.Count);
     if Spear <> nil then Spear.MoveToBody(Self.RightHand, 0);
   end;
 end else begin
   SpearCount := CountItemAmountFromOpenBackpack(SpearID);
   if SpearCount >= SpearAmount then
   begin
     Self.RightHand.MoveToBody(Self.Arrow, 0);
     Sleep(500);
     Spear := GetItemFromOpenBackpack(SpearID, Self.Containers.Count);
     if Spear <> nil then Spear.MoveToBody(Self.RightHand, 0);
   end else if Self.RightHand.ID = 0 then Self.Arrow.MoveToBody(Self.RightHand, 0);
 end;
 Sleep(500);
end; 		

 

Jak nie będziesz miał spearów to będzie Ci zamieniało na broń mace, a gdy wylotujesz powyżej jednego speara, to będzie ci zamieniać na speary ;d

 

Oczywiście mace musisz mieć w BP


52126142219396245817.jpeg

Udostępnij ten post


Link to postu

Ale moge użyć innej broni, jeśli wybiorę id np. fire sworda?


"Nie boję się stada lwów dowodzonych przez barana, boję się stada baranów dowodzonych przez lwa"

paagan.png

Udostępnij ten post


Link to postu

Duzo fajnych skryptow mozna znalezc w temacie. Thx ;)

Udostępnij ten post


Link to postu

Siema!

Potrzebuje skryptu który wyloguje się jak pojawi się jakiś gracz na ekranie a potem za 3 min się znów zaloguje :D

Bardzo bym prosił o tego skrypta (bez self list może być)

Udostępnij ten post


Link to postu

Witam.

 

Fajny temat, lecz nie znalazlem dla siebie skryptu.

A potrzebuje takiego:

 

"Postac bije w potworka o "X" nazwie z "X" czaru ale gdy MI spadnie hp ponizej 5000 to przestaje spamowac czarem, a jak juz sie ulecze z drugiego skryptu to atakuje od nowa"

Udostępnij ten post


Link to postu

Mam Prośbe

:D

By mógł mi któs napisać skrypt polegający na: Otwieraniu Deda,Branie z niego itemka "3584" Senzu bean,chowa go do backpacka. To ma być pod server "WoDBKO" Strona serwa "www.dbstory.eu"

Udostępnij ten post


Link to postu

A ma ktoś może skrypt żeby sam otwierał ciała zabitych potworków i brał kasę a może to jest kwestia ustawie jaski tak to proszę o jakiś poradnik ;]


"Odstawiłem leki farmakologi narka, wystarczy bletka top i zapalarka!" Kali-Haj

"Tu jeszcze można coś opalić" Molesta Ewenement - Wole się nastukać

(_̅_̅(̲̲̲̲̲̅̅̅̅̅̅(̅_̅_̲̅м̲̅a̲̅­­­­­­­­я̲̅i̲̅h̲̅u̲̅a̲̅n̲̅a̲̅̅_­̅­_­̅­_­̅­(­)­ڪے

Udostępnij ten post


Link to postu
Od ostatniej odpowiedzi w tym temacie minęło 141 dni. Pamiętaj, że odkopywanie takich tematów jest niewskazane, chyba że chcesz wnieść coś nowego do dyskusji.

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się
  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.


×
Okienko zamknie się za 5 sekund...