Jump to content
Quake Rocks

Zombie Hordes to my server

Recommended Posts

i was wondering if someone knew how to implement zombie horde events on my server? or can give me a how - to link or paste me the code and where what needs to go? im googling around and i cant find nothing, my google fu must suck LOL but i see other servers with random horde announcements

i run CONTAGION: PVE WHITELISTED

 

and some of my player base are requesting it but i just cant find it

 

any and all help is greatly appreciated, im not really a game modder, just a server administrator/linux guy

 

i have the weapon redux pack installed but thats it for now since im not seeing any keys on the steam workshop for the others and would like to keep verify signatures on

 

other stuff ive cut in myself like black ravens kill messages and kill logger, but kept the thrist and hunger aspect of the game, just slightly modified, also got the older air drops mod but i see theres a new one now

Share this post


Link to post
Share on other sites

Github is a solid resource for DayZ modding and custom scripts.  I can't vouch for the module(s) in Da0ne's repo, but I've seen plenty of folks reference it for various functionality.  Below is a link directly to what appears to be their 'InfectedHorde' event implementation. 

 

https://github.cm/Da0ne/DZMods/blob/master/mpmissions/DayZSurvival.chernarusplus/ScriptedMods/Modules/ServerEvents/InfectedHordes.c

Share this post


Link to post
Share on other sites
20 hours ago, Daveguy said:

Github is a solid resource for DayZ modding and custom scripts.  I can't vouch for the module(s) in Da0ne's repo, but I've seen plenty of folks reference it for various functionality.  Below is a link directly to what appears to be their 'InfectedHorde' event implementation. 

 

https://github.cm/Da0ne/DZMods/blob/master/mpmissions/DayZSurvival.chernarusplus/ScriptedMods/Modules/ServerEvents/InfectedHordes.c

Server doesnt run with this code. 
error with Bszmb.AttachEventHandle

Share this post


Link to post
Share on other sites

You need the full mission for da0ne scripts to work as is, you can disable the things you don't want 

Share this post


Link to post
Share on other sites

Hi Dudes,

someone told me that i can merge these

Spoiler

class InfectedHordes
{
    ref map<string, vector> m_HordePositions = new map<string, vector>;

    string m_NewHordeMsg       = "A New Horde of Zombies Showed up Around: ";
    string m_LastSeenMsg      = "The Horde of Zombies Was Last Seen Around: ";

    int CURRENT_STAMP;
    int CURRENT_STAMP_MSG;
    int MESSAGE_INTERVAL     = 300000;   //in ms time between each message 300000
    int COOL_DOWN_INTERVAL   = 1800000;  //In ms the time between each event
    int UPDATE_INTERVAL      = 5000;    //In ms the time between each update ( don't change unless you know what you are doing :) )
    int INT_MAX_ZOMBIES      = 125;     //Maximum amount of zombies
    int INT_MIN_ZOMBIES      = 65;      //Minimum amount of zombies

    bool m_EventOnGoing     = false;

    ref array<EntityAI> m_SpawnedZombies = new array<EntityAI>;

    string m_CurrentZone;
    vector m_CurrentZonePos;

    void InfectedHordes()
    {
        //All possible spawn points of hordes
        m_HordePositions.Insert( "Severograd", "8428 0 12767" ); //string Name of location, vector centre position
        m_HordePositions.Insert( "Stary", "6046 0 7733" );
        m_HordePositions.Insert( "Vybor", "3784 0 8923" );
        m_HordePositions.Insert( "NWAFS", "4540 0 9645" );
        m_HordePositions.Insert( "NWAFC", "4823 0 10457" );
        m_HordePositions.Insert( "NWAFN", "4214 0 10977" );
        m_HordePositions.Insert( "Balota Air Strip", "4467 0 2496" );
        m_HordePositions.Insert( "Cherno City Centre", "6649 0 2710" );
        m_HordePositions.Insert( "Cherno West", "6374 0 2361" );
        m_HordePositions.Insert( "Cherno East", "7331 0 2850" );
        m_HordePositions.Insert( "Elektro West", "10077 0 1988" );
        m_HordePositions.Insert( "Elektro East", "10553 0 2313" );
        m_HordePositions.Insert( "Berezino City Centre", "12319 0 9530" );
        m_HordePositions.Insert( "Berezino South", "11991 0 9116" );
        m_HordePositions.Insert( "Berezino North", "12823 0 10078" );
        m_HordePositions.Insert( "Svetlojarsk", "13900 0 13258" );    
        m_HordePositions.Insert( "Zelenogorsk South", "2572 0 5105" );
        m_HordePositions.Insert( "Zelenogorsk North", "2741 0 5416" );
        m_HordePositions.Insert( "Novaya Petrovka", "3395 0 13013" );
        
        CURRENT_STAMP = GetGame().GetTime();
        CURRENT_STAMP_MSG = GetGame().GetTime();
        m_SpawnedZombies.Clear();
        SelectZone();
        SpawnHorde();
        string message = m_NewHordeMsg + m_CurrentZone;
        GlobalNotifier("inform",message);

        GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(this.onUpdate, UPDATE_INTERVAL, true);
        Print("Infected Hordes...INIT!");
    }

