Jump to content

Lineage 2


blacksmithy + armslore


  • You cannot reply to this topic
5 replies to this topic

#1
80aX

80aX

    Охотник на Драконов

  • Пользователи
  • PipPipPipPipPip
  • 173 posts
  • Location:Hawaii

Переписал скрипт который выложен на вики, чтоб не тупил по долгу, а нонстопом с минимальными задержками ковал/переплавлял пока есть металл в паке и параллельно качал лор.

 

х3 насколько он корректный, но работает уже пол дня без проблем. Было бы интересно послушать мнение опытного скриптера.

program bs_smelt_armslore;{$Include 'all.inc'}constIngots = $1BF2;       // тип рудыIngotsColor = $054E;  // цвет рудыHammer = $13E3;       // тип молототкаTongsType = $0FBB;    // тип тонгForgeObj = $439729E3; // id плавильниvart, i: integer;Ctime: TDateTime;Procedure CheckQuantity;beginFindTypeEx(Ingots,IngotsColor,backpack,false);AddToSystemJournal('Ingots left: '+IntToStr(FindFullQuantity));if (FindFullQuantity < 50) then    begin    repeat        if TargetPresent then CancelTarget;        WaitTargetObject(FindType($0F51,backpack));        UseSkill('Arms Lore');        Wait(10000);    until (GetQuantity(FindType(Ingots,backpack)) > 50);    end;end;procedure ArmsLore;begin    if TargetPresent then CancelTarget;    WaitTargetObject(FindType($0F51,backpack));    Wait(100);    UseSkill('Arms Lore');    Wait(100);end;Procedure gorget;begin    CancelMenu;    Waitmenu('to make', 'Armor');    Waitmenu('kind', 'Platemail');    Waitmenu('to make', 'Gorget');    UseType(hammer,$FFFF);    FindTypeEX(Ingots,IngotsColor,backpack,false);    WaitTargetObject(FindItem);end;Procedure gloves;begin    CancelMenu;    Waitmenu('to make', 'Armor');    Waitmenu('kind', 'Platemail');    Waitmenu('to make', 'Gloves');    UseType(hammer,$FFFF);    FindTypeEX(Ingots,IngotsColor,backpack,false);    WaitTargetObject(FindItem);end;Procedure helm;begin    CancelMenu;    Waitmenu('to make', 'Armor');    Waitmenu('kind', 'Helm');    Waitmenu('to make', 'Plate');    UseType(hammer,$FFFF);    FindTypeEX(Ingots,IngotsColor,backpack,false);    WaitTargetObject(FindItem);end;Procedure arms;begin    CancelMenu;    Waitmenu('to make', 'Armor');    Waitmenu('kind', 'Platemail');    Waitmenu('to make', 'Arms');    UseType(hammer,$FFFF);    FindTypeEX(Ingots,IngotsColor,backpack,false);    WaitTargetObject(FindItem);end;Procedure legs;begin    CancelMenu;    Waitmenu('to make', 'Armor');    Waitmenu('kind', 'Platemail');    Waitmenu('to make', 'Legs');    UseType(hammer,$FFFF);    FindTypeEX(Ingots,IngotsColor,backpack,false);    WaitTargetObject(FindItem);end;Procedure breastplate;begin    CancelMenu;    Waitmenu('to make', 'Armor');    Waitmenu('kind', 'Platemail');    Waitmenu('to make', 'Brea');    UseType(hammer,$FFFF);    FindTypeEX(Ingots,IngotsColor,backpack,false);    WaitTargetObject(FindItem);end;procedure CheckHungry;begini := i + 1;if i > 100 then    begin        Hungry(1, backpack);        Wait(1000);        i := 0;    end;end;procedure Resmelt(ItemType: Word);vark: integer;ItemsToSmelt: Cardinal;beginFindType(ItemType,Backpack);while (FindCount > 0) do    begin        k := 0;        CheckSave;        ClearJournal;        CheckTargetError(2,2);        if TargetPresent then CancelTarget;        Ctime := Now;        ItemsToSmelt := FindType(ItemType,Backpack);        WaitTargetObject(ItemsToSmelt);        repeat            k := k + 1;            UseObject(FindType(TongsType,Backpack));            Wait(1000);        until (InJournalBetweenTimes('wish to smelt|has to be',Ctime,Now)<>-1) or (k > 10);        WaitTargetObject(ForgeObj);        repeat            k := k + 1;            Wait(1000);        until (InJournalBetweenTimes('You turned|item has to|melted down!',Ctime,Now)<>-1) or (k > 100);        FindType(ItemType,Backpack);    end;end;procedure AddItemToContainer(Obj, Cont: Cardinal);beginif (Cont = backpack) and (GetQuantity(Obj) = 1) then    begin        Resmelt(GetType(Obj));    end;end;Begini := 0;SetEventProc(evAddItemToContainer,'AddItemToContainer');while not Dead and Connected do    begin        ArmsLore;        CheckSave;        CheckHungry;        CheckQuantity;        for t := 0 to 2 do        begin            breastplate; // breastplate, legs, arms, helm, gloves, gorget            Wait(5000);        end;    end;End.

Edited by 80aX, 26 December 2016 - 01:48 PM.


#2
Whelp

Whelp

    Путешественник

  • Пользователи
  • PipPip
  • 16 posts
  • Location:Череповец

Эхх... А у меня он висит на выборе вещи изготовления ((



#3
80aX

80aX

    Охотник на Драконов

  • Пользователи
  • PipPipPipPipPip
  • 173 posts
  • Location:Hawaii

Эхх... А у меня он висит на выборе вещи изготовления ((

 

хм. я уже дня 3 на нём стою, всё ок. Ты выбрал что будет ковать? 

Вот тут внизу скрипта:

arms; // breastplate, legs, arms, helm, gloves, gorget

Edited by 80aX, 18 November 2016 - 11:50 AM.


#4
долби

долби

    Вождь Зулу

  • Пользователи
  • PipPipPipPipPipPipPip
  • 596 posts

Лучше допиши 7 строчек и сделай чтобы он по количеству скила сам делал. Т.е. 50 скила- хелм, 60-перчатки, 70-ноги, 80-плеиты. :)



#5
bachukaster

bachukaster

    Вождь Зулу

  • Пользователи
  • PipPipPipPipPipPipPip
  • 700 posts
  • Location:Moscow
Да, дельный совет)

#6
80aX

80aX

    Охотник на Драконов

  • Пользователи
  • PipPipPipPipPip
  • 173 posts
  • Location:Hawaii

Лучше допиши 7 строчек и сделай чтобы он по количеству скила сам делал. Т.е. 50 скила- хелм, 60-перчатки, 70-ноги, 80-плеиты. :)

 

Так то это легко сделать. Но непонятно как для цветной руды указывать эти пороги и не особенно хочется в этом разбираться)







0 user(s) are reading this topic

members, guests, anonymous users