Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Форум работает в тестовом режиме. Все данные были перенесены со старого сайта 2018 года. Некоторая информация может быть недоступна, например вложения или хайды. Просьба сообщать о данных случаях через функционал "Жалоба", прямо под постом, где отсуствуют данные из хайда или проблемы с вложением.
Могут быть проблемы в "выкидыванием" с форума (слетевшей авторизацией). Нужно собрать статистику таких случаев.
Есть Тема, куда можете сообщить о проблемах с сайтом либо просто передать привет.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Есть на форуме пример скрипта, который проверяет жив персонаж или нет и останавливает выполнение основного скрипта в случае гибели.
Как мне показалось, я выполнил все указания из той темы, однако проверка не выполняется. Буду признателен, если укажете на ошибку и дадите краткое пояснение как делать нельзя, а как, напротив, нужно.
Начало моего скрипта:
var obj: TL2NPC;
obj2: TL2Effect;
Enemy: TL2Live;
Item: TL2Item;
Npc: TL2Npc;
L2Skill: TL2Skill;
Control: TL2Control;
TNpcList: TL2List;
function CheckDeath: Boolean;
begin
Result:=false;
if User.Dead then
begin
Result:=true;
Print('Bot Umer');
Delay(1000);
Engine.FaceControl(0,false);
Engine.GoHome;
Delay(100000);
end;
end;
Begin
while 1<>2 do begin
и далее уже шаги квеста
Заранее большое спасибо за помощь неопытному..)
Begin
while 1<>2 do begin // бесконечный цикл
delay(5000);
if User.Dead then // умер
begin
Engine.FaceControl(0,false); // вырубаем интерфейс
Engine.gohome; // возврат в город и пауза 5 секунд
delay(5000);
end;
или проверку просто добавляй в скрипт
function CheckDeath: Boolean;
а лутче зацикли
Код:
procedure Dead();
begin
while 1<>2 do begin
delay(2000); // бесконечный цикл
if User.Dead then begin
print('Умер');
Delay(5000);
engine.GoHome;
Engine.FaceControl(0, false);
end;
end;
end;
begin
Script.NewThread(@dead);
end.
То есть функцию исключить в принципе? И в итоге мой скрипт будет выглядеть как:
var obj: TL2NPC;
obj2: TL2Effect;
Enemy: TL2Live;
Item: TL2Item;
Npc: TL2Npc;
L2Skill: TL2Skill;
Control: TL2Control;
TNpcList: TL2List;
procedure Dead();
begin
while 1<>2 do begin
delay(2000); // мой зацикленный скрипт целиком
if User.Dead then begin
print('Умер');
Delay(5000);
engine.GoHome;
Engine.FaceControl(0, false);
end;
end;
end;
begin
Script.NewThread(@dead);
end.
Я правильно понял?... И еще вопрос возник - Engine.FaceControl(0, false); останавливает и воспроизведение скрипта, и интерфейс бота полностью?
var obj: TL2NPC;
obj2: TL2Effect;
Enemy: TL2Live;
Item: TL2Item;
Npc: TL2Npc;
L2Skill: TL2Skill;
Control: TL2Control;
TNpcList: TL2List;
procedure Dead();
begin
while 1<>2 do begin
delay(2000); // мой зацикленный скрипт целиком
if User.Dead then begin
print('Умер');
Delay(5000);
engine.GoHome;
Engine.FaceControl(0, false);
end;
end;
end;
begin
//тело скрипта
end;
begin
Script.NewThread(@dead);
end.
Лично я так првивык делать.
Engine.FaceControl(0, false);
Выключает только интерфейс бота.
В етом случие тогда когда он умер.
Engine.FaceControl(0, True);
Включает интерфейс,обычно использую в конце скрипта (когда уже на споте).
While not Engine.QuestStatus(xxxxx, хх) do
begin
if User.Dead then
begin
//Восрешаемся и бежим к началу текущего этапа квеста
end;
//И тут уже пишешь что нужно выполнить для текущего этапа квеста
delay(1000);
end;