Назад

Нужна помощь с НПЦ

Автор: MDK: Дата: 10.16.2009

Возникла проблема с МВП ареной, вот что написал сам

prontera,126,278,6	script	Арена	899,{
mes "Привет!";
mes "Я могу варпнуть тебя на арену для дэд бранчей";
mes "Вы также можете поставить пароль для входа в нее";
if (getgmlevel()<90) goto lclose;
next;
if (.rlocked==1) {
mes "Сейчас арена занята";
//mes "На арене "+getmapusers("bat_c01")+" человек.";
//mes "Значение .afk="+.afk;
//mes "Значение .rlocked="+.rlocked;
mes "Если хотите попасть туда, введите пароль";
menu "Ввести пароль",enterpass,
"Уйти",lclose;
}
mes "Сейчат арена свободна.";
mes "Хотите попасть туда?";
goto lmenu;
lmenu:
menu "Конечно!",croom,
"Нет.",lclose;
end;
lclose:
next;
mes "Пока!";
close;
end;
croom:
mes "Установите пароль для входа на арену.";
input .pass$;
set .rlocked,1;
goto enterroom;
end;
enterpass:
mes "Введите пароль для входа на арену";
input .@cpass$;
if (.@cpass$==.pass$) goto enterroom;
mes "Пароль неверный";
close;
enterroom:
next;
mes "^FF0000Внимание!!! Не покидайте арену надолго, иначе вызванные вами монстры пропадут!^000000";
next;
initnpctimer;
set .afk,0;
warp "bat_c01",0,0;
close;
onTimer30000:
if(getmapusers("bat_c01")==0){
if(.afk==1) {
areawarp "bat_c01",50,131,149,52,prontera,145,187;
killmonster "bat_c01",All;
set .rlocked,0;
set .afk,0;
stopnpctimer;
} { set .afk,1;}
}
initnpctimer;
end;
}

Проблема в том, что комната не освобождается, если там долго никого нету.

Автор: MDK: Дата: 10.16.2009

Все равно мне надо использовать таймер, т. к. надо чтобы арена не закрывалась некоторое время если там никого нет, в смысле если умер кто-то, чтобы мог опять придти на неё.

Автор: Shavkatik: Дата: 10.16.2009

Ну тут косяк в скрипте, правильнее будет так

[FONT=monospace]if (getmapusers("bat_c01")==0) {[/FONT]
if(.afk==1) {
areawarp "bat_c01",50,131,149,52,prontera,145,187;
killmonster "bat_c01",All;
set .rlocked,0;
set .afk,0;
stopnpctimer;
}
set .afk,1;
}
initnpctimer;
end;

Автор: MDK: Дата: 10.27.2009

Переделал все как написали, эффект такой же. Даже не знаю что делать.