Перейти к содержанию
Форум шарда Middle-Earth
Авторизация  
nepret

[Stealth] Blacksmithing

Рекомендуемые сообщения

// Create by nepret
///////////////////////// MIDDLE-EARTH.RU /////////////////////////
// Скрипт для прокачки скилла Blacksmithinging.
// Работает по принципу изготовления необходимой вещи 
// (в зависимости от уровня скилла) и разрезания ее обратно
// в инги.
// Для работы скрипта необходимо:
// - Include Hungry, CheckSave, WaitConnection, CheckTarget, Debug (http://middle-earth.ru/forum/index.php?showtopic=6676)    
// - Побольше ингов на пол возле себя (одного типа!)   
// - Щипцов       
// - Молоток          
// Не забудьте, что после скилла в 100 необходимо использовать  
// Lesser Power, Power, Greater Power и Ultimate скроллы.       
// Желательно для скрипта:                                       
// - Еда
///////////////////////////////////////////////////////////////////
Program Blacksmithinging;
const
////////////////////// Настройка переменных ///////////////////////
                  //
stop = 120;       // Стоп-отметка уровня скилла, когда нужно
                  // будет остановить прокачку для того, чтоб 
                  // применить Power скроллы. Если не нужна,
                  // то поставить значение 120.
                  //
///////////////////////////////////////////////////////////////////
                  //
DebugMode = 0;    // Выдавать информацию в системный журнал
                  // Включать при отслеживании ошибок в скрипте.
                  //                  
///////////////////////// Конец настроек //////////////////////////
///////////////////////////////////////////////////////////////////

var
t : integer;

{$Include 'all.inc'}

function CheckSkill : Boolean;
begin
  if not Connected then exit;
  if GetSkillValue('Blacksmithing') >= stop then
    begin
      AddToSystemJournal('Стоп-отметка! Скилл прокачался до: '+FloatToStrF(GetSkillValue('Blacksmithing'), ffgeneral, 4, 2));
      ClientPrintEx(self, 190, 200, 'Стоп-отметка! Скилл прокачался до: '+FloatToStrF(GetSkillValue('Blacksmithing'), ffgeneral, 4, 2));
      result := true;
      exit;
    end;
  result := false;
end;

procedure GetIngotos;
var
CountIngotos : integer;
begin
  FindTypeEx($1BF2, $FFFF, Backpack, False);
  if FindQuantity < 30 then
    begin
      if not Connected then exit;
      CountIngotos := 30 - FindQuantity;
      FindTypeEx($1BF2, $FFFF, Ground, False);
      MoveItem(finditem, CountIngotos, Backpack,0,0,0);
    end;
  td := 0;
  t := 0;
  repeat
    if not Connected then exit;
    checksave;
    if Debug(5,100) then AddToSystemJournal('>>> Debug <<< Блок GetIngotos > 1 цикл (69)');
    wait(100);
    t := t + 1;
    FindTypeEx($1BF2, $FFFF, Backpack, False);
  until (FindQuantity >= 30) or (t >= 100); 
end;

procedure CheckRes;
var
CheckItemRes : array [0..2] of cardinal;
CheckItemResInfo : array [0..2] of string;
i : integer;
begin
  CheckItemRes[0] := $13E3;
  CheckItemRes[1] := $1EBC;
  CheckItemResInfo[0] := 'В сумке нет "Молота"(Smiths Hammer)';
  CheckItemResInfo[1] := 'В сумке нет "Щипцов"(Tongs)';
  if not Connected then exit;
  for i := 0 to 1 do
    begin
      FindTypeEx(CheckItemRes[i], $FFFF, Backpack, True);
      if FindCount < 1 then
        begin
          AddToSystemJournal('>>> '+CheckItemResInfo[i]);
          ClientPrintEx(self, 190, 200, CheckItemResInfo[i]);
          td := 0;
        repeat
          if not Connected then exit;
          checksave;
          if Debug(10,1000) then AddToSystemJournal('>>> Debug <<< Блок CheckRes > 1 цикл (98)');
          wait(1000);
          FindTypeEx(CheckItemRes[i], $FFFF, Backpack, True);
        until FindCount > 0;
        AddToSystemJournal('Продолжаем работу');
        ClientPrintEx(self, 190, 200, 'Продолжаем работу');
      end;
    end;
  FindTypeEx($1BF2, $FFFF, Ground, False);
  if FindFullQuantity < 20 then
    begin
      AddToSystemJournal('>>> На полу нет "Ингов"(Ingotos)');
      ClientPrintEx(self, 190, 200, 'На полу нет "Ингов"(Ingotos)');
      td := 0;
      repeat
        if not Connected then exit;
        checksave;
        if Debug(10,1000) then AddToSystemJournal('>>> Debug <<< Блок CheckRes > 3 цикл (115)');
        wait(1000);
        FindTypeEx($1BF2, $FFFF, Ground, False);
      until FindFullQuantity > 100;
      AddToSystemJournal('Продолжаем работу');
      ClientPrintEx(self, 190, 200, 'Продолжаем работу');
    end;
  FindTypeEx($0FBB, $FFFF, Backpack, False);
  if FindCount < 1 then
    begin
      GetIngotos;
      repeat
        if not Connected then exit;
        CancelTarget;
        UseType($1EBC, $FFFF);
        CheckTarget(5);
      until TargetPresent;
      FindTypeEx($1BF2, $FFFF, Backpack, False);
      WaitTargetObject(finditem);
      WaitMenu('Select','Tools');
      WaitMenu('Select','Tongs');
      repeat
        wait(100);
        CheckSave;
        FindTypeEx($0FBB, $FFFF, Backpack, False);
        if not Connected then exit;
      until FindCount > 0;   
    end;
