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

Одеть персонажа процедурой

тут можно задать вопрос по скриптингу
Post Reply
Kallish
Neophyte
Neophyte
Posts: 14
Joined: 25.07.2012 15:43

Одеть персонажа процедурой

Post by Kallish »

Code: Select all

Gloves = $1418; //перчатки
Arms = $1417; // локти
Gorget = $1413; // горжетка
Helm = $1419; // шлем
Legs = $141A; // ноги
Breastplate = $1416; // грудак

Code: Select all

  FindtypeEx(Gloves, $FFFF, backpack, False); // перетаскивание одежды в пэк
    if FindCount < 1 then
      begin
        FindtypeEx(Gloves, $FFFF, ResCount, False);
        if FindCount < 1 then
          begin
            Error := 1;
            AddToSystemJournal('>>> В указанном контейнере нету GlovesLayer! Скрипт дальше работать НЕ БУДЕТ!');
            exit;
          end
        else
          begin
            checksave;
            MoveItem(finditem, 1, backpack,0,0,0)
            wait(1000);
          end;  
      end;

    FindtypeEx(Arms, $FFFF, backpack, False); // перетаскивание одежды в пэк
    if FindCount < 1 then
      begin
        FindtypeEx(Arms, $FFFF, ResCount, False);
        if FindCount < 1 then
          begin
            Error := 1;
            AddToSystemJournal('>>> В указанном контейнере нету ArmsLayer! Скрипт дальше работать НЕ БУДЕТ!');
            exit;
          end
        else
          begin
            checksave;
            MoveItem(finditem, 1, backpack,0,0,0)
            wait(1000);
          end;  
      end;

    FindtypeEx(Gorget, $FFFF, backpack, False); // перетаскивание одежды в пэк
    if FindCount < 1 then
      begin
        FindtypeEx(Gorget, $FFFF, ResCount, False);
        if FindCount < 1 then
          begin
            Error := 1;
            AddToSystemJournal('>>> В указанном контейнере нету Gorget! Скрипт дальше работать НЕ БУДЕТ!');
            exit;
          end
        else
          begin
            checksave;
            MoveItem(finditem, 1, backpack,0,0,0)
            wait(1000);
          end;  
      end;

    FindtypeEx(Helm, $FFFF, backpack, False); // перетаскивание одежды в пэк
    if FindCount < 1 then
      begin
        FindtypeEx(Helm, $FFFF, ResCount, False);
        if FindCount < 1 then
          begin
            Error := 1;
            AddToSystemJournal('>>> В указанном контейнере нету Helm! Скрипт дальше работать НЕ БУДЕТ!');
            exit;
          end
        else
          begin
            checksave;
            MoveItem(finditem, 1, backpack,0,0,0)
            wait(1000);
          end;  
      end;

    FindtypeEx(Legs, $FFFF, backpack, False); // перетаскивание одежды в пэк
    if FindCount < 1 then
      begin
        FindtypeEx(Legs, $FFFF, ResCount, False);
        if FindCount < 1 then
          begin
            Error := 1;
            AddToSystemJournal('>>> В указанном контейнере нету Legs! Скрипт дальше работать НЕ БУДЕТ!');
            exit;
          end
        else
          begin
            checksave;
            MoveItem(finditem, 1, backpack,0,0,0)
            wait(1000);
          end;  
      end;

    FindtypeEx(Breastplate, $FFFF, backpack, False); // перетаскивание одежды в пэк
    if FindCount < 1 then
      begin
        FindtypeEx(Breastplate, $FFFF, ResCount, False);
        if FindCount < 1 then
          begin
            Error := 1;
            AddToSystemJournal('>>> В указанном контейнере нету Breastplate! Скрипт дальше работать НЕ БУДЕТ!');
            exit;
          end
        else
          begin
            checksave;
            MoveItem(finditem, 1, backpack,0,0,0)
            wait(1000);
          end;  
      end;
Берет из сумки указанные вещи в бэкпак.

Нужно сделать проверку на персонаже вещей, если одето - то не брать из сумки, если не одето - то взять и одеть.
Kallish
Neophyte
Neophyte
Posts: 14
Joined: 25.07.2012 15:43

Re: Одеть персонажа процедурой

Post by Kallish »

Code: Select all

Program New;
const
Gloves = $1418; //перчатки
Arms = $1417; // локти
Gorget = $1413; // горжетка
Helm = $1419; // шлем
Legs = $141A; // ноги
Breastplate = $1416; // грудак
var
x, y : integer;
begin
  if not dead then
  begin
 if ObjAtLayer(GlovesLayer) < 1 then 
        begin
          FindType(Gloves, Backpack);
          if FindCount > 0 then
            begin
              Equip(GlovesLayer, FindItem);
              end
            else
       if ObjAtLayer(ArmsLayer) < 1 then 
        begin
          FindType(Arms, Backpack);
          if FindCount > 0 then
            begin
              Equip(ArmsLayer, FindItem);
              end
            else
       if ObjAtLayer(NeckLayer) < 1 then 
        begin
          FindType(Gorget, Backpack);
          if FindCount > 0 then
            begin
              Equip(NeckLayer, FindItem);
              end
             else
          if ObjAtLayer(HatLayer) < 1 then 
        begin
          FindType(Helm, Backpack);
          if FindCount > 0 then
            begin
              Equip(HatLayer, FindItem);
              end
            else
       if ObjAtLayer(LegsLayer) < 1 then 
        begin
          FindType(Legs, Backpack);
          if FindCount > 0 then
            begin
              Equip(LegsLayer, FindItem);
              end
            else
       if ObjAtLayer(TorsoHLayer) < 1 then 
        begin
          FindType(Breastplate, Backpack);
          if FindCount > 0 then
            begin
              Equip(TorsoHLayer, FindItem);
              end
            else
              begin
              x := GetX(self);
              y := GetY(self);
              NewMoveXY(x, y, True, 2, True);
            end;
        end;
      while ObjAtLayer(RhandLayer) < 1 do
        begin
          wait(100);
        end;
    end;  
end;
end;
end;
end;
end;
END.
мой вариант, но одевает только перчатки.
Post Reply