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
2377 {
2379 {
2381 {
2382 Error(
"[syncinv] " +
Object.GetDebugName(player) +
" SendServerHandEventViaJuncture - called on server side event only, e=" + e.
DumpToString());
2383 }
2384
2385 if (player.IsAlive())
2386 {
2390 {
2392 {
2393#ifdef ENABLE_LOGGING
2395 {
2397 }
2398#endif
2399
2401 {
2402#ifdef ENABLE_LOGGING
2404 {
2406 }
2407#endif
2408 }
2409 else
2410 {
2411#ifdef ENABLE_LOGGING
2413 {
2415 }
2416#endif
2417 }
2418 }
2419
2420#ifdef ENABLE_LOGGING
2422 {
2424 }
2425#endif
2426
2430
2431#ifdef ENABLE_LOGGING
2433 {
2435 }
2436#endif
2437
2439
2440 }
2441 }
2442 else
2443 {
2444 Error(
"[syncinv] SendServerHandEventViaJuncture - called on dead player, juncture is for living only");
2445 }
2446 }
2447 }
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.