end;


procedure DestroyItem;
var
CraftedItem : array [0..3] of cardinal;
si, i : integer;
begin
  CraftedItem[0] := $13B5;
  CraftedItem[1] := $13BB;
  CraftedItem[2] := $1413;
  CraftedItem[3] := $141A;
  for i := 0 to 3 do
    begin
      repeat
        if not Connected then exit;
        FindTypeEx(CraftedItem[i], $FFFF, Backpack, False);
        if FindCount > 0 then
          begin
            si := FindCount;
            repeat
              if not Connected then exit;
              CheckRes;
              CancelTarget;
              UseType($0FBB, $FFFF);
              CheckTarget(5);
            until TargetPresent;
            FindTypeEx(CraftedItem[i], $FFFF, Backpack, False);
            WaitTargetObject(finditem);
            td := 0;
            t := 0;
            repeat
              if not Connected then exit;
              checksave;
              if Debug(10,100) then AddToSystemJournal('>>> Debug <<< Блок DestroyItem > 1 цикл (177)');
              wait(100);
              FindTypeEx(CraftedItem[i], $FFFF, Backpack, False);
            until (FindCount < si) or (t >= 150);
          end;
        if not Connected then exit;
        FindTypeEx(CraftedItem[i], $FFFF, Backpack, False);
      until FindCount = 0;
    end;
end;

procedure Blacksmithing;
var
cjtime : TDateTime;
begin
  DestroyItem;
  GetIngotos;
  repeat
    if not Connected then exit;
    CheckRes;
    CancelTarget;
    UseType($13E3, $FFFF);
    CheckTarget(5);
  until TargetPresent;
  FindTypeEx($1BF2, $FFFF, Backpack, False);
  WaitTargetObject(finditem);
  cjtime := Now;
  td := 0;
  repeat
    if not Connected then exit;
    checksave;
    if Debug(10,100) then AddToSystemJournal('>>> Debug <<< Блок Blacksmithing > 2 цикл (208)');
    wait(100);
  until MenuPresent;
  if GetSkillValue('Blacksmithing') < 55 then
    begin
      WaitMenu('What','Weapons');
      WaitMenu('Select','Swords');
        WaitMenu('Select','Scimitar');
    end;
  if (GetSkillValue('Blacksmithing') < 74) and (GetSkillValue('Blacksmithing') >= 55) then
    begin
      WaitMenu('What','Armor');
      WaitMenu('Select','Chainmail');
        WaitMenu('Select','Chainmail Coif');
    end;
  if (GetSkillValue('Blacksmithing') < 100) and (GetSkillValue('Blacksmithing') >= 74) then
    begin
      WaitMenu('What','Armor');
      WaitMenu('Select','Platemail');
        WaitMenu('Select','Platemail Gorget');
    end;
  if (GetSkillValue('Blacksmithing') < 120) and (GetSkillValue('Blacksmithing') >= 100) then
    begin
      WaitMenu('What','Armor');
      WaitMenu('Select','Platemail');
        WaitMenu('Select','Dwarven Platemail Legs');
    end;
  td := 0;
  t := 0;
  repeat
    if not Connected then exit;
    checksave;
    if Debug(10,100) then AddToSystemJournal('>>> Debug <<< Блок Blacksmithing > 3 цикл (240)');
    wait(100);
    t := t + 1;
  until (InJournalBetweenTimes('You create|You failed|You make|destroy', cjtime, Now) <> -1) or (t >= 150);
  if not Connected then exit;
end;

begin
  SetARStatus(true);
  SetPauseScriptOnDisconnectStatus(false);
  FindDistance := 1;
  repeat
    if not Connected then WaitConnection(5);
    if CheckSkill then exit;
    hungry(backpack);
    CheckRes;
    Blacksmithing;
  until false;
end.
 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выгрузи сразу инклюды под него, чета не пашет...

кароче беда вот такая - Compiler: [Error] (BS качать.sc at 64:3): Unknown identifier 'td'

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Выгрузи сразу инклюды под него, чета не пашет...

кароче беда вот такая - Compiler: [Error] (BS качать.sc at 64:3): Unknown identifier 'td'

 

забыл про дебаг инклюд... подправил первый пост

 

надо добавить в папку с инклюдами, мой дебагер

http://middle-earth.ru/forum/index.php?s=&...ost&p=81414

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
забыл про дебаг инклюд... подправил первый пост

 

надо добавить в папку с инклюдами, мой дебагер

http://middle-earth.ru/forum/index.php?s=&...ost&p=81414

он был... пишет тоже самое :blink:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
он был... пишет тоже самое :blink:

он прописан в all.inc?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Авторизация  

×
×
  • Создать...