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

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

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

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

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

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

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

Забыл добавить, фишка в том, что бывает перезапускаешь и нормально все, перезапускаешь и опять проходят..........

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


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





Всем Салюты! Уже не актуально, ничего не делал,  ничего не менял, все норм стало! Мистика очередная(((

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


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

А где найти имена объектов карты?

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


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

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

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


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

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

Например своим модом. Создаешь новый класс на основе целевого, именно его и спавнишь.

И оверрайдишь для него функцию поднятия:

override bool CanPutInCargo ( EntityAI parent )
{
return false;
}

А то если заоверрайдишь барбекю, то все игроки не смогут поднимать все барбекю на карте)

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


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

Я наверное не правильно написал :)

не спавн а создание объекта в определенной точке, возле торговца например

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


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

Я наверное не правильно написал 🙂

не спавн а создание объекта в определенной точке, возле торговца например

Я догадался))) Исходя из этого и был мой ответ)

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


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

Столкнулись с такой проблемой на сервер добавлены локации модовские (но на локации здания дублируются друг в друге) Как это лечится? (это видно что открываешь двери два раза подряд)

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

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


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

Столкнулись с такой проблемой на сервер добавлены локации модовские (но на локации здания дублируются друг в друге) Как это лечится? (это видно что открываешь двери два раза подряд)

Если я правильно помню, то такие вещи идут таким образом. Ты прописал, а потом добавил в точки спауна ради лута. Но есть прикол в том, что здания тоже записываются в координаты спауна. То есть, они как Хели Краши/Ментовские тачки. Убери из спауна, который там привязал к init и всё. А вот в координатах, которые сделал для лута - оставь.

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


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

Столкнулся с очень интересной реализацией спауна кастомных объектов, которая отлична от того, что тут.
 

modded class MissionServer
{
    override void OnInit()
    {
        super.OnInit();
                                SpawnObject( "bldr_plnt_b_betulaHumilis_1s", "12894.611328 173.905670 4465.360352", "0.000000 0.000000 0.000000" );

//Spawn helper function
void SpawnObject(string objectName, vector position, vector orientation)
{
    Object obj;
    obj = Object.Cast(GetGame().CreateObject(objectName, "0 0 0"));
    obj.SetPosition(position);
    obj.SetOrientation(orientation);

    // Force update collisions
    if (obj.CanAffectPathgraph())
    {
        obj.SetAffectPathgraph(true, false);
        GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj);
    }
  }
}

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

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


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

А ну деградация в час ночи, да. Просто убрали середину кода и всё, правда что это  даёт - всё ещё не ясно. Продолжаем дальше искать оптимизацию.

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


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

Столкнулся с очень интересной реализацией спауна кастомных объектов, которая отлична от того, что тут.
 

modded class MissionServer { override void OnInit() { super.OnInit(); SpawnObject( "bldr_plnt_b_betulaHumilis_1s", "12894.611328 173.905670 4465.360352", "0.000000 0.000000 0.000000" ); //Spawn helper function void SpawnObject(string objectName, vector position, vector orientation) { Object obj; obj = Object.Cast(GetGame().CreateObject(objectName, "0 0 0")); obj.SetPosition(position); obj.SetOrientation(orientation); // Force update collisions if (obj.CanAffectPathgraph()) { obj.SetAffectPathgraph(true, false); GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj); } } }


modded class MissionServer
{
    override void OnInit()
    {
        super.OnInit();
                                SpawnObject( "bldr_plnt_b_betulaHumilis_1s", "12894.611328 173.905670 4465.360352", "0.000000 0.000000 0.000000" );

//Spawn helper function
void SpawnObject(string objectName, vector position, vector orientation)
{
    Object obj;
    obj = Object.Cast(GetGame().CreateObject(objectName, "0 0 0"));
    obj.SetPosition(position);
    obj.SetOrientation(orientation);

    // Force update collisions
    if (obj.CanAffectPathgraph())
    {
        obj.SetAffectPathgraph(true, false);
        GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj);
    }
  }
}

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

еще на 1.03 эту реализацию находил и делал, разницы помоему нету

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


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

еще на 1.03 эту реализацию находил и делал, разницы помоему нету

Тогда в чём прикол? Я просто хочу сейчас попробовать, но не совсем догоняю как. Обычными инклудами подрубить и всё?

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


Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, Yuki сказал:

Тогда в чём прикол? Я просто хочу сейчас попробовать, но не совсем догоняю как. Обычными инклудами подрубить и всё?

та также как и везде, и всегда.

отдельная функция

//Spawn helper function
void SpawnObject(string objectName, vector position, vector orientation)
{
    Object obj;
    obj = Object.Cast(GetGame().CreateObject(objectName, "0 0 0"));
    obj.SetPosition(position);
    obj.SetOrientation(orientation);

    // Force update collisions
    if (obj.CanAffectPathgraph())
    {
        obj.SetAffectPathgraph(true, false);
        GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj);
    }
  }
}

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

