예제 #1
0
 function RankBattle(&$user, &$Rival, $UserPlace, $RivalPlace)
 {
     $UserPlace = "[" . ($UserPlace + 1) . "位]";
     $RivalPlace = "[" . ($RivalPlace + 1) . "位]";
     /*
     	■ 相手のユーザ自体が既に存在しない場合の処理
     	アカウントが削除処理された時にランキングからも消えるようにしたから
     	本来出ないエラーかもしれない。
     */
     if ($Rival->is_exist() == false) {
         ShowError("对手不存在(不战而胜)");
         $this->DeleteRank($DefendID);
         $this->SaveRanking();
         //return array(true);
         return "DEFENDER_NO_ID";
     }
     // お互いのランキンぐ用のパーティーを読み込む
     $Party_Challenger = $user->RankParty();
     $Party_Defender = $Rival->RankParty();
     // ランク用パーティーがありません!!!
     if ($Party_Challenger === false) {
         ShowError("戦うメンバーがいません(?)。");
         return "CHALLENGER_NO_PARTY";
     }
     // ランク用パーティーがありません!!!
     if ($Party_Defender === false) {
         //$defender->RankRecord(0,"DEFEND",$DefendMatch);
         //$defender->SaveData();
         ShowError($Rival->name . " 对战的人物还未决定<br />(不战而胜)");
         return "DEFENDER_NO_PARTY";
         //不战而胜とする
     }
     //dump($Party_Challenger);
     //dump($Party_Defender);
     include CLASS_BATTLE;
     $battle = new battle($Party_Challenger, $Party_Defender);
     $battle->SetBackGround("colosseum");
     $battle->SetResultType(1);
     // 決着つかない場合は生存者の数で決めるようにする
     $battle->SetTeamName($user->name . $UserPlace, $Rival->name . $RivalPlace);
     $battle->Process();
     //戦闘開始
     $battle->RecordLog("RANK");
     $Result = $battle->ReturnBattleResult();
     // 戦闘結果
     // 戦闘を受けて立った側の成績はここで変える。
     //$defender->RankRecord($Result,"DEFEND",$DefendMatch);
     //$defender->SaveData();
     //return array("Battle",$Result);
     if ($Result === TEAM_0) {
         return "CHALLENGER_WIN";
     } else {
         if ($Result === TEAM_1) {
             return "DEFENDER_WIN";
         } else {
             if ($Result === DRAW) {
                 return "DRAW_GAME";
             } else {
                 return "DRAW_GAME";
                 //(エラー)予定では出ないエラー(回避用)
             }
         }
     }
 }