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

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

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

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

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

Размещение своих объектов на карте

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

1 минуту назад, Evgeniy1983 сказал:

А можно конкретнее, где именно нужны запятые?

EntityAI Ent = EntityAI.Cast(GetGame().CreateObject("SurvivorM_Peter", "5184.69, 339.951, 7596.38", "-50.00000, -0.000000, -0.000000"));

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


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

$CurrentDir://mpmissions//dayzOffline.chernarusplus//GarageNPC.c(4): Incompatible parameter '5184.69, 339.951, 7596.38'

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

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


Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, Evgeniy1983 сказал:

$CurrentDir://mpmissions//dayzOffline.chernarusplus//GarageNPC.c(4): Incompatible parameter '5184.69, 339.951, 7596.38'

Ругается на несовместимый параметр, пересмотри корректность, что то не так

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


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

Вот к примеру, я ставлю объект, идет запись

{"name":"latest","m_SceneObjects":[{"param1":"CivilianSedan","param2":[13057.984375,173.6002197265625,4939.17431640625],"param3":[0.04093862324953079,1.2334476709365845,1.2161093950271607]}]}

И так я записываю в файл, как ты делаешь, не знаю

И если надо разместить торговца, то переносишь данные в трейдер 

<ObjectPosition>	4616.48046875,76.14539337158203,1823.746826171875
<ObjectOrientation>	151.5, 338.214, 0

Как то так

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


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

Размещаю я все через админку. С объектами такими как здания, машины, палатки и прочее проблем не возникло.

Торгашей у меня нет, мне нужен просто манекен. Я его поставил и даже одел, но не могу понять как его повернуть. 

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


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

Господа, прошу помощи. Не разу не скриптер и не программист... В общем, то, что работает на карте Чернорусь, не хочет работать на Оленьих островах. Все, что я смог понять - инит-файл переписан. При попытке добавить объекты старым наработанным на Черно способом - сервер ложится. Возможно конфликтуют блоки  void SpawnObject, присутствующие в обоих файлах. В общем и целом, если кто разбирается - помогите исправи ть ошибку.

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

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


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

Короче, походу выяснилось (совершенно случайно), что ТОЛЬКО на оленьих островах багуется стена тюремная (из кирпича и с проволочной сектой сверху). Сервер от нее ложится.

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


Ссылка на сообщение
Поделиться на других сайтах
31.10.2021 в 18:52, Evgeniy1983 сказал:

У меня на сервере зима и лютый мороз. Сделал так сказать небольшие убежища на карте где всегда горит костер. Все что нужно расставил, с этим порядок. Но хочу поставить у костра скажем "SurvivorM_Peter", с этим тоже вопросов нет. 

А вот вопрос в том как его развернуть? Что и куда нужно прописать? 

Попробовал вот так: создал файл и подключил его в ините также как и файлы с постройками. В файле написал так:

 

void GarageNPC()
{

EntityAI Ent = EntityAI.Cast(GetGame().CreateObject("SurvivorM_Peter", "5184.69 339.951 7596.38", "-50.00000 -0.000000 -0.000000"));
Ent.GetInventory().CreateInInventory("LugWrench");
Ent.GetInventory().CreateInInventory("Ushanka_Black");
Ent.GetInventory().CreateInInventory("WorkingGloves_Black");
Ent.GetInventory().CreateInInventory("JumpsuitJacket_Blue");
Ent.GetInventory().CreateInInventory("JumpsuitPants_Blue");
Ent.GetInventory().CreateInInventory("HikingBootsLow_Blue");

};

 

Но сервер не запускается, крашит.

Если убрать (, "-50.00000 -0.000000 -0.000000"), тогда он стоит не так как нужно.

синтаксис классов,

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

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


Ссылка на сообщение
Поделиться на других сайтах
EntityAI SpawnBot(string typeName, vector position, vector orientation, bool initAI = false)
{
	// данная строка создаст объект всегда на уровне террейна
	// без учёта высоты указанной в position, после того как объект будет создан,
	// если требуется создать не на уровне террейна, нужно вызвать метод SetPosition
	EntityAI ent = EntityAI.Cast(GetGame().CreateObject( typeName, position, false, initAI));
	
	
	//производим, обращу особо внимание, обязательную проверку, что движок смог создать объект
	//в противном случае, если ent будет NULL, ожидаемы непредсказуемые последствия
	//даже до краша игры, в зависимости от того какие костыли будут работать в блоке кода ниже
	if (ent)
	{
		ent.SetPosition(position);
		
		// в данном случае нужно иметь в виду один нюанс
		// если вы создаёте например зомби, и активируете на него симуляцию AI
		// то строка ниже не будет иметь эффекта, симуляция проигнорирует ваше пожелание сменить ориентацию бота
		// и оставит эту тему под своим контролем
		ent.SetOrientation(orientation);
	}
	
	return ent;
}

 

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


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

