}
#include "$CurrentDir:\\mpmissions\\dayzOffline.deerisle\\customs.c"
void SpawnObject(string objectName, vector position, vector orientation)
{
Object obj;
obj = Object.Cast(GetGame().CreateObject(objectName, "0 0 0"));
obj.SetPosition(position);
obj.SetOrientation(orientation);
// Force update collisions
if (obj.CanAffectPathgraph())
{
obj.SetAffectPathgraph(true, false);
GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj);
}
}
void main()
{
//INIT WEATHER BEFORE ECONOMY INIT------------------------
Weather weather = g_Game.GetWeather();
weather.MissionWeather(false); // false = use weather controller from Weather.c
weather.GetOvercast().Set( Math.RandomFloatInclusive(0.4, 0.6), 1, 0);
weather.GetRain().Set( 0, 0, 1);
weather.GetFog().Set( Math.RandomFloatInclusive(0.05, 0.1), 1, 0);
//INIT ECONOMY--------------------------------------
Hive ce = CreateHive();
if ( ce )
ce.InitOffline();
//DATE RESET AFTER ECONOMY INIT-------------------------
int year, month, day, hour, minute;
int reset_month = 9, reset_day = 20;
GetGame().GetWorld().GetDate(year, month, day, hour, minute);
if ((month == reset_month) && (day < reset_day))
{
GetGame().GetWorld().SetDate(year, reset_month, reset_day, hour, minute);
}
else
{
if ((month == reset_month + 1) && (day > reset_day))
{
GetGame().GetWorld().SetDate(year, reset_month, reset_day, hour, minute);
}
else
{
if ((month < reset_month) (month > reset_month + 1))
{
GetGame().GetWorld().SetDate(year, reset_month, reset_day, hour, minute);
}
}
}
//CEApi TestHive = GetCEApi();
//TestHive.ExportProxyProto();
//TestHive.ExportClusterData();
customs();
//TestHive.ExportProxyData( "7500 0 7500", 15000 );
}
class CustomMission: MissionServer
{
void SetRandomHealth(EntityAI itemEnt)
{
if ( itemEnt )
{
int rndHlt = Math.RandomInt(55,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)
{
EntityAI itemTop;
EntityAI itemEnt;
ItemBase itemBs;
float rand;
itemTop = player.FindAttachmentBySlotName("Body");
if ( itemTop )
{
itemEnt = itemTop.GetInventory().CreateInInventory("Rag");
if ( Class.CastTo(itemBs, itemEnt ) )
itemBs.SetQuantity(6);
itemEnt = player.GetHumanInventory().CreateInHands("FNX45");
itemEnt = itemTop.GetInventory().CreateInInventory("Mag_FNX45_15Rnd");
itemEnt = itemTop.GetInventory().CreateInInventory("Mag_FNX45_15Rnd");
itemEnt = itemTop.GetInventory().CreateInInventory("Mag_FNX45_15Rnd");
itemEnt = player.GetInventory().CreateInInventory("UKAssVest_Black");
itemEnt = player.GetInventory().CreateInInventory("TacticalGloves_Black");
itemEnt = player.GetInventory().CreateInInventory("BalaclavaMask_Blackskull");
itemEnt = player.GetInventory().CreateInInventory("BallisticHelmet_Black");
itemEnt = player.GetInventory().CreateInInventory("DryBag_Black");
itemEnt = itemTop.GetInventory().CreateInInventory("combatKnife");
itemEnt = player.GetInventory().CreateInInventory("WaterBottle");
SetRandomHealth(itemEnt);
string chemlightArray[] = { "Chemlight_White", "Chemlight_Yellow", "Chemlight_Green", "Chemlight_Red" };
int rndIndex = Math.RandomInt(0, 4);
itemEnt = itemTop.GetInventory().CreateInInventory(chemlightArray[rndIndex]);
SetRandomHealth(itemEnt);
rand = Math.RandomFloatInclusive(0.0, 1.0);
if ( rand < 0.35 )
itemEnt = player.GetInventory().CreateInInventory("TunaCan");
else if ( rand > 0.65 )
itemEnt = player.GetInventory().CreateInInventory("Pear");
else
itemEnt = player.GetInventory().CreateInInventory("BakedBeansCan");
SetRandomHealth(itemEnt);
}
}
};
Mission CreateCustomMission(string path)
{
return new CustomMission();
}