Перейти к содержанию

Dynamic NPC Chat Room


Qunis

Рекомендуемые сообщения

В данном примере показано, как сделать так, чтобы комната с чатом у NPC обновлялась и показывала информацию об онлайне на локации prontera.

prontera,150,170,4    script    Chat_Room    651,{
end;

OnInit:
OnTimer1000:
delwaitingroom;
waitingroom getmapusers("prontera")+" player"+( getmapusers("prontera") > 1 ? "s":"") +" in Prontera", 0;
initnpctimer;
}

- Источник: http://ragnarok-server.ru

  • Upvote 2
Ссылка на комментарий
Поделиться на другие сайты

источник :lol:


prontera,150,170,4 script Chat_Room 651,{
end;

OnInit:
initnpctimer;
end;

OnTimer1000:
delwaitingroom;
waitingroom getmapusers("prontera")+" player"+( getmapusers("prontera") > 1 ? "s":"") +" in Prontera", 0;
stopnpctimer;
initnpctimer;
end;
}

Ссылка на комментарий
Поделиться на другие сайты

ну тут нечего стоещего нету=(

Полностью согласен. Мало того, что на спасибку не тянет,

так и реализация не самая лучшая. Мой вариант:


prontera,150,170,4 script Chat_Room 651,{
end;


while(1)
{
waitingroom getmapusers("prontera")+" player"+( getmapusers("prontera") > 1 ? "s":"") +" in Prontera", 0;
sleep 1000;
delwaitingroom;
}

end;
}

Ссылка на комментарий
Поделиться на другие сайты

Хм.. В последний раз, когда я интересовался бесконечными циклами - вроде как было невозможно запустить их. Точнее как - сервер выдавал ошибку, что цикл по умолчанию бесконечный и останавливал его работу и чтобы это обойти нужно было в конце тела цикла добавлять sleep(n);. Как-то так, хотя за достоверность ручаться не буду. Если я не ошибся - тогда вариант nomn'a лучше чуть пееделать:

prontera,150,170,4    script    Chat_Room    651,{
end;


while(1)
{
delwaitingroom;
waitingroom getmapusers("prontera")+" player"+( getmapusers("prontera") > 1 ? "s":"") +" in Prontera", 0;
sleep 1000;
}

end;
}

Ну а если я где-то что-то напутал, тогда пофиг. Ну и цикл гораздо лучше таймера, всяко.

Ссылка на комментарий
Поделиться на другие сайты

И получишь ошибку на первой итерации, т.к. скрипт попытается убрать чат которого нет ;)

Требую прув!) Проверь мой вариант ;)

Ссылка на комментарий
Поделиться на другие сайты

И получишь ошибку на первой итерации, т.к. скрипт попытается убрать чат которого нет ;)

Требую прув!) Проверь мой вариант ;)

Щас негде проверять.. Да и не критично это, выдаст ошибку - добавить вторую строчку создания чата перед удалением (: А прув... Ну нет у меня доказательств. Просто когда-то для себя писал подобное, там на арене онлайн каждую секунду обновлялся и показывался - ну аналогично ощем. И где-то на форуме афины накопал про эту особенность. Сначала слип тоже стоял в середине, переместил в конец - заработало. А если вначале или в середине - писал в консоли, мол бесконечный цикл, ошибка. Вот...)

Кстати.. Там именно ошибку выдаст или просто warn?

Изменено пользователем Кеник
Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Навскидку:

В базе помница есть поле в таблице персонажей, которое обозначает их "состояние" (онлайн-оффлайн). В команду @detach дописать выставление этого поля в третье (четвертое-пятое-десятое) значение, которое не будет учитываться при подсчете онлайна. Как-то так (:

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...
Яндекс.Метрика