и сама функция-комманда

SpawnObject( "bldr_plnt_b_betulaHumilis_1s", "12894.611328 173.905670 4465.360352", "0.000000 0.000000 0.000000" );

которая из init того же вызывается, либо из main в ините, либо из OnInit в классе самой миссии (по сути развнозначно), как в примере ниже:

modded class MissionServer
{
    override void OnInit()
    {
        super.OnInit();
        SpawnObject( "bldr_plnt_b_betulaHumilis_1s", "12894.611328 173.905670 4465.360352", "0.000000 0.000000 0.000000" );
	}
};

 

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


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

@123new создал точно такой же конфиг, который был в после, прописал
 

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

Но оно выдаёт ошибку.

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


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

@123new создал точно такой же конфиг, который был в после, прописал
 

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


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

Но оно выдаёт ошибку.

какую

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


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

@123new создал точно такой же конфиг, который был в после, прописал
 

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


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

Но оно выдаёт ошибку.

если это куски кода, которые у тебя в таком же виде, то там скобки лишние) А так вообще чо за ошибку выдает?

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


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

какую

433550032_.png.7ec0c6ef277c2b0114ce38e738d7cee8.png
Есть подозрение, что я где-то конкретно деградирую.

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


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

433550032_.png.7ec0c6ef277c2b0114ce38e738d7cee8.png
Есть подозрение, что я где-то конкретно деградирую.

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

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


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

433550032_.png.7ec0c6ef277c2b0114ce38e738d7cee8.png
Есть подозрение, что я где-то конкретно деградирую.

у тебя функция с таким же именем уже имеется, на что собственно и ругается сервер, ты 2 раза одну и ту же функцию объявил

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


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

у тебя функция с таким же именем уже имеется, на что собственно и ругается сервер, ты 2 раза одну и ту же функцию объявил

Ну я так и подумал, просто ВДРУГ я не прав. Но теперь есть смысл сделать кучу файлов по 1500 объекта в каждом.

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


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

Ну я так и подумал, просто ВДРУГ я не прав. Но теперь есть смысл сделать кучу файлов по 1500 объекта в каждом.

ну как бы я сделал давно уже 3 файла, в первом сами функции добавляемые ,такие  как сама функция спавна для любого объекта, во втором функции спавна нужных объектов на карте со своими кастомными именами на основе первой функции из 1 файла, в третьем файле тупо интеграция в инит вида

modded class MissionServer
{
    override void OnInit()
    {
        super.OnInit();
        MyBuildingsNWAF();
	}
};

итого и инит получается чистый, и минимум телодвижений в случае обновления.

Я к слову эту структуру давно уже использую у себя в сркиптах (например скрипт персональных сетов на форуме), весьма практично и удобно.

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


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

ну как бы я сделал давно уже 3 файла, в первом сами функции добавляемые ,такие  как сама функция спавна для любого объекта, во втором функции спавна нужных объектов на карте со своими кастомными именами на основе первой функции из 1 файла, в третьем файле тупо интеграция в инит вида

modded class MissionServer { override void OnInit() { super.OnInit(); MyBuildingsNWAF(); } };


modded class MissionServer
{
    override void OnInit()
    {
        super.OnInit();
        MyBuildingsNWAF();
	}
};

итого и инит получается чистый, и минимум телодвижений в случае обновления.

Я к слову эту структуру давно уже использую у себя в сркиптах (например скрипт персональных сетов на форуме), весьма практично и удобно.

Ну я вон уже поехал.
109877077_.png.add68832f267ee5af2a526b8c4e3c445.png
 

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


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

