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

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

Only for requests.
Post Reply
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

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

Post 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;
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

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

Post by Vizit0r »

незнаю, за последний год мне кажется 2 человека жаловались на зависающие скрипты, и то так, между прочим.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Az_Rieil
Neophyte
Neophyte
Posts: 34
Joined: 21.05.2014 17:18

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

Post by Az_Rieil »

В зависимости от цели скрипта, меняются совершенно разные параметры, универсальный метод подобрать нельзя. Можно сравнивать координаты, скилы, параметры чара, количество добываемых или уничтожаемых предметов, но для этого не нужно новых функций.
Mirage
Novice
Novice
Posts: 90
Joined: 18.07.2009 19:41

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

Post by Mirage »

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