Example #1
0
 function deleteAllyMain($hako, $data)
 {
     global $init;
     $currentID = $data['ISLANDID'];
     $currentAnumber = $data['ALLYNUMBER'];
     $currentNumber = $hako->idToNumber[$currentID];
     $island = $hako->islands[$currentNumber];
     $n = $hako->idToAllyNumber[$currentID];
     $adminMode = 0;
     // パスワードチェック
     $passCheck = isset($data['OLDPASS']) ? AllyUtil::checkPassword("", $data['OLDPASS']) : false;
     if ($passCheck) {
         $n = $currentAnumber;
         $currentID = $hako->ally[$n]['id'];
         $adminMode = 1;
     } else {
         // passwordの判定
         if (!AllyUtil::checkPassword($island['password'], $data['PASSWORD'])) {
             // 島 Password 間違い
             HakoError::wrongPassword();
             return;
         }
         if (!AllyUtil::checkPassword($hako->ally[$n]['password'], $data['PASSWORD'])) {
             // 同盟 Password 間違い
             HakoError::wrongPassword();
             return;
         }
         // 念のためIDもチェック
         if ($hako->ally[$n]['id'] != $currentID) {
             HakoError::wrongAlly();
             return;
         }
     }
     $allyMember = $hako->ally[$n]['memberId'];
     if ($adminMode && ($allyMember[0] != '' || $n == '')) {
         echo "削除できません。\n";
         return;
     }
     foreach ($allyMember as $id) {
         $island = $hako->islands[$hako->idToNumber[$id]];
         $newId = array();
         foreach ($island['allyId'] as $aId) {
             if ($aId != $currentID) {
                 array_push($newId, $aId);
             }
         }
         $island['allyId'] = $newId;
     }
     $hako->ally[$n]['dead'] = 1;
     $hako->idToAllyNumber[$currentID] = '';
     $hako->allyNumber--;
     // データ格納先へ
     $hako->islands[$currentNumber] = $island;
     // データ書き出し
     AllyUtil::allyOccupy($hako);
     AllyUtil::allySort($hako);
     $hako->writeAllyFile();
     // トップへ
     $html = new HtmlAlly();
     $html->allyTop($hako, $data);
 }