Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Нужна помощь?

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

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

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

    Там вы можете купить
    Всё что касается игровых серверов
  • 0
Sancezz063

Старт лут

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

Share this post


Link to post
Share on other sites

Recommended Posts

  • 0

выдать на персонажа - createInInventory "classname"

Пример есть в стандартном ините по выдаче бинтов.

Фишка вся в том, что если слот сумки занят уже, предмет выдастся в руки. Если не занят, то на спину сам упадет.

Share this post


Link to post
Share on other sites



  • 0

Как бы еще бинты в слоты одежды или рюкзака положить

Всегда а руках оказываются

Share this post


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

Как бы еще бинты в слоты одежды или рюкзака положить

Всегда а руках оказываются

Бинты или тряпка? 

Share this post


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

Как бы еще бинты в слоты одежды или рюкзака положить

Всегда а руках оказываются

EntitiAI Item_player = player.CreateInInventory "Alice_Bag";
EntitiAI subItem = Item_player.CreateInInventory "Rag";

ну как-то так это работает, только корреткность классов и кода сверху не гарантирую, по памяти писал. Возможно, перед использованием 2 строки надо Item_player преобразовать в класс ItemBase

Edited by 123new (see edit history)

Share this post


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

adler14k Rag

 

Это тряпка, а именно с Rag баг и она всегда берётся в руки. Ждем обновы и фиксов. А так можешь смело брать бинты
Например

		EntityAI bandageEnt;
		ItemBase bandageBs;
		bandageEnt = player.GetInventory().CreateInInventory("BandageDressing");
		bandageBs = ItemBase.Cast(bandageEnt);

Бинт лежит у нас в инверторе 

Edited by adler14k (see edit history)

Share this post


Link to post
Share on other sites
  • 0

adler14k  ну я так и понял что баг, в 062 тож такое было как-то

буду бинты класть
 

Share this post


Link to post
Share on other sites
  • 0

123new 

 

    itemEnt = player.GetInventory().CreateInInventory("CoyoteBag_Green");
    itemBs = ItemBase.Cast(itemEnt);
    EntityAI subItem = itemEnt.GetInventory().CreateInInventory("Rag");
    itemBs = ItemBase.Cast(subItem);
    itemBs.SetQuantity(6);
 

Лоскуты оказываются в рюкзаке как и положено!

 

вобщем благодарочка!

Share this post


Link to post
Share on other sites
  • 0

BorizzK после

itemEnt = player.GetInventory().CreateInInventory("CoyoteBag_Green");

добавь проверку

if (itemEnt != NULL)
{
	тут все действия
}

 

Share this post


Link to post
Share on other sites
  • 0

123new Это понятно, но itemEnt создается всегда в этом случае

ну а если предполагать, что Богемия опять чтот нахимичила, то тогда проверки надо везде делать

весь код будет из проверок ))))

 

меня вот что взбесило

 

GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(MovePlayer, (mov_alt * 1000), false, Player, newPos, finishPos, mov_alt, max_alt);

 

херакс

оказывается тут не передать переменную типа vector

ну не иппануться ли?

 

 

(E): ScriptCallQueue::Call: Incompatible parameter '1', expected 'vector', got 'vector'

(E): ScriptCallQueue::Call: Incompatible parameter '2', expected 'vector', got 'vector'

 

или я что-то не понимаю

 

Share this post


Link to post
Share on other sites
  • 0

123new Ну как бы это я уже понял, что string или 3 параметра float вполне подойдут
Но эти постоянные преобразования и дербан переменных вносят путаницу и тп

Некрасивенько как-то выходит

Share this post


Link to post
Share on other sites
  • 0

BorizzK я думаю про это надо разрабам на их форуме задать вопрос, может быть банально баг или какая-то условность.

Share this post


Link to post
Share on other sites
  • 0

123new ну как сделать, чтобы при спавне игроку одевались те шмотки, которые я пропишу. А то они в руки выдаются.

Share this post


Link to post
Share on other sites
  • 0

Sancezz063 так стандартно все. делается массив со списком uid, и где выдача лута происходит, пишешь, если uid в списке, то выдать такой то лут, если нет, то лут поумолчанию.
Пример накидать такого варианта? Вроде бы не сложно.

Share this post


Link to post
Share on other sites
  • 0

