@@ -410,28 +410,44 @@ void CClientMarker::StreamOut()
410410 }
411411}
412412
413- void CClientMarker::Callback_OnCollision (CClientColShape& Shape , CClientEntity& Entity )
413+ void CClientMarker::Callback_OnCollision (CClientColShape& shape , CClientEntity& entity )
414414{
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 );
423431}
424432
425- void CClientMarker::Callback_OnLeave (CClientColShape& Shape , CClientEntity& Entity )
433+ void CClientMarker::Callback_OnLeave (CClientColShape& shape , CClientEntity& entity )
426434{
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 );
435451}
436452
437453void CClientMarker::CreateOfType (int iType)
0 commit comments