public SmsMultiSenderResult SmsMultiSenderFunc(MsgParam msgParam) { try { SmsMultiSender ssender = new SmsMultiSender(msgParam.appid, msgParam.appkey); var result = ssender.sendWithParam("86", msgParam.phoneNumbers, msgParam.templateId, new[] { "5678" }, msgParam.smsSign, "", ""); // 签名参数不能为空串 return(result); } catch (JSONException e) { return(new SmsMultiSenderResult() { result = 0, errMsg = e.Message }); } catch (HTTPException e) { return(new SmsMultiSenderResult() { result = 0, errMsg = e.Message }); } catch (Exception e) { return(new SmsMultiSenderResult() { result = 0, errMsg = e.Message }); } }
public void OnHappen(MsgParam msg, WarServerNpcMgr npcMgr) { WarAnimParam warParam = msg as WarAnimParam; if (warParam != null && warParam.described != null) { SelfDescribed described = warParam.described; if (described.srcEnd != null && described.srcEnd.param1 > 0) { //转发消息 ServerNPC tag = npcMgr.TagNpc("Trigger"); switch (described.act) { case Verb.LineEnemy: warParam.cmdType = WarMsg_Type.LineEnemy; //创建一个触发器 warMgr.triMgr.CreateTrigger(described.src, described.srcEnd.param1, null); npcMgr.SendMessageAsync(tag.UniqueID, tag.UniqueID, msg); break; } } } }
public void OnHappen(MsgParam msg, WarServerNpcMgr npcMgr) { //TODO : do something WarAnimParam warParam = msg as WarAnimParam; if (warParam != null && warParam.described != null) { //杀死人,described只有一个元素 SelfDescribed described = warParam.described; if (described.srcEnd != null) { /// /// 杀死别人,自己身上的Buff和Trigger消失 /// int casterId = described.srcEnd.param1; //int sufferId = described.srcEnd.param2; if (casterId == HangUpNpcId) { /// /// 概率上的检测 /// bool happed = PseudoRandom.getInstance().happen(cfg.Prob); if (happed) { OnEnd(); } } } } }
public bool SendMessage(int senderID, int recID, MsgParam param) { bool sent = false; if (param == null) { ConsoleEx.DebugLog("We can't send empty message to other.", ConsoleEx.RED); return(sent); } ServerNPC npcTarget = null; if (npcDic.TryGetValue(recID, out npcTarget)) { if (npcTarget != null) { sent = true; npcTarget.OnHandleMessage(param); } else { sent = false; } } else { sent = false; ConsoleEx.DebugLog("NPC doesn't instanciate yet.", ConsoleEx.YELLOW); } triMgr.Watching(param); return(sent); }
void Report(MsgParam result) { if (outLog) { ConsoleEx.DebugLog("Msg is sending now : = " + fastJSON.JSON.Instance.ToJSON(result)); } valid = false; WarAnimParam warParam = result as WarAnimParam; warParam.cmdType = WarMsg_Type.UseSkill; if (warParam.described != null) { SelfDescribed decribed = warParam.described; //如果不是自己则发送消息出去 if (decribed.target != UniqueId) { npcMgr.SendMessageAsync(UniqueId, decribed.target, result); } else { //否则,自己给自己的消息就直接转过去 WarMsgParam param = result as WarMsgParam; if (param != null && broadcast != null) { broadcast(param); } } } skMsg.index = result.arg1; skMsg.uniqueID = UniqueId; skMsg.baseCD = runSkMd.getRuntimeSkill((short)skMsg.index).skillCfg.BaseCD; WarServerManager.Instance.realServer.proxyCli.NpcSkillCD(skMsg); }
public void OnHappen(MsgParam msg, WarServerNpcMgr npcMgr) { WarAnimParam warParam = msg as WarAnimParam; if (warParam != null && warParam.described != null) { SelfDescribed described = warParam.described; if (described.srcEnd != null) { /// /// 每次被攻击几率对周围造成伤害 /// int casterId = described.srcEnd.param1; int sufferId = described.srcEnd.param2; //不能自己打自己也反弹 if (sufferId == casterId) { return; } if (sufferId == HangUpNpcId) { //选择自己和目标 //目标也是自己 ServerNPC castor = npcMgr.GetNPCByUniqueID(sufferId); List <ServerNPC> targets = new List <ServerNPC>(); targets.Add(castor); warMgr.triMgr.trigCastor.cast(castor, targets, cfg); } } } }
public bool SendMessageAsync(int senderID, int recID, MsgParam param) { bool sent = false; if (param == null) { ConsoleEx.DebugLog("We can't send empty message to other.", ConsoleEx.RED); return(sent); } ClientNPC npcTarget = null; if (npcDic.TryGetValue(recID, out npcTarget)) { sent = true; AsyncSheduleTask(npcTarget, param); } else { sent = false; ConsoleEx.DebugLog("NPC doesn't instanciate yet.", ConsoleEx.YELLOW); } return(sent); }
public void analyze(MsgParam msg, WarServerNpcMgr npcMgr) { WarAnimParam warParam = msg as WarAnimParam; if (warParam != null && warParam.described != null) { SelfDescribed des = warParam.described; int castor = des.srcEnd.param1; int sufferer = des.srcEnd.param2; ServerNPC bCast = npcMgr.GetNPCByUniqueID(castor); ServerNPC bSuf = npcMgr.GetNPCByUniqueID(sufferer); if (bCast != null && bSuf != null) { Pair pair = new Pair() { CastorNum = bCast.data.num, KilledNum = bCast.data.num, }; killingInfo.Add(pair); } } }
/// <summary> /// 监视消息 /// </summary> public void Watching(MsgParam msg) { if (msg == null) { return; } WarMsgParam warMsg = msg as WarMsgParam; if (warMsg != null) { List <ITriggerItem> list = null; bool care = OnWork.TryGetValue(warMsg.cmdType, out list); if (care) { workingCache.Clear(); workingCache.AddRange(list); int count = workingCache.Count; if (count > 0) { for (int i = 0; i < count; ++i) { ITriggerItem handler = workingCache[i]; handler.OnHappen(msg, npcMgr); } } } } }
//清理逻辑 void clearDeadNpcStatus(MsgParam msg, WarServerNpcMgr npcMgr) { WarAnimParam warMsg = msg as WarAnimParam; if (warMsg != null && warMsg.described != null) { int deadNpcId = warMsg.described.srcEnd.param2; ServerNPC npc = npcMgr.GetNPCByUniqueID(deadNpcId); ServerLifeNpc life = npc as ServerLifeNpc; if (life != null) { life.curStatus = NpcStatus.None; /// /// ---- 解除挂载的Trigger ---- /// WarServerManager.Instance.triMgr.RemoveAllTrigger(deadNpcId); /// /// ---- 解除挂载的Buff ---- /// WarServerManager.Instance.bufMgr.rmAllBuff(deadNpcId); //--- 解除仇恨信息 ---- life.clearHatred(); } } }
/// <summary> /// /// </summary> public static WeChatResult Send(MsgParam msg) { var result = HttpHelper.Post <WeChatResult>(ApiList.MessageCustomSendUrl, msg.ToString(), "access_token=" + Token.GetAccessToken(msg)); return(result); }
public override void OnHandleMessage(MsgParam param) { base.OnHandleMessage(param); if (broadcast != null) { broadcast(param as WarMsgParam); } }
/// <summary> /// 得到游戏帐号 /// </summary> /// <param name="whereStr"></param> public void GetGameUsersC(MsgParam msgparam) { MsgStruts msg = new MsgStruts(); msg.command = msgCommand.GetGameUsersC; msg.msgtype = msgType.SendText; msg.msgsendstate = msgSendState.single; msg.Data = _coder.GetEncodBytes(msgparam); _tcpcli.Send(msg); }
/// <summary> /// 目前这里会监听战斗结束的消息 /// /// </summary> /// <param name="msg">Message.</param> public void OnHappen(MsgParam msg, WarServerNpcMgr npcMgr) { //最后检测,其他优先检测 NeheQiaoModeComplete(msg, npcMgr); //数据监测 StatictisInSkill.instance.analyze(msg, npcMgr); //清理逻辑 clearDeadNpcStatus(msg, npcMgr); OnEnd(); }
public override void UI_OnReceive(MsgParam param) { base.UI_OnReceive(param); if (param is WarStartParam) { WarStartParam OkParam = (WarStartParam)param; warInfo = OkParam.warinfo; WarBegin(); } }
public static bool GetMsg(int msg, IntPtr wParam, IntPtr lParam, ref MsgParam msgParm, ref string customVal) { if (msg == ConstIdentifier.WM_COPYDATA) { int msgType = (int)wParam; msgParm = (MsgParam)msgType; COPYDATASTRUCT cds = (COPYDATASTRUCT)Marshal.PtrToStructure(lParam, typeof(COPYDATASTRUCT)); customVal = cds.lpData; return(true); } return(false); }
private void ReceiveMsg(IMsgParam args) { MsgParam <string> msgParam = args as MsgParam <string>; Debug.Log(msgParam.param); //MsgParamObject msgParamObject = args as MsgParamObject; //foreach (var arg in msgParamObject.param) //{ // //Debug.Log(arg); // arg.Invoke(); //} }
public void OnHappen(MsgParam msg, WarServerNpcMgr npcMgr) { if (msg != null) { ServerNPC castor = npcMgr.GetNPCByUniqueID(msg.Sender); ServerNPC target = npcMgr.GetNPCByUniqueID(msg.Receiver); List <ServerNPC> itor = new List <ServerNPC>(); itor.Add(target); warMgr.triMgr.trigCastor.cast(castor, itor, cfg); } }
/// <summary> /// 触发条件满足,或者说感兴趣的事情发生了。 /// 但是是不是要真的处理什么逻辑,还不一定 /// </summary> /// <param name="msg">Message</param> /// <param name="npcMgr">Npc mgr.</param> public void OnHappen(MsgParam msg, WarServerNpcMgr npcMgr) { checkList.Clear(); WarAnimParam warParam = msg as WarAnimParam; if (warParam != null && warParam.described != null) { SelfDescribed des = warParam.described; Pair pair = new Pair(); pair.castor = npcMgr.GetNPCByUniqueID(des.src); pair.target = npcMgr.GetNPCByUniqueID(des.target); checkList.Add(pair); } }
//奈河桥的模式 public void NeheQiaoModeComplete(MsgParam msg, WarServerNpcMgr npcMgr) { NeHeQiaoNpcMgr mgr = npcMgr as NeHeQiaoNpcMgr; if (mgr != null) { ServerNPC selfBase = mgr.SelfMilitaryBase; ServerNPC enemyBase = mgr.EnemyMilitaryBase; WarAnimParam warMsg = msg as WarAnimParam; if (warMsg != null && warMsg.described != null) { int deadNpcId = warMsg.described.srcEnd.param2; WarMsg_Type enemyRes = WarMsg_Type.Lose; WarMsg_Type selfRes = WarMsg_Type.Lose; if (deadNpcId == selfBase.UniqueID) { //我方基地死亡 enemyRes = WarMsg_Type.Win; } else if (deadNpcId == enemyBase.UniqueID) { //敌方基地死亡 selfRes = WarMsg_Type.Win; } /// /// ------ 确实是基地死亡了 ----------- /// if (enemyRes != WarMsg_Type.Lose || selfRes != WarMsg_Type.Lose) { WarCampMsg eParam = new WarCampMsg(); eParam.SendCamp = CAMP.Enemy; eParam.ReceCamp = CAMP.Enemy; eParam.cmdType = enemyRes; mgr.SendMessageAsync(CAMP.Enemy, CAMP.Enemy, eParam, false); WarCampMsg sParam = new WarCampMsg(); sParam.SendCamp = CAMP.Player; sParam.ReceCamp = CAMP.Player; sParam.cmdType = selfRes; mgr.SendMessageAsync(CAMP.Player, CAMP.Player, sParam, false); } } } }
public override void UI_OnReceive(MsgParam param) { base.UI_OnReceive(param); if (param is EngineInitOKParam) { EngineInitOKParam OkParam = (EngineInitOKParam)param; switch (OkParam.commond) { case EngineInitOKParam.COMMOAND_ENGINE_OK: //TODO : 获取服务器列表 Native.mInstace.m_thridParty.getUniqueId(onThirdPartyOK); break; } } }
public static int SendMsg(string frmTitle, MsgParam wParam, string lParam) { int WINDOW_HANDLER = FindWindow(null, frmTitle); if (WINDOW_HANDLER != 0) { byte[] sarr = System.Text.Encoding.Default.GetBytes(lParam); int len = sarr.Length; COPYDATASTRUCT cds; cds.dwData = (IntPtr)100; cds.lpData = lParam; cds.cbData = len + 1; SendMessage(WINDOW_HANDLER, ConstIdentifier.WM_COPYDATA, (int)wParam, ref cds); } return(WINDOW_HANDLER); }
public void OnHappen(MsgParam msg, WarServerNpcMgr npcMgr) { WarAnimParam warParam = msg as WarAnimParam; if (warParam != null && warParam.described != null) { //转发消息 ServerNPC tag = npcMgr.TagNpc("Trigger"); SelfDescribed described = warParam.described; if (described.srcEnd != null) { warParam.cmdType = WarMsg_Type.CounterAttack; npcMgr.SendMessageAsync(tag.UniqueID, tag.UniqueID, warParam); } } }
public void OnHappen(MsgParam msg, WarServerNpcMgr npcMgr) { //TODO : do something WarAnimParam warParam = msg as WarAnimParam; if (warParam != null && warParam.described != null) { SelfDescribed described = warParam.described; if (described.srcEnd != null) { //转发消息 ServerNPC tag = npcMgr.TagNpc("Trigger"); warParam.cmdType = WarMsg_Type.RmBufIfKilling; npcMgr.SendMessageAsync(tag.UniqueID, tag.UniqueID, warParam); } } }
/// /// 只有当消息的接受者不存在的时候,才会去考虑创建消息的接受者 /// 创建Controller /// void createController(int senderID, LogicalType receiver, MsgParam param) { string name = receiver.ToString(); GameObject go = new GameObject(name); go.AddComponent(binder.getController(name)); UnityUtils.AddChild(go, ControllerMain.CtrlMain.gameObject); ControllerEx ctrlEx = go.GetComponent <ControllerEx>(); ctrlEx.CtrlType = receiver; AsyncTask.QueueOnMainThread(() => { param.Sender = senderID; param.Receiver = go.GetInstanceID(); ctrlEx.UI_OnReceive(param); }, 1f); }
public void OnHappen(MsgParam msg, WarServerNpcMgr npcMgr) { WarAnimParam warParam = msg as WarAnimParam; if (warParam != null) { switch (warParam.OP) { case EffectOp.Bullet_NPC: BulletNPCCreator(warParam, npcMgr); break; case EffectOp.HookNpc: HookNpcOnAttack(warParam, npcMgr); break; } } }
public override void OnHandleMessage(MsgParam param) { base.OnHandleMessage(param); if (param is WarTarAnimParam) { WarTarAnimParam effParam = param as WarTarAnimParam; switch (effParam.OP) { case EffectOp.Injury: BeInjured(effParam); break; case EffectOp.Treat: BeTreated(effParam); break; case EffectOp.ExchangeNpcAttri: break; } } else if (param is WarSrcAnimParam) { WarSrcAnimParam src = param as WarSrcAnimParam; if (src.OP == EffectOp.ExchangeNpcAttri) { Debug.Log("换血了"); } } else if (param is WarMsgParam) { WarMsgParam warParam = param as WarMsgParam; switch (warParam.cmdType) { case WarMsg_Type.Win: case WarMsg_Type.Lose: BattleOver(); break; } } }
public bool SendMessageAsync(LogicalType sender, LogicalType receiver, MsgParam param, bool anonymous, MsgRecType sure) { bool sent = false; int senderID = -1; int recID = -1; bool found1 = false; bool found2 = false; if (TypeIDRelation.TryGetValue(receiver, out recID)) { found1 = true; } if (anonymous || TypeIDRelation.TryGetValue(sender, out senderID)) { found2 = true; } if (found1 && found2) { sent = SendMessageAsync(senderID, recID, param); } else { if (found1 == false) { ConsoleEx.DebugLog("We can't find " + receiver + "Controller 's instance", ConsoleEx.RED); if (sure == MsgRecType.MakeSure) { createController(senderID, receiver, param); } } if (found2 == false) { ConsoleEx.DebugLog("We can't find " + sender + "Controller 's instance", ConsoleEx.RED); } } return(sent); }
public bool SendMessage(int senderID, int recID, MsgParam param) { param.Sender = senderID; param.Receiver = recID; bool sent = false; if (param == null) { ConsoleEx.DebugLog("We can't send empty message to other.", ConsoleEx.RED); return(sent); } if (uiCollection.ContainsKey(recID)) { ConsoleEx.DebugLog("We can't send message to UI layer.", ConsoleEx.RED); return(sent); } ControllerEx CtrlEx = null; if (ctlCollection.TryGetValue(recID, out CtrlEx)) { if (CtrlEx != null) { sent = true; CtrlEx.UI_OnReceive(param); } else { sent = false; } } else { sent = false; ConsoleEx.DebugLog("Controller doesn't instanciate yet.", ConsoleEx.YELLOW); } return(sent); }
public override void OnHandleMessage(MsgParam param) { base.OnHandleMessage(param); if (param is WarMsgParam) { WarMsgParam warParam = param as WarMsgParam; switch (warParam.cmdType) { case WarMsg_Type.Move: NpcMove(warParam); break; default: if (broadcast != null) { broadcast(warParam); } break; } } }