Ну и на десерт, чисто до кучи, тут где то видел размышления по поводу много динамических объектов спавнится на карту или овер много. И как это повлияет на игру.

Отвечу, по разному, это зависит от мощности смой машины, её графической системы, и собственно на сколько ресурсоёмки сами спавнящиеся овер много объектов.

Применительно к дайзет, можно не ломать свой голова если эти овер много объектов размазаны по всей карте, ибо на клиенте весть игровой мир существует в радиусе приблизительно 1.5 км, за этим радиусом ничего нет, в буквальном смысле этого слова. Эдакий вариант оптимизации от БЕСов.

 

Но, если вы спавните овер много объектов на не большом пространстве, это нужно делать в контролируемой среде исполнения. Что это значит, по разному, в разных случаях, а применительно к спавну большого кол-ва объектов, это выглядит так, каждый спавн очередного объекта должен быть вызван только после того как будет создан объект предыдущий. В этом случае сервер не получит диких фризов, а сетевая часть доброго пинка по печени, имо всю эту овер хню нужно ещё и синхронизировать в мультике.

 

Пример из армы 3, тоже самое применимо к дайзет, разница всего лишь в скриптовых системах, сам принцип всё тот же.

 

arma3 spawn objects

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


Ссылка на сообщение
Поделиться на других сайтах
27 минут назад, SteelRat сказал:

