Ejemplo n.º 1
0
        public void Subscribe(string eventName, AsyncEventHandler <PlayerRemoteEventEventArgs> callback)
        {
            if (_subscriptions.TryGetValue(eventName, out var eventSubscriptions) == false)
            {
                eventSubscriptions = new HashSet <AsyncEventHandler <PlayerRemoteEventEventArgs> >();

                if (_subscriptions.TryAdd(eventName, eventSubscriptions) == false)
                {
                    _plugin.Logger.Error($"Unable to create subscription list for event {eventName}");

                    return;
                }

                NativePlayerRemoteEventDelegate data = (playerPointer, arguments) => OnPlayerRemoteEvent(playerPointer, eventName, arguments);

                GCHandle.Alloc(data);

                using (var converter = new StringConverter())
                {
                    Rage.Multiplayer.Multiplayer_AddRemoteEventHandler(_plugin.NativeMultiplayer, converter.StringToPointer(eventName), data);
                }
            }

            eventSubscriptions.Add(callback);
        }
Ejemplo n.º 2
0
 public EventScripting(IEventManager eventManager, ILogger <EventScripting> logger)
 {
     _eventManager            = eventManager;
     _logger                  = logger;
     _tick                    = Tick;
     _entityCreated           = EntityCreated;
     _entityDestroyed         = EntityDestroyed;
     _entityModelChange       = EntityModelChange;
     _playerJoin              = PlayerJoin;
     _playerQuit              = PlayerQuit;
     _playerChat              = PlayerChat;
     _playerDeath             = PlayerDeath;
     _playerReady             = PlayerReady;
     _playerSpawn             = PlayerSpawn;
     _playerDamage            = PlayerDamage;
     _playerCommand           = PlayerCommand;
     _playerWeaponChange      = PlayerWeaponChange;
     _playerRemote            = PlayerRemote;
     _playerStartEnterVehicle = PlayerStartEnterVehicle;
     _playerEnterVehicle      = PlayerEnterVehicle;
     _playerStartExitVehicle  = PlayerStartExitVehicle;
     _playerExitVehicle       = PlayerExitVehicle;
     _playerEnterColshape     = PlayerEnterColshape;
     _playerExitColshape      = PlayerExitColshape;
     _playerEnterCheckpoint   = PlayerEnterCheckpoint;
     _playerExitCheckpoint    = PlayerExitCheckpoint;
     _playerCreateWaypoint    = PlayerCreateWaypoint;
     _playerReachWaypoint     = PlayerReachWaypoint;
     _playerStreamIn          = PlayerStreamIn;
     _playerStreamOut         = PlayerStreamOut;
     _vehicleDamage           = VehicleDamage;
     _vehicleDeath            = VehicleDeath;
     _vehicleHornToggle       = VehicleHornToggle;
     _vehicleTrailerAttached  = VehicleTrailerAttached;
     _vehicleSirenToggle      = VehicleSirenToggle;
 }
Ejemplo n.º 3
0
 internal static extern void Multiplayer_AddRemoteEventHandler(IntPtr multiplayer, IntPtr eventName, NativePlayerRemoteEventDelegate callback);