소스 검색

突破加事件

cyzhao 4 년 전
부모
커밋
41afefc403

+ 5 - 0
Gameserver/Amfphp/model/User/Enum_EventType.php

@@ -89,5 +89,10 @@ class Enum_EventType {
      * 唤灵师等级提升
      */
     const HeroLvlUp = 'Herolvlup';
+    
+    /**
+     * 唤灵师突破
+     */
+    const HeroTuPo = 'HeroTuPo';
 
 }

+ 8 - 0
Gameserver/Amfphp/process/EventProc/NormalEventProc.php

@@ -150,5 +150,13 @@ class NormalEventProc {
     public static function OnHeroLvlUp($arg1, $arg2) {
         Resp::AddEvent(Enum_EventType::HeroLvlUp, $arg1, $arg2);
     }
+    /**
+     * 突破-唤灵师
+     * @param type $arg1
+     * @param type $arg2
+     */
+    public static function OnHeroTuPo($arg1, $arg2) {
+        Resp::AddEvent(Enum_EventType::HeroTuPo, $arg1, $arg2);
+    }
 
 }

+ 14 - 1
Gameserver/Amfphp/process/HeroProc.php

@@ -288,6 +288,9 @@ class HeroProc {
         $user->store->items->$segID -= $mo->segNum;
         $user->baseInfo->gold -= $mo->gold;
         $collectHeros->$uid->curStar+=1;
+        
+        NormalEventProc::OnHeroTuPo($uid, $collectHeros->$uid->curStar);         # 广播英雄升级事件
+        
         $user->heros->collectHeros=$collectHeros;
         req()->userInfo->game = $user;                     
         $targetHero = new Ins_UserHero($collectHeros->$uid);
@@ -593,7 +596,7 @@ class HeroProc {
 //        if ($targetHero->level >= $maxLevel) {
 //            return;                                                             # 已达顶级
 //        }
-        $lvs = GameConfig::hero_levelexp_getItem($targetHero->level + 1);
+        //$lvs = GameConfig::hero_levelexp_getItem($targetHero->level + 1);            
         $targetHero->xp += $totalEXP;                            
         my_Assert($targetHero->xp >= 0, "[" . $req->uid . "] : HeroLevelUpgrade Exp is negative!");
         $initLevel = $targetHero->level;
@@ -614,6 +617,16 @@ class HeroProc {
         }
         $targetHero->level = $curLv;
         
+        $curStar = $targetHero->curStar;#当前星级   
+        if($curStar < 5){
+            $starlimitLv = GameConfig::heroextra_level_tupo_getItem($targetHero->typeId, $curStar +1)->starlimitLv; 
+            if($starlimitLv > $curLv){
+                $targetHero->level = $starlimitLv;
+                $targetHero->xp = \GameConfig::hero_levelexp_getItem($starlimitLv)->needExp;
+            }
+        }
+        
+        
 //        while ($targetHero->xp >= $lvs->needExp) {
 //            if ($targetHero->level < $maxLevel) {                               # 如果未到达最大等级
 //                $targetHero->level += 1;