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

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

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

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

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

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

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


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

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

  • 0

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

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

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

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


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





  • 0

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

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

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


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

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

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

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


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

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


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

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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