Exemple #1
0
 function joinAllyMain($hako, $data)
 {
     global $init;
     $currentID = $data['ISLANDID'];
     $currentAnumber = $data['ALLYNUMBER'];
     $currentNumber = $hako->idToNumber[$currentID];
     $island = $hako->islands[$currentNumber];
     // パスワードチェック
     if (!AllyUtil::checkPassword($island['password'], $data['PASSWORD'])) {
         // password間違い
         HakoError::wrongPassword();
         return;
     }
     // 盟主チェック
     if ($hako->idToAllyNumber[$currentID]) {
         HakoError::leaderAlready();
         return;
     }
     // 複数加盟チェック
     $ally = $hako->ally[$currentAnumber];
     if ($init->allyJoinOne && $island['allyId'][0] != '' && $island['allyId'][0] != $ally['id']) {
         HakoError::otherAlready();
         return;
     }
     $allyMember = $ally['memberId'];
     $newAllyMember = array();
     $flag = 0;
     foreach ($allyMember as $id) {
         if (!($hako->idToNumber[$id] > -1)) {
         } elseif ($id == $currentID) {
             $flag = 1;
         } else {
             array_push($newAllyMember, $id);
         }
     }
     if ($flag) {
         // 脱退
         $newAlly = array();
         foreach ($island['allyId'] as $id) {
             if ($id != $ally['id']) {
                 array_push($newAlly, $id);
             }
         }
         $island['allyId'] = $newAlly;
         $ally['score'] -= $island['pop'];
         $ally['number']--;
     } else {
         // 加盟
         array_push($newAllyMember, $currentID);
         array_push($island['allyId'], $ally['id']);
         $ally['score'] += $island['pop'];
         $ally['number']++;
     }
     $island['money'] -= $init->comCost[$init->comAlly];
     $ally['memberId'] = $newAllyMember;
     // データ格納先へ
     $hako->islands[$currentNumber] = $island;
     $hako->ally[$currentAnumber] = $ally;
     // データ書き出し
     AllyUtil::allyOccupy($hako);
     AllyUtil::allySort($hako);
     $hako->writeAllyFile();
     // トップへ
     $html = new HtmlAlly();
     $html->allyTop($hako, $data);
 }