What's new

Du?y zbi?r skrypt?w do NG.

Michalekk

Senior User
Joined
Aug 3, 2008
Messages
752
Reaction score
163
Age
30
Expienie​
Strzelanie z runy:
PHP:
Const
  RuneID = 3155 // tutaj id runy
  MinHP = 1100 // ponizej xx hp nie strzeli z runy
function GetAttackedCreature:TCreature;   
begin   
  UpdateWorld;   
  result := nil;   
  for i := 0 to Creatures.Count -1 do   
  begin   
    if i >= Creatures.Count then break;   
    if Creatures.Creature[i].ID = Self.Attacking then   
    Begin   
      result := Creatures.Creature[i];   
      exit;   
    end;   
  end;   
end;   
while not terminated do
begin   
  UpdateWorld;
  Creature := GetAttackedCreature;   
  if Creature <> nil then   
  if Self.Health >= MinHP then
  Self.Containers.UseItemWithCreature(RuneID,Creature);   
  sleep(3000);
end;
U?ywanie mana potiona, gdy xxx HP:
PHP:
const
 Hp='666'  // przy jakiej ilosci hp ma sie uleczyc
 Mana='20' // ilosc mana, mozna zmienic na exure gran/vite
 ManaPotionId='000' //ID manapotiony, ktory chcemy uzyc
 HealSpell='Exura'
while not terminated do
begin
if Self.Mana < Mana then
Self.Containers.UseItemWithSelf(ManaPotionId);
Sleep(200);
if Self.Health <= Hp then
Self.Say(HealSpell);
Sleep(2000);
end;
Wyloguj gdy wbijesz xx exp:
PHP:
Const
   Exp = 4200
while not terminated do
begin
  UpdateWorld;
  if Self.Experience >= Exp
  then Self.Logout(True);
  Sleep(1000);
end;
Zmiana SOFT?w na BOHy i na odwr?t:
Zmiana but?w z bohy na softboots i na odwr?t w zale?no?ci od HP. Np, je?eli ustawimy w const HPsoft = 1000 i HPboh = 1500 (tak jak jest teraz), to gdy HP nam spadnie poni?ej 1000 to za?o?y soft buty, a gdy b?dzie powy?ej 1500 to za?o?y bohy.
PHP:
const
   BohID = 3079;
   SoftID = 6529;
   HPsoft = 1000;
   HPboh = 1500;
procedure changeBoots(id : integer);
var
  x,i:integer;
begin
   for x:=0 to self.containers.count-1 do
   begin   
      for i:=0 to self.containers.container[x].count -1 do
      begin
         if self.containers.container[x].item[i].id = id then
         begin
            self.containers.container[x].item[i].movetobody(self.feet,1);   
            exit;     
         end;   
      end;
   end;
end;
begin
   updateworld;
   if self.health > HPboh then
      if self.feet.ID = bohID then exit
         else changeBoots(BohID);
   else if self.health < HPsoft then
      if self.feet.ID = SoftID then exit
         else changeboots(softID);     
end;
U?ycie Exori, gdy Stalker blisko:
PHP:
Const
  MonsterToCheck = 'Stalker'
  MinHealth = 300
  MinMana = 200 
function CountMonstersBesideYou:Integer;
begin
  Result := 0;
  UpdateWorld;
  for i := 0 to creatures.Count -1 do
  begin
        if i >= Creatures.Count then break
        for x := -1 to 1 do
        begin
            if x >= 2 then break
            for y := -1 to 1 do
            begin
                if y > 1 then break;
                if Creatures.Creature[i].NPC then
                if (Creatures.Creature[i].x = Self.X +x) and (Creatures.Creature[i].y = Self.y + y) then
        if Creatures.Creature[i].Name = MonsterToCheck then
        Result := Result + 1;
            end;
        end;
  end;
end;
while not terminated do
begin
  UpdateWorld;
  if CountMonstersBesideYou >= 1 then
    if Self.Mana >= MinMana then
  if Self.Health > MinHealth then
  Self.Say('exori');
    sleep(200);
end;
Skillowanie​
Rozbudowany Slime trainer:
PHP:
const Food_Id = 3606; // zmie? na inne id jedzenia
      MinMana = 30; // do ile many ma je??
      StrongWeaponID = 3320; l// ID "normalne" broni
      HealAtHp =400; // ulecz gdy masz x hp
      UhAtHp=300;  // uh gdy max x hp
      KillAtHp=320; // zabij matke gdy max x hp
var
StrongWeapon:TItem;
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;
function Attacking: boolean;
begin
   UpdateWorld;
   for x := 0 to Creatures.Count - 1 do
   begin
      UpdateWorld;
      if Creatures.Creature[x].Attacking then
      begin
         Result := True;
         Exit;
      end;
   end;
   Result := False;
   Exit;
