From 36e00a34f902bf409cf491f4f6fe26fd48744c36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Bj=C3=B6rkholm?= Date: Sun, 4 May 2014 20:06:17 +0200 Subject: [PATCH] Guild war --- engine/function/users.php | 32 ++++++++++++++- guilds.php | 82 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 112 insertions(+), 2 deletions(-) diff --git a/engine/function/users.php b/engine/function/users.php index 82a12e8..bead2e3 100644 --- a/engine/function/users.php +++ b/engine/function/users.php @@ -1438,4 +1438,34 @@ function user_login_03($username, $password) { function user_logged_in() { return (isset($_SESSION['user_id'])) ? true : false; } -?> + +function guild_war_invitation($cid, $gid) { + $cid = (int)$cid; + $gid = (int)$gid; + $gname = get_guild_name($cid); + $ename = get_guild_name($gid); + $time = time(); + mysql_insert("INSERT INTO `guild_wars` (`guild1`, `guild2`, `name1`, `name2`, `status`, `started`, `ended`) VALUES ('$cid', '$gid', '$gname', '$ename', '0', '$time', '0');"); +} + +function accept_war_invitation($cid, $gid) { + $cid = (int)$cid; + $gid = (int)$gid; + mysql_update("UPDATE `guild_wars` SET `status` = 1 WHERE `guild1` = '$cid' AND `guild2` = '$gid' AND `status` = 0;"); +} + +function reject_war_invitation($cid, $gid) { + $cid = (int)$cid; + $gid = (int)$gid; + $time = time(); + mysql_update("UPDATE `guild_wars` SET `status` = 2, `ended` = '$time' WHERE `guild1` = '$cid' AND `guild2` = '$gid';"); +} + +function cancel_war_invitation($cid, $gid) { + $cid = (int)$cid; + $gid = (int)$gid; + $time = time(); + mysql_update("UPDATE `guild_wars` SET `status` = 3, `ended` = '$time' WHERE `guild2` = '$cid' AND `guild1` = '$gid';"); +} + +?> \ No newline at end of file diff --git a/guilds.php b/guilds.php index b46e758..f5d25c6 100644 --- a/guilds.php +++ b/guilds.php @@ -458,6 +458,51 @@ if ($highest_access >= 2) { } } + if ($config['TFSVersion'] == 'TFS_02' || $config['TFSVersion'] == 'TFS_10' && $config['guildwar_enabled'] === true) { + if (!empty($_POST['warinvite'])) { + if (get_guild_id($_POST['warinvite'])) { + $status = false; + $war_invite = mysql_select_single("SELECT `id` FROM `guilds` WHERE `id` = '$gid';"); + $targetGuild = get_guild_id($_POST['warinvite']); + if ($war_invite !== false) { + foreach ($war_invite as $inv) { + if ($inv['id'] == $targetGuild) $status = true; + } + } + + $check_guild = get_guild_name($gid); + foreach ($check_guild as $guild) { + if ($guild['name'] == $_POST['warinvite']) $status = true; + } + + $wars = mysql_select_multi("SELECT `id`, `guild1`, `guild2`, `status` FROM `guild_wars` WHERE (`guild1` = '$gid' OR `guild1` = '$targetGuild') AND (`guild2` = '$gid' OR `guild2` = '$targetGuild') AND `status` IN (0, 1);"); + if ($status == false && $wars == false) { + guild_war_invitation($gid, $targetGuild); + header('Location: guilds.php?name='. $_GET['name']); + exit(); + } else echo 'This guild has already been invited to war(or you\'re trying to invite your own).'; + } else echo 'That guild name does not exist.'; + } + + if (!empty($_POST['cancel_war_invite'])) { + cancel_war_invitation($_POST['cancel_war_invite'], $gid); + header('Location: guilds.php?name='. $_GET['name']); + exit(); + } + + if (!empty($_POST['reject_war_invite'])) { + reject_war_invitation($_POST['reject_war_invite'], $gid); + header('Location: guilds.php?name='. $_GET['name']); + exit(); + } + + if (!empty($_POST['accept_war_invite'])) { + accept_war_invitation($_POST['accept_war_invite'], $gid); + header('Location: guilds.php?name='. $_GET['name']); + exit(); + } + } + $members = count_guild_members($gid); $ranks = get_guild_rank_data($gid); ?> @@ -596,7 +641,42 @@ if ($highest_access >= 2) { - + + +

Guild War Management:

+
+ +
+ + + '; + } + + if ($i == 0) + echo ''; + echo '
AggressorInformationEnemy
'.$war['name1'].''; + echo '
Pending invitation
Invited on ' . getClock($war['started'], true) . '.
'; + if ($war['guild1'] == $gid) { + echo '
'; + } else if ($war['guild2'] == $gid) { + echo '
'; + echo '
'; + } + echo '
'.$war['name2'].'
Currently there are no pending invitations.
'; + } } ?>