Народ
Может хватит уже лезть в нативные игровые классы без необходимости?

 

Делайте свои в контексте миссии

 

5_Mission\mission\MyBuildingsExample.c
 

ref MyBuildingsClass g_MyBuildingsClass = new MyBuildingsClass; //g_MyBuildingsClass - переменная - ссылка на создающийся экземпляр класса - он будет создан при компиляции

class MyBuildingsClass
{
	void MyBuildingsClass() //Это конструктор - он будет выполенен сразу после создания экземпляра класса
	{
		init(); //Это функция будет вызвана из конструктора
		delete g_MyBuildingsClass; //Зачем классу занимать память после того как все что нужно отработало? грохнем его
	}

	void init() //Будет вызвана из конструктора
	{
		SpawnObject( "bldr_plnt_b_betulaHumilis_1s", "12894.611328 173.905670 4465.360352", "0.000000 0.000000 0.000000" );
		SpawnObject( "bldr_plnt_b_betulaHumilis_1s", "12894.611328 173.905670 4465.360352", "0.000000 0.000000 0.000000" );
		SpawnObject( "bldr_plnt_b_betulaHumilis_1s", "12894.611328 173.905670 4465.360352", "0.000000 0.000000 0.000000" );
		SpawnObject( "bldr_plnt_b_betulaHumilis_1s", "12894.611328 173.905670 4465.360352", "0.000000 0.000000 0.000000" );
	}

	void SpawnObject(string objectName, vector position, vector orientation)
	{
    	Object obj;
    	obj = Object.Cast(GetGame().CreateObject(objectName, "1 500 1"));
    	obj.SetPosition(position);
    	obj.SetOrientation(orientation);

    	// Force update collisions
   		if (obj.CanAffectPathgraph())
    	{
        	obj.SetAffectPathgraph(true, false);
        	GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj);
    	}
		else
		{
			orientation = obj.GetOrientation();
			orientation[0] = orientation[0] + 1;
			obj.SetOrientation(orientation);
			orientation[0] = orientation[0] - 1;
			obj.SetOrientation(orientation);
			orientation[1] = orientation[1] + 1;
			obj.SetOrientation(orientation);
			orientation[1] = orientation[1] - 1;
			obj.SetOrientation(orientation);
			orientation[2] = orientation[2] + 1;
			obj.SetOrientation(orientation);
			orientation[2] = orientation[2] - 1;
			obj.SetOrientation(orientation);
		}
	}
}

 

Собираем в серверный мод и подключаем на стороне сервера

Все - после компиляции при запуске сервера все отработает - обьекты расставятся и класс будет грохнут - соответственно и память занимать не будет

 

Можно хоть 100 таких файлов и классов сделать

 

Файл можно конечно проинклюдить в папке миссии в Init.c или что там у Вас, но там есть ограничения по суммарному количеству строк во включаемых файлах



 

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

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


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

@BorizzK эх где же ты был раньше... Но всё равно спасибо! Сейчас буду пытаться сделать так же.

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: BR0wi
      Подскажите где найти людей, которые делаю моды на заказ. К кому вообще обращаться? Или что бы реализовать свои идеи нужно самому "год" сидеть и изучать все механики модинга?
    • Автор: CubeIn
      Приветствую господа, хочу создать новый проект, уникальный, но для этого нужен маппер.
      Я оставлю здесь свой дискрод, напишите в лс, кто готов взяться за крупный проект.
      4me#4542
    • Автор: 6agu
      Поставил
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • Автор: Venom21
      Появилась такая проблема, нужно закрыть некоторые слоты под одежду, когда на определённый слот одет предмет…
      пример: возьмём экзоскелет от Фидова, там есть две версии которая одеваеться как на тело и ноги, и есть которая одеваться на разгрузку и пояс, так вот, нужно например чтобы при одетом экзаче на тело и ноги слоты под пояс и разгрузку блокировались, либо только под определенные предметы, если есть интерес то цену можем в личке обсудить…
      P.S. Разрешение от Фидова на переделку и переупаковку есть)
    • Автор: CubeIn
      Здарова, уважаемые знатоки, вопрос.
      Мне скриптер скинул скрипт и сказал закинуть её в северную часть, но не указал куда именно. Подскажите пожалуйста, куда мне её деть? 
  • Наш выбор

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

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

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