end;
function GetFollowedCreatureID: integer;
begin
   UpdateWorld;
   for x := 0 to Creatures.Count - 1 do
   begin
      UpdateWorld;
      if Creatures.Creature[x].Following then
      begin
         Result := Creatures.Creature[x].ID;
         Exit;
      end;
   end;
end;
var
   MotherSlime, X1, Y1: integer;
begin
updateworld;
updateworld;
   MotherSlime := GetFollowedCreatureID;
   while not Terminated do
   begin
      UpdateWorld;
      if self.LogoutBlock=false then self.Logout(false)
  begin
    UpdateWorld;
      if ((Self.Health) <(HealAtHp)) and ((Self.Mana)>(25)) then
      Self.Say('exura')
       UpdateWorld;
       //if ((Self.Health) <(UhAtHp)) then Self.Containers.UseItemWithSelf(ITEM_RUNE_UH);
      Sleep(1000);
   end;
      if not Attacking then
         begin
         UpdateWorld;
         for x := 0 to Creatures.Count - 1 do
             begin
             UpdateWorld;
             if Creatures.Creature[x].ID <> MotherSlime then
             begin
               if (Creatures.Creature[x].Name <> Self.Name) and Creatures.Creature[x].NPC then
               begin
                  UpdateWorld;
                  X1 := Creatures.Creature[x].X;
                  Y1 := Creatures.Creature[x].Y;
                  if (X1 - Self.X = 1) or (X1 - Self.X = 0) or (X1 - Self.X = -1) then
                  begin
                     UpdateWorld;
                     if (Y1 - Self.Y = 1) or (Y1 - Self.Y = 0) or (Y1 - Self.Y = -1) then
                     begin
                        if Creatures.Creature[x].Health>70 then
                           Begin
                           Creatures.Creature[x].Attacking := true;
                           Break;
                           end;
                     end;
                  end;
               end;
            end;
         end;
      end;
      else
          begin
          if self.Health < KillAtHp then
             Begin
             PlaySound('d:\ouch.wav');
         UpdateWorld;
         for x := 0 to Creatures.Count - 1 do
         begin
            UpdateWorld;
            if Creatures.Creature[x].ID = MotherSlime then
            begin
               if (Creatures.Creature[x].Name <> Self.Name) and Creatures.Creature[x].NPC then
                        Creatures.Creature[x].Attacking := true;
                        StrongWeapon:= GetItemFromOpenBackpack(StrongWeaponID);
                        if  StrongWeapon <> nil then
                        StrongWeapon.MoveToBody(Self.RightHand, 0);
                        Break;
            end;
         end;
      end;
if Self.Mana < MinMana then
   begin
      UpdateWorld;
      for container := 0 to Self.Containers.Count - 1 do
      begin
         UpdateWorld;
         for item := 0 to Self.Containers.Container[container].Count - 1 do
         begin
            UpdateWorld;
            if Self.Containers.Container[container].Item[item].ID = Food_Id then
               Self.Containers.Container[container].Item[item].Use;
         end;
      end;
   end;
end;
Sleep(1000);
   end;
   end;
Small Stones z BP do lewej r?ki:
PHP:
 Const
SmallID = 1781
SmallAmount = 5
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;
  SmallStone := GetItemFromOpenBackpack(SmallID, Self.Containers.Count);
    if SmallStone <> nil then SmallStone.MoveToContainer(Self.Containers.Container[0], 0, 0);
    if (Self.LeftHand.ID = SmallID) then
    begin
          if (Self.LeftHand.Amount < 90) then
    begin
      SmallStone := GetItemFromOpenBackpack(SmallID, Self.Containers.Count);
      if SmallStone <> nil then SmallStone.MoveToBody(Self.LeftHand, 0);
    end;
      end else begin
    SmallCount := CountItemAmountFromOpenBackpack(SmallID);
    if SmallCount >= SmallAmount then
    begin
      Self.LeftHand.MoveToBody(Self.Arrow, 0);
      Sleep(500);
      SmallStone := GetItemFromOpenBackpack(SmallID, Self.Containers.Count);
      if SmallStone <> nil then SmallStone.MoveToBody(Self.LeftHand, 0);
    end else if Self.LeftHand.ID = 0 then Self.Arrow.MoveToBody(Self.LeftHand, 0);
  end;
  Sleep(500);
end;
Gdy w r?ku nie ma spear?w/kamyk?w, posta? si? wylogowuje:
PHP:
while not terminated do
begin
  UpdateWorld;
  if Self.RightHand.ID = 0 then
  Self.Logout(true);
  sleep(500);
end;
Wy?lij wiadomo??, gdy wpadnie x% skilla:
PHP:
Const
  FriendName = 'Mateusz Dragon Wielki'
