<?php /* * * @copyright (c) 2009 animegame.eu * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence * */ include_once(ROOT_PATH.'/include/defines.inc.php'); include_once(ROOT_PATH.'/include/clan.inc.php'); include_once(ROOT_PATH.'/include/fehlerausgabe.inc.php'); include_once(ROOT_PATH.'/include/parse.inc.php'); include_once(ROOT_PATH.'/include/char.inc.php'); include_once(ROOT_PATH.'/include/user.inc.php'); defineIfNotDefined('DENY_CHALLENGE', 1); defineIfNotDefined('WITHDRAW_CHALLENGE', 2); //Get-Section if(isset($_GET['action'])) { $action = $_GET['action']; } else { $action = NULL; } $challangedclan_id = validateUnsignedInteger($_GET['challangedclan_id'], null); $inquirychallenge_clanid = validateUnsignedInteger($_GET['clanid'], null); $clan_challange_id = validateUnsignedInteger($_GET['challenge'], null); $char_id = validateUnsignedInteger($_GET['char'], null); $type = validateUnsignedInteger($_GET['type'], null); //unkritisch if($action == null) { $action = $_POST['action']; } if($char_id == null) { $char_id = validateUnsignedInteger($_POST['char'], null); } $slot = validateUnsignedInteger($_POST['slot'], null); if($clan_challange_id == null) { $clan_challange_id = validateUnsignedInteger($_POST['challenge'], null); } function displayChallengeClan($user, $clan_id) { if($clan_id == -1 || $clan_id == NULL) { displayErrorMessage(NULL,'Es wurde kein Clan ausgewählt!', displayHistoryBackLink()); exit; } if($user['clan'] == $clan_id) { displayErrorMessage(NULL,'Man kann sich nicht selbst herausfordern!', displayHistoryBackLink()); exit; } //TODO: es sollte hier unbedingt ne Auswahl geben wieviel Leute nun kämpfen dürfen :) $result = challengeClan($user, $clan_id, 5); if ($result != NULL) { displayErrorMessage(NULL, $result, displayHistoryBackLink()); exit; } else { echo 'Clan wurde erfolgreich herausgefordert.<br><br>'; echo '<a href="index.php?as=clan/kampf_info">weiter</a>'; } } function displayChallengeAccepted($user, $clan_id) { if(!is_numeric($clan_id)) { displayErrorMessage(NULL, 'Wollte da jemand schummeln? ;)', displayHistoryBackLink()); exit; } acceptChallengeRequest($clan_id, $user); echo 'Herausforderung wurde angenommen!<br><br>'; echo '<a href="index.php?as=clan/kampf_info">weiter</a>'; } function displayDenyChallenge($clan_id, $type) { if(!is_numeric($clan_id)) { displayErrorMessage(NULL, 'Wollte da jemand schummeln? ;)', displayHistoryBackLink()); return; } ?> <table> <tr> <?php if($type == DENY_CHALLENGE) {?> <th colspan="2">Herausforderung wirklich ablehnen?</th> <?php } else {?> <th colspan="2">Herausforderung wirklich zurückziehen?</th> <?php }?> </tr> <tr> <td align="center"><?php echo '<a href="index.php?as=clan/kampf_info&action=denychallenge&clanid='.$clan_id.'&type='.$type.'">ja</a>';?> </td> <td align="center"><?php echo '<a href="index.php?as=clan/kampf_info">nein</a>';?> </td> </tr> </table> <?php } function denyChallenge($type, $clan_id, $user) { if($type == DENY_CHALLENGE) { $success = denyChallengeRequest($clan_id, $user); } elseif($type == WITHDRAW_CHALLENGE) { $success = cancelChallengeRequest($clan_id, $user); } if($success == null) { displayClanFightMenu($user_ida); } else { displayErrorMessage(NULL, $success, displayHistoryBackLink()); exit; } } function displayShowChallenge($clan_challenge_id, $user) { $user_clan = getClan($user['clan']); $open_challenge_ids = getOpenChallengeIDs($user_clan['id']); if(!in_array($clan_challenge_id, $open_challenge_ids)) { displayErrorMessage(NULL, 'Wollte da jemand schummeln? ;)', displayHistoryBackLink()); return; } //initialisieren von wichtigen variablen $participating_clan_ids = getParticipatingClanIDs($clan_challenge_id); if($participating_clan_ids[0] != $user_clan['id']) { $other_clan = getClan($participating_clan_ids[0]); } else { $other_clan = getClan($participating_clan_ids[1]); } $clan_challenge = getChallenge($clan_challenge_id); $anzahl = $clan_challenge['anzahl_chars']; $user_clan_chars = getParticipatingCharIDs($clan_challenge_id, $user_clan['id']); $other_clan_chars = getParticipatingCharIDs($clan_challenge_id, $other_clan['id']); $user_chars = getCharsOfUser($user['id']); $slots = array(); ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> <input type="hidden" name="as" value=clan/kampf_info> <input type="hidden" name="action" value="joinchallenge"> <input type="hidden" name="challenge" value="<?php echo $clan_challenge_id;?>"> <table> <tr> <th colspan="3"><?php echo $other_clan['clanname'];?></th> </tr> <?php for ($i = 1; $i <= $anzahl; $i++) { echo '<tr>'; echo '<td><b>Slot '.$i.'</b></td>'; if($other_clan_chars[$i] != null) { echo '<td align="center">besetzt</td>'; } else { echo '<td align="center">frei</td>'; } echo '</tr>'; } ?> <tr> <th colspan="3"><?php echo $user_clan['clanname'];?></th> </tr> <?php for ($i = 1; $i <= $anzahl; $i++) { echo '<tr>'; echo '<td><b>Slot '.$i.'</b></td>'; if($user_clan_chars[$i] != null) { $char = getChar($user_clan_chars[$i]); $char_owner = getOwnerOfChar($char['id']); echo '<td align="center"><a href="index.php?as=info&charm=1&char_id='.$char['id'].'">'.$char['name'].'</a> '; echo '(<a href="index.php?as=info&user_id='.$char_owner['id'].'">'.$char_owner['nickname'].'</a>)</td>'; if(isUserOwnerOf($user['id'], $char['id'])) { echo '<td align="center"><a href="index.php?as=clan/kampf_info&action=leavechallenge&challenge='.$clan_challenge_id.'&char='.$char['id'].'">abmelden</a></td>'; } } else { echo '<td align="center">frei</td>'; $slots[] = $i; } echo '</tr>'; } ?> <tr> <th colspan="3">Teilnahme</th> </tr> <tr> <td><b>Charakter:</b></td> <td align="center"><select id="input" name="char"> <option value="-1">Charakter auswählen</option> <?php foreach($user_chars as $char){ echo '<option value="'.$char['id'].'">'.$char['name'].'</option>'; } ?> </select> </td> </tr> <tr> <td><b>Slot:</b></td> <td align="center"><select id="input" name="slot"> <option value="-1">Slot auswählen</option> <?php foreach($slots as $slot){ echo '<option value="'.$slot.'">'.$slot.'</option>'; } ?> </select> </td> </tr> <tr> <td align="center" colspan="3"><input id="input" type=submit value='anmelden'></td> </tr> <tr> <td align="center" colspan="3"><?php echo '<a href="index.php?as=clan/kampf_info">zurück</a>';?> </td> </tr> </table> </form> <?php } function displayJoinChallenge($user, $clan_challenge_id, $char_id, $slot) { $success = joinChallenge($clan_challenge_id, $user, $char_id, $slot); if($success != null) { displayErrorMessage(NULL, $success, displayHistoryBackLink()); exit; } else { echo 'Der Charakter wurde erfoglreich angemeldet.<br><br>'; echo '<a href="index.php?as=clan/kampf_info&action=showchallenge&challenge='.$clan_challenge_id.'">weiter</a>'; } } function displayLeaveChallenge($user, $clan_challenge_id, $char_id) { $user_clan = getClan($user['clan']); $open_challenge_ids = getOpenChallengeIDs($user_clan['id']); if(!in_array($clan_challenge_id, $open_challenge_ids)) { displayErrorMessage(NULL, 'Wollte da jemand schummeln? ;)', displayHistoryBackLink()); exit; } $success = leaveChallenge($clan_challenge_id, $user, $char_id); if($success != null) { displayErrorMessage(NULL, $success, displayHistoryBackLink()); exit; } else { echo 'Der Charakter wurde erfoglreich abgemeldet.<br><br>'; echo '<a href="index.php?as=clan/kampf_info&action=showchallenge&challenge='.$clan_challenge_id.'">weiter</a>'; } } function displayCancelChallenge($user, $clan_challange_id) { if(!is_numeric($clan_challange_id)) { displayErrorMessage(NULL, 'Wollte da jemand schummeln? ;)', displayHistoryBackLink()); return; } ?> <table> <tr> <th colspan="2">Clankampf wirklich abbrechen?</th> </tr> <tr> <td align="center"><?php echo '<a href="index.php?as=clan/kampf_info&action=cancelchallenge&challenge='.$clan_challange_id.'">ja</a>';?> </td> <td align="center"><?php echo '<a href="index.php?as=clan/kampf_info">nein</a>';?> </td> </tr> </table> <?php } function cancelThisChallenge($user, $clan_challange_id) { if(!is_numeric($clan_challange_id)) { displayErrorMessage(NULL, 'Wollte da jemand schummeln? ;)', displayHistoryBackLink()); return; } $success = cancelChallenge($clan_challange_id, $user); if($success != null) { displayErrorMessage(NULL, $success, displayHistoryBackLink()); exit; } else { displayClanFightMenu($user); } } function getFightType($id) { switch ($id) { case DAVY_BACK_FIGHT: return 'Davy Back'; case SURVIVAL: return 'Survival'; default: return 'unbekannt'; } } function displayClanFightMenuWithClanLocked($user) { $user_clan = getClan($user['clan']); $active_clan_challange_ids = getActiveChallengeIDs($user_clan['id']); $old_challenge_ids = getHistoricalChallengeIDs($user_clan['id']); ?> <div align="center"> <table width="100%" border="1"> <tr> <th height="30" colspan="3" align="center">Herausforderungen</th> </tr> <tr> <th height="30" colspan="3" align="center">Dein Clan ist leider dezeit Blockiert ( <?php $time = getClanLockedTime($user['clan']); if($time >= 86400) { // 24*60*60 echo 'Voraussetzungen nicht erfüllt!!'; } else { echo generateTimerHtml('blubb', $time, '<a href=\'\'>Blockade beenden</a>'); } ?>)</th> </tr> <tr> <th height="30" colspan="3" align="center">Laufende Herausforderungen</th> </tr> <?php if(count($active_clan_challange_ids) == 0) { echo '<td height="20" colspan="3" align="center">Keine</td>'; } else { foreach ($active_clan_challange_ids as $acci) { $participating_clan_ids = getParticipatingClanIDs($acci); foreach ($participating_clan_ids as $pci) if($pci != $user_clan['id']) { $challenged_clan = getClan($pci); echo '<tr><td align="center"> '.$challenged_clan['clanname'].'</td>'; //TODO: hier muss javascript fenster aufgerufen werden echo '<td align="center"><a href="index.php?as=clan/kampf_info&action=showoldchallenge&challenge='.$acci.'">'.anzeigen.'</a></td></tr>'; } } } ?> <tr> <th height="30" colspan="5" align="center">Beendete Herausforderungen</th> </tr> <tr> <?php if(count($old_challenge_ids) == 0) { echo '<td height="20" colspan="5" align="center">Keine</td>'; } else { foreach ($old_challenge_ids as $oci) { $participating_clan_ids = getParticipatingClanIDs($oci); foreach ($participating_clan_ids as $pci) if($pci != $user_clan['id']) { $challenged_clan = getClan($pci); echo '<tr><td align="center" colspan="2"> '.$challenged_clan['clanname'].'</td>'; echo '<td align="center" colspan="3"><a href=\'javascript:showFight('.$oci.');\'>'.anzeigen.'</a></td></tr>'; } } } ?> </tr> </table> </div> <?php } function displayClanFightMenu($user) { $user_clan = getClan($user['clan']); $clans_tmp = getClanFightCapableClanIds(); foreach ($clans_tmp as $clan_tmp_id) { if($user['clan'] != $clan_tmp_id) { $clans[] = getClan($clan_tmp_id); } } $active_clan_challange_ids = getActiveChallengeIDs($user_clan['id']); $open_challenge_requests = getOpenChallengeRequests($user_clan['id']); $open_challenge_ids = getOpenChallengeIDs($user_clan['id']); $old_challenge_ids = getHistoricalChallengeIDs($user_clan['id']); $authorized = isAuthorizedClanfightCoordinator($user_clan['id'], $user['id']); ?> <SCRIPT language="JavaScript"> function showFight(challenge_id){ window.open("./clan/kampf_anzeige.php?challenge="+challenge_id,"","status=no,hotkeys=no,Height=600,Width=929,scrollbars=yes"); } </SCRIPT> <div align="center"> <table width="500"> <?php if($authorized) {?> <tr> <th height="30" colspan="5" align="center">Herausforderungen</th> </tr> <tr> <th align="Left" height="25" colspan="2">Clan herausfordern</th> <td colspan="3"> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET"> <input type="hidden" name="as" value="clan/kampf_info"> <input type="hidden" name="action" value="challengeclan"> <select id="input" name="challangedclan_id"> <option value="-1">Clan auswählen</option> <?php foreach($clans as $c) { echo '<option value="'.$c['id'].'">'.$c['clanname'].'</option>'; } ?> </select> <input class="input" type="submit" value="herausfordern" /> </form> </td> </tr> <tr> <th align="center" height="25">Clan</th> <th align="center" height="25">Datum</th> <th align="center" height="25">Typ</th> <th align="center" height="25">Anzahl</th> <th align="center" height="25">Status</th> </tr> <tr> <?php if(count($open_challenge_requests) == 0) { echo '<td align ="center" colspan="5" height="20">Keine</td>'; } else { foreach ($open_challenge_requests as $challenge) { $requester_clan = getClan($challenge['clan_requester']); $challenged_clan = getClan($challenge['clan_challenged']); //unterscheidung zwischen herausforder und herausgeforderter if($user_clan['id'] == $challenge['clan_requester']) { echo '<tr><td align ="center">'.$challenged_clan['clanname'].'</td><td align ="center">'.formatTimestamp($challenge['challenged_time']).'</td>'; echo '<td align ="center">'.getFightType($challenge['type']).'</td><td align ="center">'.$challenge['anzahl_chars'].'</td>'; echo '<td align ="center">ausstehend (<a href="index.php?as=clan/kampf_info&action=q_withdrawclanchallenge&clanid='.$challenged_clan['id'].'">zurückziehen</a>)</td></tr>'; } else { echo '<tr><td align ="center">'.$requester_clan['clanname'].'</td><td align ="center">'.formatTimestamp($challenge['challenged_time']).'</td>'; echo '<td align ="center">'.getFightType($challenge['type']).'</td><td align ="center">'.$challenge['anzahl_chars'].'</td>'; echo '<td align ="center"><a href="index.php?as=clan/kampf_info&action=acceptclanchallenge&clanid='.$requester_clan['id'].'">annehmen</a> |'; echo '<a href="index.php?as=clan/kampf_info&action=q_denyclanchallenge&clanid='.$requester_clan['id'].'">ablehnen</a></td></tr>'; } } } ?> </tr> <?php }?> <tr> <th height="30" colspan="5" align="center">offene Herausforderungen</th> </tr> <tr> <?php if(count($open_challenge_ids) == 0) { echo '<td height="20" colspan="5" align="center">Keine</td>'; } else { foreach ($open_challenge_ids as $oci) { $participating_clan_ids = getParticipatingClanIDs($oci); foreach ($participating_clan_ids as $pci) if($pci != $user_clan['id']) { $challenged_clan = getClan($pci); echo '<tr>'; echo '<td colspan="2"> '.$challenged_clan['clanname'].'</td>'; echo '<td align="center" colspan="2"><a href="index.php?as=clan/kampf_info&action=showchallenge&challenge='.$oci.'">'.anzeigen.'</a></td>'; if($authorized) { echo '<td align="center"><a href="index.php?as=clan/kampf_info&action=q_cancelclanchallenge&challenge='.$oci.'">'.abbrechen.'</a></td>'; } echo '</tr>'; } } } ?> </tr> <tr> <th height="30" colspan="5" align="center">Laufende Herausforderungen</th> </tr> <?php if(count($active_clan_challange_ids) == 0) { echo '<td height="20" colspan="5" align="center">Keine</td>'; } else { foreach ($active_clan_challange_ids as $acci) { $participating_clan_ids = getParticipatingClanIDs($acci); foreach ($participating_clan_ids as $pci) if($pci != $user_clan['id']) { $challenged_clan = getClan($pci); echo '<tr><td align="center" colspan="2"> '.$challenged_clan['clanname'].'</td>'; echo '<td align="center" colspan="3"><a href=\'javascript:showFight('.$acci.');\'>'.anzeigen.'</a></td></tr>'; } } } ?> <tr> <th height="30" colspan="5" align="center">Beendete Herausforderungen</th> </tr> <tr> <?php $count = count($old_challenge_ids); if($count == 0) { echo '<td height="20" colspan="5" align="center">Keine</td>'; } else { if($count > 20) { $max = 20; } else { $max = $count; } for ($i = 0; $i < $max; $i++) { $participating_clan_ids = getParticipatingClanIDs($old_challenge_ids[$i]); foreach ($participating_clan_ids as $pci) if($pci != $user_clan['id']) { $challenged_clan = getClan($pci); echo '<tr><td align="center" colspan="2"> '.$challenged_clan['clanname'].'</td>'; echo '<td align="center" colspan="3"><a href=\'javascript:showFight('.$old_challenge_ids[$i].');\'>'.anzeigen.'</a></td></tr>'; } } } ?> </tr> </table> </div> <?php } if(!isClanLocked($user_ida['clan'])) { switch($action) { case 'challengeclan': displayChallengeClan($user_ida, $challangedclan_id); break; case 'acceptclanchallenge': displayChallengeAccepted($user_ida, $inquirychallenge_clanid); break; case 'q_denyclanchallenge': displayDenyChallenge($inquirychallenge_clanid, DENY_CHALLENGE); break; case 'q_withdrawclanchallenge': displayDenyChallenge($inquirychallenge_clanid, WITHDRAW_CHALLENGE); break; case 'denychallenge': denyChallenge($type, $inquirychallenge_clanid, $user_ida); break; case 'showchallenge': displayShowChallenge($clan_challange_id, $user_ida); break; case 'joinchallenge': displayJoinChallenge($user_ida, $clan_challange_id, $char_id, $slot); break; case 'leavechallenge': displayLeaveChallenge($user_ida, $clan_challange_id, $char_id); break; case 'q_cancelclanchallenge': displayCancelChallenge($user_ida, $clan_challange_id); break; case 'cancelchallenge': cancelThisChallenge($user_ida, $clan_challange_id); break; default: displayClanFightMenu($user_ida); } } else { switch($action) { default: displayClanFightMenuWithClanLocked($user_ida); } } ?>