EntityAI SpawnBot(string typeName, vector position, vector orientation, bool initAI = false) { // данная строка создаст объект всегда на уровне террейна // без учёта высоты указанной в position, после того как объект будет создан, // если требуется создать не на уровне террейна, нужно вызвать метод SetPosition EntityAI ent = EntityAI.Cast(GetGame().CreateObject( typeName, position, false, initAI)); //производим, обращу особо внимание, обязательную проверку, что движок смог создать объект //в противном случае, если ent будет NULL, ожидаемы непредсказуемые последствия //даже до краша игры, в зависимости от того какие костыли будут работать в блоке кода ниже if (ent) { ent.SetPosition(position); // в данном случае нужно иметь в виду один нюанс // если вы создаёте например зомби, и активируете на него симуляцию AI // то строка ниже не будет иметь эффекта, симуляция проигнорирует ваше пожелание сменить ориентацию бота // и оставит эту тему под своим контролем ent.SetOrientation(orientation); } return ent; }


EntityAI SpawnBot(string typeName, vector position, vector orientation, bool initAI = false)
{
	// данная строка создаст объект всегда на уровне террейна
	// без учёта высоты указанной в position, после того как объект будет создан,
	// если требуется создать не на уровне террейна, нужно вызвать метод SetPosition
	EntityAI ent = EntityAI.Cast(GetGame().CreateObject( typeName, position, false, initAI));
	
	
	//производим, обращу особо внимание, обязательную проверку, что движок смог создать объект
	//в противном случае, если ent будет NULL, ожидаемы непредсказуемые последствия
	//даже до краша игры, в зависимости от того какие костыли будут работать в блоке кода ниже
	if (ent)
	{
		ent.SetPosition(position);
		
		// в данном случае нужно иметь в виду один нюанс
		// если вы создаёте например зомби, и активируете на него симуляцию AI
		// то строка ниже не будет иметь эффекта, симуляция проигнорирует ваше пожелание сменить ориентацию бота
		// и оставит эту тему под своим контролем
		ent.SetOrientation(orientation);
	}
	
	return ent;
}

 

молодец, в родных файлах игры, без модов, ее найди - это раз

и два - сравни что ты скинул щас  в посте

а именно название функции

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


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

Я видел указание на ошибку в синтаксисе.

Я чисто вставил своих 5 копеек опыта.

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


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

Всем привет!
С версии 1.15 строительство своих объектов производится по новому.
Ранее строительство производилось:
1 вариант - путем корректировки файла init (прописание правила строительства и прописание объектов строительства).
2 вариант - корректировки файла init (прописание правила строительства и ссылка на файл с объектами) и созданием отдельного файла с объектами.
Оба варианта имели место быть и про них рассказывалось выше в данной теме.
Но сейчас появился и третий вариант. В связи с тем, что данный вариант описан самой BI, то думаю целесообразно все custom постройки привести к данному варианту.
Опишу только про строительство, не затрагивая другие моменты.
1. Все объекты строительство прописываем отдельно в json файле и размещаем в папке с миссией. Название придумываем как хотим - NameSpawn.json. Структура файла вот такая:
 

{
	"Objects": [
        {
            "name": "Land_Airfield_Hangar_Green",
            "pos": [
                1265.555420,
				390.805298,
				12502.369141
            ],
            "ypr": [
                19.000000,
				0.000000,
				2.000000
            ]
        },
		{
            "name": "Land_BusStation_wall_bench",
            "pos": [
                1257.005005,
				394.000000,
				12481.304688
            ],
            "ypr": [
                -161.000015,
				0.000000,
				0.000000
            ]
        }
	]
}

*прошу прощения, но не смог отформатировать по правилам программирования 
 

Не забываем про то, что json очень "придирчив" к синтаксическим ошибкам. Рекомендую перед заливкой на сервак обязательно проверять на валидаторе. 
2. В фале cfggameplay.json расположенном в папке миссии ищем "objectSpawnersArr" и прописываем свой файл с объектами (NameSpawn.json). Будет выглядеть вот так:
 

"WorldsData":
	{
		"lightingConfig": 1,
		"objectSpawnersArr": ["SpawnT100S.json","SpawnBaza.json"]
	},

3. В файле serverDZ.cfg прописываем - enableCfgGameplayFile = 1; 
Это подключаем файл cfggameplay.json
И все. 

При этом старые способы строительство также работают. 

Ссылки на материалы:
https://community.bistudio.com/wiki/DayZ:Gameplay_Settings
https://community.bistudio.com/wiki/DayZ:Object_Spawner

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


Ссылка на сообщение
Поделиться на других сайтах
24.11.2021 в 13:02, DedForester сказал:

Всем привет!
С версии 1.15 строительство своих объектов производится по новому.
Ранее строительство производилось:
1 вариант - путем корректировки файла init (прописание правила строительства и прописание объектов строительства).
2 вариант - корректировки файла init (прописание правила строительства и ссылка на файл с объектами) и созданием отдельного файла с объектами.
Оба варианта имели место быть и про них рассказывалось выше в данной теме.
Но сейчас появился и третий вариант. В связи с тем, что данный вариант описан самой BI, то думаю целесообразно все custom постройки привести к данному варианту.
Опишу только про строительство, не затрагивая другие моменты.
1. Все объекты строительство прописываем отдельно в json файле и размещаем в папке с миссией. Название придумываем как хотим - NameSpawn.json. Структура файла вот такая:
 

{ "Objects": [ { "name": "Land_Airfield_Hangar_Green", "pos": [ 1265.555420, 390.805298, 12502.369141 ], "ypr": [ 19.000000, 0.000000, 2.000000 ] }, { "name": "Land_BusStation_wall_bench", "pos": [ 1257.005005, 394.000000, 12481.304688 ], "ypr": [ -161.000015, 0.000000, 0.000000 ] } ] }


{
	"Objects": [
        {
            "name": "Land_Airfield_Hangar_Green",
            "pos": [
                1265.555420,
				390.805298,
				12502.369141
            ],
            "ypr": [
                19.000000,
				0.000000,
				2.000000
            ]
        },
		{
            "name": "Land_BusStation_wall_bench",
            "pos": [
                1257.005005,
				394.000000,
				12481.304688
            ],
            "ypr": [
                -161.000015,
				0.000000,
				0.000000
            ]
        }
	]
}

*прошу прощения, но не смог отформатировать по правилам программирования 
 

Не забываем про то, что json очень "придирчив" к синтаксическим ошибкам. Рекомендую перед заливкой на сервак обязательно проверять на валидаторе. 
2. В фале cfggameplay.json расположенном в папке миссии ищем "objectSpawnersArr" и прописываем свой файл с объектами (NameSpawn.json). Будет выглядеть вот так:
 

"WorldsData": { "lightingConfig": 1, "objectSpawnersArr": ["SpawnT100S.json","SpawnBaza.json"] },


"WorldsData":
	{
		"lightingConfig": 1,
		"objectSpawnersArr": ["SpawnT100S.json","SpawnBaza.json"]
	},

3. В файле serverDZ.cfg прописываем - enableCfgGameplayFile = 1; 
Это подключаем файл cfggameplay.json
И все. 

При этом старые способы строительство также работают. 

Ссылки на материалы:
https://community.bistudio.com/wiki/DayZ:Gameplay_Settings
https://community.bistudio.com/wiki/DayZ:Object_Spawner

благодарочка, добавил ссылку на информацию в топик старт

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


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

Не спаунятся объекты с именем в начале "bldr_"  - как исправить кто знает?

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


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

@DedForester  что то не спавнятся объекты этим способом, все прописал как в инструкции

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


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

@123newПрошу прощения,делаю все как вы указали и не получается не могли бы более подробный пример скинуть как сделали вы в своих даных

 

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

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


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

@123newПрошу прощения,делаю все как вы указали и не получается не могли бы более подробный пример скинуть как сделали вы в своих даных

 

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


Ссылка на сообщение
Поделиться на других сайтах
29 минут назад, blood_s13 сказал:

@123newПрошу прощения,делаю все как вы указали и не получается не могли бы более подробный пример скинуть как сделали вы в своих даных

 

пример буквально в топик старте описан. Куда ж примернее то.

А вообще нынче, в 2022, люди через DayZ Editor делают локации и подключают их на сервере. Как - то вопрос лучше к остальным поставить, поскольку я к этому мало имею отношения и занимаюсь скриптописанием, а не серверами.

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

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


Ссылка на сообщение
Поделиться на других сайтах
24.11.2021 в 13:02, DedForester сказал:

Всем привет!
С версии 1.15 строительство своих объектов производится по новому.
Ранее строительство производилось:
1 вариант - путем корректировки файла init (прописание правила строительства и прописание объектов строительства).
2 вариант - корректировки файла init (прописание правила строительства и ссылка на файл с объектами) и созданием отдельного файла с объектами.
Оба варианта имели место быть и про них рассказывалось выше в данной теме.
Но сейчас появился и третий вариант. В связи с тем, что данный вариант описан самой BI, то думаю целесообразно все custom постройки привести к данному варианту.
Опишу только про строительство, не затрагивая другие моменты.
1. Все объекты строительство прописываем отдельно в json файле и размещаем в папке с миссией. Название придумываем как хотим - NameSpawn.json. Структура файла вот такая:
 

{ "Objects": [ { "name": "Land_Airfield_Hangar_Green", "pos": [ 1265.555420, 390.805298, 12502.369141 ], "ypr": [ 19.000000, 0.000000, 2.000000 ] }, { "name": "Land_BusStation_wall_bench", "pos": [ 1257.005005, 394.000000, 12481.304688 ], "ypr": [ -161.000015, 0.000000, 0.000000 ] } ] }


{
	"Objects": [
        {
            "name": "Land_Airfield_Hangar_Green",
            "pos": [
                1265.555420,
				390.805298,
				12502.369141
            ],
            "ypr": [
                19.000000,
				0.000000,
				2.000000
            ]
        },
		{
            "name": "Land_BusStation_wall_bench",
            "pos": [
                1257.005005,
				394.000000,
				12481.304688
            ],
            "ypr": [
                -161.000015,
				0.000000,
				0.000000
            ]
        }
	]
}

*прошу прощения, но не смог отформатировать по правилам программирования 
 

Не забываем про то, что json очень "придирчив" к синтаксическим ошибкам. Рекомендую перед заливкой на сервак обязательно проверять на валидаторе. 
2. В фале cfggameplay.json расположенном в папке миссии ищем "objectSpawnersArr" и прописываем свой файл с объектами (NameSpawn.json). Будет выглядеть вот так:
 

"WorldsData": { "lightingConfig": 1, "objectSpawnersArr": ["SpawnT100S.json","SpawnBaza.json"] },


"WorldsData":
	{
		"lightingConfig": 1,
		"objectSpawnersArr": ["SpawnT100S.json","SpawnBaza.json"]
	},

3. В файле serverDZ.cfg прописываем - enableCfgGameplayFile = 1; 
Это подключаем файл cfggameplay.json
И все. 

При этом старые способы строительство также работают. 

Ссылки на материалы:
https://community.bistudio.com/wiki/DayZ:Gameplay_Settings
https://community.bistudio.com/wiki/DayZ:Object_Spawner

 

Я так понимаю что под этот способ экспорт файлов нужно делать из ДэйзЭдитор? Из дэйзОффлайн уже не получится просто экспортировать?

 

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


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

Добавлю свои 5 копеек, с релизом патча 1.19 параметр scale в мапинге стал влиять на коллизию некоторых текстур.
SpawnObject( "cp_wallV2_1x2", "10142.700195 164.699997 13337.200195", "-15.999844 0.000000 0.000000", 1 ); - выделенная жирным единица очень важна если вы не хотите чтобы персонаж проваливался сквозь текстуры.
P.S речь идёт о include методе через init.

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


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

Если я после сохранения в эдиторе не делаю замену ", 1 ); на "); то выдает ошибку при запуске через инит о слишком большом количестве параметров.