begin
UpdateWorld;
X := Self.Skills.Sword.Percentage;
Y := Self.Skills.Shielding.Percentage;
X1 := Self.Skills.Axe.Percentage;
Y1 := Self.Skills.Club.Percentage;
Z := Self.Skills.Fist.Percentage;
Z1 := Self.Skills.Distance.Percentage
XX := Self.Skills.Magic.Percentage;
while not terminated do
begin
  UpdateWorld;
  if X <> Self.Skills.Sword.Percentage then
  begin
    Self.PrivateMessage(FriendName,intToStr(100 - Self.Skills.Sword.Percentage) + '% to Sword level ' + IntToStr(Self.Skills.Sword.Level + 1));   
    X :=  Self.Skills.Sword.Percentage;
    sleep(1500);
  end;
  if Y <>  Self.Skills.Shielding.Percentage then
  begin
    Self.PrivateMessage(FriendName, IntToStr(100 - Self.Skills.Shielding.Percentage) + '% to Shield level ' + IntToStr(Self.Skills.Shielding.Level + 1));   
    Y := Self.Skills.Shielding.Percentage;
    Sleep(1500);
  end;
  if X1 <> Self.Skills.Axe.Percentage then
  begin
    Self.PrivateMessage(FriendName,intToStr(100 - Self.Skills.Axe.Percentage) + '% to Axe level ' + IntToStr(Self.Skills.Axe.Level + 1));   
    X1 :=  Self.Skills.Axe.Percentage;
    sleep(1500);
  end;
  if Y1 <> Self.Skills.Club.Percentage then
  begin
    Self.PrivateMessage(FriendName,intToStr(100 - Self.Skills.Club.Percentage) + '% to Club level ' + IntToStr(Self.Skills.Club.Level + 1));   
    Y1 :=  Self.Skills.Club.Percentage;
    sleep(1500);
  end;
  if Z <> Self.Skills.Fist.Percentage then
  begin
    Self.PrivateMessage(FriendName,intToStr(100 - Self.Skills.Fist.Percentage) + '% to Fist level ' + IntToStr(Self.Skills.Fist.Level + 1));   
    Z :=  Self.Skills.Fist.Percentage;
    sleep(1500);
  end;
  if Z1 <> Self.Skills.Distance.Percentage then
  begin
    Self.PrivateMessage(FriendName,intToStr(100 - Self.Skills.distance.Percentage) + '% to Distance level ' + IntToStr(Self.Skills.Distance.Level + 1));   
    Z1 :=  Self.Skills.Distance.Percentage;
    sleep(1500);
  end;
  if XX <> Self.Skills.Magic.Percentage then 
  begin 
    Self.PrivateMessage(Self.Name,intToStr(100 - Self.Skills.Magic.Percentage) + '% to Magic level ' + IntToStr(Self.Skills.Magic.Level + 1));   
    XX :=  Self.Skills.Magic.Percentage; 
    sleep(1500); 
  end;   
  sleep(100);
end;   
end;

Notka moderatorska:
plagiat
 
Last edited by a moderator:

Michalekk

Senior User
Joined
Aug 3, 2008
Messages
752
Reaction score
163
Age
30
Odp: Du?y zbi?r skrypt?w do NG.

Zbieranie spear?w z ziemi do prawej r?ki:
PHP:
const
   ITEM_SPEAR_ID = 3277;
   AMOUNT = 10;
var
   Item: TItem;
   Tile: TTile;
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 GetItemOnTile(ID: integer; Tile: TTile): TItem;
var
  Z: integer;
begin
  Result := nil;
  for Z := 0 to Tile.Count - 1 do
  begin
    if Z >= Tile.Count then Break;
    if Tile.Item[Z].ID = ID then
    begin
      Result := Tile.Item[Z];
      Exit;
    end;
  end;
end;
begin
   while not Terminated do
   begin
      UpdateWorld;
      if Self.RightHand.Amount <= Amount then
      begin
         UpdateWorld;
         //Northwest
         Tile := GetTileFromXYZ(Self.X - 1, Self.Y - 1, Self.Z);
         Item := GetItemOnTile(ITEM_SPEAR_ID, Tile);
         if Item <> nil then
            Item.MoveToBody(Self.RightHand,0);
         //North
         Tile := GetTileFromXYZ(Self.X, Self.Y - 1, Self.Z);
         Item := GetItemOnTile(ITEM_SPEAR_ID, Tile);
         if Item <> nil then
            Item.MoveToBody(Self.RightHand,0);
         //Northeast
         Tile := GetTileFromXYZ(Self.X + 1, Self.Y - 1, Self.Z);
         Item := GetItemOnTile(ITEM_SPEAR_ID, Tile);
         if Item <> nil then
            Item.MoveToBody(Self.RightHand,0);
         //West
         Tile := GetTileFromXYZ(Self.X - 1, Self.Y, Self.Z);
         Item := GetItemOnTile(ITEM_SPEAR_ID, Tile);
         if Item <> nil then
            Item.MoveToBody(Self.RightHand,0);
         //Center
         Tile := GetTileFromXYZ(Self.X, Self.Y, Self.Z);
         Item := GetItemOnTile(ITEM_SPEAR_ID, Tile);
         if Item <> nil then
            Item.MoveToBody(Self.RightHand,0);
         //East
         Tile := GetTileFromXYZ(Self.X + 1, Self.Y, Self.Z);
         Item := GetItemOnTile(ITEM_SPEAR_ID, Tile);
         if Item <> nil then
            Item.MoveToBody(Self.RightHand,0);
         //Southwest
         Tile := GetTileFromXYZ(Self.X - 1, Self.Y + 1, Self.Z);
         Item := GetItemOnTile(ITEM_SPEAR_ID, Tile);
         if Item <> nil then
            Item.MoveToBody(Self.RightHand,0);
         //South
         Tile := GetTileFromXYZ(Self.X, Self.Y + 1, Self.Z);
         Item := GetItemOnTile(ITEM_SPEAR_ID, Tile);
         if Item <> nil then
            Item.MoveToBody(Self.RightHand,0);
         //Southeast
         Tile := GetTileFromXYZ(Self.X + 1, Self.Y + 1, Self.Z);
         Item := GetItemOnTile(ITEM_SPEAR_ID, Tile);
         if Item <> nil then
            Item.MoveToBody(Self.RightHand,0);
      end;
      Sleep(200);
   end;
