Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • 0
S7V7G7

Help/ script init. Dayz Server (new map )

Добрый вечер

Буду в вкратце, на смотрелся различных видео и запутался.

 Создаю сервер.  Отрисовал дополнительные объекты  типо  тиса и нового алтаря.    В Dayz Editor

Как теперь правильно за скриптить кординаты   и выставить их на сервер ?     

Вы извините я конечно же попытался за скриптить  с ютуба взял скрипт 

#define DISABLE_PERSISTENCY

#include "$CurrentDir:Missions\\DayZCommunityOffline.ChernarusPlus\\core\\orig1C.c"
  
//Spawn helper function
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 );
}
  Mission CreateCustomMission(string path)
{
    if ( GetGame().IsServer() && GetGame().IsMultiplayer() )
        return new CommunityOfflineServer();

    return new CommunityOfflineClient();
}

void main()
{//orig1C

далее  

Json фаил я тоже прописал.   но в  и итогде выдает ошибку 

DESKTOP-VUQEGD6, 09.05 2023 01:04:29
Can't compile mission init script'!

$CurrentDir:mpmissions\dayzOffline.chernarusplus\init.c(3): Can't find file '$CurrentDir:Missions//DayZCommunityOffline.ChernarusPlus//orig1C.c'

Runtime mode
CLI params: config serverDZ.cfg port 2302 cpuCount 4 dologs  adminlog  netlog  freezecheck  mod 


------------------------------------
DESKTOP-VUQEGD6, 09.05 2023 01:04:53

JSON ERROR:
Missing a comma or ']' after an array element.
Function: 'Error'
Stack trace:
scripts/1_Core/proto\endebug.c:92
scripts/3_Game/tools\jsonfileloader.c:29
scripts/3_Game/cfggameplayhandler.c:61
scripts/5_Mission/mission\missionserver.c:78
JM/CF/Scripts/5_Mission/communityframework\mission\missionserver.c:29
TM/Trader/scripts/5_Mission/mission\missionserver.c:60
VPPAdminTools/5_Mission/vppadmintools\missionserver.c:38

мой init. 

#define DISABLE_PERSISTENCY

#include "$CurrentDir:Missions\\DayZCommunityOffline.ChernarusPlus\\orig1C.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 = 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);
            }
        }
    }
}
{
    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;
    }

    override void StartingEquipSetup(PlayerBase player, bool clothesChosen)
    {
        EntityAI itemClothing;
        EntityAI itemEnt;
        ItemBase itemBs;
        float rand;

        itemClothing = player.FindAttachmentBySlotName( "Body" );
        if ( itemClothing )
        {
            SetRandomHealth( itemClothing );
            
            itemEnt = itemClothing.GetInventory().CreateInInventory( "BandageDressing" );
            if ( Class.CastTo( itemBs, itemEnt ) )
                itemBs.SetQuantity( 2 );

            string chemlightArray[] = { "Chemlight_White", "Chemlight_Yellow", "Chemlight_Green", "Chemlight_Red" };
            int rndIndex = Math.RandomInt( 0, 4 );
            itemEnt = itemClothing.GetInventory().CreateInInventory( chemlightArray[rndIndex] );
            SetRandomHealth( itemEnt );

            rand = Math.RandomFloatInclusive( 0.0, 1.0 );
            if ( rand < 0.35 )
                itemEnt = player.GetInventory().CreateInInventory( "Apple" );
            else if ( rand > 0.65 )
                itemEnt = player.GetInventory().CreateInInventory( "Pear" );
            else
                itemEnt = player.GetInventory().CreateInInventory( "Plum" );

            SetRandomHealth( itemEnt );
        }
        
        itemClothing = player.FindAttachmentBySlotName( "Legs" );
        if ( itemClothing )
            SetRandomHealth( itemClothing );
        
        itemClothing = player.FindAttachmentBySlotName( "Feet" );
    }
};

Mission CreateCustomMission(string path)
{
    return new CustomMission();
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0

Тиссы, Алтарь..аха,а сам буровую спавнит ))) При словах "брал с ютуба"-там и спрашивайте....
В Эдиторе есть вариант ЭКСПОРТИРОВАТЬ ваш маппинг в файл по вашему желанию, от "внутря инита" до "json" и "dze".
Если у вас ваш маппинг имеет вид в файле
SpawnObject( "Land_misc_chickenCoop", "14833.930664 8.400002 11362.537109", "80.999977 0.000000 0.000000", 1);   (на концовку пока не смотрите)
То создаём в mpmissions\dayzOffline.chernarusplus или что у вас там, папку "Bulgakter" и в ней текстовый файл. Меняем ему расширение с .txt на .с
По типу "debet.txt" на "credit.c"
Внутрь его вставляем.
 

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 SpawnObject()
{

И ниже фигурных строк все ваши строчки со спавном

SpawnObject( "Land_Castle_Gate", "8255.816406 469.123108 9076.629883", "-113.999947 0.000000 0.000000" );
и т.д.

После последней строчки идём на строчку вниз и печатаем
}
Это закрывающий знак.
Если у вас окончание строчек как в жёлтом варианте - с 1 или другой цифрой в конце. То следующий пункт пропускаете.
Если нет....приводите все строчки к такому виду (в нотепад++ делается как два пальца об клавиатуру).
Сохраняете файл, орёте "эврика" и три раза голым оббегаете дом. Или палату.
Идёт в ваш init.
Первой строчкой вставляете
#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\Bulgakter\\credit.c" 

