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

Подскажите

тут можно задать вопрос по скриптингу
Post Reply
Koldunchik
Neophyte
Neophyte
Posts: 23
Joined: 22.08.2009 12:45

Подскажите

Post by Koldunchik »

Code: Select all

Procedure Res1; 
Begin 
   while Hidden do begin 
   UseSkill ('Stealth'); 
   Wait(3200);
       if (inJournal('Вы можете пройти') <> -1) then begin
           addtosystemjournal('Тест'); 
           if (GetX(self) = 848) and (GetY(Self) = 2194) then begin
           ClearJournal;
           addtosystemjournal('точка 1'); 
           GotoXY(856, 2194, true, 0);
           Res1;
           end;
           if (GetX(self) = 856) and (GetY(Self) = 2194) then begin
           ClearJournal;
           addtosystemjournal('точка 2'); 
           GotoXY(864, 2194, true, 0);
           Res1;
           end;
           if (GetX(self) = 864) and (GetY(Self) = 2194) then begin
           ClearJournal;
           addtosystemjournal('точка 3'); 
           GotoXY(872, 2194, true, 0);
           Res1;
           end;
           if (GetX(self) = 872) and (GetY(Self) = 2194) then begin
           ClearJournal;
           addtosystemjournal('точка 4'); 
           GotoXY(878, 2192, true, 0);
           Res1;
           end;
           if (GetX(self) = 878) and (GetY(Self) = 2192) then begin
           ClearJournal;
           addtosystemjournal('точка 5'); 
           GotoXY(878, 2184, true, 0);
           end;
       end; 
   addtosystemjournal('Реснулись');
  end;
repeat
   UseSkill('Hiding'); 
   Wait(3200);
until inJournal('Теперь окружающие' <> -1);
    ClearJournal;
                     end;
end;
В этой процедуре чар должен войти в стелс... если зафизлится стелс , то опять захайдится стелсится и идти к сундуку... Дойдя до последнего Х,У процедура должна быть прервана. вот немогу правильно проверку журнала прописать.... подскажите плиз :D

until inJournal('Теперь окружающие' <> -1);
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

esli pravilno ponyal vopros - to dlya vuhoda iz cikla Break
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
WladL
Apprentice
Apprentice
Posts: 240
Joined: 27.07.2009 17:21
Location: DRW
Contact:

Post by WladL »

Code: Select all

...
until inJournal('Теперь окружающие' ) > -1;
SetJournalLine(LineIndex,''); 
а вообще структура не продумана

1)Сначала загнать чара в хайд (а не в конце как у тебя)

Code: Select all

repeat 
   UseSkill('Hiding'); 
   Wait(3200); 
until inJournal('Теперь окружающие') > -1;
SetJournalLine(LineIndex,'');
2)Отвести чара в нужное место ходилкой проверяющей выход из хайда

Code: Select all

MoveInHide(X,Y,....);
3) ну и дальше, что хочется.

Исходя из того что есть нужно выделить в отдельную процедуру уход в хайд.

Code: Select all

procedure ToHide;
begin
if Hidden then exit;
  while not hidden do begin
    UseSkill ('Stealth'); //UseSkill ('Hiding');
    wait(3200);
  end;
end;

//Основной вызывающий код
begin
  ...ныкаемся
ToHide; 
  ...идем куда нуно
MoveInHide(X,Y,0,false); 
 ...тут что-то делаем
=====??======
  ...снова ныкаемся
ToHide; 
end;
Last edited by WladL on 01.12.2009 17:48, edited 1 time in total.
"Как хочешь ты трудись;
Но приобресть не льстись
Ни благодарности, ни славы,
Коль нет в твоих трудах ни пользы, ни забавы. (с) С.Крылов."
Koldunchik
Neophyte
Neophyte
Posts: 23
Joined: 22.08.2009 12:45

Post by Koldunchik »

Проблема решилась дописанием проверки на координаты

Code: Select all

if (GetX(self) = 878) and (GetY(Self) = 2184) then begin 
           ClearJournal; 
           addtosystemjournal('Закрываем цикл');
           exit;
           end; 
