- Рег
- 8 Дек 2015
- Сообщения
- 191
- Реакции
- 0
Добрый день.
Обычно в своих скриптах все проверку на смерть
while not user.dead do
кидают в поток основного скрипта. Мне кажется это немножко неправильно. Например, если в скрипте будут циклы и если в эти циклы не втыкнуть проверку на смерть, то цикл может просто зациклиться, если в момент его выполнения вашего персонажа убьют. Тогда он не улетит в город и кач остановится. Либо же персонаж бежит куда-то далеко, а его убивают в самом начале пути. В этом случае адрик отправит вашего перса в город с очень большим запозданием.
Чтобы такого небыло, предлагаю запускать проверку на смерть другим потоком
Procedure ControlDead;
begin
while not user.dead do
delay(10000);
Script.Suspend;
Engine.FaceControl(0,false);
delay(random(3000));
Engine.gohome;
Print('Убили негра');
delay(5000);
Script.Replace;
end;
begin
script.newthread(@ControlDead);
end;
Данная процедура через каждые 10 секунд проверяет, жив или нет персонаж, и если мертв - останавливает выполнение скрипта, возвращает перса в город и перезапускает основной скрипт.
Обычно в своих скриптах все проверку на смерть
while not user.dead do
кидают в поток основного скрипта. Мне кажется это немножко неправильно. Например, если в скрипте будут циклы и если в эти циклы не втыкнуть проверку на смерть, то цикл может просто зациклиться, если в момент его выполнения вашего персонажа убьют. Тогда он не улетит в город и кач остановится. Либо же персонаж бежит куда-то далеко, а его убивают в самом начале пути. В этом случае адрик отправит вашего перса в город с очень большим запозданием.
Чтобы такого небыло, предлагаю запускать проверку на смерть другим потоком
Procedure ControlDead;
begin
while not user.dead do
delay(10000);
Script.Suspend;
Engine.FaceControl(0,false);
delay(random(3000));
Engine.gohome;
Print('Убили негра');
delay(5000);
Script.Replace;
end;
begin
script.newthread(@ControlDead);
end;
Данная процедура через каждые 10 секунд проверяет, жив или нет персонаж, и если мертв - останавливает выполнение скрипта, возвращает перса в город и перезапускает основной скрипт.