gold = GameConfig::primordial_data()->User_Gold; $this->cash = GameConfig::primordial_data()->User_Cash; $this->xp = GameConfig::primordial_data()->User_XP; $this->maxXp = 0; $this->level = 1; $this->name = '步惊云'; $this->spar = 0; $this->headImg = GameConfig::primordial_data()->User_head; $this->img = GameConfig::primordial_data()->User_img; } // // /** * 增加资源点 * @param int $amt */ function Add_resPoint($amt) { my_Assert($amt >= 0, "参数为负"); $this->resPoint += $amt; } /** * 扣除资源点 * @param type $amt * @return boolean true:成功, false:资源点不足 */ function Consume_ResPoint($amt) { if ($amt > 0) { if ($this->resPoint - $amt >= 0) { $this->resPoint -= $amt; return true; } } return false; } /** * 给玩家增加体力 * @param int $amt */ function Add_tili($amt) { my_Assert($amt >= 0, "体力amt小于0"); ActiveProc::ChangeTili($amt); } /** * 用户获得金币 * @param int $amt */ function Add_Gold($amt) { my_Assert($amt >= 0, "参数为负"); $this->gold += $amt; } /** * 扣除玩家金币 * @param int $amt * @return boolean true:成功, false:金币不足 */ function Consume_Gold($amt) { if ($amt > 0) { if ($this->gold - $amt >= 0) { $this->gold -= $amt; return true; } } return false; } /** * 增加用户钻石 * @param type $amt */ function Add_Cash($amt) { my_Assert($amt >= 0, "amt值为负"); $this->cash += $amt; } /** * 扣除玩家钻石 * @param int $amt * @return bool 成功与否 */ function Consume_Cash($amt) { if ($amt >= 0) { if ($this->cash - $amt >= 0) { $this->cash -= $amt; return true; } } return false; } /** * 增加用户友情点 * @param type $amt */ function Add_FriendPoint($amt) { my_Assert($amt >= 0, "amt值为负"); $this->friendPoint += $amt; # 业务逻辑 } /** * 扣除玩家友情点 * @param int $amt */ function Consume_FriendShipPoint($amt) { if ($amt > 0) { if ($this->friendPoint - $amt >= 0) { $this->friendPoint -= $amt; return true; } } return false; } /** * 用户获得经验值 * @param int $amt */ function Add_Exp($amt) { my_Assert($amt >= 0, "amt值为负"); $cfgLVs = GameConfig::playerlevel(); $this->xp += $amt; $initLevel = $curLevel = $this->level; $nextLevel = $curLevel + 1; while ($this->xp >= $cfgLVs->$nextLevel->xp_need) { # 超过升级所需经验 if ($this->level < glc()->Game_MaxPlayerLevel) { # 如果未到达最大等级 $this->level++; $this->xp -= $cfgLVs->$nextLevel->xp_need; $curLevel = $this->level; $nextLevel = $curLevel + 1; my_Assert(CommUtil::isPropertyExists($cfgLVs, $nextLevel), ErrCode::err_const_no); // "取英雄升级常量数据失败." . $nextLevel . "级"); $this->maxXp = $cfgLVs->$nextLevel->xp_need; // StatProc::UserLevel($nowlv); # 等级统计 } else { # 如果已到达最大等级则仅补齐缺失的经验即可 $this->xp = $this->maxXp; # 经验不能超过最大值 break; } } if ($this->level != $initLevel) { # 插入玩家升级的系统消息 SystemProc::UserLevelUp(req()->zoneid, $this, $this->level); TaskProc::OnUserLevelUp($this->level); # 通知任务模块,这里应该有事件模块 EventProc::OnUserLevelup($initLevel, $this->level); # 事件模块 } } // // }