отлично работает =)

Code: Select all

Procedure Res1; 
Begin
while not hidden do begin
   ClearJournal;
   UseSkill('Hiding');
   Wait(3200);
if (inJournal('Призракам это не доступно!') <> -1) then begin
exit;
end;
end;
   while Hidden do begin 
   UseSkill ('Stealth'); 
   Wait(3200); 
       if (inJournal('Вы можете пройти') <> -1) then begin 
           addtosystemjournal('Тест'); 
           if (GetX(self) = 848) and (GetY(Self) = 2194) then begin 
           ClearJournal; 
           addtosystemjournal('точка 1'); 
           GotoXY(856, 2194, true, 0); 
           Res1; 
           end; 
           if (GetX(self) = 856) and (GetY(Self) = 2194) then begin 
           ClearJournal; 
           addtosystemjournal('точка 2'); 
           GotoXY(864, 2194, true, 0); 
           Res1; 
           end; 
           if (GetX(self) = 864) and (GetY(Self) = 2194) then begin 
           ClearJournal; 
           addtosystemjournal('точка 3'); 
           GotoXY(872, 2194, true, 0); 
           Res1; 
           end; 
           if (GetX(self) = 872) and (GetY(Self) = 2194) then begin 
           ClearJournal; 
           addtosystemjournal('точка 4'); 
           GotoXY(878, 2192, true, 0); 
           Res1; 
           end; 
           if (GetX(self) = 878) and (GetY(Self) = 2192) then begin 
           ClearJournal; 
           addtosystemjournal('точка 5'); 
           GotoXY(878, 2184, true, 0); 
           end; 
           if (GetX(self) = 878) and (GetY(Self) = 2184) then begin 
           ClearJournal; 
           addtosystemjournal('Закрываем цикл');
           exit;
           end; 
   addtosystemjournal('Пришли к дому'); 
  end; 
end; 
end;
пусковая процедура ресания

Code: Select all

procedure CheckGhost;
var 
  counter: integer; 
begin 
  If IsDead(self) then 
  begin 
    counter := 100; 
    UOSay(Chr(39)+'asay Дровасек убит. Ресните кто-нибудь пожалуйста. ('+IntToStr(CenterPoint.x)+' '+IntToStr(CenterPoint.y)+'), '+MineName); 
    while isDead(self) do 
    begin 
      wait(3000);
      GotoXY(786, 2221, true, 0);  
      PlayWav('C:\WINDOWS\Media\tada.wav'); 
      counter := counter - 1; 
      AddToSystemJournal(IntToStr(counter)); 
    end; 
    GotoXY(838, 2227, true, 0);
    GotoXY(838, 2194, true, 0);
    GotoXY(848, 2194, true, 0);
    Res1;
    addtosystemjournal('Реснулись...');
  end; 
end; 
WladL
Apprentice
Apprentice
Posts: 240
Joined: 27.07.2009 17:21
Location: DRW
Contact:

Post by WladL »

а это что?

Code: Select all

if (inJournal('Призракам это не доступно!') <> -1) then begin
"Как хочешь ты трудись;
Но приобресть не льстись
Ни благодарности, ни славы,
Коль нет в твоих трудах ни пользы, ни забавы. (с) С.Крылов."
Koldunchik
Neophyte
Neophyte
Posts: 23
Joined: 22.08.2009 12:45

Post by Koldunchik »

WladL wrote:а это что?

Code: Select all

if (inJournal('Призракам это не доступно!') <> -1) then begin
бывает не доходя до дома чара убивают... он подбегает к точке юзает хайд но не хадится так как гост, поэтому учел такую проверку тоже...
WladL
Apprentice
Apprentice
Posts: 240
Joined: 27.07.2009 17:21
Location: DRW
Contact:

Post by WladL »

а почему-бы не поставить проверку типа

Code: Select all

if not Dead then useSkill('Hiding')
"Как хочешь ты трудись;
Но приобресть не льстись
Ни благодарности, ни славы,
Коль нет в твоих трудах ни пользы, ни забавы. (с) С.Крылов."
Post Reply