PDA

View Full Version : Simulated function Tick not called on client


Shiit
23rd Nov 2001, 11:47 AM
I have a subclass of the Info class, and it's supposed to have it's ticks simulated on the client, but it's obvious the tick function is never called there. It looks like this
Simulated function Tick (float Deltatime)
{
FakeTimer+=Deltatime;
}
and that's all there is to it. However, FakeTimer remains 0, no matter what. It des work on the server. What am I doing wrong?

_U][B_StoneRain
23rd Nov 2001, 01:15 PM
did you set

defaultproperties
{
bAlwaysRelevant=true
bAlwaysTick=true
RemoteRole=ROLE_SimulatedProxy
}

I'm not sure but I think these settings a relevant for client replication

Shiit
23rd Nov 2001, 01:52 PM
Originally posted by _U][B_StoneRain
RemoteRole=ROLE_SimulatedProxy


Yo! That did the trick. Thanks!
Hmm... This means that some of the replication documents I read have errors in them too...

2COOL4-U
23rd Nov 2001, 02:36 PM
what tutorials did you read?

Shiit
23rd Nov 2001, 04:22 PM
I recall that both the official Tim Sweeney replication reference and Mongo's De-obfuscation said that ROLE_Simulatedproxy were like Dumbproxies, except that they took physics into account. That's pretty wrong, because Simulatedproxies react to everything the engine tells them (as long as the events are simulated as well).

2COOL4-U
23rd Nov 2001, 04:32 PM
Even Tim Sweeney made a mistake while he wrote the scripting language himself? That's weird:confused:

Shiit
24th Nov 2001, 06:26 AM
Yes, but then again, maybe the Tick function is handled by the physics code, so it isn't technically a mistake. Or maybe I just read it wrongly.

eXoR
24th Nov 2001, 06:54 AM
As I read it, the tutes are 100% accurate .. I believe you misunderstand them.

Dumbproxys are stupid actors that don't require clientside prediction/simulation. They have their variables replicated every once in a while, but as they don't get predicted their simulated functions will not be called.

Simulatedproxys are proxys that the engine can properly simulate, like in example as you said with physics. But that's not the only thing, other things can be simulated as well. That happens in simulated functions, and thus they do get called for simulatedproxys but not for dumb ones.

TaoPaiPai
24th Nov 2001, 07:29 PM
It's can be more than a problem with client and server,even when playing standalone,you could notice the tick stops being processed whenever your character moves far away from the actor involved or even enters a different zone.
That's why you need to make sure you have bStatis=False and bgamerelevant and balwaysrelevent=true , especially if you're childclassing a class such as 'decoration' which has bstatis to true in defaultproperties !

Shiit
25th Nov 2001, 06:23 AM
Luckily, the object I need simulated is owned by the player that needs the info, so it's always relevant, only for the person that uses it.