void SetRoleDynamicProperty() { ArkCrossEngine.RoleInfo player = ArkCrossEngine.LobbyClient.Instance.CurrentRole; if (player != null) { if (labellv != null) { labellv.text = "" + player.Level; } RoleInfo ri = ArkCrossEngine.LobbyClient.Instance.CurrentRole; if (ri != null) { UserInfo ui = ri.GetPlayerSelfInfo(); if (ui != null) { CharacterProperty cp = ui.GetActualProperty(); if (cp != null) { if (labellvfight != null) { labellvfight.text = cp.AttackBase.ToString(); } } } } if (money != null) { money.text = player.Money.ToString(); } if (diamond != null) { diamond.text = player.Gold.ToString(); } int needexp = 0; ArkCrossEngine.PlayerLevelupExpConfig plec = ArkCrossEngine.PlayerConfigProvider.Instance.GetPlayerLevelupExpConfigById(player.HeroId); if (plec != null) { needexp = plec.m_ConsumeExp; } UpdateEx(player.Level, player.Exp); if (labelhpmax != null) { ArkCrossEngine.UserInfo ui = player.GetPlayerSelfInfo(); if (ui != null) { ArkCrossEngine.CharacterProperty cp = ui.GetActualProperty(); if (cp != null) { labelhpmax.text = cp.HpMax.ToString(); } } } } }
private void HeroUpdateProperty(ArkCrossEngine.CharacterProperty info, ArkCrossEngine.Network.GeneralOperationResult result) { try { if (result == ArkCrossEngine.Network.GeneralOperationResult.LC_Succeed) { UnityEngine.Transform tfroot = transform; if (tfroot != null) { UnityEngine.Transform tf = tfroot.Find("RoleInfo/DragThing/Right0"); if (tf != null) { UILabel ul = tf.gameObject.GetComponent <UILabel>(); if (ul != null) { string str = "[ffffff]"; if (info != null) { str += info.AttackBase + "\n"; str += FormatDecimal(info.Critical * 100) + "%\n"; str += FormatDecimal(info.CriticalPow * 100) + "%\n"; str += FormatDecimal(info.CriticalBackHitPow * 100) + "%\n"; str += FormatDecimal(info.CriticalCrackPow * 100) + "%\n"; str += FormatDecimal(info.FireDamage) + "\n"; str += FormatDecimal(info.IceDamage) + "\n"; str += FormatDecimal(info.PoisonDamage) + "[-]"; } ul.text = str; } } tf = tfroot.Find("RoleInfo/DragThing/Right1"); if (tf != null) { UILabel ul = tf.gameObject.GetComponent <UILabel>(); if (ul != null) { string str = "[ffffff]"; if (info != null) { str += info.HpMax + "\n"; str += info.ADefenceBase + "\n"; str += info.MDefenceBase + "\n"; str += FormatDecimal(info.FireERD) + "\n"; str += FormatDecimal(info.IceERD) + "\n"; str += FormatDecimal(info.PoisonERD) + "[-]"; } ul.text = str; } } tf = tfroot.Find("RoleInfo/DragThing/Right2"); if (tf != null) { UILabel ul = tf.gameObject.GetComponent <UILabel>(); if (ul != null) { string str = "[ffffff]"; if (info != null) { str += "+" + FormatDecimal(info.MoveSpeed * 100) + "%\n"; str += FormatDecimal(info.HpRecover) + "/5S\n"; str += FormatDecimal(info.EnergyRecover) + "/5S\n"; str += "+" + /*info.EnergyRecover * 10*/ 0 + "%\n"; } ul.text = str; } } } } else { ArkCrossEngine.LogicSystem.EventChannelForGfx.Publish("ge_show_dialog", "ui", result.ToString(), "understand", null, null, null, false); } } catch (Exception ex) { ArkCrossEngine.LogicSystem.LogFromGfx("[Error]:Exception:{0}\n{1}", ex.Message, ex.StackTrace); } }
public static NpcInfo SummonNpc(int id, int owner_id, int owner_skillid, int npc_type_id, string modelPrefab, int skillid, int ailogicid, bool followsummonerdead, float x, float y, float z, string aiparamstr, int signforskill, bool isSimulate = false, bool is_start_skill = true) { CharacterInfo charObj = WorldSystem.Instance.GetCharacterById(owner_id); if (charObj == null) { return(null); } Data_Unit data = new Data_Unit(); data.m_Id = -1; data.m_LinkId = npc_type_id; data.m_CampId = charObj.GetCampId(); data.m_IsEnable = true; data.m_Pos = new Vector3(x, y, z); data.m_RotAngle = 0; data.m_AiLogic = ailogicid; if (!string.IsNullOrEmpty(aiparamstr)) { string[] strarry = aiparamstr.Split(new char[] { ',' }, 8); int i = 0; foreach (string str in strarry) { data.m_AiParam[i++] = str; } } NpcInfo npc; if (id <= 0) { npc = WorldSystem.Instance.NpcManager.AddNpc(data); } else { npc = WorldSystem.Instance.NpcManager.AddNpc(id, data); } if (WorldSystem.Instance.IsExpeditionScene() || WorldSystem.Instance.IsMultiPveScene()) { float fightscore = 0; CharacterProperty info = charObj.GetActualProperty(); if (null != info) { CharacterProperty base_info = charObj.GetBaseProperty(); float assit_critical_pow = (null != base_info ? info.CriticalPow - base_info.CriticalPow : info.CriticalPow); float assit_critical_backhit_pow = (null != base_info ? info.CriticalBackHitPow - base_info.CriticalBackHitPow : info.CriticalBackHitPow); float assit_critical_crack_pow = (null != base_info ? info.CriticalCrackPow - base_info.CriticalCrackPow : info.CriticalCrackPow); fightscore = AttributeScoreConfigProvider.Instance.CalcAttributeScore(info.HpMax, info.EnergyMax, info.AttackBase, info.ADefenceBase, info.MDefenceBase, info.Critical, assit_critical_pow, assit_critical_backhit_pow, assit_critical_crack_pow, info.FireDamage, info.IceDamage, info.PoisonDamage, info.FireERD, info.IceERD, info.PoisonERD) + charObj.GetSkillStateInfo().GetSkillAppendScore(); } WorldSystem.Instance.AdditionNpcAttr(npc, Mathf.FloorToInt(fightscore)); } if (!string.IsNullOrEmpty(modelPrefab)) { npc.SetModel(modelPrefab); } npc.FollowSummonerDead = followsummonerdead; SkillInfo skillinfo = new SkillInfo(skillid); npc.GetSkillStateInfo().AddSkill(skillinfo); npc.SkillController = new SwordManSkillController(npc, GfxModule.Skill.GfxSkillSystem.Instance); npc.GetMovementStateInfo().SetPosition(data.m_Pos); npc.SummonOwnerId = charObj.GetId(); npc.SignForSkill = signforskill; EntityManager.Instance.CreateNpcView(npc.GetId()); charObj.GetSkillStateInfo().AddSummonObject(npc); NpcView npcview = EntityManager.Instance.GetNpcViewById(npc.GetId()); CharacterView owner_view = EntityManager.Instance.GetCharacterViewById(charObj.GetId()); npcview.ObjectInfo.SummonOwnerActorId = owner_view.Actor; npcview.ObjectInfo.SummonOwnerSkillId = owner_skillid; npcview.ObjectInfo.SignForSkill = signforskill; npcview.ObjectInfo.IsSimulate = isSimulate; if (ailogicid > 0) { npcview.ObjectInfo.IsSummonWithAI = true; } //LogSystem.Debug("---summon npc: issimulate=" + isSimulate); owner_view.ObjectInfo.Summons.Add(npcview.Actor); if (is_start_skill) { npc.SkillController.ForceStartSkill(skillid); } //LogSystem.Debug("---create summon npc over!"); return(npc); }