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

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

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

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

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

Респаун на других координатах

Идея такая: впервые попав на сервер, игрок спаунится на координатах, которые указаны по умолчанию.

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

 

Вопрос: как перехватить событие, что игрок именно РЕспаунится?

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


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

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

  • 0
1 час назад, SinSin сказал:

Логично. Но как на практике это должно выглядеть? Какие конкретно функции нужно здесь использовать? Я бы не сказал, что документации так уж много по скриптингу в DayZ, от того и затруднения.

 


		private PlayerIdentity identity = player.GetIdentity();
		if(identity)
		{

Таким образом?

 

	override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName)
	{

		string m_UID = identity.GetPlainId();

		if (m_UID)
		{
			string beenOnServer;
			GetGame().GetProfileString(m_UID,beenOnServer);
			if (beenOnServer == "true")
			{
				//Игрок уже входил на серв
				vector new_pos = GetCustomPlayerPosition();
				if (new_pos) pos = new_pos;
			}
			else
			{
				//Игрок не входил на серв
				GetGame().SetProfileString(m_UID,"true");
				GetGame().SaveProfile();
			}
		}

		Entity playerEnt;
		playerEnt = GetGame().CreatePlayer(identity, characterName, pos, 0, "NONE");//Creates random player
		Class.CastTo(m_player, playerEnt);

		GetGame().SelectPlayer(identity, m_player);

		return m_player;
	}

	vector GetCustomPlayerPosition()
	{
		//Тут выбираем координаты из массива координат

	    return результат типа vector;
	}

 

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


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





  • 0

При входе новенького  на серв проверяем профиль сервера есть uid или нет, нет -  сохраняем uid и дефолтные координаты не меняем, есть уид - выбираем координаты спавна из кастомного массива

 

Думаю логика ясна..

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

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


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

Логично. Но как на практике это должно выглядеть? Какие конкретно функции нужно здесь использовать? Я бы не сказал, что документации так уж много по скриптингу в DayZ, от того и затруднения.

 

		private PlayerIdentity identity = player.GetIdentity();
		if(identity)
		{

Таким образом?

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

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


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

Благодарю, буду тестировать.

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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