init.c custom spawned objects laden nciht

  • ich hab mir son kleinen pvp server zusammen gebastelt und wollte die gebäude über die init.c spawnen. Auf meinem mainserver funzt es, auf dem neuen lädt er es nicht.

    ich vermute eine falsche klammer, aber ich finde den fehler nicht. Die anderen einstellungen lädt er ohne probleme. Nur halt keine objekte




  • Das beste ist du machst es so:


    1. Erstelle einen Ordner in mpmissions (nenne diesen wie du möchtest- in meinem fall heißt dieser custommap.

    2. Dort erstellst du eine .c datei z.B. blackmarket.c ( wie in meinem fall)


    In der datei sollte es so ausschauen:


    void blackmarket()
    {
    //blackmarket
    SpawnObject( "Land_Dead_MassGrave", "13610.500000 43.818901 2942.360107", "0.000000 0.000000 0.000000" );
    SpawnObject( "Land_Dead_MassGrave", "13605.299805 43.617401 2940.860107", "0.000000 0.000000 0.000000" );
    SpawnObject( "Land_Wreck_Lada_Green", "13571.000000 27.891800 2862.949951", "-72.000000 -16.000002 0.000000" );
    SpawnObject( "Land_Wreck_Lada_Red", "13592.200195 32.409801 2861.360107", "-103.000000 -8.000001 0.000000" ); usw usw usw

    };



    Dann kannst du den Befehl so in der init.c einfügen und dadurch lädt diese deine .c datei

    dayzoffline.chernarusplus = deine map

    CUSTOMMAP = dien ordnername

    blackmarket.c = der Name deiner Datei


    "ANFANG der INIT.C"

    #include "$CurrentDir:\\mpmissions\\dayzoffline.chernarusplus\\CUSTOMMAP\\blackmarket.c"


    void SpawnObject( string type, vector position, vector orientation )
    {
    auto obj = GetGame().CreateObject( type, position );
        obj.SetPosition( position );
        obj.SetOrientation( orientation );
        obj.SetOrientation( obj.GetOrientation() ); //Collision fix
        obj.Update();
        obj.SetAffectPathgraph( true, false );
        if( obj.CanAffectPathgraph() ) 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);
    }
    }
    }

    //CUSTOM BUILDINGS ++++++++++++++++++++

    blackmarket();


    //Loot neu berechnen in allen Gebäuden
    //GetCEApi().ExportProxyData( "7500 0 7500", 15000 ); //Center of map, radius of how far to go out and find buildings.

    }

    class CustomMission: MissionServer
    {
        void SetRandomHealth(EntityAI itemEnt)
    {
            if ( itemEnt )
    {
                float rndHlt = Math.RandomFloat( 0.45, 0.65 );
                itemEnt.SetHealth01( "", "", rndHlt );
    }
    }

    override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName)
    {
    Entity playerEnt;
    playerEnt = GetGame().CreatePlayer( identity, characterName, pos, 0, "NONE" );
            Class.CastTo( m_player, playerEnt );

            GetGame().SelectPlayer( identity, m_player );

            return m_player;
    } "nach dieser Zeile ändert sich für dich nichts in der init.c"



    Verbessert mich bitte falls ich etwas falsch erklärt habe oder fragt wenn etwas unklar ist.


    Lg