Page 1 of 1

Проверка на бездействие.

Posted: 31.10.2014 23:04
by drabadan
Как то бы по умному реализовать проверку на бездействие. Часто у новичков, как я, в скриптах случаются "зависания". Скрипт выполняя свою функцию на протяжении 2-3-5 часов работает исправно, потом ловит какой-либо баг и "зависает", то-есть скрипт работает но ничего не делает. Я вот думал сам написать, но нет возможности вывести в отдельный поток, а если, где-то будет допущен замкнутый цикл..., можно через ивенты... Но как для меня - лучше всего получится, если следить за весом персонажа и апдейтом скилов, то-есть если человек качает спирит спик - вес не меняется, но скилл то растет. А если любой крафт или добывающий - то вес меняется. Я это от того, что классический мувитем - булевая функция, но она вернет тру если перемещать у себя в паке одну и туже шмотину, я такие ошибки допускал, по форуму видно, что пару человек тоже. Может в ней еще проверять на дельту веса, <> предыдущего значения - даст результат. Какой сделать вывод у такой функции, то-есть вырубать скрипт или просто выводить в сисжурнал, я хз. Но мысль такая проскочила, возможно и не обоснованная - но я то не девелопер на мне ответственности 0 :)

В прилоге мысли по поводу мувитема.

Code: Select all

procedure MyMoveItem(Item_Id : Cardinal; Quantity : Integer; TargetContainer : Cardinal; CheckWeight : Boolean);
var
 PrevWeight : Word;
begin
 PrevWeight := Weight;
 if MoveItem(Item_Id, Quantity, TargetContainer, 0,0,0) then
  begin
   Wait(500);
   CheckLag(60000);
   if CheckWeight then 
    if Weight <> PrevWeight then
	 AddToSystemJournal('Successfully moved' + ' ' + GetName(Item_Id) + ' : ' + IntToStr(Quantity))
	else
	 AddToSystemJournal('ERROR: No changes in weight after moving!!!');
  end;
end;

Re: Проверка на бездействие.

Posted: 01.11.2014 0:12
by Vizit0r
незнаю, за последний год мне кажется 2 человека жаловались на зависающие скрипты, и то так, между прочим.

Re: Проверка на бездействие.

Posted: 23.11.2014 1:04
by Az_Rieil
В зависимости от цели скрипта, меняются совершенно разные параметры, универсальный метод подобрать нельзя. Можно сравнивать координаты, скилы, параметры чара, количество добываемых или уничтожаемых предметов, но для этого не нужно новых функций.

Re: Проверка на бездействие.

Posted: 23.11.2014 4:17
by Mirage
а что выходы из цикла по счетчику уже не рулят?
PS я в луте в паузе использую динамику с проверкой сумки во время перемещения. Сбоит раз в 2-3 часа. Труп открыл, ничего не взял. Так что все эти проверки без чеклага и wait(1000) шляпа. :roll: