Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 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 );

 

Edited by Karpenator (see edit history)

Share this post


Link to post
Share on other sites

17 answers to this question

Recommended Posts

  • 0

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

Share this post


Link to post
Share on other sites



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

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

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

Share this post


Link to post
Share on other sites
  • 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();
	}

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

Share this post


Link to post
Share on other sites
  • 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();
	}

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

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

Share this post


Link to post
Share on other sites
  • 0
15 минут назад, Karpenator сказал:

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

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

Share this post


Link to post
Share on other sites
  • 0
18 минут назад, Equadro сказал:

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

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

Share this post


Link to post
Share on other sites
  • 0
2 минуты назад, Karpenator сказал:

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

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

Share this post


Link to post
Share on other sites
  • 0
17.12.2020 в 07:16, Equadro сказал:

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

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

Share this post


Link to post
Share on other sites
  • 0
4 часа назад, Equadro сказал:

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

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

Share this post


Link to post
Share on other sites
  • 0
3 минуты назад, USide сказал:

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

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

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

 

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

Share this post


Link to post
Share on other sites
  • 0
Только что, BorizzK сказал:

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

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

 

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

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

Share this post


Link to post
Share on other sites
  • 0
16 минут назад, USide сказал:

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

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

 

Share this post


Link to post
Share on other sites
  • 0
Только что, BorizzK сказал:

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

 

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

Share this post


Link to post
Share on other sites
  • 0
17 минут назад, USide сказал:

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

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

 

Share this post


Link to post
Share on other sites
  • 0
3 минуты назад, BorizzK сказал:

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

 

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

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

Edited by USide (see edit history)

Share this post


Link to post
Share on other sites
  • 0

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

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

Share this post


Link to post
Share on other sites
  • 0

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

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.