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

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

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

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

    Там вы можете продать или купить
    Всё что касается игровых серверов
BorizzK

Задержка/таймаут при входе игрока на сервер

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

Нашел где и как она задается

 

Файл MissionServer.c

 

Функция

void OnPreloadEvent(PlayerIdentity identity, out bool useDB, out vector pos, out float yaw, out int queueTime)

 

Вызывается по эвенту PreloadEventTypeID: - при подключении игрока и постановке его в очередь

 

Она возвращает queueTime в которой и будут те самые 15 сек

Тк он возвращается пустой, сервер использует значение по умолчанию

Если внутри функции изменить значение

queueTime = 5;

то будет нужное Вам время

 

Соответственно переопределяем эту функцию в init.c или Вашем файле миссии в моде (или нет)

 

	override void OnPreloadEvent(PlayerIdentity identity, out bool useDB, out vector pos, out float yaw, out int queueTime)
	{
		if (GetHive())
		{
			// Preload data on client by character from database
			useDB = true;
			queueTime = 1; //Делаем 1 сек
		}
		else
		{
			// Preload data on client without database //Вот это я не понял зачем
			useDB = false;
			pos = "1189.3 0.0 5392.48";
			yaw = 0;
			queueTime = 1; //Делаем 1 сек
		}
	}

Делаем 1 сек

 

Вуаля...

 

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


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


Я у себя сделал просто

в server.cfg создал параметр по аналогии respawnTime

spawnTime = 5;

 

И в переопределенной функции OnPreloadEvent его читаю и присваиваю queueTime

if (GetGame().ServerConfigGetInt("spawnTime"))

{

      queueTime = GetGame().ServerConfigGetInt("spawnTime");

}

 

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

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


Ссылка на сообщение
Поделиться на других сайтах
В 19.12.2018 в 19:35, BorizzK сказал:

Я у себя сделал просто

в server.cfg создал параметр по аналогии respawnTime

spawnTime = 5;

 

И в переопределенной функции OnPreloadEvent его читаю и присваиваю queueTime

if (GetGame().ServerConfigGetInt("spawnTime"))

{

      queueTime = GetGame().ServerConfigGetInt("spawnTime");

}

 

Возможно это все грамотно звучит, для тех кто разбирается в этом, вот честно для простого пользователя ничего не понятно, какая то каша. Начало сделайте так то, но при этом все звучит как описание технической работы скриптов, для тех кто кубатурит что и как работает, на твоем уровне. И далее то что у тебя работает опять же написано каким то отрывком, типа доделайте сами, для кого эти гайды написаны?

Неужели нельзя полноценно написать ? 

1) в serverDZ.cfg вписываем это :

respawnTime = 1;

spawnTime = 1;

2) идем по пути DayZServer\mpmissions\dayzOffline.chernarusplus открываем файл init.c находим такой то раздел и вписываем то то ( я бы написал но сам нихера не понял,

( куда это вписать?)

if (GetGame().ServerConfigGetInt("spawnTime"))

{

      queueTime = GetGame().ServerConfigGetInt("spawnTime");

}

3) а здесь можно уже расписать как работает скрипт и свои умозаключения! 

Спасибо гайд супер , два часа пляски с бубном обеспечены!

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

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


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

А можно просто не ломать себе голову и поправит цифарку в xml-файле
Безымянный.png

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


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

123new 

Я еще исходил из того что можно менять время на лету из моей админки

Допиливаю ее

Выложу в ближайшее время

 

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


Ссылка на сообщение
Поделиться на других сайтах
В ‎19‎.‎12‎.‎2018 в 12:35, BorizzK сказал:

Я у себя сделал просто

в server.cfg создал параметр по аналогии respawnTime

spawnTime = 5;

 

И в переопределенной функции OnPreloadEvent его читаю и присваиваю queueTime

if (GetGame().ServerConfigGetInt("spawnTime"))

{

      queueTime = GetGame().ServerConfigGetInt("spawnTime");

}

 

Извиняюсь а можно поподробнее как это сделать А то мои познания в скриптинге равны нулю

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


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

PJIIOxa 

 

В init.c в классе миссии
который class CustomMission : MissionServer

 