Через загрузчик ничего необычного не заметил.

В целом при создании локаций через эдитор теперь при сохранении он может ставить рандомные числа в формате 0,9хххххх* вместо этой единички, чем конкретно мешает. Правится бстро конечно, но лишние телодвижения)

 

Использую вот такую функцию для запуска через инит:

void SpawnObject( string type, vector position, vector orientation )
{
    private string NameBlockLog = "[CreateObject] ";
    private string InfoLog = "";
    if(type != "")
    {
        auto obj = GetGame().CreateObject( type, "0 0 0" );
        if(obj)
        {
            if ((position[0] != 0) && (position[1] != 0) && (position[2] != 0))
            {
                obj.SetPosition( position );
                obj.SetOrientation( orientation );
                obj.Update();
                if (obj.CanAffectPathgraph())
                {
                    obj.SetAffectPathgraph(true, false);
                    GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj);
                }
                InfoLog = "[Type: '" + obj.GetType() + "' Position: '" + obj.GetPosition().ToString() + "' Orientation: '" + obj.GetOrientation().ToString() + "']";
                Write_Log(NameBlockLog + " Object has been created successfully! Info " + InfoLog);
            } else
            {
                InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']";
                Write_Log(NameBlockLog + " Object can't be created! Incorrect writed position. Info " + InfoLog);
            }
        } else
        {
            InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']";
            Write_Log(NameBlockLog + " Object can't be created! Info " + InfoLog);
        }
    } else
    {
        InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']";
        Write_Log(NameBlockLog + " Object can't be created! Incorrect writed type. Info " + InfoLog);
    }
}
void Write_Log(string message) 
{
    Print(String(message));
}

 

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


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