end;
Alarmy​
Alarm, gdy ma?o many:
PHP:
Const
  MinMana = 50
  AlertPath = 'C:/Windows/Media/Notify.wav'
while not terminated do
begin
  UpdateWorld;
  if Self.Mana <= MinMana then
  PlaySound(AlertPath);
  Sleep(500);
end;
Alarm, gdy brak food w BP:
PHP:
Const
FoodID = 1111 // WPISZ ID FOODA
MusicPath = 'C:\Windows\Media\Notify.wav'
while not terminated do
begin
UpdateWorld;
a:=0;
For x:= 0 to Self.Containers.Count - 1 do
begin
for y := 0 to Self.Containers.Container[x].Count - 1 do
begin
if Self.Containers.Container[x].Item[y].ID = FoodID
then a := 1;
Sleep(100);
end;
sleep(100);
end;
sleep(100);
if a = 0 then PlaySound(MusicPath);
end;
Alarm, gdy Twoja posta?, nie rusza si? xx sekund:
PHP:
const
  MaxIdleSeconds = 15;
  AudioFile = 'D:\WINDOWS\Media\ringout.wav'; 
var
  LastX: integer;
  LastY: integer;
  IdleCount: integer;
begin
  LastX := 0;
  LastY := 0;
  IdleCount := 0;                   
  while not Terminated do
  begin
    UpdateWorld;
    if ((Self.X = LastX) and (Self.Y = LastY)) then Inc(IdleCount) else IdleCount := 0;
    if IdleCount >= MaxIdleSeconds then PlaySound(AudioFile);   
    LastX := Self.X; 
    LastY := Self.Y; 
    Sleep(1000);
  end;
end;
Alarm, gdy ma?o cap:
PHP:
Const
cap = 10
while not terminated do
begin
UpdateWorld;
if self.capacity < cap then
PlaySound('C:\Windows\Media\notify.wav');
Sleep(100);
end;
Alarm, gdy zostanie xx potion?w/manas?w:
PHP:
Const
tItem = 'mana potions...';
iMin = 20; //Minimum potions
AlertFrom = 'C:/Windows/Media/Notify.wav';
Var iItem : integer;
procedure Event_Notice(Text: String);
begin
   if Pos(tItem, Text) = 0 then Exit;
   Delete(Text, 1, 13);
   iItem := StrToInt(Copy(Text, 1, Pos(' ', Text) - 1));
end;
While not terminated do
begin
   iItem := 0;
   updateworld;
   ProcessEvents;
   if iItem <> 0 then
    begin
      if iItem < iMin then
         begin
           PlaySound(AlertFrom);
         end;
   end;
end;
OTS​
Zamiana GP na Platinum Coins:
PHP:
var
  Coins: integer;
  Finished: boolean;
function GetCreatureByName(Name: string): TCreature;
var
  x: integer;
begin
  Result := nil;
  for x := 0 to Creatures.Count - 1 do
  begin
    if x >= Creatures.Count then Break;
    if Creatures.Creature[x].Name = Name then
    begin
      Result := Creatures.Creature[x];
      Exit;
    end;
  end;
end;
procedure Event_Message(Channel: integer; Name, Text: String);
begin
  UpdateWorld;
  Creature := GetCreatureByName(Name);
  if Creature = nil then Exit;
  if Creature.NPC then
  begin
    if Pos('platinum', Text) <> 0 then
    begin
      Self.Say(IntToStr(Coins));
      Sleep(1000);
      Self.Say('yes');
      Sleep(1000);
      Self.Say('bye');
      Finished := True;
    end;
  end;
