You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
458 lines
14 KiB
458 lines
14 KiB
<?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');
|
|
|
|
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);
|
|
|
|
//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.'">ja</a>';?>
|
|
</td>
|
|
<td align="center"><?php echo '<a href="index.php?as=clan/kampf_info">nein</a>';?>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<?php
|
|
}
|
|
|
|
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]);
|
|
echo '<td align="center">'.$char['name'].'</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 displayShowOldChallenge($clan_challenge_id, array $user) {
|
|
$user_clan = getClan($user['clan']);
|
|
$challenge = getChallenge($clan_challenge_id);
|
|
$clans = getParticipatingClanIDs($clan_challenge_id);
|
|
if(!in_array($user['clan'] , $clans)) {
|
|
displayErrorMessage(NULL, 'Wollte da jemand schummeln? ;)', displayHistoryBackLink());
|
|
return;
|
|
}
|
|
if($challenge['calculated'] == FALSE) {
|
|
displayErrorMessage(NULL, 'Der Clankampf ist noch nicht soweit!!', displayHistoryBackLink());
|
|
return;
|
|
}
|
|
//print_r($challenge);
|
|
|
|
// Get the Event
|
|
$event_id = $challenge['event_id'];
|
|
$event = getEvent($event_id);
|
|
if($event['event_type'] != EVENT_CLAN_FIGHT) {
|
|
displayErrorMessage(NULL, 'Das Event is garkein Clan-Kampf!!', displayHistoryBackLink());
|
|
return;
|
|
}
|
|
$fight_ids = getEventFightIds($event_id);
|
|
|
|
echo '<table>';
|
|
echo '<tr><th align="center" width="100">Kampf</th><th>Ansehen</th></tr>';
|
|
foreach($fight_ids as $fight_id) {
|
|
$event_fight = getEventFight($event_id, $fight_id);
|
|
$round_data = getEventFightRoundData($event_id, $event_fight['event_fight_id'], 0); // get participants of fight
|
|
$host_char_id = NULL;
|
|
$guest_char_id = NULL;
|
|
foreach($round_data as $key => $value) {
|
|
if($event_fight['host'] == $key) {
|
|
$host_char_id = $key;
|
|
} else {
|
|
$guest_char_id = $key;
|
|
}
|
|
}
|
|
|
|
// Key now lets read out the event_chars ...
|
|
|
|
$host_char = getEventChar($event_id, $host_char_id);
|
|
$guest_char = getEventChar($event_id, $guest_char_id);
|
|
|
|
// TODO: Check if the fight is already "visible"
|
|
|
|
echo '<tr>';
|
|
echo '<td align="center">';
|
|
if($host_char['char_id'] !== NULL)
|
|
echo displayCharLink($host_char['char_id'], $host_char['char_name']);
|
|
else
|
|
echo $host_char['char_name'];
|
|
echo ' vs. ';
|
|
if($guest_char['char_id'] !== NULL)
|
|
echo displayCharLink($guest_char['char_id'], $guest_char['char_name']);
|
|
else
|
|
echo $guest_char['char_name'];
|
|
echo '</td>';
|
|
echo '<td><a href="event_kampf_anzeige.php?event_id='.$event_id.'&event_fight_id='.$event_fight['event_fight_id'].'" target="_blank">anschauen</a></td>';
|
|
echo '</tr>';
|
|
}
|
|
echo '</table>';
|
|
}
|
|
|
|
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">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">weiter</a>';
|
|
}
|
|
}
|
|
|
|
function getFightType($id) {
|
|
switch ($id) {
|
|
case DAVY_BACK_FIGHT:
|
|
return 'Davy Back';
|
|
case SURVIVAL:
|
|
return 'Survival';
|
|
default:
|
|
return 'unbekannt';
|
|
}
|
|
}
|
|
|
|
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);
|
|
}
|
|
}
|
|
$open_challenge_requests = getOpenChallengeRequests($user_clan['id']);
|
|
$open_challenge_ids = getOpenChallengeIDs($user_clan['id']);
|
|
$old_challenge_ids = getHistoricalChallengeIDs($user_clan['id']);
|
|
?>
|
|
<div align="center">
|
|
<table width="100%" border="1">
|
|
<tr>
|
|
<th height="30" colspan="2" align="center">Herausforderungen</th>
|
|
</tr>
|
|
<tr>
|
|
<th align="Left" height="25">Clan herausfordern</th>
|
|
<td>
|
|
<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>
|
|
<td colspan="3">
|
|
<table width="100%" border="1">
|
|
<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>
|
|
<?php
|
|
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_withdrawchallenge&clanid='.$requester_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=acceptchallenge&clanid='.$requester_clan['id'].'">annehmen</a> |';
|
|
echo '<a href="index.php?as=clan/kampf_info&action=q_denychallenge&clanid='.$requester_clan['id'].'">ablehnen</a></td></tr>';
|
|
}
|
|
}
|
|
?>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th height="30" colspan="2" align="center">offene Herausforderungen</th>
|
|
</tr>
|
|
<?php
|
|
if(count($open_challenge_ids) == 0) {
|
|
?>
|
|
<tr>
|
|
<td height="20" colspan="2" align="center">Keine</td>
|
|
</tr>
|
|
<?php
|
|
} 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> '.$challenged_clan['clanname'].'</td>';
|
|
echo '<td align="center"><a href="index.php?as=clan/kampf_info&action=showchallenge&challenge='.$oci.'">'.anzeigen.'</a></td>';
|
|
echo '</tr>';
|
|
}
|
|
}
|
|
}
|
|
?>
|
|
<tr>
|
|
<th height="30" colspan="2" align="center">Beendete Herausforderungen</th>
|
|
</tr>
|
|
<tr>
|
|
<?php
|
|
if(count($old_challenge_ids) == 0) {
|
|
?>
|
|
<td height="20" colspan="2" align="center">Keine</td>
|
|
<?php
|
|
} 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>';
|
|
echo '<td> '.$challenged_clan['clanname'].'</td>';
|
|
echo '<td align="center"><a href="index.php?as=clan/kampf_info&action=showoldchallenge&challenge='.$oci.'">'.anzeigen.'</a></td>';
|
|
echo '</tr>';
|
|
}
|
|
}
|
|
}
|
|
?>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
switch($action) {
|
|
case 'challengeclan':
|
|
displayChallengeClan($user_ida, $challangedclan_id);
|
|
break;
|
|
case 'acceptchallenge':
|
|
displayChallengeAccepted($user_ida, $inquirychallenge_clanid);
|
|
break;
|
|
case 'q_denychallenge':
|
|
displayDenyChallenge($inquirychallenge_clanid, DENY_CHALLENGE);
|
|
break;
|
|
case 'q_withdrawchallenge':
|
|
displayDenyChallenge($inquirychallenge_clanid, WITHDRAW_CHALLENGE);
|
|
break;
|
|
case 'denychallenge':
|
|
denyChallengeRequest($inquirychallenge_clanid, $user_ida);
|
|
displayClanFightMenu($user_ida);
|
|
break;
|
|
case 'showchallenge':
|
|
displayShowChallenge($clan_challange_id, $user_ida);
|
|
break;
|
|
case 'showoldchallenge':
|
|
displayShowOldChallenge($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;
|
|
default:
|
|
displayClanFightMenu($user_ida);
|
|
}
|
|
?>
|