Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
222Orbita

Серверостроение – DayZ Editor

Доброго времени суток! Создал в редакторе DayZ Editor несколько объектов, экспортировал их в файле name.c. Подскажите, пожалуйста, как мне теперь прикрепить всё это дело к файлу init.c, не забивая сам файл? Я прекрасно понимаю, что нужно через #include и прописку своего void в viod main файла init.c, но вот не задача, не допираю, что нужно ещё прописать в своем name.c. Спасибо! Далее код, экспортированный из DayZ Editor:

static Object SpawnObject(string type, vector position, vector orientation, float scale = 1.0)
{
    Object obj = GetGame().CreateObjectEx(type, position, ECE_SETUP | ECE_UPDATEPATHGRAPH | ECE_CREATEPHYSICS);
    if (!obj) {
        Error("Failed to create object " + type);
        return null;
    }

    obj.SetPosition(position);
    obj.SetOrientation(orientation);
    obj.SetOrientation(obj.GetOrientation());
    obj.SetScale(scale);
    obj.Update();
	obj.SetAffectPathgraph(true, false);
	if (obj.CanAffectPathgraph()) {
        GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj);
    } 

    return obj;
}

SpawnObject("Land_Wall_Gate_Ind2Rail_L", "8388.453125 293.048859 5985.354492", "-87.013145 0.222176 -1.594930", 0.99987);
SpawnObject("Land_Wall_Gate_Ind2Rail_R", "8388.442383 292.979126 5985.322266", "-86.100441 0.234486 -1.591098", 0.999858);
SpawnObject("Land_Wall_Gate_Ind2Rail_L", "8323.677734 293.110413 5993.687988", "93.936676 0.210937 -1.594923", 0.99987);
SpawnObject("Land_Wall_Gate_Ind2Rail_R", "8323.678711 293.040680 5993.724609", "94.849335 0.219319 -1.591098", 0.999856);
SpawnObject("bldr_wall_gate_kolchoz", "8388.523438 294.686096 5985.309082", "-88.064362 0.000000 0.000000", 0.999999);
SpawnObject("bldr_wall_gate_kolchoz", "8323.491211 294.852570 5993.759766", "94.921188 0.000000 0.000000", 0.999996);
SpawnObject("Land_Wall_Gate_Village", "8388.144531 292.794006 5979.839355", "-86.087929 0.000000 -0.000000", 0.999997);
SpawnObject("Land_Wall_Gate_Village", "8324.125977 292.790375 5999.205078", "95.546715 0.000000 0.000000", 0.999993);

P.S.: Через name.dze не предлагать. Не хочу ставить DayZ Editor Loader. Спасибо!

Share this post


Link to post
Share on other sites

19 answers to this question

Recommended Posts

  • 0
Posted (edited)
void SpawnObject(string type, vector position, vector orientation, float scale = 1.0)
{
    Object obj = GetGame().CreateObjectEx(type, position, ECE_SETUP | ECE_UPDATEPATHGRAPH | ECE_CREATEPHYSICS);
    obj.SetPosition(position);
    obj.SetOrientation(orientation);
    obj.SetOrientation(obj.GetOrientation());
    obj.SetScale(scale);
    obj.Update();
	obj.SetAffectPathgraph(true, false);
	if (obj.CanAffectPathgraph()) {
        GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj);
    } 
}
void SpawnBillding()
{
SpawnObject("Land_Wall_Gate_Ind2Rail_L", "8388.453125 293.048859 5985.354492", "-87.013145 0.222176 -1.594930", 0.99987);
SpawnObject("Land_Wall_Gate_Ind2Rail_R", "8388.442383 292.979126 5985.322266", "-86.100441 0.234486 -1.591098", 0.999858);
SpawnObject("Land_Wall_Gate_Ind2Rail_L", "8323.677734 293.110413 5993.687988", "93.936676 0.210937 -1.594923", 0.99987);
SpawnObject("Land_Wall_Gate_Ind2Rail_R", "8323.678711 293.040680 5993.724609", "94.849335 0.219319 -1.591098", 0.999856);
SpawnObject("bldr_wall_gate_kolchoz", "8388.523438 294.686096 5985.309082", "-88.064362 0.000000 0.000000", 0.999999);
SpawnObject("bldr_wall_gate_kolchoz", "8323.491211 294.852570 5993.759766", "94.921188 0.000000 0.000000", 0.999996);
SpawnObject("Land_Wall_Gate_Village", "8388.144531 292.794006 5979.839355", "-86.087929 0.000000 -0.000000", 0.999997);
SpawnObject("Land_Wall_Gate_Village", "8324.125977 292.790375 5999.205078", "95.546715 0.000000 0.000000", 0.999993);
}