end;
procedure Event_Notice(Text: String);
begin
  if Pos('gold coins', Text) = 0 then Exit;
  Delete(Text, 1, 13);
  Coins := IntToStr(Copy(Text, 1, Pos(' ', Text) - 1)) div 100;
  if Coins <> 0 then
  begin
    Self.Say('hi');
    Sleep(1000);
    Self.Say('change gold');
  end;
end;
begin
  Finished := False;
  UpdateWorld;
  Self.Containers.UseItemWithSelf(3031);
  while ((not Terminated) and (not Finished)) do
  begin
    ProcessEvents;
    Sleep(100);
  end;
end;
U?ywanie Manarune:
PHP:
Const
  Manarune_ID = 3098
  MinHealth = 800
  MaxHealth = 800
while not terminated do
begin
  UpdateWorld;
  if Self.Health <= MinHealth then
  while Self.Health < MaxHealth do   
  begin
    if terminated then break;
    self.containers.useitemwithself(ManaRune_ID);
    sleep(100);
    UpdateWorld;
  end;
  sleep(100);
end;



Inne​
U?ywanie Obsidian Knife:
PHP:
onst
 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;
Stanie na ukos przy Dragonach:
PHP:
Const
Wanted='Dragon';
AttackAt = 25
RampsID = [1950, 1952, 1954, 1956, 385, 1947, 434, 414, 604]
var
  x,Bla:Integer;
  Looting: boolean;
function IsCreatureBesideYou(c: TCreature): boolean;
begin
   UpdateWorld;
   if (abs(c.X-self.X) <= 1) and (abs(c.Y-self.Y) <= 1) then begin
    if c.Z = self.Z then
     begin
     Result := True;
     Exit;
    end;
   end;
   Result := False;
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 IsTileWalkable(Tile: TTile): boolean;
begin
  Result := True;
  for Z := 0 to Tile.Count - 1 do
  begin
    if Tile.Item[Z].Properties.Hole then
    begin
      Result := False;
    end
    else if Tile.Item[Z].Properties.Stairs then
    begin
      Result := False;
    end
    else if not Tile.Item[Z].Properties.Walkable then
    begin
      OutputDebugString('Not Walk: ' + IntToStr(Tile.Item[Z].ID));
      Result := False;
    end;
    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 GetCreatureBesideYou: TCreature;
begin
   UpdateWorld;
   Result := Nil;
   for x := 0 to Creatures.Count - 1 do
   begin
      UpdateWorld;
      if (Creatures.Creature[x].Name=Wanted) then
      if IsCreatureBesideYou(Creatures.Creature[x]) then
      begin
       if Creatures.Creature[x].ID <> Self.ID then
        begin
         UpdateWorld;
         Result := Creatures.Creature[x];
         Exit;
        end;
      end;
   end;
end;
var
Moved:boolean;
begin
updateworld;
G:=false;
T:=false;
while not terminated do
     begin
     Bla:=Self.Containers.Count;
     updateworld;
     Creature:=GetCreatureBesideYou;
     if Creature<>nil then
     if Creatures.Creature[x].Health>AttackAt 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 IsTileWalkable(Tile) 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 IsTileWalkable(Tile) 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 IsTileWalkable(Tile) 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 IsTileWalkable(Tile) then
               Self.MoveRight;
               end;
            end;
            end;
        sleep(1000);
     end;
end;

Notka moderatorska:
Plagiat
 
Last edited by a moderator:

Michalekk

Senior User
Joined
Aug 3, 2008
Messages
752
Reaction score
163
Age
30
Odp: Du?y zbi?r skrypt?w do NG.

