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

Cartography AoP

Only working scripts
Post Reply
Procosha
Neophyte
Neophyte
Posts: 30
Joined: 10.09.2009 21:04
Location: AoP
Contact:

Cartography AoP

Post by Procosha »

Ест хавку с пола (фишстейки).
Режет не нарезанную кожу с пака.
С нарезанной кожи делает карты.
Скрафченые карты рисует.
*** не знаю как будет вести себя скрипт если в паке меньше 500 нарезаной кожи. Рекоммендую в паке иметь наличие нарезаной и ненарезаной кожи больше значения С (C = 500; // кол-во карт для цыкла крафта).

Есть косяк при переключении крафта между рисованием и крафтом карт. Удаляет 1 карту... но мне лень фиксить. Я и так там намудрил... можно было проще сделать.

Code: Select all

Program Cartography;

var

CTime, STime : TDateTime;
TempL, TempCUpL : Cardinal;
a : Integer;

const

Leather = $1078;
Scissors = $0F9E;
Kit = $0F9D;
CUpLeather = $1081;
Map = $14ED;
Pen = $0FBF;
Food = $097B;
C = 500; // кол-во карт для цыкла крафта

Procedure Eat;
begin
  if (Now > (CTime + ((1.0/86400) * 900))) then
  begin
    if FindType(Food,Ground) <> 0 then
    begin
      UseObject(FindItem);
      CTime := Now;
    end;
  end;
end;

Procedure Scan;
begin
  if (InJournalBetweenTimes('You make some leather.', STime, Now) <> -1) then exit;
  if (InJournalBetweenTimes('Вы изготавливаете предмет и кладете его в сумку.|Вы изготавливаете и сразу же уничтожаете предмет.', STime, Now) <> -1) then
  repeat
    STime := Now;
    wait(4000);
  until InJournalBetweenTimes('Вы изготавливаете предмет и кладете его в сумку.|Вы изготавливаете и сразу же уничтожаете предмет.|У Вас не получилось изготовить предмет', STime, Now) = -1;
end;


Procedure MakeCutUpLeather;
begin
  if FindType(Leather,Backpack) = 0 then
  begin
    a := 1;
  end;
  if FindType(Leather,Backpack) <> 0 then
  begin
    if a = 0 then
    begin
      TempL := FindItem;
      if FindType(Scissors,Backpack) <> 0 then
      begin
        UseObject(FindItem);
        WaitForTarget(5000);
        if TargetPresent then
        begin
          STime := Now;
          TargetToObject(TempL);
          Wait(3000);
          if Count(CUpLeather) = C then
          begin
            a := 1;
            wait(3200);
          end;
        end;
      end;
    end;
  end;
end;

Procedure CraftMaps;
begin
  ClearJournal;
  Grab(FindType(Food,Backpack),1);
  Wait(3000);
  if FindType(CUpLeather,Backpack) <> 0 then
  begin
    if (a = 1) and (Count(Map) < C)  then
    begin
      if MenuHookPresent = True then CancelMenu;
      TempCUpL := FindItem;
      WaitMenu('Leather Working','Misc.');
      Wait(100);
      WaitMenu('Miscellaneous','Blank Map 40% Tailoring');
      Wait(100);
      if FindType(Kit,Backpack) <> 0 then
      begin
        UseObject(FindItem);
        WaitForTarget(5000);
        if TargetPresent then
        begin
          STime := Now;
          TargetToObject(TempCUpL);
          Wait(3200);
          if (InJournal('Вы изготавливаете') <> -1) then
          begin
            UOSay(Chr(39) + 'craftcreate 1');
            wait(1000);
            UOSay(Chr(39) + 'pc craft ' + IntToStr(C));
            Scan;
          end;

        end;
      end;
    end;
    if (FindType(CUpLeather,Backpack) = 0) or (Count(Map) >= C) then
    begin
      a := 2;
      UOSay(Chr(39) + 'craftcreate 0');
      wait(1000);
    end;
  end;
end;

Procedure DrawMaps;
begin
  ClearJournal;
  Grab(FindType(Food,Backpack),1);
  Wait(3000);
  if FindType(Map,Backpack) <> 0 then
  begin
    if a = 2 then
    begin
      if MenuHookPresent = True then CancelMenu;
      if (GetSkillValue('Cartography') >= 10.0) and (GetSkillValue('Cartography') < 20.0)  then
      begin
        WaitMenu('Draw Map', 'Map resolution 1');
      end;
      if (GetSkillValue('Cartography') >= 20.0) and (GetSkillValue('Cartography') < 35.0)  then
      begin
        WaitMenu('Draw Map', 'Map resolution 2');
      end;
      if (GetSkillValue('Cartography') >= 35.0) and (GetSkillValue('Cartography') < 50.0)  then
      begin
        WaitMenu('Draw Map', 'Map resolution 3');
      end;
      if (GetSkillValue('Cartography') >= 50.0) and (GetSkillValue('Cartography') < 70.0)  then
      begin
        WaitMenu('Draw Map', 'Map resolution 4');
      end;
      if (GetSkillValue('Cartography') >= 70.0) and (GetSkillValue('Cartography') < 80.0)  then
      begin
        WaitMenu('Draw Map', 'Map resolution 5');
      end;
      if (GetSkillValue('Cartography') >= 80.0) and (GetSkillValue('Cartography') < 85.0)  then
      begin
        WaitMenu('Draw Map', 'Map resolution 6');
      end;
      if (GetSkillValue('Cartography') >= 85.0) and (GetSkillValue('Cartography') < 90.0)  then
      begin
        WaitMenu('Draw Map', 'Map resolution 7');
      end;
      if (GetSkillValue('Cartography') >= 90.0) and (GetSkillValue('Cartography') < 95.0)  then
      begin
        WaitMenu('Draw Map', 'Map resolution 8');
      end;
      if (GetSkillValue('Cartography') >= 95.0) and (GetSkillValue('Cartography') < 100.0) then
      begin
        WaitMenu('Draw Map', 'Map resolution 9');
      end;
      STime := Now;
      UseSkill('Cartography');
      Wait(3200);
      if (InJournal('Вы изготавливаете') <> -1) then
      begin
        UOSay(Chr(39) + 'craftcreate 0');
        Wait(1000);
        UOSay(Chr(39) + 'pc craft ' + IntToStr(C));
        Scan;
      end;
      if FindType(Map,Backpack) = 0 then
      begin
        a := 0;
        UOSay(Chr(39) + 'craftcreate 1');
        wait(3200);
      end;
    end;
  end;
end;

begin
  FindDistance := 4;
  SetARStatus(True);
  SetPauseScriptOnDisconnectStatus(True);
  while Connected and not Dead do
  begin
    MakeCutUpLeather;
    Eat;
    CraftMaps;
    DrawMaps;
  end;
end.
*ули - гули!
Post Reply