Далее идёте ниже находите строчку void main(),после идёт фигурная скобка открытия,сей функции,а вот перед фигурной скобкой закрытия ставите
SpawnObject();
Запускаете сервер и если всё верно, получите свой алтарь.
(если в строчках спавна есть обьекты которые начинаются по типу SpawnObject( "bldr_Lamp_Halogen".......то нужно подключить мод
BuilderItems (ссылка) на ваш сервер.
Это способ "через инклюд в ините".
Просто через инит...не, я такой маразм не советую.
Если у вас ГОТОВЫЙ файл json.
Идёте в файл serverDZ.cfg и ищите строчку
enableCfgGameplayFile = 1;
Если её нет-добавляете.
Идёте в папку mpmissions\dayzOffline.chernarusplus (или что там у вас), вставляете свой файл json
Открываете файл cfggameplay.json

и в строчку 
"objectSpawnersArr": [],
Вставляете название вашего файла
"objectSpawnersArr": ["Имя вашего файла.json"],
Всё.
Про файлы dze....может кто другой обьяснит, у меня разборка подъехала.Извните.
Пжалуста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MagicByte MagicByte MagicByte
  • 0

Добрый вечер. Не РАБОТАЕТ.  Ошибку на 2 строчку  кода майна хотя она стандартная. также прописал

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Изменено пользователем S7V7G7 (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

2 рым сообщением выложил  инит. и тисы.с  формат  (с  чего я начал рисовать.) и выполнять последующие  шаги  чтобы потом задавать вопросы ))  то есть сначала я это выполнял передал по видео потом вам писал. 

spacer.png

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

spacer.png

Изменено пользователем S7V7G7 (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@S7V7G7 Да не делай ты через init. Разрабы уже давно добавили такую функцию как "objectSpawnersArr" в файле cfggameplay.json
 

"WorldsData":
	{
		"lightingConfig": 1,
		"objectSpawnersArr": ["spawneditor/yanov.json","spawneditor/x4.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]
	},

spawneditor/yanov.json - это путь до твоего файла. (папка находится в mpmission\твоя карта
Просто через DayZEditor выгружаешь json и подключаешь тут.
json должен быть такого формата (их там два типа когда выгружаешь с DayZEditor)
 

Скрытый текст

{
    "Objects": [
        {
            "name": "StaticObj_Panel_Concrete_1",
            "pos": [
                126.75199890136719,
                12.745699882507325,
                947.3489990234375
            ],
            "ypr": [
                -1.7999999523162842,
                27.499605178833009,
                0.0
            ],
            "scale": 0.9999983310699463
        },
        {
            "name": "StaticObj_Panel_Concrete_1",
            "pos": [
                139.35678100585938,
                12.769057273864746,
                956.7026977539063
            ],
            "ypr": [
                88.19998168945313,
                27.498844146728517,
                0.0
            ],
            "scale": 0.9999982118606567
        }
    ]
}

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Ты зачем то пытаешь заспавнить 2 типами сразу. Используй тот что я указал. Не трогай init.c

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

спасибо за работало. Только  теперь что делать. Тисы окей  хорошо прописались.  Алтарь  (оригинальные постройки остались)   либо снова  делать пустой лист  из джейсона  с пустой картой  я имею виду и просто 2 фаил туда приложить типо 2 карты 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@S7V7G7  Удаление существующих построек через такой способ не возможно. Если ты хочешь отредактировать еще одну локацию добавляешь еще 1 файл, либо в этом же добавляешь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Вопрос, в Dayz Editor все отрисовано хорошо, на своих местах, выгружаю в json, кидаю на сервер, и все обьекты сьезжают.. уже голову сломал не могу понять почему..

Сервер у меня на Expansion.

Изменено пользователем TVStandfireRTS (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

вот здесь нашел  ту же проблему у парней с удалением построек говорят вот это скрипт  поможет 

    void HideObject(Object object)
    {
        if (object)
        {
            vector pos =  object.GetPosition();

            EntityFlags flags = object.GetFlags();
            object.ClearFlags(flags,true);
            //object.SetFlags(EntityFlags.INVISIBLE,true);
            object.ClearEventMask(EntityEvent.ALL);

            vector mat[4];
            object.GetTransform(mat);
            mat[3] = mat[3] - Vector(10240, 10240, 10240);
            object.SetTransform(mat);
            object.Update();

            Entity ent = Entity.Cast(object);
            if (ent) ent.DisableSimulation(true);

            if (object.CanAffectPathgraph())
            {
                vector MinMax[2];
                float objectClip = object.ClippingInfo(MinMax);
                vector objectRadius = Vector(objectClip, objectClip, objectClip);
                GetGame().UpdatePathgraphRegion(pos - objectRadius, pos + objectRadius);
            }
        }
    }

 также сылочку отсавлю,  я незнаю этот скрипт по этому спрашиваю вашего мнения про удаления   и в каком формате скрипт делать ?  подскажите  

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Всё прекрасно подключается через init.
Вот нормальная инструкция для, кто пользуется VPP: 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.

Поддержка