Client side problems

  • Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

Donator

New Member
Jun 26, 2003
146
0
0
Vienna
Visit site
Anybody familiar with things not working the way intended client side? Put up a home Lan yesterday testing my Arkon weapons pack with a few friends. Less errors than I expected, but both the new shield effect and the CMortar projectile camera wouldn't work (be displayed, no crashes, fortunately) client side for reasons I'm not even beginning to understand.
 

EvilDrWong

Every line of code elevates you
Jun 16, 2001
932
0
0
40
Inside the machine
Visit site
Im far from a replication guru, but im guessing that you could set the new shield effect's RemoteRole (or Role, dont remember which one is important :-x) to ROLE_SimulatedProxy, that way itll be spawned both client and server side... just a guess though
 

Donator

New Member
Jun 26, 2003
146
0
0
Vienna
Visit site
Currently I'm using the NetDamage function (in a new subclass of GameRules) to draw the new xEmitter. Now where can/should I change "role"? In replication? Of the xEmitter or the GameInfo?

Are there any tutorials on network problems? As I see it, ROLE determines if the caller is server or client, and in the current state the client won't call the new NetDamage function. So how would the needed code look like?

replication
{
reliable if (ROLE<ROLE_Authority)
NetDamage;
}

???
 
Last edited:

EvilDrWong

Every line of code elevates you
Jun 16, 2001
932
0
0
40
Inside the machine
Visit site
Donator said:
Currently I'm using the NetDamage function (in a new subclass of GameRules) to draw the new xEmitter. Now where can/should I change "role"? In replication? Of the xEmitter or the GameInfo?

Are there any tutorials on network problems? As I see it, ROLE determines if the caller is server or client, and in the current state the client won't call the new NetDamage function. So how would the needed code look like?

replication
{
reliable if (ROLE<ROLE_Authority)
NetDamage;
}

???
The xEmitter needs some sort of replication, or it needs to get created in a function thats replicated, or some other replication related stuff... im not really that sure...
But you dont need to replicate NetDamage to the player, what it does has no importance clientside, just the end result. You can check out the classic Replication De-Obfuscation doc, but its got a bunch of stuff relating to the earlier builds of the engine (replication is still pretty much the same though, just ignore the UT and Unreal related stuff :p)
 

Donator

New Member
Jun 26, 2003
146
0
0
Vienna
Visit site
If I understand that text right then simply setting the GameRules (and maybe the xEmitter) to bAlwaysRelevant=True should handle the problem, maybe at the cost of some fps...
 

EvilDrWong

Every line of code elevates you
Jun 16, 2001
932
0
0
40
Inside the machine
Visit site
The GameRules shouldnt be replicated. Think of the pandemonium if every player is running NetDamage whenever someone gets hurt! (Granted, that wouldnt happen, but in the random off chance that it does...) The children, for gods sake, think of the children!
Youd probably be better off with making the emitter ROLE_SimulatedProxy (not bAlwaysRelevant since itd cause unnecessary slowdowns), or using something other than an emitter (if possible) since emitters arent famous for replicating correctly.
 

Donator

New Member
Jun 26, 2003
146
0
0
Vienna
Visit site
But how do you "make" the xEmitters role your desired? Lines like "Role==ROLE_SimulatedProxy" are not accepted without a reliable/unreliable statement before.

And, out of curiosity, will a bAlwaysRelevant emitter (or actor) be replicated to the client even if it's spawned in a server only function like NetDamage?
 
Last edited: