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

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

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

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

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

Моды, серверные моды - последовательность загрузки и перекрытие

Предлагаю эту тему обсуждать тут

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


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

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

  • 0

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

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

1. @My_Mod - клиентский - внутреннее имя My_Mod - пишет:

1) в скрипт лог Init My Mod is Loaded когда активируется

2) My Mod Test Function is Loaded когда отрабатывает функция в своем кастомном классе этого же мода

2. @My_Server_Mod - серверный - внутреннее имя AMy_Server_Mod - пишет:

1) в скрипт лог Init My Server Mod is Loaded когда активируется

2) переписываем функцию, заданную в клиентском, для отправки сообщения, заменяя ее на отправку текста My Server Mod Test Function is Loaded

 

Далее запускаю сервер

start "" "DayZServer_x64.exe" -port=2303 " "-mod=@My_Mod;" "-servermod=@My_Server_Mod;" "-config=Instance_Veteran\server.cfg" "-cfg=Instance_Veteran\basic.cfg" "-profiles=Instance_Veteran" "-user=Instance_Veteran" "-name=Server" -nologs -adminlog -freezecheck  "-bePath=Instance_Veteran\BattlEye" -FilePatching -scrAllowFileWrite -enableHT

и наблюдаю

381816840_.png.b6d846113650477d6ff407c85e6a8407.png

т.е. как мы видим, функция таки переписалась серверным модом и текст заменился на нужный. Хотя если верить записи. серверный якобы подгрузился раньше клиентского (как это может быть? тогда должна быть ошибка на класс, которого сервер не знает, поскольку клиентский еще не подгружен)

В required ничего не указано у обоих модов.

Соответственно отсюда делаю вывод, что сервер их сам авторанжирует в зависимости от известных ему функций и ставит в очередь загрузки согласно своим приоритетам

 

P.S. Перенес тему в раздел помощи, всетаки это не гайд пока что.

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

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


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





  • 0

У меня строго наоборот!!!!!!

Смотри

 

"-mod=@MODS\@OPG_Mod;" "-servermod=#SRVMODS\#BorizzK_ServerMod;#SRVMODS\#BorizzK_ServerMod_DD;#SRVMODS\#BorizzK_ServerMod_Deseases;"

 

вывод в лог

 

SCRIPT       : ::: SERVER: [BorizzK_ServerMod]: Game: Init
SCRIPT       : ::: [OPG_Mod] Game: Init

SCRIPT       : ::: SERVER: [BorizzK_ServerMod]: World: Init

SCRIPT       : ::: SERVER: [BorizzK_ServerMod_DD]: World: Init
SCRIPT       : ::: SERVER: [BorizzK_ServerMod_Deseases]: World: Init

SCRIPT       : ::: [OPG_Mod] World: Init

 

меняем местами (хотя насколько помню servermod указывается после mod и в 1 10 так сервер вообще не стартовал)

 

Ну и в скрипте на всяк случай взял серверный массив в котором сервер держит список модов:

вывел его в цикле

 

SCRIPT       : ::: SERVER: [BorizzK_ServerMod]: World: Mods array: count: 6
SCRIPT       : ::: SERVER: [BorizzK_ServerMod]: World: Mod: [0]:ModInfo<65ccd820> >>> OPG_Mod
SCRIPT       : ::: SERVER: [BorizzK_ServerMod]: World: Mod: [1]:ModInfo<65ccd988> >>> Livonia DLC
SCRIPT       : ::: SERVER: [BorizzK_ServerMod]: World: Mod: [2]:ModInfo<65ccdaf0> >>> DZ
SCRIPT       : ::: SERVER: [BorizzK_ServerMod]: World: Mod: [3]:ModInfo<65ccdc58> >>> #BorizzK_ServerMod_Deseases
SCRIPT       : ::: SERVER: [BorizzK_ServerMod]: World: Mod: [4]:ModInfo<65ccddc0> >>> #BorizzK_ServerMod_DD
SCRIPT       : ::: SERVER: [BorizzK_ServerMod]: World: Mod: [5]:ModInfo<65ccdf28> >>> #BorizzK_ServerMod

 

 

 "-servermod=#SRVMODS\#BorizzK_ServerMod;#SRVMODS\#BorizzK_ServerMod_DD;#SRVMODS\#BorizzK_ServerMod_Deseases;" "-mod=@MODS\@OPG_Mod;"

 

SCRIPT       : ::: SERVER: [BorizzK_ServerMod]: Game: Init
SCRIPT       : ::: [OPG_Mod] Game: Init

SCRIPT       : ::: SERVER: [BorizzK_ServerMod]: World: Init

SCRIPT       : ::: SERVER: [BorizzK_ServerMod_DD]: World: Init
SCRIPT       : ::: SERVER: [BorizzK_ServerMod_Deseases]: World: Init

SCRIPT       : ::: [OPG_Mod] World: Init

 

Ну и в скрипте на всяк случай взял серверный массив в котором сервер держит список модов:

вывел его в цикле

 

