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

CloseMenu шард forgotten world

тут можно задать вопрос по скриптингу
Post Reply
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

CloseMenu шард forgotten world

Post by drabadan »

Господа! Вот, написал (изпользуя умения и знания других людей из этого форума! Всем отдельное спасибо за вашу работу в освещении рабочих скриптов.) скрипт для Carpentry с добором логов из банка, в процессе будет выгрузка скрафченых штук, но вопрос мой не об этом!
Собственно - вопрос!
У меня не получается уничтожать менюшки которые стакаются при крафте большого количества итемов. Пока обхожусь пилотным автокликом, но сами понимаете - масса неудобств! Помогите кто советом кто кодом, рад буду всему.

З.Ы. Вставлял в разные стадии скрипта CloseMenu или не помогает, или использую не правильно.

Скрипт:

Code: Select all

Program Carpentry;

{$Include 'all.inc'}

const
Tool = $1034;
M_Success = 'You put';
M_Fizzle = 'You fail';
Bank = $40094466;
Logi = $1BDD;
SkolkoBrat = 100;
var k, mPos, mFiz : Integer;
var ctime : TDateTime;
var currBool : Integer;

//сколько логов в бекпаке
function SkolkoLogov : Integer;
begin
  Result := 1;
  FindType(Logi, backpack);
  if GetQuantity(FindItem) < 4 then Result := 2;
  //UOSay(IntToStr(GetQuantity(FindItem))+' ');
end;

//в процессе разработки
procedure Vugryzka;
begin                   
  //FindType();  
end;

//взять логи из банка,                           
procedure GetLogi;
begin
  //UOSay('BANK');
  UseObject($400D0341); //банкомат в "туалете" для нубов, туалет не мой он для всех нубов шарда.
  Wait(1000);
  CheckSave;
  FindType(Logi, Bank);
  addtosystemjournal(IntToStr(GetQuantity(FindItem)) + 'логов в банке!');
  MoveItem(FindItem, SkolkoBrat, backpack, 0,0,0);  
end;

//"меин класс"
begin
  while not Dead do
    begin 
      currBool := SkolkoLogov;     
      if (HP < 90) then UOSay('GUARDS');
      if currBool = 2 then GetLogi;
      //if currBool = 1 then UOSay('ничо не брал'); //штучка для проверки куда ходит скрипт и что делает
      ctime := Now;
      UseObject(FindType(Tool,backpack));
      WaitMenu('Carpentry','Weapons & Tools');
      wait(500);
      WaitMenu('Weapons & Tools','(First)');
      k := 0;
      repeat
        wait(100)
        CheckSave;
        k := k + 1;               
        mPos := InJournalBetweenTimes(M_Success, ctime, Now);
        mFiz := InJournalBetweenTimes(M_Fizzle, ctime, Now);
      until (mPos <> -1) or (mFiz <> -1) or (k > 50) or Dead;
      wait(1500);
      CloseMenu;
    end;      
end.
Любым предложения по исправлению недочетов, которые есть из-за недостатка опыта - буду крайне рад!
aalexx
Novice
Novice
Posts: 69
Joined: 06.02.2012 20:43
Location: Латвия\Англия
Contact:

Re: CloseMenu шард forgotten world

Post by aalexx »

Я тоже не раз спрашивал про эти менюшки - знающие молчат. Буду надеятся, что хоть ты получишь хоть какое разъяснение и я смогу решить эту проблему тоже 8)
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: CloseMenu шард forgotten world

Post by drabadan »

Увидел ответ в теме Алекса, но вопрос остался актуален!
Почему? Вот, почему - на шарде есть система антимакроса. В которой нужно отвечать на гамп, я использую автоламбер взятый из раздела Skripts, при использовании нужно отвечать время от времени на гамп - поэтому приходится галочку гамп\меню включать.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: CloseMenu шард forgotten world

Post by Vizit0r »

100500 раз говорил - нельзя отменять менюшки из стелса. увы и ах.
гампы можно, меню нет.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: CloseMenu шард forgotten world

Post by drabadan »

Спасибо огромное за ответ!
Post Reply