Пожалуйста, помогите неофиту в устранении ошибок и оптимизации скриптов

Столкнулся с проблемой при использовании глобальных переменных между примерно 10-14 аккаунтами.
Есть два скрипта : первый запущен на ~10 чарах и ищет плееров по типу в заданном радиусе. Если находит - через глобальную переменную передает во второй скрипт, который передает сообщение о нахождении персонажа в эфир.
Проблема в том, что передается далеко не все и не всегда. То есть чар находится в первом скрипте, но второй скрипт не получает переменную. Подозреваю, что что-то напутано с задержками, пробовал по-разному, но не особо помогло...
этот скрипт запущен на "сателитах"
Code: Select all
while (timer < timec + min) do
begin
for i := 0 to 3 do
begin
tmp_obj := FindType(findinfo[i].id,ground);
wait(20);
res := GetGlobal('stealth','reset?');
if (tmp_obj <> 0) and (res = 'no') then begin
SetGlobal('stealth',findinfo[i].var_name+myname,GetName(tmp_obj));
SetGlobal('stealth',myname+'_findmsg','1');
AddToSystemJournal('найден(а) '+GetName(tmp_obj));
Ignore(tmp_obj);
tmp_obj := 0;
wait(300);
end
else begin SetGlobal('stealth',findinfo[i].var_name+myname,''); Ignore(tmp_obj); wait(100); end;
end;
end;
until false;
end.
Code: Select all
for i := 0 to 12 do
begin
location := GetGlobal('stealth',SPY[i]);
wait(10);
chr_name := GetGlobal('stealth','man_'+SPY[i]);
if (chr_name <> '') then begin UOSay(Chr(39)+'asay Обнаружен '+chr_name+' в '+location); SetGlobal('stealth','reset?','yes'); wait(30); chr_name := ''; end
else begin SetGlobal('stealth','reset?','no'); wait(20); end;
chr_name := GetGlobal('stealth','woman_'+SPY[i]);
if (chr_name <> '') then begin UOSay(Chr(39)+'asay Обнаружена '+chr_name+' в '+location); SetGlobal('stealth','reset?','yes'); wait(30); chr_name := ''; end
else begin SetGlobal('stealth','reset?','no'); wait(20); end;
chr_name := GetGlobal('stealth','portal_'+SPY[i]);
if (chr_name <> '') then begin UOSay(Chr(39)+'asay Открыт портал в '+location); SetGlobal('stealth','reset?','yes'); wait(30); chr_name := ''; end
else begin SetGlobal('stealth','reset?','no'); wait(20); end;
chr_name := GetGlobal('stealth','ghost_'+SPY[i]);
if (chr_name <> '') then begin UOSay(Chr(39)+'asay Обнаружен призрак '+chr_name+' в '+location); SetGlobal('stealth','reset?','yes'); wait(30); chr_name := ''; end
else begin SetGlobal('stealth','reset?','no'); wait(20); end;
end;
end.

Буду рад любым комментариям/указаниям.