void Start() { anim = GameObject.FindWithTag("Player").GetComponent <Animator>(); currentHp = PlayerStatusInfo.Instance().maxHp; currentMp = PlayerStatusInfo.Instance().maxMp; currentExp = 0; }
/// <summary> /// 升级解锁技能监听 /// </summary> public void ListenToUnlockSkill() { switch (PlayerStatusInfo.Instance().rank) { case 2: AddOneSkillById(4001); AddOneSkillById(4002); AddOneSkillById(4003); break; } }
public void SavePlayerStatusInfo(PlayerStatusInfo playerStatusInfo) { string sql = "update user_player_status_information set " + "user_player_remain_hp=@user_player_remain_hp," + "user_player_remain_mp=@user_player_remain_mp," + "user_player_now_exp=@user_player_now_exp," + "user_player_level=@user_player_level," + "user_player_coin=@user_player_coin," + "user_player_add_attack=@user_player_add_attack," + "user_player_add_defence=@user_player_add_defence," + "user_player_add_speed=@user_player_add_speed where user_id=" + GameConfig.UserId; MySqlParameter[] ps = { new MySqlParameter("@user_player_remain_hp", playerStatusInfo.Hp_Remain == 0?1:playerStatusInfo.Hp_Remain), new MySqlParameter("@user_player_remain_mp", playerStatusInfo.Mp_Remain), new MySqlParameter("@user_player_now_exp", playerStatusInfo.ReMain_EXP), new MySqlParameter("@user_player_level", playerStatusInfo.Lv), new MySqlParameter("@user_player_coin", playerStatusInfo.Money), new MySqlParameter("@user_player_add_attack", playerStatusInfo.Attack_Add), new MySqlParameter("@user_player_add_defence", playerStatusInfo.Def_Add), new MySqlParameter("@user_player_add_speed", playerStatusInfo.Speed_Add) }; MysqlHelper.ExecutNonQuery(sql, CommandType.Text, ps); }
public PlayerStatusInfo LoadPlayerStatusInfo() { string sql = "select * from user_player_status_information where user_id=" + GameConfig.UserId; DataTable dt = MysqlHelper.ExecuteTable(sql, CommandType.Text, null); if (dt.Rows.Count > 0) { GameConfig.playerTypes = (PlayerTypes)Enum.Parse(typeof(PlayerTypes), dt.Rows[0]["user_player_type"].ToString()); GameConfig.PlayerName = dt.Rows[0]["user_player_name"].ToString(); PlayerStatusInfo playerStatusInfo = new PlayerStatusInfo(); playerStatusInfo.Name = GameConfig.PlayerName; playerStatusInfo.Hp = Convert.ToInt32(dt.Rows[0]["user_player_hp"]); playerStatusInfo.Hp_Remain = Convert.ToInt32(dt.Rows[0]["user_player_remain_hp"]); playerStatusInfo.Mp = Convert.ToInt32(dt.Rows[0]["user_player_mp"]); playerStatusInfo.Mp_Remain = Convert.ToInt32(dt.Rows[0]["user_player_remain_mp"]); playerStatusInfo.Exp = Convert.ToInt32(dt.Rows[0]["user_player_exp"]); playerStatusInfo.ReMain_EXP = Convert.ToInt32(dt.Rows[0]["user_player_now_exp"]); playerStatusInfo.Lv = Convert.ToInt32(dt.Rows[0]["user_player_level"]); playerStatusInfo.Money = Convert.ToInt32(dt.Rows[0]["user_player_coin"]); playerStatusInfo.Attack = Convert.ToInt32(dt.Rows[0]["user_player_attack"]); playerStatusInfo.Attack_Add = Convert.ToInt32(dt.Rows[0]["user_player_add_attack"]); playerStatusInfo.Def = Convert.ToInt32(dt.Rows[0]["user_player_defence"]); playerStatusInfo.Def_Add = Convert.ToInt32(dt.Rows[0]["user_player_add_defence"]); playerStatusInfo.Speed = Convert.ToInt32(dt.Rows[0]["user_player_speed"]); playerStatusInfo.Speed_Add = Convert.ToInt32(dt.Rows[0]["user_player_add_speed"]); playerStatusInfo.AttackSpeed = Convert.ToInt32(dt.Rows[0]["user_player_attack_speed"]); playerStatusInfo.AttackDistance = Convert.ToInt32(dt.Rows[0]["user_player_attack_distance"]); playerStatusInfo.MissPrecent = Convert.ToInt32(dt.Rows[0]["user_player_miss_precent"]); playerStatusInfo.PlayerType = GameConfig.playerTypes; return(playerStatusInfo); } return(null); }
/// <summary> /// 在zombie的attack动画中添加event片段,执行此函数,对player造成等同于zombie攻击力数值的伤害 /// </summary> public void Attack() { if (PlayerStatusManager.Instance().currentHp > 0) { PlayerStatusManager.Instance().ReduceHp(attackPower - (int)(PlayerStatusInfo.Instance().def * 0.2f)); } }
/// <summary> /// 减少玩家属性值(装备) /// </summary> /// <param name="info"></param> public void ReduceProperties(ObjectInfo info) { PlayerStatusInfo.Instance().attack -= info.attack; PlayerStatusInfo.Instance().def -= info.def; PlayerStatusInfo.Instance().speed -= info.speed; //更新一次玩家信息界面显示 StatusBoard.Instance().UpdateStatusShow(); }
/// <summary> /// 加Hp /// </summary> /// <param name="num">加Hp数量</param> public void AddHp(int num) { currentHp = Mathf.Clamp(currentHp += num, 0, PlayerStatusInfo.Instance().maxHp); damageText.text = "HP+" + num.ToString(); damageText.color = Color.green; GameObject obj = Instantiate(damageObj, damageObj.transform.position, damageObj.transform.rotation); obj.transform.parent = colli.transform; }
/// <summary> /// 增加等级,属性,点数 /// </summary> /// <param name="num">升级数目(默认1)</param> public void AddRankAndProp(int num = 1) { PlayerStatusInfo.Instance().rank += num; SkillBoard.Instance().ListenToUnlockSkill(); PlayerStatusInfo.Instance().attack += 5; PlayerStatusInfo.Instance().def += 3; PlayerStatusInfo.Instance().speed += 1; AddPoint(5); }
/// <summary> /// 加Mp /// </summary> /// <param name="num">加Mp数量</param> public void AddMp(int num) { currentMp = Mathf.Clamp(currentMp += num, 0, PlayerStatusInfo.Instance().maxMp); damageText2.text = "MP+" + num.ToString(); damageText2.color = Color.blue; GameObject obj = Instantiate(damageObj2, damageObj2.transform.position, damageObj2.transform.rotation); obj.transform.parent = colli.transform; }
/// <summary> /// 增加Exp /// </summary> /// <param name="num">增加Exp数目</param> public void AddExp(int num) { currentExp += num; //升级 if (currentExp >= PlayerStatusInfo.Instance().maxExp) { AddRankAndProp(1); BoardManager.Instance().SwitchShowBoard(BoardManager.BoardShow.UPGRADEBOARD); currentExp -= PlayerStatusInfo.Instance().maxExp; } }
void Update() { //根据当前Hp/Mp/Exp和最大Hp/Mp/Exp百分比控制hp/Mp/Exp条百分比 hpSlider.value = ((float)currentHp / (float)PlayerStatusInfo.Instance().maxHp); hpNum.text = currentHp.ToString(); mpSlider.value = ((float)currentMp / (float)PlayerStatusInfo.Instance().maxMp); mpNum.text = currentMp.ToString(); expSlider.value = ((float)currentExp / (float)PlayerStatusInfo.Instance().maxExp); expNum.text = currentExp.ToString(); rankNum.text = PlayerStatusInfo.Instance().rank.ToString(); }
/// <summary> /// 增加玩家属性值(加点) /// </summary> /// <param name="selectName">点击的加点按钮明名称</param> /// <param name="num">默认一次加10点</param> public void AddProperties(string selectName, int num = 10) { switch (selectName) { case "AtkButton": PlayerStatusInfo.Instance().attack += num; break; case "DefButton": PlayerStatusInfo.Instance().def += num; break; case "SpButton": PlayerStatusInfo.Instance().speed += num; break; } //更新一次玩家信息界面显示 StatusBoard.Instance().UpdateStatusShow(); }
/// <summary> /// 减少玩家属性值(技能) /// </summary> /// <param name="type">技能加持buff类型</param> /// <param name="num">buff数值</param> public void ReduceProperties(SkillInfo.SkillEffectType type, int num) { switch (type) { case SkillInfo.SkillEffectType.ATTACK: PlayerStatusInfo.Instance().attack -= num; break; case SkillInfo.SkillEffectType.DEF: PlayerStatusInfo.Instance().def -= num; break; case SkillInfo.SkillEffectType.SPEED: PlayerStatusInfo.Instance().speed -= num; break; } //更新一次玩家信息界面显示 StatusBoard.Instance().UpdateStatusShow(); }
/// <summary> /// 增加玩家属性值(技能) /// </summary> /// <param name="type">技能加持buff类型</param> /// <param name="num">buff数值</param> public void AddProperties(SkillInfo.SkillEffectType type, int num) { Debug.Log(type.ToString()); switch (type) { case SkillInfo.SkillEffectType.ATTACK: PlayerStatusInfo.Instance().attack += num; break; case SkillInfo.SkillEffectType.DEF: PlayerStatusInfo.Instance().def += num; break; case SkillInfo.SkillEffectType.SPEED: PlayerStatusInfo.Instance().speed += num; break; } //更新一次玩家信息界面显示 StatusBoard.Instance().UpdateStatusShow(); }
/// <summary> /// 扣Hp /// </summary> /// <param name="num">扣Hp数量</param> public void ReduceHp(int num) { currentHp = Mathf.Clamp(currentHp -= num, 0, PlayerStatusInfo.Instance().maxHp); damageText.text = "HP-" + num.ToString(); damageText.color = Color.white; GameObject obj = Instantiate(damageObj, damageObj.transform.position, damageObj.transform.rotation); obj.transform.parent = colli.transform; //一般情况下只有扣血时才会死 if (currentHp <= 0) { Global.playerState = Global.State.DieState; colli.enabled = false; cc.enabled = false; anim.SetBool("Die", true); } }
public void LVUpdate(PlayerStatusInfo playerStatusInfo) { PlayerStatusInfo temp = new PlayerStatusInfo(); DataTable dt = Load_play_development_information(); if (dt.Rows.Count >= 0) { temp.Hp = Convert.ToInt32(dt.Rows[0]["player_add_hp"]); temp.Mp = Convert.ToInt32(dt.Rows[0]["player_add_mp"]); temp.Exp = Convert.ToInt32(dt.Rows[0]["player_add_exp"]); temp.Attack = Convert.ToInt32(dt.Rows[0]["player_add_attack"]); temp.Def = Convert.ToInt32(dt.Rows[0]["player_add_defence"]); temp.Speed = Convert.ToInt32(dt.Rows[0]["player_add_speed"]); } string sql = "update user_player_status_information set " + "user_player_mp=@user_player_mp," + "user_player_hp=@user_player_hp," + "user_player_exp=@user_player_exp," + "user_player_level=@user_player_level," + "user_player_attack=@user_player_attack," + "user_player_defence=@user_player_defence," + "user_player_speed=@user_player_speed where user_id=" + GameConfig.UserId; playerStatusInfo.Mp += temp.Mp; playerStatusInfo.Hp += temp.Hp; playerStatusInfo.Exp += temp.Exp; playerStatusInfo.Attack += temp.Attack; playerStatusInfo.Def += temp.Def; playerStatusInfo.Speed += temp.Speed; MySqlParameter[] ps = { new MySqlParameter("@user_player_mp", playerStatusInfo.Mp), new MySqlParameter("@user_player_hp", playerStatusInfo.Hp), new MySqlParameter("@user_player_exp", playerStatusInfo.Exp), new MySqlParameter("@user_player_level", playerStatusInfo.Lv), new MySqlParameter("@user_player_attack", playerStatusInfo.Attack), new MySqlParameter("@user_player_defence", playerStatusInfo.Def), new MySqlParameter("@user_player_speed", playerStatusInfo.Speed) }; MysqlHelper.ExecutNonQuery(sql, CommandType.Text, ps); }
//被攻击逻辑 void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "Weapon") { Debug.Log("被攻击"); switch (AttackController.Instance().atkState) { case AttackController.AttackState.FIRST: BeDamage(PlayerStatusInfo.Instance().attack *AttackController.firstAtkPowerPercent); break; case AttackController.AttackState.SECOND: BeDamage(PlayerStatusInfo.Instance().attack *AttackController.secondAtkPowerPercent); break; case AttackController.AttackState.THIRD1: BeDamage(PlayerStatusInfo.Instance().attack *AttackController.thirdAtkPower1Percent); break; case AttackController.AttackState.THIRD2: BeDamage(PlayerStatusInfo.Instance().attack *AttackController.thirdAtkPower2Percent); break; case AttackController.AttackState.THIRD3: BeDamage(PlayerStatusInfo.Instance().attack *AttackController.thirdAtkPower3Percent); break; case AttackController.AttackState.THIRD4: BeDamage(PlayerStatusInfo.Instance().attack *AttackController.thirdAtkPower4Percent); break; } } }
/// <summary> /// 穿戴情况处理 /// </summary> /// <param name="id">要穿戴装备id</param> /// <returns>成功穿戴return true</returns> public bool WearEquipmentById(int id) { ObjectInfo info = ObjectsInfo.Instance().GetObjectInfoById(id); if (info.suittype != PlayerStatusInfo.Instance().playertype) { return(false); } GridOfEquip tempGrid = null; switch (info.weartype) { case ObjectInfo.WearType.Headgear: tempGrid = headgear; break; case ObjectInfo.WearType.Armor: tempGrid = armor; break; case ObjectInfo.WearType.Hand: tempGrid = hand; AppearChange.Instance().SwitchWeaponAppear(id); break; //目前只有武器可更换外观 case ObjectInfo.WearType.Accessory: tempGrid = accessory; break; case ObjectInfo.WearType.Shoe: tempGrid = shoe; break; } //对应装备栏已经有装备的情况,先卸下装备,使装备栏空且物品栏加入改装备 if (tempGrid.id != 0) { tempGrid.UnloadThisGridEquip(); Debug.Log("脱"); } //向空的装备栏中添加装备 Debug.Log("穿"); GameObject equipNewItem = NGUITools.AddChild(tempGrid.gameObject, newEquip); equipNewItem.transform.localPosition = Vector3.zero; equipNewItem.GetComponent <UISprite>().depth = 2; tempGrid.SetThisGridEquipById(id, info); return(true); }
/// <summary> /// 更新一次面板信息显示 /// </summary> public void UpdateStatusShow() { hpNum.text = PlayerStatusInfo.Instance().maxHp.ToString(); mpNum.text = PlayerStatusInfo.Instance().maxMp.ToString(); atkNum.text = PlayerStatusInfo.Instance().attack.ToString(); defNum.text = PlayerStatusInfo.Instance().def.ToString(); spNum.text = PlayerStatusInfo.Instance().speed.ToString(); pointNum.text = PlayerStatusInfo.Instance().point.ToString(); if (PlayerStatusInfo.Instance().point > 0) { foreach (GameObject eachButton in addPointButtons) { eachButton.SetActive(true); } } else { foreach (GameObject eachButton in addPointButtons) { eachButton.SetActive(false); } } }
public int CreateNewPlayer() { PlayerStatusInfo playerStatusInfo = new PlayerStatusInfo(); DataTable dt = Player_status_information(); if (dt.Rows.Count >= 0) { playerStatusInfo.Name = GameConfig.PlayerName; playerStatusInfo.Hp = Convert.ToInt32(dt.Rows[0]["player_hp"]); playerStatusInfo.Hp_Remain = playerStatusInfo.Hp; playerStatusInfo.Mp = Convert.ToInt32(dt.Rows[0]["player_mp"]); playerStatusInfo.Mp_Remain = playerStatusInfo.Mp; playerStatusInfo.Exp = Convert.ToInt32(dt.Rows[0]["player_exp"]); playerStatusInfo.ReMain_EXP = 0; playerStatusInfo.Lv = 1; playerStatusInfo.Attack = Convert.ToInt32(dt.Rows[0]["player_attack"]); playerStatusInfo.Attack_Add = 0; playerStatusInfo.Def = Convert.ToInt32(dt.Rows[0]["player_defence"]); playerStatusInfo.Def_Add = 0; playerStatusInfo.Speed = Convert.ToInt32(dt.Rows[0]["player_speed"]); playerStatusInfo.Speed_Add = 0; playerStatusInfo.AttackSpeed = Convert.ToInt32(dt.Rows[0]["player_attack_speed"]); playerStatusInfo.AttackDistance = Convert.ToInt32(dt.Rows[0]["player_attack_distance"]); playerStatusInfo.MissPrecent = Convert.ToInt32(dt.Rows[0]["player_miss_precent"]); playerStatusInfo.PlayerType = GameConfig.playerTypes; } string sql = "insert into user_player_status_information(user_id,user_player_id,user_player_name,user_player_hp,user_player_remain_hp," + "user_player_mp,user_player_remain_mp,user_player_exp,user_player_now_exp,user_player_level,user_player_coin,user_player_attack,user_player_add_attack," + "user_player_defence,user_player_add_defence,user_player_speed,user_player_add_speed,user_player_attack_speed,user_player_attack_distance," + "user_player_miss_precent,user_player_type) values(@user_id,@user_player_id,@user_player_name,@user_player_hp,@user_player_remain_hp," + "@user_player_mp,@user_player_remain_mp,@user_player_exp,@user_player_now_exp,@user_player_level,@user_player_coin,@user_player_attack,@user_player_add_attack," + "@user_player_defence,@user_player_add_defence,@user_player_speed,@user_player_add_speed,@user_player_attack_speed,@user_player_attack_distance," + "@user_player_miss_precent,@user_player_type)"; MySqlParameter[] ps = { new MySqlParameter("@user_id", GameConfig.UserId), new MySqlParameter("@user_player_id", (int)GameConfig.playerTypes), new MySqlParameter("@user_player_name", playerStatusInfo.Name), new MySqlParameter("@user_player_hp", playerStatusInfo.Hp), new MySqlParameter("@user_player_remain_hp", playerStatusInfo.Hp_Remain), new MySqlParameter("@user_player_mp", playerStatusInfo.Mp), new MySqlParameter("@user_player_remain_mp", playerStatusInfo.Mp_Remain), new MySqlParameter("@user_player_exp", playerStatusInfo.Exp), new MySqlParameter("@user_player_now_exp", playerStatusInfo.ReMain_EXP), new MySqlParameter("@user_player_level", playerStatusInfo.Lv), new MySqlParameter("@user_player_coin", 1000), new MySqlParameter("@user_player_attack", playerStatusInfo.Attack), new MySqlParameter("@user_player_add_attack", playerStatusInfo.Attack_Add), new MySqlParameter("@user_player_defence", playerStatusInfo.Def), new MySqlParameter("@user_player_add_defence", playerStatusInfo.Def_Add), new MySqlParameter("@user_player_speed", playerStatusInfo.Speed), new MySqlParameter("@user_player_add_speed", playerStatusInfo.Speed_Add), new MySqlParameter("@user_player_attack_speed", playerStatusInfo.AttackSpeed), new MySqlParameter("@user_player_attack_distance", playerStatusInfo.AttackDistance), new MySqlParameter("@user_player_miss_precent", playerStatusInfo.MissPrecent), new MySqlParameter("@user_player_type", playerStatusInfo.PlayerType.ToString()), }; return(MysqlHelper.ExecutNonQuery(sql, CommandType.Text, ps)); }
private void Start() { player = GameObject.Find("FPSController").GetComponent <PlayerStatusInfo>(); HP = GetComponent <Slider>(); }
private void Awake() { UiHP = GameObject.Find("Slider").GetComponent <Slider>(); instance = this; }
/// <summary> /// 使用物品加Hp和Mp /// </summary> /// <param name="info">使用的物品的ObjectInfo</param> public void AddHpAndMp(ObjectInfo info) { currentHp = Mathf.Clamp(currentHp += info.hp, 0, PlayerStatusInfo.Instance().maxHp); currentMp = Mathf.Clamp(currentMp += info.mp, 0, PlayerStatusInfo.Instance().maxMp); }
/// <summary> /// 加载角色状态 /// </summary> public void LoadPlayerInfo() { playerInfo = playerInfoDAL.LoadPlayerStatusInfo(); }
public void ReducePoint(int num = 1) { PlayerStatusInfo.Instance().point -= num; //更新一次玩家信息界面显示 StatusBoard.Instance().UpdateStatusShow(); }
void Awake() { _instance = this; }
/// <summary> /// 增加升级点数 /// </summary> /// <param name="num">增加数量(默认5)</param> public void AddPoint(int num = 5) { PlayerStatusInfo.Instance().point += num; //更新一次玩家信息界面显示 StatusBoard.Instance().UpdateStatusShow(); }