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); }