Remote inputs are processed in sync juncture once performed on the server - this code below was executing the inventory command before the player simulation timeestamp for remotes which is illegal
4207 {
4209 {
4211 {
4212 Error(
"[syncinv] " +
Object.GetDebugName(player) +
" SendServerHandEventViaJuncture - called on server side event only, e=" + e.
DumpToString());
4213 }
4214
4215 if (player.IsAlive())
4216 {
4220 {
4222 {
4223#ifdef ENABLE_LOGGING
4225 {
4227 }
4228#endif
4229
4231 {
4232#ifdef ENABLE_LOGGING
4234 {
4236 }
4237#endif
4238 }
4239 else
4240 {
4241#ifdef ENABLE_LOGGING
4243 {
4245 }
4246#endif
4247 }
4248 }
4249
4250#ifdef ENABLE_LOGGING
4252 {
4254 }
4255#endif
4256
4260
4261#ifdef ENABLE_LOGGING
4263 {
4265 }
4266#endif
4267
4269
4270 }
4271 }
4272 else
4273 {
4274 Error(
"[syncinv] SendServerHandEventViaJuncture - called on dead player, juncture is for living only");
4275 }
4276 }
4277 }
void syncDebugPrint(string s)
InventoryMode
NOTE: PREDICTIVE is not to be used at all in multiplayer.
static const int SJ_INVENTORY
const int c_InventoryReservationTimeoutMS
reservations
script counterpart to engine's class Inventory
override InventoryLocation GetDst()
override bool IsServerSideOnly()
override string DumpToString()
proto native bool IsValid()
verify current set inventory location
proto native EntityAI GetParent()
returns parent of current inventory location
static string DumpToStringNullSafe(InventoryLocation loc)
proto native EntityAI GetItem()
returns item of current inventory location
static bool IsSyncLogEnable()
void Error(string err)
Messagebox with error message.