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

выход из цикла

тут можно задать вопрос по скриптингу
Post Reply
shinma
Expert
Expert
Posts: 505
Joined: 28.04.2011 12:05

выход из цикла

Post by shinma »

Code: Select all

procedure Chop(f_tile:TFoundTile);
var
 ctime : TDateTime;
 iter_max:integer;
 next_lumb,lumb_result,wait_lumb: string;
 fizzles:word;
begin
 wait_lumb:=l_fizzles+'|'+l_needwait;
 next_lumb:=l_nothing1+'|'+l_nothing2+'|'+l_far+'|'+l_see;;
 lumb_result:=wait_lumb+'|'+next_lumb+'|'+l_success+'|'+l_elemental+'|'+l_bad+'|'+l_heavy;
 fizzles:=0;
 repeat
  equip_tool(hatcher,LhandLayer);
  cancel;
  iter_max:=0;
  check_hide;
  UseObject(ObjAtLayer(LhandLayer));
  check_hide;
  Wait_Target(5000);
  ctime := Now;
  TargetToTile(f_tile.Tile,f_tile.X,f_tile.Y,f_tile.Z);
  repeat
   iter_max:=iter_max+1;
   wait(2000);
   checksave;
   check_war;
   check_hide;
  until  ((InJournalBetweenTimes(lumb_result, ctime, Now)<>-1) or (iter_max>10));
  if (InJournalBetweenTimes(l_fizzles, ctime, Now)<>-1) then fizzles:=fizzles+1;
 // if (InJournalBetweenTimes('OOPS !!! It isn''t a tree, it''s an Ent!!!|is attacking you|Vas Corp Por|notice', ctime, Now)<>-1) then
//   begin
//	PlayWav('C:\WINDOWS\Media\tada.wav');

        	//		WinExec('E:\Program files\aimp3\AIMP3.exe', 0);	//у меня стоит 3 аимп с музыкой в плейлисте. при запуске аимпа он сразу начинает играть. Эту строку можно и закоментрировать.
			speedee(400,300,600,500);
			check_hide;
			newmovexy(GetX(Self)+20,GetY(Self)+20,true,1,false);
			check_hide;
				while gethp(self) < getmaxhp(self) do
				begin		
					check_hide;
					UseObject(FindType(clean_bandages,Backpack));
					wait_target(2000);
					WaitTargetObject(Self); 
				wait (5000);		
				end;			
			speedee(speed,speed,speed,speed);
			
		
        poisk_tree;
	check_hide;
    wait(1000);
    alarm;   //<<<<< вот 

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


Code: Select all

   //end;
 until ((InJournalBetweenTimes(next_lumb, ctime, Now)<>-1) or (fizzles>15));
end;
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

костылем. назначить переменную, затем Break. сразу после цикла стоит проверка этой переменной, если срабатывает - Exit;
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Beren
Novice
Novice
Posts: 108
Joined: 08.09.2008 1:07

Post by Beren »

эээээ.... мммм.... ну....
:lol:
Post Reply