    vector SnapToGround(vector pos)
    {
        float pos_x = pos[0];
        float pos_z = pos[2];
        float pos_y = GetGame().SurfaceY( pos_x, pos_z );
        vector tmp_pos = Vector( pos_x, pos_y, pos_z );
        tmp_pos[1] = tmp_pos[1] + pos[1];

        return tmp_pos;
    }
    
    void SpawnHorde()
    {
        m_EventOnGoing = true;

        int oRandValue   = Math.RandomIntInclusive(INT_MIN_ZOMBIES,INT_MAX_ZOMBIES);

        if (oRandValue != 0)
        {
            for (int i = 0; i < oRandValue; ++i)
            {
                int rndX  = Math.RandomIntInclusive(10,35);
                int rndY  = Math.RandomIntInclusive(25,65);
                int oSkin = Math.RandomIntInclusive(0,5);
                int dropChance = Math.RandomIntInclusive(0,1);
                        
                vector pos = SnapToGround(Vector(m_CurrentZonePos[0] + rndX, m_CurrentZonePos[1], m_CurrentZonePos[2] + rndY));
                string zmbClass = ZombieClasses.GetRandomElement();

                EntityAI AIzmb = GetGame().CreateObject( zmbClass, pos, false, true );
                ref ZombieBase Bszmb;
                Class.CastTo(Bszmb,AIzmb);
                Bszmb.AttachEventHandle(PossibleLootDrops,PossibleWeaponDrops,dropChance);

                m_SpawnedZombies.Insert(AIzmb);

                if (oSkin == 5)
                {
                    AIzmb.SetObjectMaterial( 0, "DZ\\data\\data\\laser.rvmat" );
                    AIzmb.SetObjectMaterial( 1, "DZ\\data\\data\\laser.rvmat" );
                    AIzmb.SetObjectMaterial( 2, "DZ\\data\\data\\laser.rvmat" );
                }
            }
        }
    }

    void SelectZone()
    {
        int totalPossibleTowns  = m_HordePositions.Count();
        int oRandValue = Math.RandomIntInclusive(0,totalPossibleTowns);

        string TownName = m_HordePositions.GetKey(oRandValue);
        vector TownPosition = m_HordePositions.Get(TownName);
        m_CurrentZone    = TownName;
        m_CurrentZonePos = TownPosition;
    }

    void GlobalNotifier(string task, string message)
    {
        switch(task)
        {
            case "inform":
            GetGame().ChatPlayer(5,message);
            break;
        }
    }

    void CleanUp()
    {
        for (int i = 0; i < m_SpawnedZombies.Count(); ++i)
        {
            EntityAI zmb = m_SpawnedZombies.Get(i);
            GetGame().ObjectDelete(zmb);
        }
        m_SpawnedZombies.Clear();
    }

    void onUpdate()
    {
        int newStamp = GetGame().GetTime();
        string message;

        if (newStamp - CURRENT_STAMP >= COOL_DOWN_INTERVAL)
        {
            //Select new area
            if (m_EventOnGoing)
            {
                CleanUp();
                SelectZone();
                SpawnHorde();
                message = m_NewHordeMsg + m_CurrentZone;
                GlobalNotifier("inform",message);
            }
            CURRENT_STAMP = GetGame().GetTime();
        }

        if (newStamp - CURRENT_STAMP_MSG >= MESSAGE_INTERVAL)
        {
            //Do Message
            if (m_EventOnGoing)
            {
                message = m_LastSeenMsg + m_CurrentZone;
                GlobalNotifier("inform",message);
            }
            CURRENT_STAMP_MSG = GetGame().GetTime();
        }
    }

    ref TStringArray PossibleLootDrops = {
        "ammo_45acp", "ammo_308win", "ammo_9x19", "ammo_380", "ammo_556x45", "ammo_762x54", "ammo_762x54tracer", "ammo_762x39", "ammo_9x39", "ammo_22", "ammo_12gapellets",
        "mag_cmag_10rnd", "mag_cmag_10rnd_black", "mag_cmag_10rnd_green", "mag_cmag_20rnd", "mag_cmag_20rnd_black", "mag_cmag_20rnd_green", 
        "mag_cmag_30rnd", "mag_cmag_30rnd_black", "mag_cmag_30rnd_green", "mag_cmag_40rnd", "mag_cmag_40rnd_black", "mag_cmag_40rnd_green",
    };

    ref TStringArray PossibleWeaponDrops = {
        "AKM", "M4A1", "izh18", "mp5k", "ump45", "svd", "mosin9130","mosin9130_black",
        "mosin9130_green","mosin9130_camo",
    };