SCRIPT       : ::: SERVER: [BorizzK_ServerMod]: World: Mods array: count: 6
SCRIPT       : ::: SERVER: [BorizzK_ServerMod]: World: Mod: [0]:ModInfo<65ccd820> >>> OPG_Mod
SCRIPT       : ::: SERVER: [BorizzK_ServerMod]: World: Mod: [1]:ModInfo<65ccd988> >>> Livonia DLC
SCRIPT       : ::: SERVER: [BorizzK_ServerMod]: World: Mod: [2]:ModInfo<65ccdaf0> >>> DZ
SCRIPT       : ::: SERVER: [BorizzK_ServerMod]: World: Mod: [3]:ModInfo<65ccdc58> >>> #BorizzK_ServerMod_Deseases
SCRIPT       : ::: SERVER: [BorizzK_ServerMod]: World: Mod: [4]:ModInfo<65ccddc0> >>> #BorizzK_ServerMod_DD
SCRIPT       : ::: SERVER: [BorizzK_ServerMod]: World: Mod: [5]:ModInfo<65ccdf28> >>> #BorizzK_ServerMod

 

я ровным счетом никера не понимаю


выходит моды обрабатываются от последнего серверного  к первому обычному - те от 5го к 0му

 

какой-то бреееед

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


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

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

Возьми например нужный тебе мод клиентский, впиши в него лог-строку одну на нужной тебе комманде для переписывания.

Потом в серверных впиши в той же функции, что переписываешь ее. И сравни что получится уже по этим текстовым меткам. Там как ни крути, уже порядок обработки фактический будет показан. И от этого отталкиваться. А что они при подгрузке сервера наменяли один бог их знает, так как раньше и на ; в конце строки с модами не обращал внимания движок, а теперь обращает.

Я вообще еще на 1.10 и 1.11 наблюдал весьма чудесную штуку на удаленке у знакомого при тестах, когда суешь скрипты в 5_mission и у тебя OnInit два раза отрабатывает с них, первый раз когда идет прогрузка скриптов до миссии на запуске сервера, второй раз при чтении именно миссии инита. И получалось так что один и тот же скрипт в памяти 2 раза висел. Вот чет похожее у тебя походу.

 

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


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

Я пробовал

дефайны клиентского в данном случае не ловятся в серверном

в 1 12 ловятся

 

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


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

я делал в своем серверном моде ifdef на дефайн клиентского мода со стима.

Без указания реквайр аддонс клиентского в своем серверном эти ifdef были до одного места серверу, сервер считал что нет define  в моем моде такого. Код игнорился.

Внес реквайр аддонс - все заработало.

Все это тестилось на 1.12 примерно неделю назад.

 

Так о чем речь вообще не понимаю.

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

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


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

На 1 12 все тестилось и было норм

кстати билдэнивере в3 из стима моего у некоторых не перекрывает некоторые классы которые были перекрыты их модами - те их моды перекрывают функции в билдэнивере и все начинает работать через одно место - хотя в 1 12 работало как часы

 

мне сделать тысячи вариантов билдэнивере с реквайром на их моды?

 

ща еще тест проведу

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

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


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

моде ifdef

Подскажите пожалуйста подробнее, что это за Ifdef? Каким образом он влияет на загрузку модов? До этого я использовал только зависимоти(рекваер аддонс). А вот про это увидел только тут..

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


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

На 1 12 все тестилось и было норм

чудеса магии прям.... Лично тестил, весь вечер на это убил. Не возможно это никак.
Серверка с этим вроде даже осталась на компе, но клиент уже 1.13 давно, так что протестить в игре проблемно.

 

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


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

чудеса магии прям.... Лично тестил, весь вечер на это убил. Не возможно это никак.
Серверка с этим вроде даже осталась на компе, но клиент уже 1.13 давно, так что протестить в игре проблемно.

 

У меня все на #ifdef построено и все работало как часы!!!!!!!

Спецом допустил ошибки синтаксиса

 

Запуск сервера

ругается на сервермод

исправил ошибку

на второй

исправл

на 3й

и ток потом ругается на клиентский

 

что четко говорит о том в какой последовательности они их читает

 

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


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

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

 

108947043_.png.6290d11cb0ef90ec1dc3f77c4bd09d86.png

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


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

Что и требовалось доказать

 

886118554_.png.308ae36afdaeaf30f04615750ca21e2b.png

BorizzK_ServerMod\scripts\4_World\Entities

1853094155_.png.561499c99d98a2ca8ad76313ebb9214f.png

 

OPG_Mod\scripts\4_World\Entities

408807981_.png.fc0b68e28b2e08933a920a0701e7354b.png

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

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

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


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

Переименование серверного мода то же ничего не дало

420633856_.png.825183a7d1ccb9f58d79e9e5d4d68929.png

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


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

Вот такая последовательность вызовов
SCRIPT       : 2.InitItemVariables:ItemBase:BorizzK_Servermod
SCRIPT       : 1.ItemBaseOPG:ItemBase:OPG_Mod
SCRIPT       : 1.InitItemVariables:ItemBase:OPG_Mod

 

