Esempio n. 1
0
        public void TriggerEventData(MapPlayer mapPlayer, MapEvent mapEvent)
        {
            if (mapEvent == null || mapEvent.GetEventData() == null)
            {
                return;
            }

            if (mapEvent.Locked) // add player lock id list so others can interact
            //we did this because sometimes a player could double trigger an event as it started / finished (event touch for example spamming the trigger)
            {
                return;
            }

            TriggeringEvent parent = new TriggeringEvent(null, mapEvent);

            _triggeringEvents.Add(parent);
            if (mapPlayer == null)
            {
                List <MapPlayer> players = _serverMap.GetMapInstance().GetMapPlayers();
                for (int i = 0; i < players.Count; i++)
                {
                    _triggeringEvents.Add(new TriggeringEvent(players[i], mapEvent, parent));
                }
            }
            else
            {
                _triggeringEvents.Add(new TriggeringEvent(mapPlayer, mapEvent, parent));
            }

            mapEvent.Locked = true;
        }