    ref TStringArray ZombieClasses = {
    "ZmbM_HermitSkinny_Beige","ZmbM_HermitSkinny_Black","ZmbM_HermitSkinny_Green","ZmbM_HermitSkinny_Red","ZmbM_FarmerFat_Beige","ZmbM_FarmerFat_Blue","ZmbM_FarmerFat_Brown",
    "ZmbM_FarmerFat_Green","ZmbF_CitizenANormal_Beige","ZmbF_CitizenANormal_Brown",
    "ZmbF_CitizenANormal_Blue","ZmbM_CitizenASkinny_Blue","ZmbM_CitizenASkinny_Brown",
    "ZmbM_CitizenASkinny_Grey","ZmbM_CitizenASkinny_Red","ZmbM_CitizenBFat_Blue","ZmbM_CitizenBFat_Red",
    "ZmbM_CitizenBFat_Green","ZmbF_CitizenBSkinny","ZmbM_PrisonerSkinny",
    "ZmbM_FirefighterNormal","ZmbM_FishermanOld_Blue","ZmbM_FishermanOld_Green",
    "ZmbM_FishermanOld_Grey","ZmbM_FishermanOld_Red","ZmbM_JournalistSkinny",
    "ZmbF_JournalistNormal_Blue","ZmbF_JournalistNormal_Green","ZmbF_JournalistNormal_Red","ZmbF_JournalistNormal_White",
    "ZmbM_ParamedicNormal_Blue","ZmbM_ParamedicNormal_Green","ZmbM_ParamedicNormal_Red",
    "ZmbM_ParamedicNormal_Black","ZmbF_ParamedicNormal_Blue","ZmbF_ParamedicNormal_Green",
    "ZmbF_ParamedicNormal_Red","ZmbM_HikerSkinny_Blue","ZmbM_HikerSkinny_Green","ZmbM_HikerSkinny_Yellow",
    "ZmbF_HikerSkinny_Blue","ZmbF_HikerSkinny_Grey","ZmbF_HikerSkinny_Green","ZmbF_HikerSkinny_Red",
    "ZmbM_HunterOld_Autumn","ZmbM_HunterOld_Spring","ZmbM_HunterOld_Summer","ZmbM_HunterOld_Winter",
    "ZmbF_SurvivorNormal_Blue","ZmbF_SurvivorNormal_Orange","ZmbF_SurvivorNormal_Red",
    "ZmbF_SurvivorNormal_White","ZmbM_SurvivorDean_Black","ZmbM_SurvivorDean_Blue","ZmbM_SurvivorDean_Grey",
    "ZmbM_PolicemanFat","ZmbF_PoliceWomanNormal",
    "ZmbM_PolicemanSpecForce","ZmbM_SoldierNormal",
    "ZmbM_usSoldier_normal_Woodland","ZmbM_usSoldier_normal_Desert","ZmbM_CommercialPilotOld_Blue",
    "ZmbM_CommercialPilotOld_Olive","ZmbM_CommercialPilotOld_Brown","ZmbM_CommercialPilotOld_Grey",
    "ZmbM_PatrolNormal_PautRev","ZmbM_PatrolNormal_Autumn","ZmbM_PatrolNormal_Flat","ZmbM_PatrolNormal_Summer",
    "ZmbM_JoggerSkinny_Blue","ZmbM_JoggerSkinny_Green","ZmbM_JoggerSkinny_Red","ZmbF_JoggerSkinny_Blue",
    "ZmbF_JoggerSkinny_Brown","ZmbF_JoggerSkinny_Green","ZmbF_JoggerSkinny_Red","ZmbM_MotobikerFat_Beige",
    "ZmbM_MotobikerFat_Black","ZmbM_MotobikerFat_Blue","ZmbM_VillagerOld_Blue","ZmbM_VillagerOld_Green",
    "ZmbM_VillagerOld_White","ZmbM_SkaterYoung_Blue","ZmbM_SkaterYoung_Brown","ZmbM_SkaterYoung_Green",
    "ZmbM_SkaterYoung_Grey","ZmbF_SkaterYoung_Brown","ZmbF_SkaterYoung_Striped","ZmbF_SkaterYoung_Violet",
    "ZmbF_DoctorSkinny","ZmbF_BlueCollarFat_Blue","ZmbF_BlueCollarFat_Green",
    "ZmbF_BlueCollarFat_Red","ZmbF_BlueCollarFat_White","ZmbF_MechanicNormal_Beige","ZmbF_MechanicNormal_Green",
    "ZmbF_MechanicNormal_Grey","ZmbF_MechanicNormal_Orange","ZmbM_MechanicSkinny_Blue","ZmbM_MechanicSkinny_Grey",
    "ZmbM_MechanicSkinny_Green","ZmbM_MechanicSkinny_Red","ZmbM_ConstrWorkerNormal_Beige",
    "ZmbM_ConstrWorkerNormal_Black","ZmbM_ConstrWorkerNormal_Green","ZmbM_ConstrWorkerNormal_Grey",
    "ZmbM_HeavyIndustryWorker","ZmbM_OffshoreWorker_Green","ZmbM_OffshoreWorker_Orange","ZmbM_OffshoreWorker_Red",
    "ZmbM_OffshoreWorker_Yellow","ZmbF_NurseFat","ZmbM_HandymanNormal_Beige",
    "ZmbM_HandymanNormal_Blue","ZmbM_HandymanNormal_Green","ZmbM_HandymanNormal_Grey","ZmbM_HandymanNormal_White",
    "ZmbM_DoctorFat","ZmbM_Jacket_beige","ZmbM_Jacket_black","ZmbM_Jacket_blue","ZmbM_Jacket_bluechecks",
    "ZmbM_Jacket_brown","ZmbM_Jacket_greenchecks","ZmbM_Jacket_grey","ZmbM_Jacket_khaki","ZmbM_Jacket_magenta","ZmbM_Jacket_stripes",
    "ZmbF_PatientOld","ZmbM_PatientSkinny","ZmbF_ShortSkirt_beige",
    "ZmbF_ShortSkirt_black","ZmbF_ShortSkirt_brown","ZmbF_ShortSkirt_green","ZmbF_ShortSkirt_grey","ZmbF_ShortSkirt_checks",
    "ZmbF_ShortSkirt_red","ZmbF_ShortSkirt_stripes","ZmbF_ShortSkirt_white","ZmbF_ShortSkirt_yellow",
    "ZmbF_VillagerOld_Blue","ZmbF_VillagerOld_Green","ZmbF_VillagerOld_Red","ZmbF_VillagerOld_White","ZmbM_Soldier","ZmbM_SoldierAlice",
    "ZmbM_SoldierHelmet","ZmbM_SoldierVest","ZmbM_SoldierAliceHelmet","ZmbM_SoldierVestHelmet",
    "ZmbF_MilkMaidOld_Beige","ZmbF_MilkMaidOld_Black","ZmbF_MilkMaidOld_Green","ZmbF_MilkMaidOld_Grey",
    "ZmbM_priestPopSkinny","ZmbM_ClerkFat_Brown","ZmbM_ClerkFat_Grey","ZmbM_ClerkFat_Khaki","ZmbM_ClerkFat_White","ZmbF_Clerk_Normal_Blue","ZmbF_Clerk_Normal_White","ZmbF_Clerk_Normal_Green","ZmbF_Clerk_Normal_Red",
    };
};
 

