Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
123new

Перезапись частички мода своим кодом

Вопрос такого плана.

Имеется мод, скрипт которого имеет вот такую часть:

modded class DayZPlayerImplement extends DayZPlayer
{
	// тут куча коду
	void traderServerLog(string message)
	{
		TraderMessage.ServerLog("[TRADER] Player: (" + this.GetIdentity().GetName() + ") " + this.GetIdentity().GetId() + " " + message);
	}
	// тут куча коду
}

делаю на стороне сервера свой скрипт в той же секции родных скриптов игры (не в виде мода, просто скрипт). Скрипт вида:

modded class DayZPlayerImplement extends DayZPlayer
{
	override void traderServerLog(string message)
	{
		super.traderServerLog(message);

		private PlayerIdentity p_Identity = this.GetIdentity();
		if (p_Identity)
		{
			string name_player = p_Identity.GetName();
			string UID_player = p_Identity.GetPlainId();
			vector pos_object = this.GetPosition();	
			private string message_log = name_player + "(steam64id=" + UID_player + ",pos=" + pos_object.ToString() + ") " + message;
			Print(message_log);
		}
	}
	
}

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

 

Подскажите, каким образом корректно переписать такой Modded код родного класса игры из мода своим с сохранением оригинального вызова?

Share this post


Link to post
Share on other sites

17 answers to this question

Recommended Posts

  • 0

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

Share this post


Link to post
Share on other sites









  • 0

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

Share this post


Link to post
Share on other sites
  • 0

123new код ошибки можешь скинуть?
а лучше сам код который пишешь и который вызывает данную ошибку

 

Edited by DIEPOLKOVNIK (see edit history)

Share this post


Link to post
Share on other sites
  • 0

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

 

Share this post


Link to post
Share on other sites
  • 0

Ну пока выход тока один я вижу, либо мод-структурой подцепляться к другому моду, который хочу менять, либо лепить костыли с переписыванием функции TraderMessage.ServerLog из класса TraderMessage, иными словами менять в другом месте саму функцию, и на ее основе выцеплять нужные данные. Это более геморно и заморочно.
Первая вариация более универсальна и корректна будет, но есть один минус - параметр equalmodrequired  - т.е. или я правлю и делаю мод, который распространяю на сервер и клиент всем, или не делаю. Вариаций чисто серверного мода, как в арме параетр -servermod нету здесь.
Спасибо за прояснение.

Share this post


Link to post
Share on other sites
  • 0

123new Твой код компилится раньше чем код трейдера - отсюда и ошибка
Ты свой мод должен загружаться ПОСЛЕ трейдера

 

Share this post


Link to post
Share on other sites
  • 0

123new А откуда она будет определена то? - Ты че решил замоддить замодденое?)))))

Веселый ты чувак) Да еще и без мода...

В родном DayZPlayerImplement нет никакой процедуры - traderServerLog, вот тя и шлют лесом.

 

 

Share this post


Link to post
Share on other sites
  • 0

123new Чтобы это решать НЕ тупым переписыванием авторского мода, - автор сего творения должен был создать класс свой, и впихать его вызов внутри замодденого. А ты бы вменяемо замоддил его класс(объявил бы зависимость и т.д.), и перекрыл бы процедуру.

 

Share this post


Link to post
Share on other sites
  • 0
17 минут назад, NoNameUltima сказал:

123new А откуда она будет определена то? - Ты че решил замоддить замодденое?)))))

Веселый ты чувак) Да еще и без мода...

В родном DayZPlayerImplement нет никакой процедуры - traderServerLog, вот тя и шлют лесом.

 

 

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

15 минут назад, NoNameUltima сказал:

123new Чтобы это решать НЕ тупым переписыванием авторского мода, - автор сего творения должен был создать класс свой, и впихать его вызов внутри замодденого. А ты бы вменяемо замоддил его класс(объявил бы зависимость и т.д.), и перекрыл бы процедуру.

 

согласен, но это автор мода, и увы, тут уже он решает что у него и как)

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

123new Твой код компилится раньше чем код трейдера - отсюда и ошибка
Ты свой мод должен загружаться ПОСЛЕ трейдера

 

понял

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0

123new Моды грузятся не как попало, а от зависимостей. Пропиши в requiredAddons то чего ждать, и будет ждать. И кстати вполне возможно что заоверрайдишь процедуру... хер его знает как там в дайзе.

Share this post


Link to post
Share on other sites
  • 0

NoNameUltima не, ну с модом то это понятно. Интересовался как раз именно возможностью без мода, так как мод - это автоматически доп заморочка рассылки клиентам с 'equalmodrequired=1;', тогда как изменения могут быть нужны лишь для серверных функций.

Share this post


Link to post
Share on other sites
  • 0

123new Заморочки эти только по вине разрабов, которые в очередной раз динамят -serverMod ключ.

Share this post


Link to post
Share on other sites
  • 0

NoNameUltima факт. Кстати, кто-то уже догадался на багтрекере про эту фигню им предложить? Там же можно присоединяться к дискуссии и просить всем.

Share this post


Link to post
Share on other sites
  • 0

NoNameUltima замоддить заможеное, лехко

Судя по докам  богемии

 

Я задавал им вопрос

 

1. Мод должен компилиться позже чем то что моддится

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

3. Моддить класс который это позволяет можно скок угодно, как и перекрывать функции

 

Ну и пример есть в их доке по синтаксису, в самом низу

 

https://community.bistudio.com/wiki/DayZ:Enforce_Script_Syntax

 

 

 

 

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By 123new
      Вопросик такого плана.
      В патче 1.4 появился новый функционал в игре.
      У некоторых модов в гл. меню идут картинки. Как вот например такое.

      Если свериться с вики
      https://community.bistudio.com/wiki/DayZ:Modding_Structure
      то должны быть в модах картинки формата .tga.

      Открываю для примера моды Zomberry admin tool или CarHorn, где есть данные картинки.
      В модах не наблюдаю файлов в таком формате, а вместо них наблюдаю неведомый мне формат edds и edds.meta (что подозреваю взаимосвязанно). Также, не наблюдаю прописи таковых в конфиге мода.
      Вопрос - как самому создавать такие картинки для своих модов и верно их прописывать? Ни одного гайда в сети нне нашел
    • By dosserua
      Здравствуйте.
      Я знаю что люди каким-то чудом делают что при открытие их PBO вылазит ошибочка и хрен что скопируешь или откроешь оттуда.
      Так вот, подскажите пожалуйста как и чем это делается.
    • By 123new
      Товарищи, вопрос следующий, больше к знатокам.
      Есть у мода своя клиентская часть, есть серверная.
      Задача: Вызвать с клиента мода серверную функцию мода и получить результат в переменную как ответ.
      Чтобы более понятно было:
      на стороне сервера есть несколько переменных, на стороне клиента по запросу от мода надо получить их с сервера.
       
      Суть вопроса в том, что нужен пример такой реализации, не допетриваю сам как реализовать эту шнягу. Есть у кого идеи, знания какие?
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.