コード例 #1
0
        public void processEvent(EventObjectEx eventObject)
        {
            int eventType = eventObject.EventType;
            int num       = eventType;

            if (num != 27)
            {
                if (num != 30)
                {
                    if (num == 33)
                    {
                        PreMonsterInjureEventObject obj = eventObject as PreMonsterInjureEventObject;
                        if (obj != null && obj.SceneType == 41)
                        {
                            Monster injureMonster = obj.Monster;
                            if (injureMonster != null)
                            {
                                if (this.IsQiZhiExtensionID(injureMonster.MonsterInfo.ExtensionID))
                                {
                                    this.RuntimeData.KarenBattleDamage.TryGetValue(injureMonster.MonsterInfo.ExtensionID, out obj.Injure);
                                    eventObject.Handled = true;
                                    eventObject.Result  = true;
                                }
                            }
                        }
                    }
                }
                else
                {
                    OnCreateMonsterEventObject e = eventObject as OnCreateMonsterEventObject;
                    if (null != e)
                    {
                        KarenBattleQiZhiConfig_West qiZhiConfig = e.Monster.Tag as KarenBattleQiZhiConfig_West;
                        if (null != qiZhiConfig)
                        {
                            e.Monster.Camp = qiZhiConfig.BattleWhichSide;
                            e.Result       = true;
                            e.Handled      = true;
                        }
                    }
                }
            }
            else
            {
                ProcessClickOnNpcEventObject e2 = eventObject as ProcessClickOnNpcEventObject;
                if (null != e2)
                {
                    if (null != e2.Npc)
                    {
                        int npcId = e2.Npc.NpcID;
                    }
                    if (this.OnSpriteClickOnNpc(e2.Client, e2.NpcId, e2.ExtensionID))
                    {
                        e2.Result  = false;
                        e2.Handled = true;
                    }
                }
            }
        }
コード例 #2
0
 public void processEvent(EventObjectEx eventObject)
 {
     if (eventObject.EventType == 30)
     {
         OnCreateMonsterEventObject e = eventObject as OnCreateMonsterEventObject;
         if (null != e)
         {
             CreateMonsterTagInfo tagInfo = e.Monster.Tag as CreateMonsterTagInfo;
             if (null != tagInfo)
             {
                 e.Monster.AllwaySearchEnemy = true;
                 if (tagInfo.IsFort)
                 {
                     e.Monster.Camp = this._runtimeData.CampID;
                 }
                 e.Result  = true;
                 e.Handled = true;
             }
         }
     }
     if (eventObject.EventType == 33)
     {
         PreMonsterInjureEventObject obj = eventObject as PreMonsterInjureEventObject;
         if (obj != null && obj.SceneType == 34)
         {
             Monster attacker    = obj.Attacker as Monster;
             Monster fortMonster = obj.Monster;
             if (attacker != null && fortMonster != null)
             {
                 CreateMonsterTagInfo tagInfo = fortMonster.Tag as CreateMonsterTagInfo;
                 if (tagInfo != null && tagInfo.IsFort)
                 {
                     int fubebSeqID = tagInfo.FuBenSeqId;
                     if (fubebSeqID > 0)
                     {
                         CopyWolfSceneInfo scene = null;
                         if (this._runtimeData.SceneDict.TryGetValue(fubebSeqID, out scene) && scene != null)
                         {
                             int injure   = this._runtimeData.GetMonsterHurt(attacker.MonsterInfo.ExtensionID);
                             int fortLife = (int)Math.Max(0.0, fortMonster.VLife - (double)injure);
                             scene.ScoreData.FortLifeNow = fortLife;
                             scene.ScoreData.FortLifeMax = (int)fortMonster.MonsterInfo.VLifeMax;
                             GameManager.ClientMgr.BroadSpecialCopyMapMessage <CopyWolfScoreData>(1025, scene.ScoreData, scene.CopyMapInfo);
                             obj.Injure          = injure;
                             eventObject.Handled = true;
                             eventObject.Result  = true;
                         }
                     }
                 }
             }
         }
     }
 }
コード例 #3
0
ファイル: CopyWolfManager.cs プロジェクト: chenchungit/ky
        public void processEvent(EventObjectEx eventObject)
        {
            if (eventObject.EventType == (int)EventTypes.OnCreateMonster)
            {
                OnCreateMonsterEventObject e = eventObject as OnCreateMonsterEventObject;
                if (null != e)
                {
                    CreateMonsterTagInfo tagInfo = e.Monster.Tag as CreateMonsterTagInfo;
                    if (null != tagInfo)
                    {
                        e.Monster.AllwaySearchEnemy = true;
                        if (tagInfo.IsFort)
                        {
                            e.Monster.Camp = _runtimeData.CampID;
                        }

                        e.Result  = true;
                        e.Handled = true;
                    }
                }
            }

            if (eventObject.EventType == (int)EventTypes.PreMonsterInjure)
            {
                PreMonsterInjureEventObject obj = eventObject as PreMonsterInjureEventObject;
                if (obj != null && obj.SceneType == (int)SceneUIClasses.CopyWolf)
                {
                    Monster attacker    = obj.Attacker as Monster;
                    Monster fortMonster = obj.Monster;

                    if (attacker == null || fortMonster == null)
                    {
                        return;
                    }

                    CreateMonsterTagInfo tagInfo = fortMonster.Tag as CreateMonsterTagInfo;
                    if (tagInfo != null)
                    {
                        int fubebSeqID = tagInfo.FuBenSeqId;
                        //int.TryParse(fortMonster.Tag.ToString(), out fubebSeqID);
                        if (fubebSeqID <= 0)
                        {
                            return;
                        }

                        CopyWolfSceneInfo scene = null;
                        if (!_runtimeData.SceneDict.TryGetValue(fubebSeqID, out scene) || scene == null)
                        {
                            return;
                        }
                        //====Monsters===
                        //int injure = _runtimeData.GetMonsterHurt(attacker.MonsterInfo.ExtensionID);
                        ////injure = 1;
                        //int fortLife = (int)Math.Max(0, fortMonster.VLife - injure);
                        //scene.ScoreData.FortLifeNow = fortLife;
                        //scene.ScoreData.FortLifeMax = (int)fortMonster.MonsterInfo.VLifeMax;
                        //GameManager.ClientMgr.BroadSpecialCopyMapMessage((int)TCPGameServerCmds.CMD_SPR_COPY_WOLF_SCORE_INFO, scene.ScoreData, scene.CopyMapInfo);

                        // obj.Injure = injure;
                        eventObject.Handled = true;
                        eventObject.Result  = true;
                    }
                }
            }
        }