into my init.c...

Spoiler

#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\plugins\\betterairdrop.c"
#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\plugins\\Correct_InGame_time.c"

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.0, 0.1 ); // 0.1, 0.3
    weather.GetFog().SetForecastChangeLimits( 0.15, 0.45 ); //0.05, 0.10

    weather.GetOvercast().SetForecastTimeLimits( 1800 , 1800 ); //3600 , 3600
    weather.GetRain().SetForecastTimeLimits( 600 , 600 );   //300 , 300
    weather.GetFog().SetForecastTimeLimits( 1800 , 1800 );  //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);
    //SERVERTIME
    GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(Correct_InGame_time, 1000, true);
    //SERVERTIME
    
    // bridge skalisky
    Object obj;
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12999.700195 -7.890600 3284.985596");
    obj.SetOrientation("55.999985 0.000000 0.000000");
    obj.SetPosition("12999.700195 -7.890600 3284.985596");
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12988.517578 -7.890600 3301.570557");
    obj.SetOrientation("55.999985 0.000000 0.000000");
    obj.SetPosition("12988.517578 -7.890600 3301.570557");
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12977.330078 -7.890600 3318.156250");
    obj.SetOrientation("56.000000 0.000000 0.000000");
    obj.SetPosition("12977.330078 -7.890600 3318.156250");
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12966.149414 -7.890600 3334.729980");
    obj.SetOrientation("56.000000 0.000000 0.000000");
    obj.SetPosition("12966.149414 -7.890600 3334.729980");
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12954.969727 -7.890600 3351.300049");
    obj.SetOrientation("56.000000 0.000000 0.000000");
    obj.SetPosition("12954.969727 -7.890600 3351.300049");
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12943.798828 -7.890600 3367.870117");
    obj.SetOrientation("56.000000 0.000000 0.000000");
    obj.SetPosition("12943.798828 -7.890600 3367.870117");
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12932.620117 -7.890600 3384.443604");
    obj.SetOrientation("56.000000 0.000000 0.000000");
    obj.SetPosition("12932.620117 -7.890600 3384.443604");
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12921.450195 -7.890600 3401.000000");
    obj.SetOrientation("56.000000 0.000000 0.000000");
    obj.SetPosition("12921.450195 -7.890600 3401.000000");
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12910.259766 -7.890600 3417.581055");
    obj.SetOrientation("56.000000 0.000000 0.000000");
    obj.SetPosition("12910.259766 -7.890600 3417.581055");
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12899.080078 -7.890600 3434.149902");
    obj.SetOrientation("56.000000 0.000000 0.000000");
    obj.SetPosition("12899.080078 -7.890600 3434.149902");
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12887.900391 -7.890600 3450.728027");
    obj.SetOrientation("56.000000 0.000000 0.000000");
    obj.SetPosition("12887.900391 -7.890600 3450.728027");
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12876.709961 -7.890600 3467.312256");
    obj.SetOrientation("56.000000 0.000000 0.000000");
    obj.SetPosition("12876.709961 -7.890600 3467.312256");
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12865.540039 -7.890600 3483.872803");
    obj.SetOrientation("56.000000 0.000000 0.000000");
    obj.SetPosition("12865.540039 -7.890600 3483.872803");
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12854.360352 -7.890600 3500.449463");
    obj.SetOrientation("56.000000 0.000000 0.000000");
    obj.SetPosition("12854.360352 -7.890600 3500.449463");
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12843.179688 -7.890600 3517.039795");
    obj.SetOrientation("56.000000 0.000000 0.000000");
    obj.SetPosition("12843.179688 -7.890600 3517.039795");
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12831.998047 -7.890600 3533.620117");
    obj.SetOrientation("56.000000 0.000000 0.000000");
    obj.SetPosition("12831.998047 -7.890600 3533.620117");
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12820.809570 -7.890600 3550.198975");
    obj.SetOrientation("56.000000 0.000000 0.000000");
    obj.SetPosition("12820.809570 -7.890600 3550.198975");
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12809.627930 -7.890600 3566.780029");
    obj.SetOrientation("56.000000 0.000000 0.000000");
    obj.SetPosition("12809.627930 -7.890600 3566.780029");
    obj = GetGame().CreateObject("Dam_Concrete_20_floodgate", "12798.440430 -7.890600 3583.360107");
    obj.SetOrientation("56.000000 0.000000 0.000000");
    obj.SetPosition("12798.440430 -7.890600 3583.360107");
    obj = GetGame().CreateObject("Land_Container_1Moh", "12809.701172 2.301730 3576.680176");
    obj.SetOrientation("138.000015 0.000000 0.000000");
    obj.SetPosition("12809.701172 2.301730 3576.680176");
    obj = GetGame().CreateObject("Land_Container_1Moh", "12835.256836 2.086504 3538.797119");
    obj.SetOrientation("-20.000008 0.000000 0.000000");
    obj.SetPosition("12835.256836 2.086504 3538.797119");
    obj = GetGame().CreateObject("Land_Container_1Moh", "12894.056641 2.251730 3455.602783");
    obj.SetOrientation("-69.000000 0.000000 0.000000");
    obj.SetPosition("12894.056641 2.251730 3455.602783");
    obj = GetGame().CreateObject("Land_Container_1Moh", "12934.767578 2.301730 3387.844238");
    obj.SetOrientation("0.000000 0.000000 0.000000");
    obj.SetPosition("12934.767578 2.301730 3387.844238");
    obj = GetGame().CreateObject("Land_Container_1Moh", "12990.190430 2.251730 3310.003662");
    obj.SetOrientation("-62.000011 0.000000 0.000000");
    obj.SetPosition("12990.190430 2.251730 3310.003662");
    obj = GetGame().CreateObject("Land_Container_1Bo", "12999.427734 2.249999 3290.898682");
    obj.SetOrientation("-17.000000 0.000000 0.000000");
    obj.SetPosition("12999.427734 2.249999 3290.898682");
    obj = GetGame().CreateObject("Land_Container_1Bo", "12966.283203 2.201730 3346.047607");
    obj.SetOrientation("-33.000004 0.000000 0.000000");
    obj.SetPosition("12966.283203 2.201730 3346.047607");
    obj = GetGame().CreateObject("Land_Container_1Bo", "12947.516602 3.970427 3371.596680");
    obj.SetOrientation("-30.000006 0.000000 0.000000");
    obj.SetPosition("12947.516602 1.970427 3371.596680");
    obj = GetGame().CreateObject("Land_Container_1Bo", "12912.168945 2.301730 3425.531006");
    obj.SetOrientation("-57.999996 0.000000 0.000000");
    obj.SetPosition("12912.168945 2.301730 3425.531006");
    obj = GetGame().CreateObject("Land_Container_1Mo", "12900.983398 2.060063 3443.850830");
    obj.SetOrientation("-4.000000 0.000000 0.000000");
    obj.SetPosition("12900.983398 2.060063 3443.850830");
    obj = GetGame().CreateObject("Land_Container_1Mo", "12912.173828 4.767287 3425.496338");
    obj.SetOrientation("-57.999992 0.000000 0.000000");
    obj.SetPosition("12912.173828 4.767287 3425.496338");
    obj = GetGame().CreateObject("Land_Boat_Small3", "12833.511719 2.117162 3619.730957");
    obj.SetOrientation("0.000000 0.000000 0.000000");
    obj.SetPosition("12833.511719 2.117162 3619.730957");
    obj = GetGame().CreateObject("Land_Boat_Small2", "12813.396484 2.016087 3605.192139");
    obj.SetOrientation("0.000000 0.000000 0.000000");
    obj.SetPosition("12813.396484 2.016087 3605.192139");
    obj = GetGame().CreateObject("Land_Boat_Small2", "12768.120117 2.487283 3579.249756");
    obj.SetOrientation("0.000000 0.000000 0.000000");
    obj.SetPosition("12768.120117 2.487283 3579.249756");
    obj = GetGame().CreateObject("Land_Boat_Small2", "12735.276367 2.460250 3556.484863");
    obj.SetOrientation("0.000000 0.000000 0.000000");
    obj.SetPosition("12735.276367 2.460250 3556.484863");
    obj = GetGame().CreateObject("Land_Boat_Small1", "12776.724609 4.262555 3591.847168");
    obj.SetOrientation("0.000000 0.000000 0.000000");
    obj.SetPosition("12776.724609 4.262555 3591.847168");
    obj = GetGame().CreateObject("Land_Boat_Small1", "12829.964844 1.846758 3614.488770");
    obj.SetOrientation("0.000000 0.000000 0.000000");
    obj.SetPosition("12829.964844 1.846758 3614.488770");
    obj = GetGame().CreateObject("Land_Wreck_Uaz", "12832.424805 1.935676 3544.248535");
    obj.SetOrientation("0.000000 0.000000 0.000000");
    obj.SetPosition("12832.424805 1.935676 3544.248535");
    obj = GetGame().CreateObject("Land_Wreck_Uaz", "12889.860352 1.985680 3460.103760");
    obj.SetOrientation("-70.000000 0.000000 0.000000");
    obj.SetPosition("12889.860352 1.985680 3460.103760");
    obj = GetGame().CreateObject("Land_Wreck_Uaz", "12937.300781 1.935676 3383.198975");
    obj.SetOrientation("0.000000 0.000000 0.000000");
    obj.SetPosition("12937.300781 1.935676 3383.198975");
    obj = GetGame().CreateObject("Land_Wreck_S1023_Blue", "12931.631836 2.091624 3390.962158");
    obj.SetOrientation("-25.000008 0.000000 0.000000");
    obj.SetPosition("12931.631836 2.091624 3390.962158");
    obj = GetGame().CreateObject("Land_Wreck_Volha_Blue", "12986.588867 1.829433 3314.493896");
    obj.SetOrientation("0.000000 0.000000 0.000000");
    obj.SetPosition("12986.588867 1.829433 3314.493896");
    obj = GetGame().CreateObject("Land_Wreck_Volha_Blue", "13003.046875 1.829433 3284.915771");
    obj.SetOrientation("-17.000004 0.000000 0.000000");
    obj.SetPosition("13003.046875 1.829433 3284.915771");
    obj = GetGame().CreateObject("Land_Wreck_V3S", "12903.459961 2.536791 3436.341797");
    obj.SetOrientation("-24.000000 -4.000000 -0.000000");
    obj.SetPosition("12903.459961 2.536791 3436.341797");
    obj = GetGame().CreateObject("Land_Wreck_Lada_Red", "12871.142578 1.753987 3480.337891");
    obj.SetOrientation("0.000000 0.000000 0.000000");
    obj.SetPosition("12871.142578 1.753987 3480.337891");
    obj = GetGame().CreateObject("Land_Wreck_Lada_Red", "12849.930664 1.753987 3521.847412");
    obj.SetOrientation("-65.999985 0.000000 0.000000");
    obj.SetPosition("12849.930664 1.753987 3521.847412");
    obj = GetGame().CreateObject("Land_Container_1Aoh", "12860.179688 2.301730 3505.910400");
    obj.SetOrientation("-32.000004 0.000000 0.000000");
    obj.SetPosition("12860.179688 2.301730 3505.910400");
    obj = GetGame().CreateObject("Land_Container_1Moh", "12884.648438 2.301730 3470.343018");
    obj.SetOrientation("0.000000 0.000000 0.000000");
    obj.SetPosition("12884.648438 2.301730 3470.343018");
    obj = GetGame().CreateObject("Land_Container_1Bo", "12820.764648 2.301730 3562.224609");
    obj.SetOrientation("0.000000 0.000000 0.000000");
    obj.SetPosition("12820.764648 2.301730 3562.224609");
    obj = GetGame().CreateObject("Land_Container_1Aoh", "12876.986328 0.573664 3519.558594");
    obj.SetOrientation("0.000000 0.000000 0.000000");
    obj.SetPosition("12876.986328 0.573664 3519.558594");
    obj = GetGame().CreateObject("Land_Container_1Aoh", "12851.830078 0.312851 3463.268066");
    obj.SetOrientation("-80.000000 0.000000 0.000000");
    obj.SetPosition("12851.830078 0.312851 3463.268066");
    obj = GetGame().CreateObject("Land_Container_1Aoh", "12936.000977 0.579718 3442.836914");
    obj.SetOrientation("94.000031 0.000000 0.000000");
    obj.SetPosition("12936.000977 0.579718 3442.836914");
    obj = GetGame().CreateObject("Land_Container_1Aoh", "12936.377930 -0.158530 3346.650391");
    obj.SetOrientation("34.000000 0.000000 0.000000");
    obj.SetPosition("12936.377930 -0.158530 3346.650391");
    obj = GetGame().CreateObject("Land_Container_1Aoh", "13002.358398 1.284515 3319.798828");
    obj.SetOrientation("-74.000000 0.000000 0.000000");
    obj.SetPosition("13002.358398 1.284515 3319.798828");
    obj = GetGame().CreateObject("Land_Container_1Bo", "12946.557617 0.260173 3406.045410");
    obj.SetOrientation("-67.000000 0.000000 0.000000");
    obj.SetPosition("12946.557617 0.260173 3406.045410");
    obj = GetGame().CreateObject("Land_Container_1Bo", "12821.682617 0.678651 3528.143799");
    obj.SetOrientation("-64.000000 0.000000 0.000000");
    obj.SetPosition("12821.682617 0.678651 3528.143799");
    obj = GetGame().CreateObject("Land_Container_1Bo", "12851.442383 0.351952 3561.598877");
    obj.SetOrientation("-57.999992 0.000000 0.000000");
    obj.SetPosition("12851.442383 0.351952 3561.598877");
    obj = GetGame().CreateObject("Land_Container_1Bo", "12918.758789 0.920032 3364.437012");
    obj.SetOrientation("-60.999996 0.000000 0.000000");
    obj.SetPosition("12918.758789 0.920032 3364.437012");
    obj = GetGame().CreateObject("Land_Container_1Mo", "12934.750977 0.666381 3418.666992");
    obj.SetOrientation("-52.000000 0.000000 0.000000");
    obj.SetPosition("12934.750977 0.666381 3418.666992");
    obj = GetGame().CreateObject("Land_Container_1Mo", "12856.403320 0.043793 3469.494629");
    obj.SetOrientation("-45.999996 0.000000 0.000000");
    obj.SetPosition("12856.403320 0.043793 3469.494629");
    obj = GetGame().CreateObject("Land_Container_1Mo", "12879.313477 0.908100 3459.768066");
    obj.SetOrientation("-120.999969 -64.000015 -54.999989");
    obj.SetPosition("12879.313477 0.908100 3459.768066");
    obj = GetGame().CreateObject("Land_Lighthouse", "13057.658203 27.043219 3247.424805");
    obj.SetOrientation("0.000000 0.000000 0.000000");
    obj.SetPosition("13057.658203 27.043219 3247.424805");
    //BRIDGE

}