Screen, gdy awansujesz:
PHP:
var
Level: integer;
FistLevel: integer;
MagicLevel: integer;
ClubLevel: integer;
SwordLevel: integer;
DistanceLevel: integer;
AxeLevel: integer;
ShieldLevel: integer;
FishLevel: integer;
begin
UpdateWorld;
Level := Self.Level;
FistLevel:= Self.Skills.Fist.Level;
MLevel := Self.Skills.Magic;
ClubLevel:= Self.Skills.Club.Level;
SwordLevel:= Self.Skills.Sword.Level;
DistanceLevel:= Self.Skills.Distance.Level;
Axe := Self.Skills.Axe.Level;
Shielding := Self.Skills.Shielding;
FishLevel:= Self.Skills.Fishing.Level;
while not Terminated do
begin
UpdateWorld;
if Level <> Self.Level then
begin
Level := Self.Level;
Sleep(1000);
ScreenShot('c:\level' + IntToStr(Level) + '.jpg');
Level := Self.Level;
end;
if FistLevel <> Self.Skills.Fist.Level then
begin
FistLevel:= Self.Skills.Fist.Level;
Sleep(1000);
ScreenShot('c:\FistLevel' + IntToStr(FistLevel) + '.jpg');
FistLevel:= Self.Skills.Fist.Level;
end;
if MLevel <> Self.Skills.Magic then
begin
MLevel := Self.Skills.Magic;
Sleep(1000);
ScreenShot('c:\Mlevel' + IntToStr(MLevel) + '.jpg');
MLevel := Self.Skills.Magic;
end;
if ClubLevel <> Self.Skills.Club.Level then
begin
ClubLevel:= Self.Skills.Club.Level;
Sleep(1000);
ScreenShot('c:\ClubLevel' + IntToStr(ClubLevel) + '.jpg');
ClubLevel:= Self.Skills.Club.Level;
end;
if Swordlevel <> Self.Skills.Sword.Level then
begin
SwordLevel:= Self.Skills.Sword.Level;
Sleep(1000);
ScreenShot('c:\Swordlevel' + IntToStr(Swordlevel) + '.jpg');
SwordLevel:= Self.Skills.Sword.Level;
end;
if DistanceLevel <> Self.Skills.Distance.Level then
begin
DistanceLevel:= Self.Skills.Distance.Level;
Sleep(1000);
ScreenShot('c:\DistanceLevel' + IntToStr(DistanceLevel) + '.jpg');
DistanceLevel:= Self.Skills.Distance.Level;
end;
if Axe <> Self.Skills.Axe.Level then
begin
Axe := Self.Skills.Axe.Level;
Sleep(1000);
ScreenShot('c:\Axe' + IntToStr(Axe) + '.jpg');
Axe := Self.Skills.Axe.Level;
end;
if Shielding <> Self.Skills.Shielding then
begin
Shielding := Self.Skills.Shielding;
Sleep(1000);
ScreenShot('c:\Shielding' + IntToStr(Shielding) + '.jpg');
Shielding := Self.Skills.Shielding;
end;
if FishLevel <> Self.Skills.Fishing.Level then
begin
FishLevel:= Self.Skills.Fishing.Level;
Sleep(1000);
ScreenShot('c:\FishLevel' + IntToStr(FishLevel) + '.jpg');
FishLevel:= Self.Skills.Fishing.Level;
end;
Sleep(1000);
end;
end;
Zmiana broni na lepsz?, gdy kilka potwork?w na ekranie:
PHP:
Const
  NumberOfMonsters = 3 /// Ile potworow do zmiany broni
  StrongWeapon = 3324 /// ID Twojej lepszej broni
  WearWeapon = 3304 /// ID Twojej slabszej broni
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 CountMonstersBesideYou:Integer;
begin
  Result := 0;
  UpdateWorld;
  for i := 0 to creatures.Count -1 do
  begin
    if i >= Creatures.Count then break
    for x := -1 to 1 do
    begin
      if x >= 2 then break
      for y := -1 to 1 do
      begin
        if y > 1 then break;
        if Creatures.Creature[i].NPC then
        if (Creatures.Creature[i].x = Self.X +x) and (Creatures.Creature[i].y = Self.y + y) and (Creatures.Creature[i].Z = Self.Z) then
        Result := Result + 1;
      end;
    end;
  end;
end;
while not terminated do
begin
  UpdateWorld;
  if CountMonstersBesideYou >= NumberOfMonsters then
   begin
    if Self.RightHand.ID  <> StrongWeapon then
    begin
      Boots := GetItemFromOpenBackpack(StrongWeapon);
      if Boots <> nil then
      Boots.MoveToBody(Self.RightHand,0);
      else Self.Displaytext('Strong Weapon werent found in open backpack!');
    end;
  end;
  if CountMonstersBesideYou < NumberOfMonsters then
  begin
    if Self.RightHand.ID <> WearWeapon then
    begin
      Boots := GetItemFromOpenBackpack(WearWeapon);
      if Boots <> nil then
      Boots.MoveToBody(Self.RightHand,0);
      else Self.Displaytext('Wear Weapon werent found in open backpack!');
    end;
  end;
  End;
Enchanted Spear:
PHP:
Const
SpearID = 3277
Spell = 'Exeta con'
MinMana = 600
MinSoul = 5
WeaponID = 3291
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;
While not terminated do
begin
  UpdateWorld;
  if Self.Mana >= MinMana then
  if Self.Soul >= MinSoul then
  begin
    Spear := GetItemFromOpenBackpack(SpearID);
    if Spear <> nil then
    Spear.MoveToBody(Self.RightHand,1);
    Sleep(800);
    UpdateWorld;
    If Self.RightHand.ID = SpearID then
    Self.Say(Spell);
    UpdateWorld;
    Weapon := GetItemFromOpenBackpack(WeaponID);
    if Weapon <> nil then
    Weapon.MoveToBody(Self.RightHand,0);
  end;
sleep(500);
end;
Exevo Pan, gdy brak food:
PHP:
Const
  FoodList = [3595,3577,3578,3579,3582,3583,3584,3600,3584,3585,3586,3587,3588,3589,3590,3591,3592,3593,3594,3598,3599,3601,3602,3607,3725]
