Example #1
0
 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;
                    }
                }
            }
        }
Example #3
0
        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();
                        }
                    }
                }
            }
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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);
                    }
                }
            }
        }
Example #7
0
        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);
        }
Example #8
0
        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);
                }
            }
        }
Example #9
0
        /// <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();
                }
            }
        }
Example #11
0
        /// <summary>
        ///
        /// </summary>
        public static WeChatResult Send(MsgParam msg)
        {
            var result = HttpHelper.Post <WeChatResult>(ApiList.MessageCustomSendUrl, msg.ToString(),
                                                        "access_token=" + Token.GetAccessToken(msg));

            return(result);
        }
Example #12
0
 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();
        }
Example #15
0
        public override void UI_OnReceive(MsgParam param)
        {
            base.UI_OnReceive(param);

            if (param is WarStartParam)
            {
                WarStartParam OkParam = (WarStartParam)param;
                warInfo = OkParam.warinfo;
                WarBegin();
            }
        }
Example #16
0
 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);
 }
Example #17
0
    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();
        //}
    }
Example #18
0
        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);
            }
        }
Example #19
0
        /// <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);
                    }
                }
            }
        }
Example #21
0
        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;
                }
            }
        }
Example #22
0
        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);
        }
Example #23
0
        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);
                }
            }
        }
Example #24
0
        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);
                }
            }
        }
Example #25
0
        ///
        /// 只有当消息的接受者不存在的时候,才会去考虑创建消息的接受者
        /// 创建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;
                }
            }
        }
Example #27
0
        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;
                }
            }
        }
Example #28
0
        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);
        }
Example #29
0
        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);
        }
Example #30
0
        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;
                }
            }
        }