Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Уважаемые скриптеры :)

Only working scripts
Post Reply
Imbalancer
Posts: 4
Joined: 16.07.2012 15:59

Уважаемые скриптеры :)

Post by Imbalancer »

Ищу скрипт на перекладку руды/игнов из вип шахты (сервер дрв) в дом, на вашем форуме есть скрипт на копание в вип шахте - капает,потом прыгает в портал в дом и выкладывает руду в сундук. Так что я думаю реально сделать так что бы он доходил до сундука в вип шахте брал от туда енное колл-во ингов и нес их в дом..
Скопилось 400к айрона в випке, и уж слишком муторно самому все перетаскивать
nepopus
Novice
Novice
Posts: 121
Joined: 29.02.2012 23:45
Location: Москва
Contact:

Re: Уважаемые скриптеры :)

Post by nepopus »

Imbalancer wrote:Ищу скрипт на перекладку руды/игнов из вип шахты (сервер дрв) в дом, на вашем форуме есть скрипт на копание в вип шахте - капает,потом прыгает в портал в дом и выкладывает руду в сундук. Так что я думаю реально сделать так что бы он доходил до сундука в вип шахте брал от туда енное колл-во ингов и нес их в дом..
Скопилось 400к айрона в випке, и уж слишком муторно самому все перетаскивать
Человек просто пришел и положил на все правила этого форума :) Никакого уважения я тут не вижу.
<( o_O<) <( O_O )> (>O_o )>
Imbalancer
Posts: 4
Joined: 16.07.2012 15:59

Re: Уважаемые скриптеры :)

Post by Imbalancer »

Я дико извиняюсь тогда, и если вам не сложно то оставте ссылку на правила и перенаправте в другой раздел (
nepopus
Novice
Novice
Posts: 121
Joined: 29.02.2012 23:45
Location: Москва
Contact:

Re: Уважаемые скриптеры :)

Post by nepopus »

Еще актуально?
Очень не хотелось писать скрипт про ходьбу =) Но если вы еще посещаете этот форум, то для вас я сделаю исключение, как не теряющего надежду = )
<( o_O<) <( O_O )> (>O_o )>
Imbalancer
Posts: 4
Joined: 16.07.2012 15:59

Re: Уважаемые скриптеры :)

Post by Imbalancer »

актуально :D
nepopus
Novice
Novice
Posts: 121
Joined: 29.02.2012 23:45
Location: Москва
Contact:

Re: Уважаемые скриптеры :)

Post by nepopus »

Я немного накидал. Пару раз запутался, так что законченным его назвать нельзя, но я перетащить сумел. Тесты за тобой = )

Code: Select all

const
  containerFrom = $00000000; // ИД контейнера, из которого берем предметы.
  containerTo =   $00000000; // ИД контейнера, в который перетаскиваем предметы.
  portalFrom =    $00000000; // ИД портала, который на стороне сундука, из которого берем предметы :)
  portalTo =      $00000000; // ИД портала, который на стороне контейнера, в который перетаскиваем предметы :)
  weightMax =     750;       // До какого веса загружаем персонажа.

  // Мелочи.
  portal =       true; // Использовать порталы.
  oreWeight =    1;    // Вес руды.
  ingotWeight =  0.6;  // Вес ингов.
  contDistance = 3;    // Дистанция к контейнерам.

type toreinfo = record
  name: string;
  oreColor: word;
  ingotColor: word;
  ingotType: word;
  move: integer;
end;

var
  oreInfo: array of toreinfo;
  oreType: array of word;

