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

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

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

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

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

Как из клиента вызвать метод который лежит на сервере?

Здравствуйте!

 

В миссии "dayzOffline.chernarusplus", создал скрипт "InfoMessages.c" и в нем написал следующее:

int TIME_Information_Repeat = 5000;

ref TStringArray Messages = {"Test1!",
								"My First Script!"};

void CustomInformation()
{
	array<Man> players = new array<Man>;
	GetGame().GetPlayers( players );
	private int numbOfPlayers = players.Count();
	
	if(numbOfPlayers > 0)
	{
		foreach(Man player: players)
		{
			InfoMessages_SendPersonalMessage(Messages.GetRandomElement(), player);
		}
	}
}

void InfoMessages_SendPersonalMessage(string message, Man player)
{
	if((player) && (message != ""))
	{
		Param1<string> m_GlobalMessage = new Param1<string>(message);
		GetGame().RPCSingleParam(player, ERPCs.RPC_USER_ACTION_MESSAGE, m_GlobalMessage, true, player.GetIdentity());
	}
}

 

А вызываю его из скрипта "init.c" вот так:

#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\InfoMessages.c"
 
 void main()
{
	...
	
	GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(CustomInformation, TIME_Information_Repeat, true);
}

 

 

Все работает, вопрос:

 

Как сделать так, что бы  вызов скрипта "InfoMessages.c" происходил не в файле "init.c" ( который лежит на сервере ), а из клиента, но при этом таймер("TIME_Information_Repeat") уберу, будет обычный вызов метода, как я это вижу: ( создать мод который будет отлавливать нажатие кнопки F и после вызывать скрипт "InfoMessages.c" который лежит на сервере ), но я не понимаю как вызвать метод который лежит на сервере в скрипте?

 

Для чего я хочу это сделать:

 

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

 

P.S. Всем спасибо!

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


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

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

  • 0

1. писать свой мод клиент-серверный

2. вызывать RPC от клиента из Missiongameplay например

3. На сервере в 3_Game из OnRPC обрабатывать запрос по id вызова

4. собственно вызывать любые комманды, функции, скрипты на сервере, которые на момент 3_game сервер уже знает (т.е. вызвать инит миссии не получится, код прийдется переносить в мод)

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


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

1. писать свой мод клиент-серверный

2. вызывать RPC от клиента из Missiongameplay например

3. На сервере в 3_Game из OnRPC обрабатывать запрос по id вызова

4. собственно вызывать любые комманды, функции, скрипты на сервере, которые на момент 3_game сервер уже знает (т.е. вызвать инит миссии не получится, код прийдется переносить в мод)

Логику я  вроде бы понял, а вот куда писать все это, не очень, весь интернет перерыл не могу найти информации про OnRPC и подобное, с скриптами dayz у меня сейчас не все хорошо, информации мало, но я ищу.

 

Можешь подсказать пожалуйста, где почитать про RPC?

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


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

1. писать свой мод клиент-серверный

2. вызывать RPC от клиента из Missiongameplay например

3. На сервере в 3_Game из OnRPC обрабатывать запрос по id вызова

4. собственно вызывать любые комманды, функции, скрипты на сервере, которые на момент 3_game сервер уже знает (т.е. вызвать инит миссии не получится, код прийдется переносить в мод)

Смотри, я еще нашел вот это: https://github.com/Arkensor/DayZ-RPCFramework

 

Это стоит использовать? Или есть замена по лучше?

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


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

Смотри, я еще нашел вот это: https://github.com/Arkensor/DayZ-RPCFramework

 

Это стоит использовать? Или есть замена по лучше?

вариант 1 - мод CF

вариант 2 - писать свой код на основе наблюдений, сделанныфх еще товарищем Мизевым в свое время

 

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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

Поддержка