class CustomMission: MissionServer
{    
    //AIRDROP
    ref BetterAirdrop Airdrop;
    void CustomMission() {
        Airdrop = new BetterAirdrop();
    }
    //AIRDROP
    
        
    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);
        
        itemEnt = player.GetInventory().CreateInInventory("ChernarusMap");
        itemBs = ItemBase.Cast(itemEnt);
        
        itemEnt = player.GetInventory().CreateInInventory("WaterBottle");
        itemBs = ItemBase.Cast(itemEnt);
        itemBs.SetQuantity(7);
    }
};
  
Mission CreateCustomMission(string path)
{
    return new CustomMission();
}

how does it work.. can someone help me ?

Mfg Burschie

Edited by Burschie

Share this post


Link to post
Share on other sites

download da0nes vanilla++ 0.2 as thats only server side gives you hordes and optional other goodies and keeps your init.c cleaner

also in the horde code you posted you have double data this will cause some of the horde to be see through like ghosts

   {
                    AIzmb.SetObjectMaterial( 0, "DZ\\data\\data\\laser.rvmat" );
                    AIzmb.SetObjectMaterial( 1, "DZ\\data\\data\\laser.rvmat" );
                    AIzmb.SetObjectMaterial( 2, "DZ\\data\\data\\laser.rvmat" );
                }