procedure init();
  begin
    // Какие типы руды и ингов переносить в новый контейнер?
    setlength(oreInfo, 30);
    oreInfo[0].move :=        1; // Iron
    oreInfo[1].move :=        0; // Rusty
    oreInfo[2].move :=        0; // Old Copper
    oreInfo[3].move :=        0; // Dull Copper
    oreInfo[4].move :=        0; // Copper
    oreInfo[5].move :=        0; // Bronze
    oreInfo[6].move :=        0; // Silver
    oreInfo[7].move :=        0; // Gold
    oreInfo[8].move :=        0; // Shadow
    oreInfo[9].move :=        0; // Rose
    oreInfo[10].move :=       0; // Agapite
    oreInfo[11].move :=       0; // Blood rock
    oreInfo[12].move :=       0; // Verite
    oreInfo[13].move :=       0; // Valorite
    oreInfo[14].move :=       0; // Mitheril
    oreInfo[15].move :=       0; // Black Rock
    oreInfo[16].move :=       0; // Obsidian
    oreInfo[17].move :=       0; // Plutonium
    ////////////
    oreInfo[18].move :=       0; // Dragon
    oreInfo[19].move :=       0; // Crystaline
    oreInfo[20].move :=       0; // Krynite
    oreInfo[21].move :=       0; // Vulcan
    oreInfo[22].move :=       0; // Sand Rock
    oreInfo[23].move :=       0; // Blood Crest
    oreInfo[24].move :=       0; // Steel
    oreInfo[25].move :=       0; // Elvin
    oreInfo[26].move :=       0; // Gorgan
    oreInfo[27].move :=       0; // Acid
    oreInfo[28].move :=       0; // Aqua
    oreInfo[29].move :=       0; // Eldar

    // Настройка руды и ингов. Не трогать.
    oreInfo[0].name :=       'Iron';
    oreInfo[0].oreColor :=    $0000;
    oreInfo[0].ingotColor :=  $0000;
    oreInfo[0].ingotType :=   $1BEF;
    ////////////
    oreInfo[1].name :=       'Rusty';
    oreInfo[1].oreColor :=    $0750;
    oreInfo[1].ingotColor :=  $0750;
    oreInfo[1].ingotType :=   $1BEF;
    ////////////
    oreInfo[2].name :=       'Old Copper';
    oreInfo[2].oreColor :=    $0590;
    oreInfo[2].ingotColor :=  $0590;
    oreInfo[2].ingotType :=   $1BEF;
    ////////////
    oreInfo[3].name :=       'Dull Copper';
    oreInfo[3].oreColor :=    $060A;
    oreInfo[3].ingotColor :=  $060A;
    oreInfo[3].ingotType :=   $1BEF;
    ////////////
    oreInfo[4].name :=       'Copper';
    oreInfo[4].oreColor :=    $0088;
    oreInfo[4].ingotColor :=  $0000;
    oreInfo[4].ingotType :=   $1BE3;
    ////////////
    oreInfo[5].name :=       'Bronze';
    oreInfo[5].oreColor :=    $0488;
    oreInfo[5].ingotColor :=  $0488;
    oreInfo[5].ingotType :=   $1BEF;
    ////////////
    oreInfo[6].name :=       'Silver';
    oreInfo[6].oreColor :=    $0482;
    oreInfo[6].ingotColor :=  $0000;
    oreInfo[6].ingotType :=   $1BF5;
    ////////////
    oreInfo[7].name :=       'Gold';
    oreInfo[7].oreColor :=    $0032;
    oreInfo[7].ingotColor :=  $0000;
    oreInfo[7].ingotType :=   $1BE9;
    ////////////
    oreInfo[8].name :=       'Shadow';
    oreInfo[8].oreColor :=    $096B;
    oreInfo[8].ingotColor :=  $096B;
    oreInfo[8].ingotType :=   $1BEF;
    ////////////
    oreInfo[9].name :=       'Rose';
    oreInfo[9].oreColor :=    $0014;
    oreInfo[9].ingotColor :=  $0014;
    oreInfo[9].ingotType :=   $1BEF;
    ////////////
    oreInfo[10].name :=      'Agapite';
    oreInfo[10].oreColor :=   $0193;
    oreInfo[10].ingotColor := $0193;
    oreInfo[10].ingotType :=  $1BEF;
    ////////////
    oreInfo[11].name :=      'Blood rock';
    oreInfo[11].oreColor :=   $04C2;
    oreInfo[11].ingotColor := $04C2;
    oreInfo[11].ingotType :=  $1BEF;
    ////////////
    oreInfo[12].name :=      'Verite';
    oreInfo[12].oreColor :=   $07D5;
    oreInfo[12].ingotColor := $07D5;
    oreInfo[12].ingotType :=  $1BEF;
    ////////////
    oreInfo[13].name :=      'Valorite';
    oreInfo[13].oreColor :=   $00CE;
    oreInfo[13].ingotColor := $00CE;
    oreInfo[13].ingotType :=  $1BEF;
    ////////////
    oreInfo[14].name :=      'Mitheril';
    oreInfo[14].oreColor :=   $052D;
    oreInfo[14].ingotColor := $052D;
    oreInfo[14].ingotType :=  $1BEF;
    ////////////
    oreInfo[15].name :=      'Black Rock';
    oreInfo[15].oreColor :=   $0455;
    oreInfo[15].ingotColor := $0455;
    oreInfo[15].ingotType :=  $1BEF;
    ////////////
    oreInfo[16].name :=      'Obsidian';
    oreInfo[16].oreColor :=   $0028;
    oreInfo[16].ingotColor := $0028;
    oreInfo[16].ingotType :=  $1BEF;
    ////////////
    oreInfo[17].name :=      'Plutonium';
    oreInfo[17].oreColor :=   $08AF;
    oreInfo[17].ingotColor := $08AF;
    oreInfo[17].ingotType :=  $1BEF;
    ////////////
    oreInfo[18].name :=      'Dragon';
    oreInfo[18].oreColor :=   $0085;
    oreInfo[18].ingotColor := $0085;
    oreInfo[18].ingotType :=  $1BEF;
    ////////////
    oreInfo[19].name :=      'Crystaline';
    oreInfo[19].oreColor :=   $09A4;
    oreInfo[19].ingotColor := $09A4;
    oreInfo[19].ingotType :=  $1BEF;
    ////////////
    oreInfo[20].name :=      'Krynite';
    oreInfo[20].oreColor :=   $010F;
    oreInfo[20].ingotColor := $010F;
    oreInfo[20].ingotType :=  $1BEF;
    ////////////
    oreInfo[21].name :=      'Vulcan';
    oreInfo[21].oreColor :=   $09DA;
    oreInfo[21].ingotColor := $09DA;
    oreInfo[21].ingotType :=  $1BEF;
    ////////////
    oreInfo[22].name :=      'Sand Rock';
    oreInfo[22].oreColor :=   $008F;
    oreInfo[22].ingotColor := $008F;
    oreInfo[22].ingotType :=  $1BEF;
    ////////////
    oreInfo[23].name :=      'Blood Crest';
    oreInfo[23].oreColor :=   $09EC;
    oreInfo[23].ingotColor := $09EC;
    oreInfo[23].ingotType :=  $1BEF;
    ////////////
    oreInfo[24].name :=      'Steel';
    oreInfo[24].oreColor :=   $09D3;
    oreInfo[24].ingotColor := $09D3;
    oreInfo[24].ingotType :=  $1BEF;
    ////////////
    oreInfo[25].name :=      'Elvin';
    oreInfo[25].oreColor :=   $09E6;
    oreInfo[25].ingotColor := $09E6;
    oreInfo[25].ingotType :=  $1BEF;
    ////////////
    oreInfo[26].name :=      'Gorgan';
    oreInfo[26].oreColor :=   $09F0;
    oreInfo[26].ingotColor := $09F0;
    oreInfo[26].ingotType :=  $1BEF;
    ////////////
    oreInfo[27].name :=      'Acid';
    oreInfo[27].oreColor :=   $09B9;
    oreInfo[27].ingotColor := $09B9;
    oreInfo[27].ingotType :=  $1BEF;
    ////////////
    oreInfo[28].name :=      'Aqua';
    oreInfo[28].oreColor :=   $0060;
    oreInfo[28].ingotColor := $0060;
    oreInfo[28].ingotType :=  $1BEF;
    ////////////
    oreInfo[29].name :=      'Eldar';
    oreInfo[29].oreColor :=   $0BA7;
    oreInfo[29].ingotColor := $0BA7;
    oreInfo[29].ingotType :=  $1BEF;

    // Типы руды.
    setlength(oreType, 4);
    oreType[0] := $19B7;     //Руда 1шт.
    oreType[1] := $19BA;     //Руда 2шт.
    oreType[2] := $19B8;     //Руда 3шт.
    oreType[3] := $19B9;     //Руда 4шт.

    setwalkunmounttimer(400); // Скорость ходьбы.
    moveopendoor := true;  // Открываем двери при ходьбе.
  end;

