- Home /
Question by
Crystalline · Mar 25, 2014 at 07:37 PM ·
networkingphotonrpc
Cheating possible in this code?
Hello there! I just started with Networking , and I am using RPC calls at the moment (I use Photon ). Here is a little code, that , makes me curious if it can be cheated by players.
What it does, is ,the player sends an rpc to the server, then the server responds to the players for a limited time ( the rpc can be called only 4 times ). Can this be cheated?
using UnityEngine;
using System.Collections;
public class TestThing : Photon.MonoBehaviour {
//by player
float localvar = 12;
//by server
int server_times = 4;
float server_var;
// Update is called once per frame
void Update ()
{
//we call the server only!
if( Input.GetKeyDown(KeyCode.L) )
{
//request from server
photonView.RPC( "ToServer",PhotonTargets.MasterClient );
}
}
//this is what player requested
//called on server only
[RPC]
void ToServer()
{
if( server_times >0 )
{
photonView.RPC( "ToPlayer" , PhotonTargets.Others , (object)20f );
server_times -= 1;
}
}
//called back on player ,after the player has requested it
[RPC]
void ToPlayer( float thevar )
{
localvar += thevar;
print(server_times);
}
}
Comment
I think you can overflow the requests to the server - There are no protections to prevent multiple calls.
Answer by fholm · Mar 27, 2014 at 05:05 AM
It depends on what you mean with "can this be cheated?". A client can send 10000 requests for this to the server if he wants, even if he only pressed the button once (or not times).