Что делает скрипт :
Скрипт добавляет на ваш сервер систему выдачи лута при появлении игрока, либо определенного лута человеку по steamid64 (донатеру к примеру).
Как это сделать?
Для этого нам понадобится зайти в главную папку с вашей картой, к примеру чернарусь (Путь: DayZServer\mpmissions\dayzOffline.chernarusplus)
После того как вы зашли, в этой папке нужно найти файл с названием init.c
Открываем файл и видим строки кода, нам нужна строчка с началом ( class CustomMission: MissionServer ).
Начиная с нее нам нужно вставить код до строчки как на скриншоте клик
class CustomMission : MissionServer
{
private const static string m_SpawnLoadoutDirectory = "$profile:SpawnLoadout/"; // root directory for SpawnLoadout
private const static string m_DonatorDirectory = m_SpawnLoadoutDirectory + "Donators/"; // directory for donator loadout text files
private const static string m_RegularLoadout = m_SpawnLoadoutDirectory + "Regular.txt"; // file for regular loadout
private const static string m_CommonItems = m_SpawnLoadoutDirectory + "CommonItems.txt"; // file for in common items for both regular and donator
void CustomMission()
{
FileHandle templateFile;
if (!FileExist(m_SpawnLoadoutDirectory))
{
MakeDirectory(m_SpawnLoadoutDirectory)
// create default CommonItems.txt
templateFile = OpenFile(m_CommonItems, FileMode.WRITE);
FPrintln(templateFile, "Rag 4\nHuntingKnife\nMatchbox\nHatchet\nFlashlight\nBattery9V\nSodaCan_Cola\nBakedBeansCan");
CloseFile(templateFile);
// create default Regular.txt
templateFile = OpenFile(m_RegularLoadout, FileMode.WRITE);
FPrintln(templateFile, "BomberJacket_Grey\nJeans_Black\nTaloonBag_Blue\nAthleticShoes_Grey");
CloseFile(templateFile);
}
if (!FileExist(m_DonatorDirectory))
{
string template = GetDonatorFile("STEAMIDHERE");
MakeDirectory(m_DonatorDirectory);
// create template donator file
templateFile = OpenFile(template, FileMode.WRITE);
FPrintln(templateFile, "BomberJacket_Blue\nJeans_Grey\nTaloonBag_Orange\nAthleticShoes_Brown");
CloseFile(templateFile);
}
}
//!!! REPLACES EXISTING METHOD
override void StartingEquipSetup(PlayerBase player, bool clothesChosen)
{
player.RemoveAllItems(); // clear all default spawning items
FileHandle donatorFile;
string line;
TStringArray contents = new TStringArray();
string file = GetDonatorFile(player.GetIdentity().GetPlainId());
if (FileExist(file))
{
SpawnLoadout(player, ReadFileLines(file)); // spawn donator loadout
return;
}
SpawnLoadout(player, ReadFileLines(m_RegularLoadout)); // spawn regular player loadout
}
private void SpawnLoadout(PlayerBase player, ref TStringArray loadout)
{
FileHandle loadoutFile;
string line;
// creates clothes loadout
foreach (string clothes : loadout)
player.GetInventory().CreateInInventory(clothes);
// creates common items
TStringArray items = ReadFileLines(m_CommonItems);
foreach (string item : items)
{
if (item.Contains(" ")) // check for space, which signifies a quantity item
{
CreateQuantityItem(player, item);
continue;
}
player.GetInventory().CreateInInventory(item);
}
}
private void CreateQuantityItem(PlayerBase player, string item)
{
TStringArray quantity = new TStringArray();
item.Split(" ", quantity);
ItemBase quantityItem = player.GetInventory().CreateInInventory(quantity[0]);
quantityItem.SetQuantity(quantity[1].ToFloat());
}
private string GetDonatorFile(string id)
{
return string.Format("%1%2.txt", m_DonatorDirectory, id);
}
private TStringArray ReadFileLines(string path)
{
FileHandle file;
string line;
TStringArray contents = new TStringArray();
file = OpenFile(path, FileMode.READ);
while (FGets(file, line) > 0)
{
line.Trim();
if (line != string.Empty)
{
contents.Insert(line);
line = string.Empty;
}
}
CloseFile(file);
return contents;
}
};
После того как вы вставили код, сохраняйте файл. И запускайте сервер!
Если ничего не вылезло и сервер нормально запустился, в папке profiles появится папка Spawnloadout.
В ней вы видите файлы: Regular.txt ; CommonItems.txt
Эти файлы нужны для стартового снаряжения игрока при спавне. Regular - Для одежды ; CommonItems - Для предметов
Папка Donator отвечает за кастомные сета игрокам по SteamID64. В этой папке будет файл STEAMIDHERE.txt
Чтобы прописать сет по SteamID64 нужно изменить название файла и в нем прописать все что нужно выдавать игроку, тут нету разделения на файлы, все нужно писать в 1 файл (Чтобы небыло багов пишите сначало одежду а потом предметы)
Все обновляется в реальном времени ничего перезапускать не нужно.
P.S: Автор не я !!!