вот этот

1659151076_.png.336d3b2b31b671643cad7eab221001da.png

должен перекрыть этот

 

1781786666_.png.36acbef73c5e82545bf931d241583836.png

Но как видим второй перекрывает первый

Полная лажа

 

 

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


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

Вобщем потыркался

Я умываю руки

У знакмых у всех работа их модов посьезжала нафиг...

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


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

Понятия не имею как ваши ifdef могут работать на той же 1.12, это из разряда мистики. Ниже обещанный тест с старой доброй 1.12.

Использую файлы:

1) @Breachingcharge  с модом @CF для него
2) сервермод-пустышка, который выдает лишь 1 строку лога если ifdef сработает в виде кода в 5_Mission:

#ifdef BREACHINGCHARGE
modded class MissionServer
{
	private string MyTestVar;
	
	override OnInit()
	{
		super.OnInit();
		Print("@AMy_Server_Mod Loaded!");
	}
}
#endif

Тест 1: Запускаем сервер и ....

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

как видим, чуда не случилось. Файлы и

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

Тест 2: Теперь добавляем в required addons имя 1

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

собственно код исполнился

Файлы и

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

Каким оно там образом у вас может работать в 1.12 понятия не имею, это из разряда невозможного. Хотите сами проверьте, мне не жалко. Соответственно после этого в 1.13 для меня ничего ровным счетом не поменялось.

Весь сервер 1.12 с файлами тестов и модами выше написанными: https://dropmefiles.com/UGhVP

Папки 1 и 2 в архиве это что скинул выше.

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

2 часа назад, BorizzK сказал:

что четко говорит о том в какой последовательности они их читает

На этот счет уже сказал выше, читать и исполнять он их может по разному, так что чтение не показатель.

И да кстати:

2 часа назад, BorizzK сказал:

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

 

108947043_.png.6290d11cb0ef90ec1dc3f77c4bd09d86.png

overridR серьезно?  🤣 Не удивлен ошибке)

 

2 часа назад, thessend сказал:

Подскажите пожалуйста подробнее, что это за Ifdef? Каким образом он влияет на загрузку модов? До этого я использовал только зависимоти(рекваер аддонс). А вот про это увидел только тут..

с++ мотоды #define и @ifdef изучите, в DayZ они тоже имеются в скриптах

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


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

Ну сервеный мод на VPPAdminTools ловит его дефайны и с ним работает а без него просто не копилится

 

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

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


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

На
подключи админку VPP

этот как серверный

там немного фиксов внутрянки админки

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

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


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

На
подключи админку VPP

этот как серверный

там немного фиксов внутрянки админки

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

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

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

start "DayZ" "DayZServer_x64.exe" -port=2302 "-mod=@CF;" "-servermod=@BorizzK_VPP_Tools_Mod;" -config=Instance_1\server.cfg -cfg=Instance_1\basic.cfg -profiles=Instance_1 -user=Instance_1 -name=Server -dologs -adminlog -freezecheck -FilePatching -scriptDebug=true

оба 1.13 чистая

 

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

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


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

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

 

Оказалось все довольно просто )))))))) но нужен 1 раз реквайр

в серверном реквайр от клиентского и серв начинает вроде адекватно читать

 

ЗЫ у меня там дефайны просто неправильные потому и метсами недефайнед
 

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

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


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

VPP ADmin Tools подключи

 

 

в 1 тесте подключен, во 2 отключен)

выше смотри)

9 минут назад, BorizzK сказал:

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

 

Оказалось все довольно просто )))))))) но нужен 1 раз реквайр

в серверном реквайр от клиентского и серв начинает вроде адекватно читать

 

ЗЫ у меня там дефайны просто неправильные потому и метсами недефайнед
 

ну я тебе про это и говорил изначально

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


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

в 1 тесте подключен, во 2 отключен)

выше смотри)

ну я тебе про это и говорил изначально

 

Те получается - достаточно в клиентский свой пак положить например мод пустышку

и в серверный в первый в списе положить мод пустышку с рекваром на пустышку из клиентского и все пойдет ровно... так что ли???

 

ну хоть так

хотя цЫрк с коняхами

 

было же - клиентские - тот что правее перекрывает тот что левее

серверные - перекрывают все клиентские и перекрывают тот что правее те что левее и не нужно никаких реквайров

 

 

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

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


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

Тааак, а теперь все это медленно и два раза для всех остальных на пальцах.

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


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

Тааак, а теперь все это медленно и два раза для всех остальных на пальцах.

систематизируем

обрисуем примерами

тут опубликуем

и так бошка квадратная

 

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


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

 

Те получается - достаточно в клиентский свой пак положить например мод пустышку

и в серверный в первый в списе положить мод пустышку с рекваром на пустышку из клиентского и все пойдет ровно... так что ли???

 

ну хоть так

хотя цЫрк с коняхами

 

было же - клиентские - тот что правее перекрывает тот что левее

серверные - перекрывают все клиентские и перекрывают тот что правее те что левее и не нужно никаких реквайров

 

 

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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