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
Sign in to follow this  
Juze

RPC с Клиента на Сервер.

Добрый вечер,

 

Подскажите пожалуйста, как с клиента отправить RPC на сервер? 

Я сделал простенький скрипт, который должен наносить урон, но как я понял, урон игроку или другим объектам может наносить только сервер?

Как послать RPC команду я примерно знаю, но никак не могу понять, как сервер должен ее принимать.

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Из класса для получения в том же классе (том же предмете/сущности)
На клиенте

 

ref Param1<bool> p = new Param1<bool>( true );
GetGame().RPCSingleParam( this, НомерRPC(целоечисло), p, true );

Сервер его примет в стандартном потоке и передаст на сторону скриптов в функцию OnRPC


Ловить в классе предмета/Сущности - на сервере

Если выше шлется с сервера - то ловить на клиенте

Если все в одном моде и нет деления на клиент-сервер - нужна проверка IsClient и IsServer прежде чем обрабатывать RPC

	override void OnRPC(PlayerIdentity sender, int rpc_type, ParamsReadContext  ctx) // from server
	{
		super.OnRPC(sender, rpc_type, ctx);
		
		switch(rpc_type)
		{
			case НомерRPC:
			{
				ref Param1<bool> p = new Param1<bool>(false);
				if (ctx.Read(p))
				{
					myboolvar 	= p.param1;
                                            if (myboolvar) MyFunc();
				}
			break;
			}
		}
	}

Это пример для 1 параметра (курить класс Param и его деток Param1, Param2 итд итп)

имя переменной - тут p - неважно - как хочешь так и называй

myboolvar переменная в классе и в примере не объявлена

MyFunc() - функция в классе - то же не обьявлена
проверка на предмет где клиент где сервер опущена тк работать может в обеих направлениях
вместо switch можно юзать простое условие

НомерRPC - это целое число - как правило это энумератор - должно отлчаться от любых других номеров РПЦ (курите матчасть)

 

Синтаксис языка итд итп (базис) курить тут

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
Sign in to follow this  

×
×
  • 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.