вот в нем добавил функцию (она переопределяет штатную)

 

	override void OnPreloadEvent(PlayerIdentity identity, out bool useDB, out vector pos, out float yaw, out int queueTime)
	{
		//Читаем spqwn time из конфига сервера
        if (GetGame().ServerConfigGetInt("spawnTime") > 0)
		{
			queueTime = GetGame().ServerConfigGetInt("spawnTime");
		}

		if (GetHive())
		{
			// Preload data on client by character from database
			useDB = true;
		}
		else
		{
			// Preload data on client without database //Вот это я не понял зачем
			useDB = false;
			pos = "1189.3 0.0 5392.48";
			yaw = 0;
		}
	}

и в конфиге сервера добавляем параметр spawnTime
типа

spawnTime = 5;

 

Теперь при входе в функции будет считан параметр из конфига и установлено время указанное в конфиге

 

если установить 0 то время queueTime сервер установит в дефолт - 15 сек
потому я сделал проверку GetGame().ServerConfigGetInt("spawnTime") > 0

 

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


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

вот сделал проще скопировать папку scripts в дирикторию сервера, файл модифийированный не заменяет оригинальный файл missionServer_modded.c

 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

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

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


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

Ребята, извините за глупый вопрос, но зачем убирать задержку на входе? Это ж вроде как защита от дюперства?..

Я имею в виду есть ли практический смысл это делать, кроме сокращения времени ожидания для игрока? 15 секунд - ну не такой уж срок, чтоб только ради этого морочиться?..

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


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

VIRrusR ну пока вы ждете 15 секунд ваш персонаж уже находится в игре и стоит ждет пока вы дождетесь отсчета в это время вас могут еб…...ть

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


Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, BorizzK сказал:

VIRrusR От дюперства задержка при выходе
Да и не работает вроде как дюперство сейчас

работает, при неплановых рестартах и крашах сервера из-за разницы в сохранениях карты сервера и игроков

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


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, BorizzK сказал:

123new Но через входы-выходы не работает

само собой, так как помимо таймаута этого перс еще в бд лочится выходящий, и тебя чисто физически не пустит сама бд

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


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

PJIIOxa queueTime теперь не работает. есть идеи?

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

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


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

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

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

    • Автор: Akie
      Вопрос в чем, как тому или иному предмету дать свойство, чтобы при использовании в инвентаре он удалялся и давал хумку, пытался сделать сам, сделал удаление предмета через функцию player removeMagazine, потом проверку на количество хумки, то есть, если хумка больше 2500 то _positive, если меньше то _negative, прописал выдачу в зависимости от условия к примеру :
      if (_Positive) then { player setVariable["humanity",(_HumanityVal+5000),true] }; прикрутил экзекут скрипта к Overwrites click actions, кнопка появилась, но при нажатии, ничего не происходит, ни удаления предмета, ни начисления хуманити, куда копать?

      Понимаю, что чего-то не хватает, а вот чего понять не могу, вот сам скрипт:
       
      private ["_item","_HumanityVal","_Negative","_Positive"] _item = "Итем класс нейм"; player removeMagazine _item; _HumanityVal = player getVariable["humanity",0]; if (_HumanityVal <= -2500) then {_Negative = true;}; if (_HumanityVal >= 2500) then {_Positive = true;}; if (_Positive) then { player setVariable["humanity",(_HumanityVal+5000),true] }; if (_Negative) then { player setVariable["humanity",(_HumanityVal-5000),true] }; Подскажите пожалуйста, что не так)
    • Автор: BorizzK
      Пишу мод для стримеров и сериальщиков (наши оч попросили и пара ютьюберов)
      Управление камерой с регулированием fov и тп включая углы итп
      Все почти отлично
      Столкнулись с проблемой
      С фрикамеры когда крупным планом беседу снимаешь не видно (нет анимации) движения губ. Жестикуляция и голос есть, а движения губ нет, только если перса оператора прям рядом поставить, тогда есть, но он в кадр в некоторых моментах попадает, а этого не нужно. Если удалить обьект перса оператора, то норм, но иногда сервак с ума сходит.
      А когда операторов 2 - 3, то ваще фигня иногда начинается вплоть до краша...
       
      Может кто в курсе, где расстояние, радиус синхры настроить можно?
       
       
    • Автор: DrTauren
      На нашем сайте предусмотрена возможность рекламирования вашего игрового сервера/сайта/програмного обеспечения при помощи баннеров и ссылок.
       
      Баннеры под первым сообщением темы ↓
       
      Баннер на главной странице (над чатом) ↓
       
      Ссылки над первым сообщением темы ↓
       
      Ссылка на главной странице (над чатом) ↓
       
       

      Заявку вы можете заполнить в этой же теме, либо написать мне в ЛС.
      Любые сообщения не по теме запрещены.
×
×
  • Создать...