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

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

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

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

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

Зомби проходят сквозь здания

Ребят проблема в следующем, в офлайн редакторе поставил несколько казарм и закинул на сервер что бы не загаживать init.c скрипт с постройками запилил в серверный мод,

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

object.c

modded class MissionServer
{override void OnInit()
    {
	super.OnInit();
	SpawnObject( "объект", "координаты", "0.000000 0.000000 0.000000" );
}
    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);
        if (obj.CanAffectPathgraph())
        {
            obj.SetAffectPathgraph(true, false);
            GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj);
        }
    }
}

 

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


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

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

  • 0

Тоже голову ломал почему так..
Проблема в том, что для AI этих зданий не существует..
Чтоб они их увидели вам нужно прописать здания в файле init.c этой конкретной оффлайн миссии..
В оффлайне жмите экспорт. Здания скопируются в буфер..
А в папке миссии открывайте инит, вставляйте код из буфера и измените по примеру: 
 

#define DISABLE_PERSISTENCY

#include "$CurrentDir:Missions\\DayZCommunityOfflineMode.ChernarusPlus\\core\\BaseModuleInclude.c"
  
Mission CreateCustomMission(string path)
{    
    if ( GetGame().IsServer() && GetGame().IsMultiplayer() )
        return new CommunityOfflineServer();

    return new CommunityOfflineClient();
}
//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 );
}

//Your custom spawned objects


void main()
{
Hive myHive =  CreateHive(); 
SpawnObject( "Land_Garage_Office", "13500.558594 5.930701 6116.245117", "0.000000 0.000000 0.000000" );
GetCEApi().ExportProxyData( "7500 0 7500" , 10000 ); 
}

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


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



  • 0

@Василай с проблемой то вы всё точно описали
а вот по решению у меня вопросы
эта функция генерирует "storage/export/mapgrouppos.xml"
пока не понимаю как это поможет АИ, если этот файл используется для спавна лута?
... хотя я попробую, мало ли)))
 

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


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

Кто знает, были такие спички в СССР...от предприятия "БелДрев", пожаробезопасные,как их иногда называли,зажечь их была проблема......про них даже анегдот был.
Немец идёт по жд,видит партизан сиди на путях и чиркая спичками пытается взорвать пути...Немец тихо подходит и заглядывая через плечо минут пять наблюдает за без успешными попытками партизана, потом вздыхает, с участим похлопыват партизана по плечу...
-БелДрев?...Ну даффай,даффай...
@Archon7th  участливо заглядывая через плечо...-Ну даффай, даффай...:)
(проблема в спавне зомби,вернее в точках спавна)

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


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

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

@paranoyk 
но я-то не первый год с БелДрев работаю)
в чем проблема точек спавна? с этого момента поподробнее
 

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


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

Зомби спавнятся в текстуре вашего маппинга. Или на определённой текстуре.Этого хвататет. Многие не верят...от слова "так не должно быть"....но альтернативного обьяснения-нет. Если у вас постоянно зомби лезут в текстуры-уберите их спавн ипрописывайте по новой, если переодически-попробуйте уменьшить им радиус  спавна.
(не первый год....а этими спичками полвека назад пользовался:)))

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


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

@Василай 
мой пытливый ум не мог успокоится и я разобрался, что нужно для того что бы в экспорт попали заспавненые постройки
ответ: важно чтобы в mapGroupProto.xml обязательно была группа для данного типа
что в очередной раз намекает на то, что эта функция нужна для спавна предметов и никакого отношения к навигации не имеет
сказал я себе и задумался, а ведь у динамических событий все нормально с навмешами o_0 - это идея для следующего эксперимента

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

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


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

@Archon7th

Достаточно странно, что у меня пашет, а у вас нет...
там есть кусок для спавна предметов.. но дело не в нём.. у меня просто без этого куска почему-то не срабатывает...
аа.. про какую нацигацию вы говорите? вроде тред был о том, что зомбаки без уважения относятся к коллизии на ваших кастомных постройках..

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

у вас должны быть экспортнутые постройки, как у меня в примере:
( "Land_Garage_Office", "13500.558594 5.930701 6116.245117", "0.000000 0.000000 0.000000" );

надо обратить внимание, что если вы маппите в editore, то он скорее всего добавит ещё один лишний параметр, scale.. выглядеть будет вот так:
( "Land_Garage_Office", "13500.558594 5.930701 6116.245117", "0.000000 0.000000 0.000000" , 0.999986);
его нужно будет удалить на каждом объекте, иначе чуда не произойдёт..

далее открываете init.c по директории //Missions/DayZCommunityOfflineMode.ChernarusPlus/init.c
удаляете оттуда всё и в чистый файл заливаете код, который я оставлял выше.. 
заменяя мой ( "Land_Garage_Office", "13500.558594 5.930701 6116.245117", "0.000000 0.000000 0.000000" ); своими постройками..

сфё! запускайите миссию через батник(.bat), который создаёте в папке этой миссии..
от такой пойдёт:


@echo off

taskkill /F /IM DayZ_x64.exe /T

RD /s /q "storage_-1" > nul 2>&1

cd ../../

start DayZ_x64.exe -mission=.\Missions\DayZCommunityOfflineMode.ChernarusPlus -nosplash -noPause -noBenchmark -filePatching -doLogs -scriptDebug=true "


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

 

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

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


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

....не стёба ради....
Есть только два пути решения этой проблемы.
А)"запечь" свой маппинг в навмешь-опыт проведён Антохой, работает 100%
Б)Дедовский  метод описанный выше-добится что бы зомби НЕ спавнились в текстурах. 100% также рабочий.
Всё....И да, советую пользовать древний как (Слово удалено системой) мамонта код
 

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);
    } 
}

И чудесным образом масштабированные предметы начнут спавнится. В оффлайн редакторе НЕЛЬЗЯ масштабировать и НЕЛЬЗЯ их передвигать/трогать, но заспавнить-леГко.
@Archon7th Читали бы внимательно форум-меньше ненужных мыслей возникало бы. И сэкономили время.

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


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

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

я пробовал несколько разных способов ручного спавна построек и спавна зомби, результат один и тот же

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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