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

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

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

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

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

Как разделить всех игроков

Подскажите товарищи, как разделить всех игроков на две "фракции", при входе на сервер игроку выдаётся один из двух химсветов (красный или белый рандомно), если выдало красный, то игрока спавнит возле одного трейда, если белый, то возле другого. Хочу разделить по этому принципу, надо делить игроков на две фракции, что бы участники одной фракции не могли зайти в трейд зону другой. И как сделать что бы игрок не мог выкинуть этот химсвет.

 

rand = Math.RandomFloatInclusive( 0.0, 1.0 );
			if ( rand < 0.5 )
				{itemEnt = player.GetInventory().CreateInInventory( "Apple" );
			itemEnt = itemClothing.GetInventory().CreateInInventory( "Chemlight_White" );
			SetRandomHealth( itemEnt );
			player.SetPosition("8337 292 5992");
			}
			else
				{itemEnt = player.GetInventory().CreateInInventory( "Pear" );
			itemEnt = itemClothing.GetInventory().CreateInInventory( "Chemlight_Red" );
			SetRandomHealth( itemEnt );
			player.SetPosition("3727 401 6012");
			}

			SetRandomHealth( itemEnt );

 

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

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


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

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

  • 0

а что толку от химсвета, скинул рюкзак и все света нет, лучше уж повязку вешать и лочить слот

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


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





  • 0
17.12.2020 в 07:16, Equadro сказал:

а что толку от химсвета, скинул рюкзак и все света нет, лучше уж повязку вешать и лочить слот

об этом не подумал, но суть вопроса это не меняет)

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


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

об этом не подумал, но суть вопроса это не меняет)

	ItemBase Armband  = oPlayer.GetHumanInventory().FindAttachment(InventorySlots.ARMBAND);
	if(!Armband)
	{
		int rndFraction = Math.RandomInt(0,100);
		if (rndFraction >= 50)
		{
			item = oPlayer.GetInventory().CreateInInventory( "Armband_Black" );
		}
		else
		{
			item = oPlayer.GetInventory().CreateInInventory( "Armband_Yellow" );
		}
		InventoryLocation inventory_location = new InventoryLocation;
		Armband.GetInventory().GetCurrentInventoryLocation( inventory_location );
		oPlayer.GetInventory().SetSlotLock( inventory_location.GetSlot(), true );
	}
	else
	{
		//Armband.Delete();
	}

Ну, а также нужно привязать игрока к фракции на постоянку. Чтобы после смерти она не слетала.

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


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

ItemBase Armband = oPlayer.GetHumanInventory().FindAttachment(InventorySlots.ARMBAND); if(!Armband) { int rndFraction = Math.RandomInt(0,100); if (rndFraction >= 50) { item = oPlayer.GetInventory().CreateInInventory( "Armband_Black" ); } else { item = oPlayer.GetInventory().CreateInInventory( "Armband_Yellow" ); } InventoryLocation inventory_location = new InventoryLocation; Armband.GetInventory().GetCurrentInventoryLocation( inventory_location ); oPlayer.GetInventory().SetSlotLock( inventory_location.GetSlot(), true ); } else { //Armband.Delete(); }


	ItemBase Armband  = oPlayer.GetHumanInventory().FindAttachment(InventorySlots.ARMBAND);
	if(!Armband)
	{
		int rndFraction = Math.RandomInt(0,100);
		if (rndFraction >= 50)
		{
			item = oPlayer.GetInventory().CreateInInventory( "Armband_Black" );
		}
		else
		{
			item = oPlayer.GetInventory().CreateInInventory( "Armband_Yellow" );
		}
		InventoryLocation inventory_location = new InventoryLocation;
		Armband.GetInventory().GetCurrentInventoryLocation( inventory_location );
		oPlayer.GetInventory().SetSlotLock( inventory_location.GetSlot(), true );
	}
	else
	{
		//Armband.Delete();
	}

Ну, а также нужно привязать игрока к фракции на постоянку. Чтобы после смерти она не слетала.

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

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


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

Подскажи как-то возможно запретить игроку входить в трейд зону в зависимости от повязки?

Что значит запретить? Отключить игроку клаву если в зону зайдет или может быть убить сразу? Ах нет... конечно же, ломать ему ноги и пусть там ползает!

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


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

Что значит запретить? Отключить игроку клаву если в зону зайдет или может быть убить сразу? Ах нет... конечно же, ломать ему ноги и пусть там ползает!

Ну это слишком жёстко) например что бы телепортировало назад на 50 метров после входа в область, которая например 100 метров от заданной координаты.

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


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

Ну это слишком жёстко) например что бы телепортировало назад на 50 метров после входа в область, которая например 100 метров от заданной координаты.

Ну предоставляю вам написание данной формулы.

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
17.12.2020 в 07:16, Equadro сказал:

а что толку от химсвета, скинул рюкзак и все света нет, лучше уж повязку вешать и лочить слот

скинул куртку и нету света

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


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

Что значит запретить? Отключить игроку клаву если в зону зайдет или может быть убить сразу? Ах нет... конечно же, ломать ему ноги и пусть там ползает!

Ставим бота,и ему атаку вешаем по параметру "врага",но хз реально ли такое.

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


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

Ставим бота,и ему атаку вешаем по параметру "врага",но хз реально ли такое.

игрок вошел в зону - тп его назад

но надо чекать постоянно что грузит серв

 

хотя есть идейка

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


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

игрок вошел в зону - тп его назад

но надо чекать постоянно что грузит серв

 

хотя есть идейка

Ну вечный тп,тоже такой себе костыль))Не очень "реалистично",а вот охрана,вполне)
Хотя если нет другого выхода,то да.

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


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

Ну вечный тп,тоже такой себе костыль))Не очень "реалистично",а вот охрана,вполне)
Хотя если нет другого выхода,то да.

можно тупо сделать так что игрок будет упираться в невидимую стену - те бежать на месте

 

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


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

можно тупо сделать так что игрок будет упираться в невидимую стену - те бежать на месте

 

Ну так то тоже вариант,да.Но как-то это имхо топорно)

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


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

Ну так то тоже вариант,да.Но как-то это имхо топорно)

ну а бота то же как бы не але - игра вообще не оч расчитана на такое пока

 

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


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

ну а бота то же как бы не але - игра вообще не оч расчитана на такое пока

 

Ну тут я не спец,ток осваиваю это дело) я лишь идею подал)

Сам вон сижу сутки бьюсь над своей проблемой)

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

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


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

сделать 2 папки или конфига, в одной хранить steam64id красных, в другой белых. Входит игрок на сервер - проверяем наличие в одной комманде и другой, если он в одной - респаем его в одну точку, если в другой - в другую (ну а если в третьей - к черту на куличики :D). Ну и остается только проверку в фоне игроков реализовать, которые будут приближаться к точке например на 50 метров. Тут как сказал многоуважаемый BorizK, выкидывать неугодных из зоны остается.

По сути не оч сложный скрипт, но вот в плане нагрузки на сервер.... Пожалуй, послушаю, может кто варианты более правильные посоветует кроме периодической проверки игроков на координаты.

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


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

(как вариант,без постоянной проверки-переработать скрипт на аномалию телепортациии....трейд зоны сделать аномалиями для одних и не рабочими для других)

 

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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