Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной

Ваашпе не понимаю!

Сразу после обновы 1.52 , начались какие то непонятные лаги, даже не лаги, а зависание на продолжительное время (доходит до 10 мин -> разве это лаги). Такое чувство, что связано это с сохранением в БД. Все прекрасно летает и примерно с одинаковой периодичностью (раз в 20 мин) на примерно один и тот же промежуток времени, зависает все вокруг персонажа (боты, игроки). При этом база данных все прекрасненько сохраняет, заргузка проца, жестака, сети, памяти, все в норме. Кол-во игроков то же.

 

Может у кого были схожие проблемы или есть идеи, был бы рад выслушать.

Изменено пользователем dupont (история изменений)

Поделиться сообщением


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

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

Нет ответов на вопрос

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: Miduznya
      Всем привет, чет не нашел не где как можно в ручную обновить через .bat или .cmd файл
      если есть у кого такой поделитесь плиз. Прошу сильно не пинать если есть такая тема дайте ссылку
    • Автор: BorizzK
      Поскольку штатный чат бегемоты сломали, а чат-одминка лучший способ тестирования функций и параметров/значений на стороне сервера
      Реши сначала на клиенте чат отмоддидь, но потом обнаружил что Даон в VPP своей это уже сделал и мне остается только отмоддидь одну его функцию на стороне сервера, что я и сделал
       
      Посмотрел
       
      На клиенте моддинг строки чата с перехватом 5_Mission\GUI
      ChatInputMenu.c
      modded class ChatInputMenu { override bool OnChange(Widget w, int x, int y, bool finished) { if (!finished) return false; string text = m_edit_box.GetText(); if (text != "" && (text.Substring(0,1)) == "/") { GetRPCManager().SendRPC( "RPC_MissionServer", "HandleChatCommand", new Param1<string>(text), true); m_close_timer.Run(0.1, this, "Close"); //Exit out as we don't want to send commands in chat for others to see. return true; } return super.OnChange(w, x, y, finished); } }; если строка начинается на / то через RPC засылаем на сервер RPC передавая ей текст и завершаем функцию
      ну а если не на / вызываем нативную функцию
       
      На сервере в классе MissionServer зареген RPC "RPC_MissionServer" (используя функционал мода CF)
      void MissionServer() { GetRPCManager().AddRPC( "RPC_MissionServer", "RequestLockServer", this, SingeplayerExecutionType.Server ); m_DEXML = new DEXML; //=============RPC's==================== GetRPCManager().AddRPC( "RPC_ReadFromXML", "GetTypesXML", this, SingeplayerExecutionType.Server ); GetRPCManager().AddRPC( "RPC_MissionServer", "HandleChatCommand", this, SingeplayerExecutionType.Server ); //====================================== } Сервер получая RPC "RPC_MissionServer"   вызывает из этого класса функцию HandleChatCommand (собственно так же используется функционал мода CF)
      Как и что вдаваться в подробности смысла нет

      Вот собственно она
       
      void HandleChatCommand( CallType type, ParamsReadContext ctx, PlayerIdentity sender, Object target) { Param1<string> data; //chat string if ( !ctx.Read( data ) ) return; if (type == CallType.Server) { GetChatCommandManager().ParseCommand(data.param1,sender.GetPlainId()); } } Ну а нам осталось только перехватить то что прилетает в эту функцию и забрать себе
       
      override void HandleChatCommand(CallType type, ParamsReadContext ctx, PlayerIdentity sender, Object target) { Param1<string> data; //chat string if (!ctx.Read(data)) return; if (type == CallType.Server && sender && data.param1) { AdminMod.OnAdminChatRequestVPP(sender, data.param1); return; } } Все получили, все прилетело улетело куда надо
       
      Но!
       
      нам в нашей одминке нужно получить перса отправителя
      Попытка сделать это так:
       
      class AdminMod { void OnAdminChatRequestVPP(Playeridentity sender, string command) { PlayerBase player = GetAdminPlayerByIdentity(sender); if (player) { AdminCommand(player, command); } } PlayerBase GetAdminPlayerByIdentity(PlayerIdentity sender) { array<Man> players = new array<Man>; GetGame().GetPlayers(players); for ( int i = 0; i < players.Count(); ++i ) { if (players[i].GetIdentity() == sender && IsAdmin(sender)) { return PlayerBase.Cast(players[i]); } } return NULL; } bool IsAdmin(PlayerIdentity sender) { if (m_AdminsList.Contains(sender.GetPlainId())) { return true; } return false; } AdminCommand(PlayerBase player, string command); { //тут обрабочик и тп } }  
      Почти все норм
      Но условие
      if (players.GetIdentity() == sender)
      НИКОГДА НЕ РАБОТАЕТ
      ВООБЩЕ
       
      по итогам логгирования выяснил что у одного и того же клиента players.GetIdentity() != sender - хотя в sender прилетает как бы Identity

      Сделал проверку так
      PlayerBase GetAdminPlayerByIdentity(PlayerIdentity sender) { array<Man> players = new array<Man>; GetGame().GetPlayers(players); for ( int i = 0; i < players.Count(); ++i ) { if (players[i].GetIdentity().GetPlainId() == sender.GetPlainId() && IsAdmin(sender)) { return PlayerBase.Cast(players[i]); } } return NULL; } И все взлетело!
       
      НО!
      Как?
      Два разных Identity  и функция GetPlainId() возвращает одинаковые steam UID
       
      Вот как я Вас спрашиваю?

      Или это CF гадит...
       
    • Автор: NoNameUltima
      Есть идейка накатать приложение(в основном под android), с помощью которого игрок Вашего сервера сможет читать, и писать в игровой чат.
      Вход по UID + пароль.(таблица с UID+пасс, хранится в SQL БД).
      Пароли можно выдавать через ВК, или накидать скрипт который будет позволять их создавать в игре.
       
      Как в целом идея?)
    • Автор: MrMiBl
      Возник вопрос: как запустить выделенный сервер имея только mpmission? Хочу запустить серв кооп миссии Antistasi altis 
      Вот сам файл миссии скачать архив
      Описание и установка:
      Вообщем помощь нужна в написание батника, или чё там сделать надо....
  • Наш выбор

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.