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
2072 {
2074 {
2076 {
2077 Error(
"[syncinv] " +
Object.GetDebugName(player) +
" SendServerHandEventViaJuncture - called on server side event only, e=" + e.
DumpToString());
2078 }
2079
2080 if (player.IsAlive())
2081 {
2085 {
2087 {
2088#ifdef ENABLE_LOGGING
2090 {
2092 }
2093#endif
2094
2096 {
2097#ifdef ENABLE_LOGGING
2099 {
2101 }
2102#endif
2103 }
2104 else
2105 {
2106#ifdef ENABLE_LOGGING
2108 {
2110 }
2111#endif
2112 }
2113 }
2114
2115#ifdef ENABLE_LOGGING
2117 {
2119 }
2120#endif
2121
2125
2126#ifdef ENABLE_LOGGING
2128 {
2130 }
2131#endif
2132
2134
2135 }
2136 }
2137 else
2138 {
2139 Error(
"[syncinv] SendServerHandEventViaJuncture - called on dead player, juncture is for living only");
2140 }
2141 }
2142 }
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.