Sancezz063 в ините заменишь функцию и будет работать, тока uid спиши в списке:

override void StartingEquipSetup(PlayerBase player, bool clothesChosen)
{
	EntityAI itemEnt;
	ItemBase itemBs;
	
	private array<string> UID_DONATE_SETS = {"765....","765..."};
	private PlayerIdentity p_identity = player.GetIdentity();
	private string UID_P = p_identity.GetPlainId();
	if (UID_DONATE_SETS.Contains(UID_P))
	{
		player.RemoveAllItems();
		EntityAI item_Inv;
		itemEnt = player.GetInventory().CreateInInventory("CombatBoots_Green");
		itemBs = ItemBase.Cast(itemEnt);
		itemEnt = player.GetInventory().CreateInInventory("TTSKOPants");
		item_Inv = itemEnt.GetInventory().CreateInInventory("BandageDressing");
		SetRandomHealth(item_Inv);
		itemBs = ItemBase.Cast(itemEnt);
		itemEnt = player.GetInventory().CreateInInventory("QuiltedJacket_Violet");
		itemBs = ItemBase.Cast(itemEnt);
		itemEnt = player.GetInventory().CreateInInventory("BoonieHat_Red");
		itemBs = ItemBase.Cast(itemEnt);
		itemEnt = player.GetInventory().CreateInInventory("BallisticVest");
		itemBs = ItemBase.Cast(itemEnt);
		itemEnt = player.GetInventory().CreateInInventory("SmershBag");
		item_Inv = itemEnt.GetInventory().CreateInInventory("Flashlight");
      	SetRandomHealth(item_Inv);
		item_Inv.GetInventory().CreateAttachment( "Battery9V" );	
		itemBs = ItemBase.Cast(itemEnt);
	} else
	{
		itemEnt = player.GetInventory().CreateInInventory("Rag");
		itemBs = ItemBase.Cast(itemEnt);
		itemBs.SetQuantity(4);
		SetRandomHealth(itemEnt);
	}
}

 

Share this post


Link to post
Share on other sites
  • 0

Sancezz063 так а в чем тогда проблема убрать строки из else в стандартном ините и заменить их на те что внутри if из моего примера?

Share this post