edit it to this

   {
                    AIzmb.SetObjectMaterial( 0, "DZ\\data\\laser.rvmat" );
                    AIzmb.SetObjectMaterial( 1, "DZ\\data\\laser.rvmat" );
                    AIzmb.SetObjectMaterial( 2, "DZ\\data\\laser.rvmat" );
                }

Share this post


Link to post
Share on other sites
3 hours ago, Sy8282 said:

download da0nes vanilla++ 0.2 as thats only server side gives you hordes and optional other goodies and keeps your init.c cleaner

also in the horde code you posted you have double data this will cause some of the horde to be see through like ghosts

   {
                    AIzmb.SetObjectMaterial( 0, "DZ\\data\\data\\laser.rvmat" );
                    AIzmb.SetObjectMaterial( 1, "DZ\\data\\data\\laser.rvmat" );
                    AIzmb.SetObjectMaterial( 2, "DZ\\data\\data\\laser.rvmat" );
                }

edit it to this

   {
                    AIzmb.SetObjectMaterial( 0, "DZ\\data\\laser.rvmat" );
                    AIzmb.SetObjectMaterial( 1, "DZ\\data\\laser.rvmat" );
                    AIzmb.SetObjectMaterial( 2, "DZ\\data\\laser.rvmat" );
                }

