PDA

View Full Version : Client side problems


Donator
3rd Aug 2003, 07:06 AM
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
3rd Aug 2003, 09:32 AM
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
4th Aug 2003, 04:01 AM
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;
}

???

EvilDrWong
4th Aug 2003, 11:27 AM
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 (http://real.jall.org:81/unreal/tutorials/replication.html) 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
4th Aug 2003, 02:32 PM
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
4th Aug 2003, 04:05 PM
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
5th Aug 2003, 01:20 AM
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?