Ejemplo n.º 1
0
        private static void HandleNearFlag(NetworkMessage msg)
        {
            MsgNearFlag nf = msg as MsgNearFlag;

            WriteLine("MsgNearFlag " + nf.FlagName);
            WriteLine(String.Format("\tPosition = X{0} Y{1} Z{2}", nf.Position.X, nf.Position.Y, nf.Position.Z));
        }
Ejemplo n.º 2
0
        public void DoPlayerFlagChecks(ServerPlayer player)
        {
            if (player == null || player.Info.CariedFlag == null)
            {
                return;
            }

            if (player.Info.CariedFlag.Flag == FlagTypeList.Identify)
            {
                FlagCheckData data = player.GetTag <FlagCheckData>(FlagCheckData.TagName);
                if (data == null)
                {
                    return;
                }

                if (data.LastIdentifySendTime + IdentFlagUpdateTime < GameTime.Now || data.LastIdentifiedFlag == null)
                {
                    data.LastIdentifySendTime = GameTime.Now;

                    var flag = GetNearestFlag(player.Info.LastSentUpdate.Position);

                    if (flag != null && data.LastIdentifiedFlag != flag)
                    {
                        MsgNearFlag nf = new MsgNearFlag();
                        nf.FlagName = flag.Flag.FlagAbbv;
                        nf.Position = flag.Position;
                        player.SendMessage(nf);

                        data.LastIdentifiedFlag = flag;
                    }

                    data.LastIdentifySendTime = GameTime.Now;
                }
            }
        }
Ejemplo n.º 3
0
        protected void HandleNearFlag(NetworkMessage msg)
        {
            MsgNearFlag nf = msg as MsgNearFlag;

            if (FlagIsNear != null)
            {
                FlagIsNear.Invoke(this, new NearFlagEventArgs(nf.FlagName, nf.Position));
            }
        }