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
2062 {
2064 {
2066 {
2067 Error(
"[syncinv] " +
Object.GetDebugName(player) +
" SendServerHandEventViaJuncture - called on server side event only, e=" + e.
DumpToString());
2068 }
2069
2070 if (player.IsAlive())
2071 {
2075 {
2077 {
2078#ifdef ENABLE_LOGGING
2080 {
2082 }
2083#endif
2084
2086 {
2087#ifdef ENABLE_LOGGING
2089 {
2091 }
2092#endif
2093 }
2094 else
2095 {
2096#ifdef ENABLE_LOGGING
2098 {
2100 }
2101#endif
2102 }
2103 }
2104
2105#ifdef ENABLE_LOGGING
2107 {
2109 }
2110#endif
2111
2115
2116#ifdef ENABLE_LOGGING
2118 {
2120 }
2121#endif
2122
2124
2125 }
2126 }
2127 else
2128 {
2129 Error(
"[syncinv] SendServerHandEventViaJuncture - called on dead player, juncture is for living only");
2130 }
2131 }
2132 }
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()
proto native CGame GetGame()
void Error(string err)
Messagebox with error message.