Page 1 of 1

не понимаю почему выбивает постоянно

Posted: 01.01.2014 13:08
by m0nya

Code: Select all

Program War;

var
bandages:cardinal;
t:integer;

const
Enemy = $00020CDF; {Shogo}

{$Include 'all.inc'}

procedure healoponent;
begin
SetWarMode(false);
repeat
bandages:=FindType($0E21,ground);
UseObject(bandages);
WaitTargetObject(enemy);
wait(1000);
until GetHP(enemy)=GetMaxHP(enemy)
Hungry(1,ground);
end;


Begin
while True do
	begin
	 if connected then begin
	 for t:=1 to 100 do begin
     WaitConnection(1000);
		checksave;
		if GetHP(enemy)*150/GetMaxHP(enemy) < 30 then
		begin
			healoponent;
		end;
		If HP<30 then
		begin
			SetWarMode(false);
			repeat
				wait(350);
			until HP=MaxHP
		end;
		attack(enemy);
	end;
	end;
	end;
End.
раз в неопределенное кол-во времени скрипт выбивет, пробовал на разных версиях стелса :(

Re: не понимаю почему выбивает постоянно

Posted: 01.01.2014 13:42
by Vizit0r
что значит выбивает? в каком месте?

P.S. Своеобразное форматирование скрипта :)

Re: не понимаю почему выбивает постоянно

Posted: 02.01.2014 12:54
by m0nya
как мог форматировал =) Я не совсем разобрался как отслеживать именно работу скрипта.
выбивает = скрипт останавливается и нужно его запускать заново ...

Re: не понимаю почему выбивает постоянно

Posted: 02.01.2014 14:06
by Vizit0r
ну, самый простой путь - натыкать почаще выводы вида AddToSystemJournal('XXXX') с разными номерами, и смотреть какое вывелось последним, и постоянно ли именно на этом месте выбивает.
Потом поближе к месту остановки натыкать еще больше выводов, и найти на какой строке вылетает.

Re: не понимаю почему выбивает постоянно

Posted: 04.01.2014 13:57
by m0nya
Видимо скрипт когда оппонента или дисконектило или убил его на проверке if GetHP(enemy)*150/GetMaxHP(enemy) < 30 then спотыкается и отрубается вообще ... как зациклить так чтобы не останавливался ?