Link to post
Share on other sites
  • 0

    override void StartingEquipSetup(PlayerBase player, bool clothesChosen)
    {
            EntityAI itemEnt;
            ItemBase itemBs;
    
            private array<string> UID_DONATE_SETS = {"765....","765..."};
            private PlayerIdentity p_identity = player.GetIdentity();
            private string UID_P = p_identity.GetPlainId();
            if (UID_DONATE_SETS.Contains(UID_P))
            {
                    player.RemoveAllItems();
                    EntityAI item_Inv;
                    itemEnt = player.GetInventory().CreateInInventory("CombatBoots_Green");
                    itemBs = ItemBase.Cast(itemEnt);
                    itemEnt = player.GetInventory().CreateInInventory("TTSKOPants");
                    item_Inv = itemEnt.GetInventory().CreateInInventory("BandageDressing");
                    SetRandomHealth(item_Inv);
                    itemBs = ItemBase.Cast(itemEnt);
                    itemEnt = player.GetInventory().CreateInInventory("QuiltedJacket_Violet");
                    itemBs = ItemBase.Cast(itemEnt);
                    itemEnt = player.GetInventory().CreateInInventory("BoonieHat_Red");
                    itemBs = ItemBase.Cast(itemEnt);
                    itemEnt = player.GetInventory().CreateInInventory("BallisticVest");
                    itemBs = ItemBase.Cast(itemEnt);
                    itemEnt = player.GetInventory().CreateInInventory("SmershBag");
                    item_Inv = itemEnt.GetInventory().CreateInInventory("Flashlight");
                      SetRandomHealth(item_Inv);
                    item_Inv.GetInventory().CreateAttachment( "Battery9V" );    
                    itemBs = ItemBase.Cast(itemEnt);
            } else
            {
                    itemEnt = player.GetInventory().CreateInInventory("Rag");
                    itemBs = ItemBase.Cast(itemEnt);
                    itemBs.SetQuantity(4);
                    SetRandomHealth(itemEnt);
            }123new 

Я надеюсь он заменят у всех игроков, а не только у одного ? 

Share this post


Link to post
Share on other sites
  • 0

Sancezz063 в стандартном init


void main()
{

	Hive ce = CreateHive();
	if ( ce )
		ce.InitOffline();

	Weather weather = g_Game.GetWeather();

	weather.GetOvercast().SetLimits( 0.0 , 1.0 );
	weather.GetRain().SetLimits( 0.0 , 1.0 );
	weather.GetFog().SetLimits( 0.0 , 0.25 );

	weather.GetOvercast().SetForecastChangeLimits( 0.5, 0.8 );
	weather.GetRain().SetForecastChangeLimits( 0.1, 0.3 );
	weather.GetFog().SetForecastChangeLimits( 0.05, 0.10 );

	weather.GetOvercast().SetForecastTimeLimits( 3600 , 3600 );
	weather.GetRain().SetForecastTimeLimits( 300 , 300 );
	weather.GetFog().SetForecastTimeLimits( 3600 , 3600 );

	weather.GetOvercast().Set( Math.RandomFloatInclusive(0.0, 0.3), 0, 0);
	weather.GetRain().Set( Math.RandomFloatInclusive(0.0, 0.2), 0, 0);
	weather.GetFog().Set( Math.RandomFloatInclusive(0.0, 0.1), 0, 0);
	
	weather.SetWindMaximumSpeed(30);
	weather.SetWindFunctionParams(0.1, 1.0, 50);
}

class CustomMission: MissionServer
{	
	void SetRandomHealth(EntityAI itemEnt)
	{
		int rndHlt = Math.RandomInt(40,100);
		itemEnt.SetHealth("","",rndHlt);
	}

	override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName)
	{
		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;
	}
	
	override void StartingEquipSetup(PlayerBase player, bool clothesChosen)
	{
/*
		player.RemoveAllItems();

		EntityAI item = player.GetInventory().CreateInInventory(topsArray.GetRandomElement());
		EntityAI item2 = player.GetInventory().CreateInInventory(pantsArray.GetRandomElement());
		EntityAI item3 = player.GetInventory().CreateInInventory(shoesArray.GetRandomElement());
*/
		EntityAI itemEnt;
		ItemBase itemBs;
		
		itemEnt = player.GetInventory().CreateInInventory("Rag");
		itemBs = ItemBase.Cast(itemEnt);
		itemBs.SetQuantity(4);
		SetRandomHealth(itemEnt);

		itemEnt = player.GetInventory().CreateInInventory("RoadFlare");
		itemBs = ItemBase.Cast(itemEnt);
	}
};
  
Mission CreateCustomMission(string path)
{
	return new CustomMission();
}

замени

itemEnt = player.GetInventory().CreateInInventory("Rag");
		itemBs = ItemBase.Cast(itemEnt);
		itemBs.SetQuantity(4);
		SetRandomHealth(itemEnt);

		itemEnt = player.GetInventory().CreateInInventory("RoadFlare");
		itemBs = ItemBase.Cast(itemEnt);

на

 player.RemoveAllItems();
                    EntityAI item_Inv;
                    itemEnt = player.GetInventory().CreateInInventory("CombatBoots_Green");
                    itemBs = ItemBase.Cast(itemEnt);
                    itemEnt = player.GetInventory().CreateInInventory("TTSKOPants");
                    item_Inv = itemEnt.GetInventory().CreateInInventory("BandageDressing");
                    SetRandomHealth(item_Inv);
                    itemBs = ItemBase.Cast(itemEnt);
                    itemEnt = player.GetInventory().CreateInInventory("QuiltedJacket_Violet");
                    itemBs = ItemBase.Cast(itemEnt);
                    itemEnt = player.GetInventory().CreateInInventory("BoonieHat_Red");
                    itemBs = ItemBase.Cast(itemEnt);
                    itemEnt = player.GetInventory().CreateInInventory("BallisticVest");
                    itemBs = ItemBase.Cast(itemEnt);
                    itemEnt = player.GetInventory().CreateInInventory("SmershBag");
                    item_Inv = itemEnt.GetInventory().CreateInInventory("Flashlight");
                      SetRandomHealth(item_Inv);
                    item_Inv.GetInventory().CreateAttachment( "Battery9V" );    
                    itemBs = ItemBase.Cast(itemEnt);

и все. Тупо и все, и это будет для всех спавнящихся и респавнящихся сразу.

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.