Thank you for this.. but i have Airdrop Mission and with infectedHordes i cant get Server start with both.

So i search for a way how it works.. you know ^^

Mfg Burschie

Share this post


Link to post
Share on other sites

airdrops are bugged out at the minute unless you got something written in the last few days....

Share this post


Link to post
Share on other sites

it's actually relatively easy.
ZombieHordes.c
Save that into your dayzOffline.chernarusplus folder where init.c is

Add this to the top of init.c:

#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\InfectedHordes.c"

Add this inside override void OnInit() in init.c

ref InfectedHordes myHordes = new InfectedHordes();


And Boom... there is DaOne's infected hordes compatible with Vanilla Mission. This is NOT MY CODE. This is DaOne's code, I have merely adapted it to make it compatible for everyone. Albeit, stripped down a little and the custom loot won't spawn on them unless you modify ZombieBase.c to suit.

Edited by Aussie Cleetus
  • Like 1
  • Thanks 2

Share this post


Link to post
Share on other sites
7 hours ago, Aussie Cleetus said:

it's actually relatively easy.
ZombieHordes.c
Save that into your dayzOffline.chernarusplus folder where init.c is

Add this to the top of init.c:


#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\InfectedHordes.c"

Add this inside override void OnInit() in init.c


InfectedHordes myHordes = new InfectedHordes();


