- Рег
- 14 Мар 2016
- Сообщения
- 166
- Реакции
- 0
Все всегда втречались с проблемой что скрипт завис и просто стоит , и для того чтоб он заработал достаточно перезапустить его =) Я вот придумал такую штуку
procedure retryAFK; //А сдесь я борюсь с зависаниями скрипта ,в 98% случаях хватает сделать ТП и все пошло обратно по кругу.
var
x,y,z:integer;
begin
while true do begin
x:=user.x;
y:=user.y;
z:=user.z;
delay(60000);
if user.inrange(x,y,z,50,50)then begin //если наш персонаж не сдвинулся с места
Script.Suspend; //Останавливаем все потоки кроме этого
print('AFK');
Engine.UseItem(736); //Юзаем сое можете убрать и оствить только перезапуск скрипта Script.Replace;
delay(15000);
Script.Replace;//Перезапускаем Все скрипты
end;
end;
end;
begin
script.newthread(@retryAFK); //Запускаем это все отдельным потоком =)
while delay(100) do begin
//Тело вашего скрипта
end;
end;
Суть такова если ваш персонаж стоит на метсе больше чем 60 секунд то просто делаем СОЕ и перезапускам скрипт.
Только сразу говорю запускать поток надо вне цикла как в примере
procedure retryAFK; //А сдесь я борюсь с зависаниями скрипта ,в 98% случаях хватает сделать ТП и все пошло обратно по кругу.
var
x,y,z:integer;
begin
while true do begin
x:=user.x;
y:=user.y;
z:=user.z;
delay(60000);
if user.inrange(x,y,z,50,50)then begin //если наш персонаж не сдвинулся с места
Script.Suspend; //Останавливаем все потоки кроме этого
print('AFK');
Engine.UseItem(736); //Юзаем сое можете убрать и оствить только перезапуск скрипта Script.Replace;
delay(15000);
Script.Replace;//Перезапускаем Все скрипты
end;
end;
end;
begin
script.newthread(@retryAFK); //Запускаем это все отдельным потоком =)
while delay(100) do begin
//Тело вашего скрипта
end;
end;
Суть такова если ваш персонаж стоит на метсе больше чем 60 секунд то просто делаем СОЕ и перезапускам скрипт.
Только сразу говорю запускать поток надо вне цикла как в примере