function tribe_ChangeLeader($tag, $newLeadership, $oldLeaderID, $oldJuniorLeaderID, $db) { if ($newLeadership[0] == $oldLeaderID && $newLeadership[1] == $oldJuniorLeaderID) { return 0; //nothing changed } if ($newLeadership[0] != $oldLeaderID) { if ($oldLeaderID && !tribe_unmakeLeader($oldLeaderID, $tag, $db)) { return -2; } if ($newLeadership[0] && !tribe_makeLeader($newLeadership[0], $tag, $db)) { return -3; } } if ($newLeadership[1] != $oldJuniorLeaderID) { if ($oldJuniorLeaderID && !tribe_unmakeJuniorLeader($oldJuniorLeaderID, $tag, $db)) { return -4; } if ($newLeadership[1] && !tribe_makeJuniorLeader($newLeadership[1], $tag, $db)) { return -5; } } tribe_SendMessageLeaderChanged($tag, $newLeadership); return $newLeadership; }
function tribe_recalcLeader($tag, $oldLeaderID, $db) { global $governmentList; // find the new leader if (!($government = government_getGovernmentForTribe($tag, $db))) { return -1; } $det = $governmentList[$government[governmentID]][leaderDeterminationID]; switch ($det) { case 1: $newLeader = tribe_recalcLeader1($tag, $db); break; case 2: $newLeader = tribe_recalcLeader2($tag, $db); break; } if ($newLeader < 0) { return $newLeader; } // change the leader if ($newLeader == $oldLeaderID) { return 0; } if ($oldLeaderID && !tribe_unmakeLeader($oldLeaderID, $tag, $db)) { return -1; } if ($newLeader && !tribe_makeLeader($newLeader, $tag, $db)) { return -1; } if (!$newLeader) { tribe_sendTribeMessage($tag, TRIBE_MESSAGE_LEADER, "Anführerwechsel", "Ihr Clan hat momentan keinen Anführer " . "mehr"); } else { $player = getPlayerFromID($newLeader); $newLeaderName = $player ? $player[name] : $newLeader; tribe_sendTribeMessage($tag, TRIBE_MESSAGE_LEADER, "Anführerwechsel", "Der Spieler {$newLeaderName} ist soeben neuer " . "Anführer des Clans geworden."); } return $newLeader; }