Exemplo n.º 1
0
    /// <summary>
    /// 检测路障被攻击事件
    /// </summary>
    /// <param name="inotifyArgs">Inotify arguments.</param>
    public void RoadblockBeHurt(INotifyArgs inotifyArgs)    //设置各种属性
    {
        SMsgBattleCalculateEffect_SC fightResult = (SMsgBattleCalculateEffect_SC)inotifyArgs;

        if (ISDefenceEctype)
        {
            if (MonsterManager.Instance.IsMonsterBossType(fightResult.uidFighter))
            {
                //提示大门正在受到攻击
                if (m_bossTipsCD >= m_commonDefineCDTime)
                {
                    SoundManager.Instance.PlaySoundEffect("Sound_UIEff_DefenceDownTips");
                    StartCoroutine(ShowEventTips(true, "IDS_I15_11"));
                    m_bossTipsCD = 0;
                }
                return;
            }
        }
        //这个所有副本//
        foreach (var monster in this.RoadblockEntityModes.Values)
        {
            if (monster.EntityDataStruct.SMsg_Header.uidEntity == fightResult.uidFighter)
            {
                //显示 路障正在被攻击 事件提示
                if (m_roadblockTipsCD >= m_commonDefineCDTime)
                {
                    SoundManager.Instance.PlaySoundEffect("Sound_UIEff_DefenceDownTips");
                    StartCoroutine(ShowEventTips(true, monster.tipIDS));                   //"IDS_I15_9"));
                    m_roadblockTipsCD = 0;
                }
                break;
            }
        }
    }
Exemplo n.º 2
0
    public static SMsgEffectContextNum_SC ParseResultPackage(byte[] pkgData)
    {
        int offset = 0;
        int singleContextLength = Marshal.SizeOf(typeof(SMsgBattleCalculateEffect_SC));

        SMsgEffectContextNum_SC sMsgEffectContextNum_SC;

        offset += PackageHelper.ReadData(pkgData.Skip(offset).ToArray(), out sMsgEffectContextNum_SC.byContextNum);
        sMsgEffectContextNum_SC.list = new List <SMsgBattleCalculateEffect_SC>();
        for (int i = 0; i < sMsgEffectContextNum_SC.byContextNum; i++)
        {
            SMsgBattleCalculateEffect_SC sMsgBattleCalculateEffect_SC = SMsgBattleCalculateEffect_SC.ParseResultPackage(pkgData.Skip(offset).Take(singleContextLength).ToArray());
            sMsgEffectContextNum_SC.list.Add(sMsgBattleCalculateEffect_SC);
            offset += singleContextLength;
        }
        return(sMsgEffectContextNum_SC);
    }
Exemplo n.º 3
0
    private void Miss(long uid)
    {
        //miss
        SMsgBattleCalculateEffect_SC sMsgBattleCalculateEffect_SC = new SMsgBattleCalculateEffect_SC();

        sMsgBattleCalculateEffect_SC.BulletTemplateID = (UInt32)(BulletData.m_bulletId);
        sMsgBattleCalculateEffect_SC.EffectType       = 2;
        sMsgBattleCalculateEffect_SC.uidFighter       = uid;
        sMsgBattleCalculateEffect_SC.uidEffectParam   = FormEntityID;
        sMsgBattleCalculateEffect_SC.Value            = 0;
        RaiseEvent(EventTypeEnum.S_CSMsgFightFightToResult.ToString(), sMsgBattleCalculateEffect_SC);
        //上发服务器
        NetServiceManager.Instance.BattleService.SendFightBattleMissEffect(new SMsgFightMissEffect_CS()
        {
            uidFighter = uid,
            uidMisser  = FormEntityID,
        });
    }