Всём привет, вопрос такой, нужно ли объекты маппинга прописывать в types? 

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


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

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

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

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

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

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

Войти

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

Войти сейчас

  • Похожие публикации

    • Автор: Makliion
      Всем добрый вечер..
      У меня такой вопрос где найти или заказать скрипт для обыска зомбей & игроков 
      что-бы каждую вещь снимать через действие а не тупо через таб
      Шлем отдельно
      Рюкзак отдельно
      ну и на все остальные слоты
      искал долго не нашёл ничего
      есть мод на обыск но он просто открывает  инвентарь и все 
       
    • Автор: Troy1
      Всем привет. Подскжите ну или помогите пожалуйста решить вопрос.
      Вопрос звучит так. На сервере есть трейдер зоны и базы игроков. 
      Если в течение определённого времени, на пример 1 - 2 часа с машиной не кто не взаимодействует и машина не находится в зоне трейдера или на теретории базы, то машина отлетает в гараж или на штраф стоянку.
      На сервере используется TraderPlus.
       
      Есть такие решения у кого?
      За ранние благодарю.
    • Автор: Troy1
      Всем привет. Подскжите ну или помогите пожалуйста решить вопрос.
      Вопрос звучит так. Нужно сделать так, что бы на всей карте был запрет на строительство. 
      Если нужно построить например базу с палатками, то нужно установить верстак или флаг, который установит зону для строительства с радиусом примерно 20-25 метров от центра и желательно что бы зона была квадратной.
      Есть такие решения у кого?
      За ранние благодарю.
    • Автор: BR0wi
      Подскажите где найти людей, которые делаю моды на заказ. К кому вообще обращаться? Или что бы реализовать свои идеи нужно самому "год" сидеть и изучать все механики модинга?
    • Автор: CubeIn
      Приветствую господа, хочу создать новый проект, уникальный, но для этого нужен маппер.
      Я оставлю здесь свой дискрод, напишите в лс, кто готов взяться за крупный проект.
      4me#4542
  • Наш выбор

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

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

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

Поддержка