procedure CheckAndMakeFood;
begin
  updateworld;
  for i := 0 to self.containers.count -1 do
  begin
    if i >= Self.Containers.Count then break;
    for g := 0 to Self.Containers.Container[i].Count -1 do
    begin
      if g >= Self.Containers.Container[i].Count then break;
      for x := LoW(FoodList) to High(FoodList) do
      begin
        if Self.Containers.Container[i].Item[g].ID = FoodList[x] then exit;
        sleep(10);
      end;
    end;
  end;
  if Self.Mana >= 120 then
  Self.Say('exevo pan');
end;
while not terminated do
begin
  UpdateWorld;
  CheckAndMakeFood;
  sleep(100);
end;
Podnoszenie Free Items:
PHP:
var 
integer : cnt; 
begin 
while not terminated do begin 
UpdateWorld; 
cnt := Screen.Tile[6, 4].Count; 
if ((cnt > 1) and (Screen.Tile[6, 4].Item[cnt - 1].Properties.Carryable)) then 
Screen.Tile[6, 4].Item[cnt - 1].MoveToContainer(Self.Containers.Container[0], 0, 0); 
cnt := Screen.Tile[6, 5].Count; 
if ((cnt > 1) and (Screen.Tile[6, 5].Item[cnt - 1].Properties.Carryable)) then 
Screen.Tile[6, 5].Item[cnt - 1].MoveToContainer(Self.Containers.Container[0], 0, 0); 
cnt := Screen.Tile[6, 6].Count; 
if ((cnt > 1) and (Screen.Tile[6, 6].Item[cnt - 1].Properties.Carryable)) then 
Screen.Tile[6, 6].Item[cnt - 1].MoveToContainer(Self.Containers.Container[0], 0, 0); 
cnt := Screen.Tile[7, 4].Count; 
if ((cnt > 1) and (Screen.Tile[7, 4].Item[cnt - 1].Properties.Carryable)) then 
Screen.Tile[7, 4].Item[cnt - 1].MoveToContainer(Self.Containers.Container[0], 0, 0); 
cnt := Screen.Tile[7, 5].Count; 
if ((cnt > 2) and (Screen.Tile[7, 5].Item[cnt - 1].Properties.Carryable)) then 
Screen.Tile[7, 5].Item[cnt - 1].MoveToContainer(Self.Containers.Container[0], 0, 0); 
cnt := Screen.Tile[7, 6].Count; 
if ((cnt > 1) and (Screen.Tile[7, 6].Item[cnt - 1].Properties.Carryable)) then 
Screen.Tile[7, 6].Item[cnt - 1].MoveToContainer(Self.Containers.Container[0], 0, 0); 
cnt := Screen.Tile[8, 4].Count; 
if ((cnt > 1) and (Screen.Tile[8, 4].Item[cnt - 1].Properties.Carryable)) then 
Screen.Tile[8, 4].Item[cnt - 1].MoveToContainer(Self.Containers.Container[0], 0, 0); 
cnt := Screen.Tile[8, 5].Count; 
if ((cnt > 1) and (Screen.Tile[8, 5].Item[cnt - 1].Properties.Carryable)) then 
Screen.Tile[8, 5].Item[cnt - 1].MoveToContainer(Self.Containers.Container[0], 0, 0); 
cnt := Screen.Tile[8, 6].Count; 
if ((cnt > 1) and (Screen.Tile[8, 6].Item[cnt - 1].Properties.Carryable)) then 
Screen.Tile[8, 6].Item[cnt - 1].MoveToContainer(Self.Containers.Container[0], 0, 0); 
Sleep(50); 
end; 
end;
Otwieranie BP po zalogowaniu:
PHP:
while not terminated do
begin
UpdateWorld;
if self.connected then
if self.containers.count = 0 then
self.backpack.open;
sleep(1500);
end;
Waypointy:
Link1:
Skan1:
Link2:
Skan2:

Zastrzegam sobie prawo do kopiowania, rozpowszechniania bez mojej zgody.

Je?eli kogo? interesuj? jakie? inne skrypty, kt?rych tutaj nie ma, pisa? na priv.
 
Last edited:

Patrikosa

Active User
Joined
Mar 14, 2009
Messages
116
Reaction score
9
Odp: Du?y zbi?r skrypt?w do NG.

dzieki za to z free items sciogne i zobacze czy dziala ;)
 

karpiktogosc

Advanced User
Joined
Apr 8, 2008
Messages
350
Reaction score
15
Odp: Du?y zbi?r skrypt?w do NG.

/Up
ortografia.pl

/Topic
4 skrypty skopiowa?em, bardzo dzi?kuj?, dzia?aj? w 100%. :>

Repucik leci...
 

Onyq

Active User
Joined
Jan 5, 2009
Messages
62
Reaction score
2
Odp: Du?y zbi?r skrypt?w do NG.

Bardzo dzi?kuj? za tego Fri Itanz xD
 
Last edited:

frano1