function load(contFrom, contTo: cardinal; wm: integer): boolean;

  var
    i, q: integer;

  begin
    // Открываем контейнер.
    useobject(contFrom);
    checklag(100000);
    wait(300);

    // Тащим инги.
    for i := 0 to high(oreInfo) do begin
      if oreInfo[i].move = 0 then
        continue;

      while (findtypeex(oreInfo[i].ingotType, oreInfo[i].ingotColor, contFrom, false) > 0) AND ((weight < wm) OR (wm = 0)) do begin
        result := true;

        if wm = 0 then
          moveitem(finditem, 0, contTo, 0, 0, 0)
        else
         moveitem(finditem, trunc((weightMax - weight) / ingotWeight), contTo, 0, 0, 0);

        checklag(100000);
        wait(500);
      end;
    end;

    // Тащим руду.
    for i := 0 to high(oreInfo) do begin
      if oreInfo[i].move = 0 then
        continue;

      for q := 0 to high(oreType) do
        while (findtypeex(oreType[q], oreInfo[i].oreColor, contFrom, false) > 0) AND ((weight < wm) OR (wm = 0)) do begin
          result := true;
          
          if wm = 0 then
            moveitem(finditem, 0, contTo, 0, 0, 0)
          else
            moveitem(finditem, trunc((weightMax - weight) / oreWeight), contTo, 0, 0, 0);

          checklag(100000);
          wait(500);
        end;
    end;
  end;

