DayZinit.cстартовый лутрандом

DayZ init.c: случайная стартовая экипировка

Настройка сервера / Todtleben / 1 просмотров

DayZ init.c: случайная стартовая экипировка

Случайная стартовая экипировка делает начало игры живее. Игроки не появляются одинаковыми клонами, а получают один из нескольких наборов.

Базовый пример

override void StartingEquipSetup(PlayerBase player, bool clothesChosen)
{
    player.RemoveAllItems();

    int roll = Math.RandomIntInclusive(1, 3);

    if (roll == 1)
        GiveMedicStart(player);
    else if (roll == 2)
        GiveHunterStart(player);
    else
        GiveCivilianStart(player);
}

Набор медика

void GiveMedicStart(PlayerBase player)
{
    player.GetInventory().CreateInInventory("ParamedicJacket_Blue");
    player.GetInventory().CreateInInventory("ParamedicPants_Blue");
    player.GetInventory().CreateInInventory("AthleticShoes_Black");
    player.GetInventory().CreateInInventory("BandageDressing");
    player.GetInventory().CreateInInventory("BandageDressing");
    player.GetInventory().CreateInInventory("Apple");
}

Набор охотника

void GiveHunterStart(PlayerBase player)
{
    player.GetInventory().CreateInInventory("HuntingJacket_Brown");
    player.GetInventory().CreateInInventory("HunterPants_Brown");
    player.GetInventory().CreateInInventory("HikingBootsLow_Beige");
    player.GetInventory().CreateInInventory("HuntingKnife");
    player.GetInventory().CreateInInventory("Compass");
}

Гражданский набор

void GiveCivilianStart(PlayerBase player)
{
    player.GetInventory().CreateInInventory("Hoodie_Black");
    player.GetInventory().CreateInInventory("Jeans_Blue");
    player.GetInventory().CreateInInventory("AthleticShoes_Grey");
    player.GetInventory().CreateInInventory("KitchenKnife");
    player.GetInventory().CreateInInventory("SodaCan_Cola");
}

Предмет с количеством

ItemBase water = ItemBase.Cast(player.GetInventory().CreateInInventory("WaterBottle"));
if (water)
    water.SetQuantity(500);

Предмет с состоянием

ItemBase knife = ItemBase.Cast(player.GetInventory().CreateInInventory("KitchenKnife"));
if (knife)
    knife.SetHealth("", "", 80);

Баланс

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

Оптимальный старт:

  • 1 комплект простой одежды;
  • 1 еда или напиток;
  • 1 бинт;
  • простой нож или инструмент;
  • иногда карта/компас.

Частая ошибка

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

ответов: 0

Ответить

Ответов пока нет. Начните обсуждение.

Добавить ответ

Войдите, чтобы ответить в теме.