Active User
Joined
May 6, 2008
Messages
104
Reaction score
0
Odp: Du?y zbi?r skrypt?w do NG.

Mi nie chce dzia?ac skrypt na Walenie z run.
Gram na ots Drutem i chce ustwic go na Bocie(Cave huntingu)
I nie ma zadnej opcji zeby zaznaczyc zeby bil z sd tlyko z exori vis itp.
Jak wklejam ten skrypt na walenie z runek i daje execute Script to wyskakuje
Syntax Error.
Nie wiem co zrobic zeby dzia?a?o.
 

Michalekk

Senior User
Joined
Aug 3, 2008
Messages
752
Reaction score
163
Age
30
Odp: Du?y zbi?r skrypt?w do NG.

Mi nie chce dzia?ac skrypt na Walenie z run.
Gram na ots Drutem i chce ustwic go na Bocie(Cave huntingu)
I nie ma zadnej opcji zeby zaznaczyc zeby bil z sd tlyko z exori vis itp.
Jak wklejam ten skrypt na walenie z runek i daje execute Script to wyskakuje
Syntax Error.
Nie wiem co zrobic zeby dzia?a?o.

Mo?e na ko?cu skryptu dodaj
Code:
end;
. Powinno dzia?a?.
 

Archimonde

Suple!
Joined
Aug 18, 2008
Messages
1,215
Reaction score
268
Odp: Du?y zbi?r skrypt?w do NG.

Zawsze si? zastanowia?em, dlaczego nie mog?em z?apa? fajnych fri itanz i dlaczego tak lata?y po dp jak g?upie teraz ju? wiem dzi?ki za te skrypty bardzo mi si? przydadz? te na rl jak i na ots;) Reput leci
 

Arteq

Advanced User
Joined
Jan 10, 2009
Messages
198
Reaction score
9
Age
30
Odp: Du?y zbi?r skrypt?w do NG.

Dzi?ki :). Najbardziej mi si? przyda?o zmiana broni gdy wi?cej potwor?w i otwieranie bp po zalogowaniu.
10/10.
 

wojo1310

New User
Joined
Apr 16, 2009
Messages
3
Reaction score
0
Odp: Du?y zbi?r skrypt?w do NG.

gdybym wiedzial jak dac ci komenta to z pewnoscia bym to zrobil ;**
 

Suigetsu

Active User
Joined
Apr 15, 2009
Messages
61
Reaction score
3
Odp: Du?y zbi?r skrypt?w do NG.

?wietne! Szczeg?lnie podoba mi si? ten skrypt na przekladanie spera do prawej reki1!!!
Wreszcie bede m?g? boci? Palkiem xD:D
10/10
 

UtusDH

New User
Joined
Apr 14, 2009
Messages
9
Reaction score
0
Age
30
Odp: Du?y zbi?r skrypt?w do NG.

Z g?ry dz?ki za te skrypty, bardzo mi si? przydadz? :up:
 

NeOx13

Advanced User
Joined
Nov 1, 2008
Messages
219
Reaction score
16
Odp: Du?y zbi?r skrypt?w do NG.

Ja mam takie pytanie jak zrobi? aby skrypt zaczo? dzia?a? ?.
Wystarczy zapisa? czy co? jescze .?

Down
Thx ;]
 
Last edited:

Zoltar

Active User
Joined
Apr 5, 2008
Messages
64
Reaction score
8
Age
30
Odp: Du?y zbi?r skrypt?w do NG.

@up

Kliknij Execute Script tam gdzie wklejasz skrypta.
 

Speedox

Active User
Joined
Aug 7, 2008
Messages
110
Reaction score
2
Age
29
Odp: Du?y zbi?r skrypt?w do NG.

;(;( Mi nie dziala,pomoz plax ;(;(
^^
 

Michalekk

Senior User
Joined
Aug 3, 2008
Messages
752
Reaction score
163
Age
30
Odp: Du?y zbi?r skrypt?w do NG.

;(;( Mi nie dziala,pomoz plax ;(;(
^^

Jak masz okienko ze skryptem, to wklejasz jaki? skrypt, wciskasz "Execute Script" i wtedy pojawia Ci si? w prawym dolnym rogu 'taki paseczek' i wtedy ju? wiesz, ?e dzia?a skrypt. Jak si? nie pojawi, to znaczy, ?e skrypt jest b??dny.
 

UnitNi

New User
Joined
Jan 13, 2009
Messages
3
Reaction score
0
Odp: Du?y zbi?r skrypt?w do NG.

Omg thx ziom :D dzienki tobie utrzymuje sie w top rankingu na otsach a prawie wugule niegram
 

Stellmach

Active User
Joined
Oct 4, 2008
Messages
125
Reaction score
9
Odp: Du?y zbi?r skrypt?w do NG.

Mam Pro?b? Czy Mogli By?cie Da? skrypt na zamian? soft?w na bohy je?eli mam xxx many a nie xxx hp z gory dzi?kuje
 
Top