В инит инклюд на файл,в void main в конце
SpawnBillding();

Edited by paranoyk (see edit history)

Share this post


Link to post
Share on other sites



  • 0

@222Orbita эдитор ставишь на серверную часть и все спавнит
Можно через отдельную пбо маппинг поставить 
Либо билдлоадер

Share this post


Link to post
Share on other sites
  • 0
6 минут назад, paulmanz сказал:

эдитор ставишь на серверную часть и все спавнит

Я же написал: Через name.dze не предлагать. Не хочу ставить DayZ Editor Loader. Мне нужно именно через init.c.

Share this post


Link to post
Share on other sites
  • 0

@paranoyk Вот! Ясно и понятно! Спасибо огромное. Что-то подобное пытался сделать, но в паре строк не правильно писал. Ещё раз спасибо огромное.

Share this post


Link to post
Share on other sites
  • 0

....или подрубите как файл json созданный в эдиторе.
Для файла типа .с есть ограничение на колличество строк спавна. (но можно подлючать несколько файлов меняя SpawnObject и SpawnBillding соответсвенно.
(в предложенном примере была ошибка, убрал)

Share this post


Link to post
Share on other sites
  • 0
4 часа назад, paranoyk сказал:

(в предложенном примере была ошибка, убрал)

void SpawnObject – да, я заметил. Было void SpawnSpawnObject.

Share this post


Link to post
Share on other sites
  • 0

DayZ Editor Loader нужен в случае если удаляешь объекты с карты

Share this post


Link to post
Share on other sites
  • 0

2023 люди до сих пор ставят кастом функции спавна, когда есть оптимизированная родная с большим функционалом

 

Share this post


Link to post
Share on other sites
  • 0
2 минуты назад, OWNS1DE сказал:

2023 люди до сих пор ставят кастом функции спавна, когда есть оптимизированная родная с большим функционалом

 

Да мы ещё и на кнопочных телефонах до сих пор.

32 минуты назад, lockdog сказал:

DayZ Editor Loader нужен в случае если удаляешь объекты с карты

Ни помогает. Удалённые объекты также остаются на карте. Хотя в самом editor их нет. И да, файл name.dze закидываю в папку EditorFiles.

Share this post


Link to post
Share on other sites
  • 0

берешь свой .c файл, открываешь эдитор  
импортируешь туда этот файл
потом жмёшь экспорт в json (не COM)
и закидываешь этот json в миссию.

прописываешь в gameplaycfg.json название файла и радуешься

никакие моды на сервер ставить не надо

Share this post


Link to post
Share on other sites
  • 0

@OWNS1DE Да, вот мы олды, не ищем лёгких путей. Но спасибо за информацию.

Share this post


Link to post
Share on other sites
  • 0

тем более, олды должны уважать свой сервер и оптимизацию.

Share this post


Link to post
Share on other sites
  • 0

И как там эдитор потом отображает эти json в плане измененных размеров? Хреново..... Шел2023 год

Share this post


Link to post
Share on other sites
  • 0

@paranoyk  Все отлично и идеально отображает. Весь маппинг прописан через ванильный способ спавна - через json.

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

пробовал как @paranoyk писал: 

void SpawnObject(string type, vector position, vector orientation, float scale = 1.0)
{
    Object obj = GetGame().CreateObjectEx(type, position, ECE_SETUP | ECE_UPDATEPATHGRAPH | ECE_CREATEPHYSICS);
    obj.SetPosition(position);
    obj.SetOrientation(orientation);
    obj.SetOrientation(obj.GetOrientation());
    obj.SetScale(scale);
    obj.Update();
    obj.SetAffectPathgraph(true, false);
    if (obj.CanAffectPathgraph()) {
        GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj);
    } 
}

