@@ -154,6 +154,9 @@ public partial class Core
154154 internal readonly IEventHandler < ClientDeleteObjectDelegate > ClientDeleteObjectHandler =
155155 new HashSetEventHandler < ClientDeleteObjectDelegate > ( EventType . CLIENT_DELETE_OBJECT_EVENT ) ;
156156
157+ internal readonly IEventHandler < GivePedScriptedTaskDelegate > GivePedScriptedTaskHandler =
158+ new HashSetEventHandler < GivePedScriptedTaskDelegate > ( EventType . GIVE_PED_SCRIPTED_TASK ) ;
159+
157160 public void OnCheckpoint ( IntPtr checkpointPointer , IntPtr entityPointer , BaseObjectType baseObjectType ,
158161 bool state )
159162 {
@@ -2377,5 +2380,57 @@ public virtual void OnClientDeleteObjectEvent(IntPtr eventPointer, IPlayer sourc
23772380 }
23782381 }
23792382 }
2383+
2384+ public virtual void OnGivePedScriptedTask ( IntPtr eventPointer , IntPtr source , IntPtr target , int taskType )
2385+ {
2386+ var sourcePlayer = PoolManager . Player . Get ( source ) ;
2387+ var targetPed = PoolManager . Ped . Get ( target ) ;
2388+
2389+ if ( sourcePlayer == null )
2390+ {
2391+ Console . WriteLine ( "OnGivePedScriptedTask Invalid source " + source ) ;
2392+ return ;
2393+ }
2394+
2395+ if ( targetPed == null )
2396+ {
2397+ Console . WriteLine ( "OnGivePedScriptedTask Invalid target " + target ) ;
2398+ return ;
2399+ }
2400+
2401+ OnGivePedScriptedTaskEvent ( eventPointer , sourcePlayer , targetPed , taskType ) ;
2402+ }
2403+
2404+ public virtual void OnGivePedScriptedTaskEvent ( IntPtr eventPointer , IPlayer source , IPed target , int taskType )
2405+ {
2406+ if ( ! GivePedScriptedTaskHandler . HasEvents ( ) ) return ;
2407+ var cancel = false ;
2408+ foreach ( var @delegate in GivePedScriptedTaskHandler . GetEvents ( ) )
2409+ {
2410+ try
2411+ {
2412+ if ( ! @delegate ( source , target , taskType ) )
2413+ {
2414+ cancel = true ;
2415+ }
2416+ }
2417+ catch ( TargetInvocationException exception )
2418+ {
2419+ Alt . Log ( "exception at event:" + "OnGivePedScriptedTaskEvent" + ":" + exception . InnerException ) ;
2420+ }
2421+ catch ( Exception exception )
2422+ {
2423+ Alt . Log ( "exception at event:" + "OnGivePedScriptedTaskEvent" + ":" + exception ) ;
2424+ }
2425+ }
2426+
2427+ if ( cancel )
2428+ {
2429+ unsafe
2430+ {
2431+ Alt . Core . Library . Shared . Event_Cancel ( eventPointer ) ;
2432+ }
2433+ }
2434+ }
23802435 }
23812436}
0 commit comments