Exemplo n.º 4
0
    void ReceiveFightResultHandle(INotifyArgs notifyArgs)
    {
        if (GameManager.Instance.CurrentState != GameManager.GameState.GAME_STATE_BATTLE)
        {
            return;
        }
        SMsgBattleCalculateEffect_SC fightResult = (SMsgBattleCalculateEffect_SC)notifyArgs;
        bool isHero     = fightResult.uidFighter == PlayerManager.Instance.FindHeroDataModel().UID;
        var  entityInfo = m_entityInfos.SingleOrDefault(P => P.Uid == fightResult.uidFighter);

        if (entityInfo != null)
        {
            if (m_typeMapManager.ContainsKey(entityInfo.EntityType))
            {
                var    entityModel = m_typeMapManager [entityInfo.EntityType].GetEntityMode(fightResult.uidFighter);
                TypeID bulletOwnerEntityType;


                if (entityModel != null)
                {
                    string displayContent  = string.Empty;
                    var    fightEffectType = (FightEffectType)fightResult.EffectType;
                    switch (fightEffectType)
                    {
                    case FightEffectType.BATTLE_EFFECT_CRIT:       //暴击
                        //TraceUtil.Log("CritHit");
                        //displayContent = "-" + fightResult.Value.ToString() ;
                        displayContent = fightResult.Value.ToString();
                        if (GameManager.Instance.CurrentGameMode == GameMode.MULTI_PLAYER)
                        {
                            ShowHurtEffect(entityModel, fightResult.BulletTemplateID, fightResult.uidEffectParam);
                            EntityModel bulletOwnerEntityModel = GetEntityModel(fightResult.uidEffectParam, out bulletOwnerEntityType);
                            if (bulletOwnerEntityModel != null)
                            {
                                ShowHurtUiEffect(bulletOwnerEntityModel, fightResult.BulletTemplateID);
                            }
                        }
                        break;

                    case FightEffectType.BATTLE_EFFECT_DODGE:      //闪避 Miss
                        displayContent = LanguageTextManager.GetString("IDS_D2_15");
                        break;

                    case FightEffectType.BATTLE_EFFECT_HIT:      //命中
                        //displayContent = LanguageTextManager.GetString("IDS_D2_16") + " -" + fightResult.Value.ToString() + "HP";
                        displayContent = fightResult.Value.ToString();
                        //命中效果
                        if (GameManager.Instance.CurrentGameMode == GameMode.MULTI_PLAYER)
                        {
                            ShowHurtEffect(entityModel, fightResult.BulletTemplateID, fightResult.uidEffectParam);
                            EntityModel bulletOwnerEntityModel = GetEntityModel(fightResult.uidEffectParam, out bulletOwnerEntityType);
                            if (bulletOwnerEntityModel != null)
                            {
                                ShowHurtUiEffect(bulletOwnerEntityModel, fightResult.BulletTemplateID);
                            }
                        }
                        if (!GameManager.Instance.m_gameSettings.ShowHurtNum)
                        {
                            return;
                        }
                        break;

                    case FightEffectType.BATTLE_EFFECT_HP:      //HP扣血
                        displayContent = "-" + fightResult.Value;
                        return;

                    case FightEffectType.BATTLE_ADDHP:      //加HP
                        displayContent = "+" + fightResult.Value;
                        break;

                    case FightEffectType.BATTLE_ADDMP:      //加MP
                        if (fightResult.Value > 0)
                        {
                            displayContent = "+" + fightResult.Value;
                        }
                        else
                        {
                            displayContent = fightResult.Value.ToString();
                        }
                        break;

                    case FightEffectType.BATTLE_ADDMONEY:      //加铜钱
                        SoundManager.Instance.PlaySoundEffect("Sound_Button_Pay");
                        displayContent = fightResult.Value.ToString();
                        UI.Battle.BattleMessangeManager.Instance.Show(displayContent, LanguageTextManager.GetString("IDS_D2_17"));
                        break;

                    case FightEffectType.BATTLE_EFFECT_ROLLPOINT:       //Roll点
                        //当前还不需要显示Roll点
                        GameManager.Instance.DamageFactory.PlayDiceAnimation();
                        return;

                    case FightEffectType.BATTLE_EFFECT_EXPSHOW:       //怪物死亡经验显示
                        TraceUtil.Log("获得经验显示");
                        //displayContent = string.Format(LanguageTextManager.GetString("IDS_H1_395"), fightResult.Value);
                        displayContent = fightResult.Value.ToString();
                        break;

                    case FightEffectType.BATTLE_EFFECT_GOODSSHOW:       //获得物品显示
                        DamageManager.Instance.AllocationToPlayer(fightResult.uidFighter, fightResult.uidEffectParam, fightResult.Value);
                        //DamageManager.Instance.AllocationEquip(fightResult.uidFighter, fightResult.uidBeFighted, fightResult.Value);
                        return;

                    case FightEffectType.BATTLE_EFFECT_XIUWEI:    //获得修为显示
                        displayContent = fightResult.Value.ToString();
                        TraceUtil.Log("获得修为显示");
                        break;

                    case FightEffectType.BATTLE_EFFECT_SHILIAN_XIUWEI:
                        TraceUtil.Log("获得试炼副本修为显示");
                        //var m_hostPosition = entityModel.GO.transform.position + UnityEngine.Vector3.up * 18;
                        //displayContent = string.Format(LanguageTextManager.GetString("IDS_H1_471"), fightResult.Value);
                        displayContent = fightResult.Value.ToString();
                        PopupTextController.SettleResultForTime(entityModel, displayContent, fightEffectType);
                        return;

                    case FightEffectType.BATTLE_EFFECT_SHILIAN_EXPSHOW:
                        TraceUtil.Log("获得试炼副本经验值显示");
                        //displayContent = string.Format(LanguageTextManager.GetString("IDS_H1_395"), fightResult.Value);
                        displayContent = fightResult.Value.ToString();
                        break;
                    }
                    //var hostPosition = entityModel.GO.transform.position + new Vector3(CommonDefineManager.Instance.CommonDefine.HitNumber_VectorX, CommonDefineManager.Instance.CommonDefine.HitNumber_VectorY, CommonDefineManager.Instance.CommonDefine.HitNumber_VectorZ);
                    var hostPosition = getUIPosition(entityModel);
                    PopupTextController.SettleResult(hostPosition, displayContent, fightEffectType, isHero);
                }
            }
        }
    }