And Boom... there is DaOne's infected hordes compatible with Vanilla Mission. This is NOT MY CODE. This is DaOne's code, I have merely adapted it to make it compatible for everyone. Albeit, stripped down a little and the custom loot won't spawn on them unless you modify ZombieBase.c to suit.

Thank you for this.. i will try it out ;-)

 

Mfg Burschie

Share this post


Link to post
Share on other sites

Hey guys, I cant seem to find the line "override void OnInit() in init.c"  or get the hordes to work, adding the line at the top of the init.c file is easy enough. 

All I can find is 

}

override void StartingEquipSetup(PlayerBase player, bool clothesChosen)
  
{  

If I try adding inside brackets, sever wont load.

}

override void StartingEquipSetup(PlayerBase player, bool clothesChosen, InfectedHordes myHordes = new InfectedHordes();)
  
{  

I tired adding this line below and server wouldn't load. 

}

override void StartingEquipSetup(PlayerBase player, bool clothesChosen)

override void OnInit(InfectedHordes myHordes = new InfectedHordes();) 
  
{  

Any ideas ?

Thanks 

Share this post


Link to post
Share on other sites

Hello scripter friend !!!

 

I look for install too,  im not sure for the Oninit section...

 

override void OnInit()
    {
        ref hordes ADDED HERE ???                                                                                                                                                                                                                                                 super.OnInit();
        SetClothes(); // Function to add on the OnInit
    }

 

Ty

 

 

Share this post


Link to post
Share on other sites

https://github.com/VanillaPlusPlus/InfectedHordesPlus

Not working with Stable Update 1.01

InfectedHordesPlusSpawner.c -> problem in line 52 - > GetGame().ChatPlayer(1, "Horde has been sighted at " + config.getHordeZoneName(spawnPos));

You can not use "1"

Share this post


Link to post
Share on other sites

seems like u cannot use the Game.c chatfunctions at the moment. tried GetGame().Chat("string","colorAction")...also not working.

they removed the channel int parameter from ChatPlayer completly. 

Share this post


Link to post
Share on other sites

Does anyone have this working with the current DayZ? If so, where do you put  InfectedHordes myHordes = new InfectedHordes(); in the init file?

Share this post


Link to post
Share on other sites
On 11/16/2018 at 4:08 PM, Quake Rocks said:

i was wondering if someone knew how to implement zombie horde events on my server? or can give me a how - to link or paste me the code and where what needs to go? im googling around and i cant find nothing, my google fu must suck LOL but i see other servers with random horde announcements

i run CONTAGION: PVE WHITELISTED

 

and some of my player base are requesting it but i just cant find it

 

any and all help is greatly appreciated, im not really a game modder, just a server administrator/linux guy

 

i have the weapon redux pack installed but thats it for now since im not seeing any keys on the steam workshop for the others and would like to keep verify signatures on

 

other stuff ive cut in myself like black ravens kill messages and kill logger, but kept the thrist and hunger aspect of the game, just slightly modified, also got the older air drops mod but i see theres a new one now

https://steamcommunity.com/sharedfiles/filedetails/?id=1733084281
Have fun.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×