@@ -410,28 +410,44 @@ void CClientMarker::StreamOut()
410
410
}
411
411
}
412
412
413
- void CClientMarker::Callback_OnCollision (CClientColShape& Shape , CClientEntity& Entity )
413
+ void CClientMarker::Callback_OnCollision (CClientColShape& shape , CClientEntity& entity )
414
414
{
415
- if (IS_PLAYER (&Entity))
416
- {
417
- // Call the marker hit event
418
- CLuaArguments Arguments;
419
- Arguments.PushElement (&Entity); // player that hit it
420
- Arguments.PushBoolean ((GetDimension () == Entity.GetDimension ())); // matching dimension?
421
- CallEvent (" onClientMarkerHit" , Arguments, true );
422
- }
415
+ if (GetInterior () != entity.GetInterior ())
416
+ return ;
417
+
418
+ // Call the marker hit event
419
+ CLuaArguments arguments;
420
+ arguments.PushElement (&entity); // Hit element
421
+ arguments.PushBoolean (GetDimension () == entity.GetDimension ()); // Matching dimension?
422
+ CallEvent (" onClientMarkerHit" , arguments, true );
423
+
424
+ if (!IS_PLAYER (&entity))
425
+ return ;
426
+
427
+ CLuaArguments arguments2;
428
+ arguments2.PushElement (this ); // marker
429
+ arguments2.PushBoolean (GetDimension () == entity.GetDimension ()); // Matching dimension?
430
+ entity.CallEvent (" onClientPlayerMarkerHit" , arguments2, false );
423
431
}
424
432
425
- void CClientMarker::Callback_OnLeave (CClientColShape& Shape , CClientEntity& Entity )
433
+ void CClientMarker::Callback_OnLeave (CClientColShape& shape , CClientEntity& entity )
426
434
{
427
- if (IS_PLAYER (&Entity))
428
- {
429
- // Call the marker hit event
430
- CLuaArguments Arguments;
431
- Arguments.PushElement (&Entity); // player that hit it
432
- Arguments.PushBoolean ((GetDimension () == Entity.GetDimension ())); // matching dimension?
433
- CallEvent (" onClientMarkerLeave" , Arguments, true );
434
- }
435
+ if (GetInterior () != entity.GetInterior ())
436
+ return ;
437
+
438
+ // Call the marker leave event
439
+ CLuaArguments arguments;
440
+ arguments.PushElement (&entity); // Hit element
441
+ arguments.PushBoolean (GetDimension () == entity.GetDimension ()); // Matching dimension?
442
+ CallEvent (" onClientMarkerLeave" , arguments, true );
443
+
444
+ if (!IS_PLAYER (&entity))
445
+ return ;
446
+
447
+ CLuaArguments arguments2;
448
+ arguments2.PushElement (this ); // marker
449
+ arguments2.PushBoolean (GetDimension () == entity.GetDimension ()); // Matching dimension?
450
+ entity.CallEvent (" onPlayerMarkerLeave" , arguments2, false );
435
451
}
436
452
437
453
void CClientMarker::CreateOfType (int iType)
0 commit comments