protected override bool ExecCommand(StoryInstance instance, StoryMessageHandler handler, long delta) { Scene scene = instance.Context as Scene; if (null != scene) { Msg_RC_SendGfxMessage msg = new GameFrameworkMessage.Msg_RC_SendGfxMessage(); msg.name = "GameRoot"; msg.msg = "CameraFollowPath"; msg.is_with_tag = false; if (m_HaveUserId) { int userId = m_UserId.Value; EntityInfo user = scene.GetEntityById(userId); if (null != user) { User us = user.CustomData as User; if (null != us) { us.SendMessage(RoomMessageDefine.Msg_RC_SendGfxMessage, msg); } } } else { scene.NotifyAllUser(RoomMessageDefine.Msg_RC_SendGfxMessage, msg); } } return(false); }
protected override bool ExecCommand(StoryInstance instance, StoryMessageHandler handler, long delta) { Scene scene = instance.Context as Scene; if (null != scene) { int beginUnitId = m_BeginUnitId.Value; int endUnitId = m_EndUnitId.Value; for (int unitId = beginUnitId; unitId <= endUnitId; ++unitId) { EntityInfo entity = scene.SceneContext.GetEntityByUnitId(unitId); if (null != entity && (!entity.IsDead() || entity.IsBorning)) { Msg_RC_SendGfxMessage msg = new GameFrameworkMessage.Msg_RC_SendGfxMessage(); msg.name = "GameRoot"; msg.msg = "CameraFollow"; msg.is_with_tag = false; Msg_RC_SendGfxMessage.EventArg arg = new Msg_RC_SendGfxMessage.EventArg(); arg.val_type = ArgType.INT; arg.str_val = entity.GetId().ToString(); msg.args.Add(arg); if (m_HaveUserId) { int userId = m_UserId.Value; EntityInfo user = scene.GetEntityById(userId); if (null != user) { User us = user.CustomData as User; if (null != us) { us.SendMessage(RoomMessageDefine.Msg_RC_SendGfxMessage, msg); } } } else { scene.NotifyAllUser(RoomMessageDefine.Msg_RC_SendGfxMessage, msg); } break; } } } return(false); }
protected override bool ExecCommand(StoryInstance instance, StoryMessageHandler handler, long delta) { Scene scene = instance.Context as Scene; if (null != scene) { var obj = m_Arg.Value; if (obj.IsInteger) { int unitId = obj.Get <int>(); EntityInfo entity = scene.SceneContext.GetEntityByUnitId(unitId); if (null != entity) { Vector3 pos = entity.GetMovementStateInfo().GetPosition3D(); Msg_RC_SendGfxMessage msg = new GameFrameworkMessage.Msg_RC_SendGfxMessage(); msg.name = "GameRoot"; msg.msg = "CameraLook"; msg.is_with_tag = false; Msg_RC_SendGfxMessage.EventArg arg = new Msg_RC_SendGfxMessage.EventArg(); arg.val_type = ArgType.FLOAT; arg.str_val = pos.X.ToString(); msg.args.Add(arg); arg.val_type = ArgType.FLOAT; arg.str_val = (pos.Y + entity.GetRadius()).ToString(); msg.args.Add(arg); arg.val_type = ArgType.FLOAT; arg.str_val = pos.Z.ToString(); msg.args.Add(arg); if (m_HaveUserId) { int userId = m_UserId.Value; EntityInfo user = scene.GetEntityById(userId); if (null != user) { User us = user.CustomData as User; if (null != us) { us.SendMessage(RoomMessageDefine.Msg_RC_SendGfxMessage, msg); } } } else { scene.NotifyAllUser(RoomMessageDefine.Msg_RC_SendGfxMessage, msg); } } } else { Vector3 pos = obj.Get <Vector3>(); Msg_RC_SendGfxMessage msg = new GameFrameworkMessage.Msg_RC_SendGfxMessage(); msg.name = "GameRoot"; msg.msg = "CameraLook"; msg.is_with_tag = false; Msg_RC_SendGfxMessage.EventArg arg = new Msg_RC_SendGfxMessage.EventArg(); arg.val_type = ArgType.FLOAT; arg.str_val = pos.X.ToString(); msg.args.Add(arg); arg.val_type = ArgType.FLOAT; arg.str_val = pos.Y.ToString(); msg.args.Add(arg); arg.val_type = ArgType.FLOAT; arg.str_val = pos.Z.ToString(); msg.args.Add(arg); if (m_HaveUserId) { int userId = m_UserId.Value; EntityInfo user = scene.GetEntityById(userId); if (null != user) { User us = user.CustomData as User; if (null != us) { us.SendMessage(RoomMessageDefine.Msg_RC_SendGfxMessage, msg); } } } else { scene.NotifyAllUser(RoomMessageDefine.Msg_RC_SendGfxMessage, msg); } } } return(false); }
protected override bool ExecCommand(StoryInstance instance, long delta) { Scene scene = instance.Context as Scene; if (null != scene) { object obj = m_Arg.Value; if (obj is int) { int unitId = (int)obj; EntityInfo entity = scene.SceneContext.GetEntityByUnitId(unitId); if (null != entity) { Vector3 pos = entity.GetMovementStateInfo().GetPosition3D(); Msg_RC_SendGfxMessage msg = new GameFrameworkMessage.Msg_RC_SendGfxMessage(); msg.name = "GameRoot"; msg.msg = "CameraLook"; msg.is_with_tag = false; Msg_RC_SendGfxMessage.EventArg arg = new Msg_RC_SendGfxMessage.EventArg(); arg.val_type = ArgType.FLOAT; arg.str_val = pos.X.ToString(); msg.args.Add(arg); arg.val_type = ArgType.FLOAT; arg.str_val = (pos.Y + entity.GetRadius()).ToString(); msg.args.Add(arg); arg.val_type = ArgType.FLOAT; arg.str_val = pos.Z.ToString(); msg.args.Add(arg); if (m_HaveUserId) { int userId = m_UserId.Value; EntityInfo user = scene.GetEntityById(userId); if (null != user) { User us = user.CustomData as User; if (null != us) { us.SendMessage(RoomMessageDefine.Msg_RC_SendGfxMessage, msg); } } } else { scene.NotifyAllUser(RoomMessageDefine.Msg_RC_SendGfxMessage, msg); } } } else { Vector3 pos = (Vector3)obj; Msg_RC_SendGfxMessage msg = new GameFrameworkMessage.Msg_RC_SendGfxMessage(); msg.name = "GameRoot"; msg.msg = "CameraLook"; msg.is_with_tag = false; Msg_RC_SendGfxMessage.EventArg arg = new Msg_RC_SendGfxMessage.EventArg(); arg.val_type = ArgType.FLOAT; arg.str_val = pos.X.ToString(); msg.args.Add(arg); arg.val_type = ArgType.FLOAT; arg.str_val = pos.Y.ToString(); msg.args.Add(arg); arg.val_type = ArgType.FLOAT; arg.str_val = pos.Z.ToString(); msg.args.Add(arg); if (m_HaveUserId) { int userId = m_UserId.Value; EntityInfo user = scene.GetEntityById(userId); if (null != user) { User us = user.CustomData as User; if (null != us) { us.SendMessage(RoomMessageDefine.Msg_RC_SendGfxMessage, msg); } } } else { scene.NotifyAllUser(RoomMessageDefine.Msg_RC_SendGfxMessage, msg); } } } return false; }
protected override bool ExecCommand(StoryInstance instance, long delta) { Scene scene = instance.Context as Scene; if (null != scene) { int beginUnitId = m_BeginUnitId.Value; int endUnitId = m_EndUnitId.Value; for (int unitId = beginUnitId; unitId <= endUnitId; ++unitId) { EntityInfo entity = scene.SceneContext.GetEntityByUnitId(unitId); if (null != entity && (!entity.IsDead() || entity.IsBorning)) { Msg_RC_SendGfxMessage msg = new GameFrameworkMessage.Msg_RC_SendGfxMessage(); msg.name = "GameRoot"; msg.msg = "CameraFollow"; msg.is_with_tag = false; Msg_RC_SendGfxMessage.EventArg arg = new Msg_RC_SendGfxMessage.EventArg(); arg.val_type = ArgType.INT; arg.str_val = entity.GetId().ToString(); msg.args.Add(arg); if (m_HaveUserId) { int userId = m_UserId.Value; EntityInfo user = scene.GetEntityById(userId); if (null != user) { User us = user.CustomData as User; if (null != us) { us.SendMessage(RoomMessageDefine.Msg_RC_SendGfxMessage, msg); } } } else { scene.NotifyAllUser(RoomMessageDefine.Msg_RC_SendGfxMessage, msg); } break; } } } return false; }
protected override bool ExecCommand(StoryInstance instance, long delta) { Scene scene = instance.Context as Scene; if (null != scene) { Msg_RC_SendGfxMessage msg = new GameFrameworkMessage.Msg_RC_SendGfxMessage(); msg.name = "GameRoot"; msg.msg = "CameraFollowPath"; msg.is_with_tag = false; if (m_HaveUserId) { int userId = m_UserId.Value; EntityInfo user = scene.GetEntityById(userId); if (null != user) { User us = user.CustomData as User; if (null != us) { us.SendMessage(RoomMessageDefine.Msg_RC_SendGfxMessage, msg); } } } else { scene.NotifyAllUser(RoomMessageDefine.Msg_RC_SendGfxMessage, msg); } } return false; }
protected override bool ExecCommand(StoryInstance instance, long delta) { Scene scene = instance.Context as Scene; if (null != scene) { string objname = m_ObjTag.Value; string _msg = m_Msg.Value; Msg_RC_SendGfxMessage msg = new Msg_RC_SendGfxMessage(); msg.is_with_tag = true; msg.name = objname; msg.msg = _msg; for (int i = 0; i < m_Args.Count; ++i) { IStoryValue<object> val = m_Args[i]; object v = val.Value; if (null == v) { Msg_RC_SendGfxMessage.EventArg arg = new Msg_RC_SendGfxMessage.EventArg(); arg.val_type = ArgType.NULL; arg.str_val = ""; msg.args.Add(arg); } else if (v is int) { Msg_RC_SendGfxMessage.EventArg arg = new Msg_RC_SendGfxMessage.EventArg(); arg.val_type = ArgType.INT; arg.str_val = ((int)v).ToString(); msg.args.Add(arg); } else if (v is float) { Msg_RC_SendGfxMessage.EventArg arg = new Msg_RC_SendGfxMessage.EventArg(); arg.val_type = ArgType.FLOAT; arg.str_val = ((float)v).ToString(); msg.args.Add(arg); } else { Msg_RC_SendGfxMessage.EventArg arg = new Msg_RC_SendGfxMessage.EventArg(); arg.val_type = ArgType.STRING; arg.str_val = v.ToString(); msg.args.Add(arg); } } if (m_HaveUserId) { int userId = m_UserId.Value; EntityInfo user = scene.GetEntityById(userId); if (null != user) { User us = user.CustomData as User; if (null != us) { us.SendMessage(RoomMessageDefine.Msg_RC_SendGfxMessage, msg); } } } else { scene.NotifyAllUser(RoomMessageDefine.Msg_RC_SendGfxMessage, msg); } } return false; }