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)); }
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; } } }
protected void HandleNearFlag(NetworkMessage msg) { MsgNearFlag nf = msg as MsgNearFlag; if (FlagIsNear != null) { FlagIsNear.Invoke(this, new NearFlagEventArgs(nf.FlagName, nf.Position)); } }