/// <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; } } }
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); }
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, }); }
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); } } } }