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

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

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

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

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

Вопрос

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

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


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

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

  • 0

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

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

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

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


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


  • 0
3 часа назад, BorizzK сказал:

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

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

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

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


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

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

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

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

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

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

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


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

adler14k Rag

 

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

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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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);
 

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

 

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

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


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

BorizzK после

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

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

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

 

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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'

 

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

 

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


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

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

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

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


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

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

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


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

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

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


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

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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);
	}
}

 

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


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

123new на 309 строчку жалуется.
И мне надо заменить всем игрокам, а не одному с определенным ID

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

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


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

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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 

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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);

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

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


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

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

Загрузка...

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