Помощь - Поиск - Пользователи - Календарь
Полная версия: ServerConsoleCommands[1.0]
UoKit.com Форумы > Ultima Online : Dev > RunUO Server > Готовые скрипты RunUO
~ArmageddoN~
Информация:
  • Позволяет вводить команды прямо в консоли(RunUO.exe)
Список команд
  • Save -Сохраняет мир.
  • Shutdown - Сохранение параметров сервера и его закрытие.
  • Shutdown nosave - Закрывает сервер без сохранения.
  • Restart - Вещает всему серверу о перезапуске, сохраняет и перезапускает сервер.
  • Restart nosave - Перезапускает сервер без сохранения.
  • Online - Показывает онлайн сервера: счета, Имя чара, IP.
  • Broadcast - Транслировать сообщение всем игрокам на сервере.
  • Staff - Транслировать сообщение только персоналу.
  • Consolehear - Маршрутизировать все речи на консоль.
  • Help - Показывает список доступных команд.
  • Stop - Быстрое выключение с сохранением, аналог (Shutdown)
Внимание, данный скрипт работает только с версией RunUO[2.x]

P.S Валялся данный скрипт очень давно на комьюнити, я его немного переделал и перевёл, думаю многим будет полезен, со временем может быть обновлю. Если будут замечены какие-то недочёты и ошибки, то пишите - исправим.
С установкой проблем думаю не возникнет, но всё же не знающим:
Распаковать в любую папку Scripts вашего сервера. Перезапустить(если работает) сервер.
Soteric
Хорошая идея. Но вызывать код в RunUO из другого потока небезопасно. Например
Код
        public static void BroadcastMessage(AccessLevel ac, int hue, string message)
        {
            foreach (NetState state in NetState.Instances)
            {
                Mobile m = state.Mobile;

                if (m != null && m.AccessLevel >= ac)
                    m.SendMessage(hue, message);
            }
        }

если в момент нахождения в цикле foreach произойдет отключение/подключение какого-то клиента и содержимое Instance изменится, то это приведет к ошибке и падению сервера.

Правильнее было бы организовать очередь сообщений и таймер. При вводе в консоли команда просто добавляется в очередь. Таймер, выполняемый в основном потоке, читает команды из очереди и выполняет их. Работа с очередью должна быть организована потокобезопасно: на локах, либо с помощью какого-то безопасного списка.
StaticZ
Цитата(Soteric @ 16.11.2014, 1:11) *
Правильнее было бы организовать очередь сообщений и таймер. При вводе в консоли команда просто добавляется в очередь. Таймер, выполняемый в основном потоке, читает команды из очереди и выполняет их. Работа с очередью должна быть организована потокобезопасно: на локах, либо с помощью какого-то безопасного списка.
Да можно в принципе обойтись и семафорами\мьютиксами или любым другим способом синхронизации потоков... Хотя конечно ради такого смысла большого плодить потоки нет....
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.