internal static void Execute(object msg, User user)
{
Msg_CRC_StoryMessage target_msg = msg as Msg_CRC_StoryMessage;
if (target_msg == null) {
return;
}
Scene scene = user.OwnRoom.ActiveScene;
if (scene != null) {
try {
//�ͻ��˷�������Ϣ������ǰclient����ֱֹ�ӵ��÷�������������������Ϣ������clientǰ����
string msgId = string.Format("client:{0}", target_msg.m_MsgId);
ArrayList args = new ArrayList();
args.Add(user.RoleId);
for (int i = 0; i < target_msg.m_Args.Count; i++) {
switch (target_msg.m_Args[i].val_type) {
case ArgType.NULL://null
args.Add(null);
break;
case ArgType.INT://int
args.Add(int.Parse(target_msg.m_Args[i].str_val));
break;
case ArgType.FLOAT://float
args.Add(float.Parse(target_msg.m_Args[i].str_val));
break;
default://string
args.Add(target_msg.m_Args[i].str_val);
break;
}
}
object[] objArgs = args.ToArray();
scene.StorySystem.SendMessage(msgId, objArgs);
} catch (Exception ex) {
LogSys.Log(LOG_TYPE.ERROR, "Msg_CRC_StoryMessage throw exception:{0}\n{1}", ex.Message, ex.StackTrace);
}
}
}