void SpawnBarmen()
{
SpawnObject("bldr_prop_RefrigeratorMinsk", "5245.582520 182.890854 3684.383789", "-121.613655 0.000000 -0.000000", 0.999999);
SpawnObject("bldr_prop_Plant_Cannabis", "5242.600586 183.612640 3686.916260", "-132.562836 -0.000000 -0.000000", 1);
SpawnObject("Land_Misc_Well_Pump_Blue", "5253.580078 182.225006 3678.830078", "-170.999985 0.000000 0.000000", 0.99);
SpawnObject("Land_Misc_Greenhouse", "5251.900879 184.034866 3690.741699", "57.664776 0.000000 -0.000000", 0.999998);
SpawnObject("bldr_prop_Vodka", "5243.763672 183.875580 3684.873779", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("bldr_prop_SodaCan_Spite", "5243.698730 183.804535 3684.948730", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("bldr_prop_Cleaver", "5245.058105 184.632507 3685.137207", "149.835953 0.000000 -24.000000", 0.999995);
SpawnObject("bldr_prop_HuntingBag", "5245.643066 184.065063 3684.208008", "150.433960 89.534790 10.499999", 0.999996);
SpawnObject("bldr_prop_MeatTenderizer", "5243.464355 183.771439 3686.856201", "-5.499998 -88.335281 -63.500000", 0.999979);
SpawnObject("bldr_prop_Radio", "5242.202637 183.744934 3686.815918", "-11.499997 0.000000 0.000000", 0.999997);
SpawnObject("bldr_prop_CigarettePack_Partyzanka", "5243.044922 183.742859 3685.597656", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("bldr_prop_CigarettePack_Chernamorka", "5242.919922 183.770996 3685.590088", "-23.499998 0.000000 0.000000", 0.999995);
SpawnObject("bldr_prop_Candle", "5243.387207 183.790939 3685.356689", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("bldr_prop_Pot", "5243.259277 183.736176 3687.516113", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("bldr_prop_FryingPan", "5243.404297 183.740524 3687.265381", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("bldr_prop_SodaCan_Cola", "5243.912109 183.803253 3684.946533", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("bldr_prop_AntiPestsSpray", "5243.400879 183.906555 3685.979492", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("bldr_prop_BakedBeansCan", "5242.938965 183.750412 3687.287598", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("bldr_prop_BakedBeansCan_Opened", "5241.691895 183.783768 3683.673584", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("vbldr_trailmap_noarrow", "5243.311523 182.990112 3679.839111", "-33.273140 0.000000 0.000000", 0.999996);
SpawnObject("vbldr_windpowerplant_grey", "5255.007324 206.475586 3707.297363", "-26.999990 0.000000 0.000000", 1);
SpawnObject("vbldr_slum_roof3", "5249.276367 183.749390 3696.409668", "-124.199951 0.000000 -0.000000", 1);
SpawnObject("vbldr_flowerpot_prx", "5242.574707 183.742020 3686.973389", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("bldr_kitchenstove_elec", "5243.434082 182.890259 3687.431885", "-32.834911 0.000000 0.000000", 0.999992);
SpawnObject("bldr_drapes", "5243.348145 184.436554 3682.716064", "150.899750 -0.000000 -0.000000", 1);
SpawnObject("bldr_drapes", "5244.192383 184.444885 3683.199463", "147.436584 -0.000000 -0.000000", 1);
SpawnObject("bldr_mil_camonet_roof_nato", "5255.520996 184.670853 3696.916748", "62.999973 -0.000000 -0.000000", 1);
SpawnObject("bldr_Carp", "5244.364258 185.059204 3685.763428", "-91.378670 -0.000000 -0.000000", 0.999999);
SpawnObject("bldr_Carp", "5244.171875 185.050537 3685.636230", "-134.087814 -0.000000 -0.000000", 0.999999);
SpawnObject("bldr_Carp", "5243.966797 185.051895 3685.559814", "-91.378670 -0.000000 -0.000000", 0.999999);
SpawnObject("bldr_GoatSteakMeat", "5243.412598 183.743332 3687.275146", "-82.945244 -0.000000 -0.000000", 0.999998);
SpawnObject("bldr_Pumpkin", "5242.925293 183.461014 3685.906982", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("bldr_FoxSteakMeat", "5243.152832 183.749588 3686.899658", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("bldr_PigSteakMeat", "5243.050781 183.739410 3687.041748", "28.830978 -0.000000 -0.000000", 1);
SpawnObject("bldr_TunaCan_Opened", "5241.686523 183.768509 3683.545898", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("bldr_Canteen", "5241.541016 183.904160 3683.705322", "-84.070778 -0.000000 -0.000000", 1);
SpawnObject("bldr_Vodka", "5241.641113 183.891037 3683.443604", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("bldr_SodaCan_Kvass", "5242.263672 183.829453 3683.876709", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("bldr_SodaCan_Spite", "5241.560547 183.831100 3683.556152", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("bldr_picture_a_04", "5245.505371 183.841507 3684.728271", "-121.573524 0.000000 -0.000000", 1);
SpawnObject("bldr_picture_c_02", "5245.112305 183.857422 3683.774902", "-32.399853 0.000000 0.000000", 1);
SpawnObject("bldr_picture_a_05", "5241.258789 183.808426 3683.732910", "55.799995 -0.000000 -0.000000", 1);
SpawnObject("vbldr_hanged_doctor", "5255.862305 210.957947 3708.714844", "-127.781647 -0.000000 -0.000000", 0.999997);
SpawnObject("vbldr_hanged_civil", "5256.131836 211.010544 3708.183105", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("bldr_prop_PowerGenerator", "5248.255859 182.827438 3692.099609", "-35.999969 0.000000 0.000000", 1);
SpawnObject("bldr_prop_BatteryCharger", "5247.155762 183.626358 3691.451660", "148.546951 0.000000 0.000000", 1);
SpawnObject("bldr_prop_CableReel", "5246.925293 183.597763 3691.166016", "107.999962 0.000000 -0.000000", 1);
SpawnObject("Land_Roadblock_Table", "5246.768555 183.231079 3691.161621", "146.916016 0.000000 0.000000", 0.999999);
SpawnObject("bldr_prop_CowboyHat_black", "5243.997070 185.171967 3687.060547", "-125.999924 0.000000 -0.000000", 1);
SpawnObject("bldr_prop_AirborneMask", "5242.551270 183.745529 3686.475342", "0.000000 -0.000000 -0.000000", 1);
SpawnObject("bldr_prop_FryingPan", "5244.017090 184.453873 3687.053223", "-34.244389 0.499953 -90.000000", 0.999989);
}

 

Не помогло - ошибка такая в лог.: 

 

Function: 'SpawnObject'
Stack trace:
$CurrentDir:mpmissions/dayzOffline.chernarusplus/spawn_buildings.c:4
$CurrentDir:mpmissions/dayzOffline.chernarusplus/spawn_buildings.c:18
$CurrentDir:mpmissions\dayzOffline.chernarusplus\init.c:33
SCRIPT    (E): NULL pointer to instance


Function: 'SpawnObject'
Stack trace:
$CurrentDir:mpmissions/dayzOffline.chernarusplus/spawn_buildings.c:4
$CurrentDir:mpmissions/dayzOffline.chernarusplus/spawn_buildings.c:39
$CurrentDir:mpmissions\dayzOffline.chernarusplus\init.c:33
SCRIPT    (E): NULL pointer to instance


Function: 'SpawnObject'
Stack trace:
$CurrentDir:mpmissions/dayzOffline.chernarusplus/spawn_buildings.c:4
$CurrentDir:mpmissions/dayzOffline.chernarusplus/spawn_buildings.c:60
$CurrentDir:mpmissions\dayzOffline.chernarusplus\init.c:33
SCRIPT    (E): NULL pointer to instance


Function: 'SpawnObject'
Stack trace:
$CurrentDir:mpmissions/dayzOffline.chernarusplus/spawn_buildings.c:4
$CurrentDir:mpmissions/dayzOffline.chernarusplus/spawn_buildings.c:64
$CurrentDir:mpmissions\dayzOffline.chernarusplus\init.c:33

 

Помогите пожалуйста! в чем ошибка!!!!?????

 

А это в Init.c:

 

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

void main()
{
    //INIT ECONOMY--------------------------------------
    Hive ce = CreateHive();
    if ( ce )
        ce.InitOffline();

    //DATE RESET AFTER ECONOMY INIT-------------------------
    int year, month, day, hour, minute;
    int reset_month = 7, reset_day = 15;
    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);
            }
        }
    }
    SpawnBarmen();
}

Edited by spi4kin (see edit history)

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

@spi4kin  Не засоряй init.c. Давно уже есть нормальный способ подгрузки через cfggameplay.json. Выгружаешь файл  с DayZ Editora в формате .json и подгружаешь через WorldsData в cfggameplay.json.
Пример настройки в cfggameplay.json

"WorldsData":
	{
		"lightingConfig": 1,
		"objectSpawnersArr": ["alt_mapping/pripyat.json","alt_mapping/yanov.json"],
		"environmentMinTemps": [-3.0, -2.0, 0.0, 4.0, 9.0, 14.0, 18.0, 17.0, 12.0, 7.0, 4.0, 0.0],
		"environmentMaxTemps": [3.0, 5.0, 7.0, 14.0, 19.0, 24.0, 26.0, 25.0, 21.0, 16.0, 10.0, 5.0],
		"wetnessWeightModifiers": [1.0, 1.0, 1.33, 1.66, 2.0]
	},

Где alt_mapping это папка находящаяся в mpmission/твоя карта/alt_mapping, а pripyat.json это файл выгруженный с Dayz Editor
Пример pripyat.json
 

{
    "Objects": [
        {
            "name": "land_chz_ston_zabor_01",
            "pos": [
                4227.2744140625,
                202.78663635253907,
                15751.732421875
            ],
            "ypr": [
                -93.22733306884766,
                -0.0,
                -0.0
            ],
            "scale": 0.9999960660934448
        },
        {
            "name": "land_chz_ston_zabor_01",
            "pos": [
                4227.98779296875,
                202.62896728515626,
                15738.400390625
            ],
            "ypr": [
                -92.86109161376953,
                0.0,
                0.0
            ],
            "scale": 0.999997615814209
        }		
    ]
}

 

Edited by alex_good_kaban (see edit history)

Share this post


Link to post
Share on other sites
  • 0

Через .json работает всё идеально. Самое главное преймущество - .json видит масштабирование замапленных объектов и не кушает фпс....))) А init вещь нежная и капризная, её лучше вообще без надобности не трогать. Тем более громоздкими блоками с маппингом.  А зомби через текстуры при любом формате как ходили так и ходят, как ни мапь....Что init, что .json, что vpp... 

Share this post


Link to post
Share on other sites
  • 0

Ну вот не ходят зомби через текстуры. Хоть инклюдом сравню хоть инитом хоть json, хоть кастомные хоть ванильные, что не так то делаю??? (старым инклюдом масштабирование работает, (Слово удалено системой) ,почему работает то?)

 

Share this post


Link to post
Share on other sites
  • 0
18 часов назад, vosmoygnom сказал:

Через .json работает всё идеально. Самое главное преймущество - .json видит масштабирование замапленных объектов и не кушает фпс....))) А init вещь нежная и капризная, её лучше вообще без надобности не трогать. Тем более громоздкими блоками с маппингом.  А зомби через текстуры при любом формате как ходили так и ходят, как ни мапь....Что init, что .json, что vpp... 

У меня зомби ходили сквозь стены когда стоял мод RUSForma_MapObject. Удалил, перестали ходить.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.