@@ -2648,13 +2648,17 @@ public void OnScriptRPC(IntPtr eventpointer, IntPtr targetpointer, string name,
26482648 Marshal . Copy ( pointer , args , 0 , ( int ) size ) ;
26492649 }
26502650
2651- OnScriptRPCEvent ( eventpointer , target , name , args , answerId ) ;
2651+ OnScriptRPCEvent ( eventpointer , target , name , args , answerId , false ) ;
26522652 }
26532653
2654- public virtual void OnScriptRPCEvent ( IntPtr eventpointer , IPlayer target , string name , IntPtr [ ] args , ushort answerId )
2654+ public virtual void OnScriptRPCEvent ( IntPtr eventpointer , IPlayer target , string name , IntPtr [ ] args , ushort answerId , bool async )
26552655 {
2656+ if ( ! UnansweredServerRpcRequest . Contains ( answerId ) )
2657+ {
2658+ UnansweredServerRpcRequest . Add ( answerId ) ;
2659+ }
26562660 var mValues = MValueConst . CreateFrom ( this , args ) ;
2657- var clientScriptRPCEvent = new ScriptRpcEvent ( this , eventpointer ) ;
2661+ var clientScriptRPCEvent = new ScriptRpcEvent ( this , eventpointer , answerId , false ) ;
26582662 foreach ( var @delegate in ScriptRpcHandler . GetEvents ( ) )
26592663 {
26602664 try
@@ -2670,6 +2674,12 @@ public virtual void OnScriptRPCEvent(IntPtr eventpointer, IPlayer target, string
26702674 Alt . Log ( "exception at event:" + "OnScriptRPCEvent" + ":" + exception ) ;
26712675 }
26722676 }
2677+
2678+ if ( ! async & & UnansweredServerRpcRequest . Contains ( answerId ) )
2679+ {
2680+ clientScriptRPCEvent . AnswerWithError ( "Answer not handled" ) ;
2681+ UnansweredServerRpcRequest . Remove ( answerId ) ;
2682+ }
26732683 }
26742684
26752685 public void OnScriptAnswerRPC ( IntPtr targetpointer , ushort answerid , IntPtr answer , string answererror )
0 commit comments