begin;
  init();

  if getdistance(containerFrom) > contDistance then begin
    addtosystemjournal('Подойди к контейнеру, из которого будем брать предметы(задолбался я эту фразу копировать).');
    exit;
  end;

  while NOT dead do begin
    if NOT load(containerFrom, backpack, weightMax) then begin
      addtosystemjournal('Я все перетащил.');
      exit;
    end;

    if portal then begin
      movexyz(getx(portalFrom), gety(portalFrom), getz(portalFrom), 0, 0, false);
      wait(1000);
    end;

    movexyz(getx(containerTo), gety(containerTo), getz(containerTo), contDistance, 0, false);
    load(backpack, containerTo, 0);

    if portal then begin
      movexyz(getx(portalTo), gety(portalTo), getz(portalTo), 0, 0, false);
      wait(1000);
    end;

    movexyz(getx(containerFrom), gety(containerFrom), getz(containerFrom), contDistance, 0, false);
  end;
end.
<( o_O<) <( O_O )> (>O_o )>
nepopus
Novice
Novice
Posts: 121
Joined: 29.02.2012 23:45
Location: Москва
Contact:

Re: Уважаемые скриптеры :)

Post by nepopus »

Ну что там? Помогло? :)
<( o_O<) <( O_O )> (>O_o )>
nah nah
Developer
Developer
Posts: 414
Joined: 13.07.2011 11:23
Contact:

Re: Уважаемые скриптеры :)

Post by nah nah »

Обычно, если не отвечают, то твой скрипт работает =D
Imbalancer
Posts: 4
Joined: 16.07.2012 15:59

Re: Уважаемые скриптеры :)

Post by Imbalancer »

Все работает, просто только щас руки дошли до компьютера :).
Спасибо огромное!
nepopus
Novice
Novice
Posts: 121
Joined: 29.02.2012 23:45
Location: Москва
Contact:

Re: Уважаемые скриптеры :)

Post by nepopus »

nah nah wrote:Обычно, если не отвечают, то твой скрипт работает =D
Суровая прада жизни :D
Imbalancer wrote:Все работает, просто только щас руки дошли до компьютера :).
Спасибо огромное!
На здоровье! :)
<( o_O<) <( O_O )> (>O_o )>
Post Reply