예제 #1
0
function displayScouts(&$db, &$messageBox, &$player, $read, $group)
{
    if ($group) {
        //here we group new messages
        $query = 'SELECT alignment, player_id, sender_id, player_name AS sender, count( message_id ) AS number, min( send_time ) as first, max( send_time) as last, msg_read
					FROM message
					JOIN player ON player.account_id = message.sender_id AND message.game_id = player.game_id
					WHERE message.account_id = ' . $db->escapeNumber($player->getAccountID()) . '
					AND player.game_id = ' . $db->escapeNumber($player->getGameID()) . '
					AND message_type_id = ' . $db->escapeNumber(MSG_SCOUT) . '
					AND receiver_delete = ' . $db->escapeBoolean(false) . '
					AND msg_read = ' . $db->escapeBoolean($read) . '
					GROUP BY sender_id, msg_read
					ORDER BY send_time DESC';
        $db->query($query);
        while ($db->nextRecord()) {
            //display grouped stuff (allow for deletion)
            $playerName = get_alignment_text($db->getField('alignment'), stripslashes($db->getField('sender')) . ' (' . $db->getField('player_id') . ')');
            $message = 'Your forces have spotted ' . $playerName . ' passing your forces ' . $db->getField('number') . ' times.';
            displayGrouped($messageBox, $playerName, $db->getField('player_id'), $db->getField('sender_id'), $message, $db->getField('first'), $db->getField('last'), $db->getField('msg_read') == 'FALSE');
        }
    } else {
        //not enough to group, display separately
        $query = 'SELECT message_id, account_id, sender_id, message_text, send_time, msg_read
					FROM message
					WHERE account_id = ' . $db->escapeNumber($player->getAccountID()) . '
					AND game_id = ' . $db->escapeNumber($player->getGameID()) . '
					AND message_type_id = ' . $db->escapeNumber(MSG_SCOUT) . '
					AND receiver_delete = ' . $db->escapeBoolean(false) . '
					AND msg_read = ' . $db->escapeBoolean($read) . '
					ORDER BY send_time DESC';
        $db->query($query);
        while ($db->nextRecord()) {
            displayMessage($messageBox, $db->getField('message_id'), $db->getField('account_id'), $db->getField('sender_id'), stripslashes($db->getField('message_text')), $db->getField('send_time'), $db->getField('msg_read'), MSG_SCOUT);
        }
    }
}
예제 #2
0
        if ($message_count - $unread_messages > 25) {
            $query = 'SELECT alignment, player_id, sender_id, player_name AS sender, count( message_id ) AS number, min( send_time ) as first, max( send_time) as last 
					FROM message, player 
					WHERE player.account_id = message.sender_id 
					AND message.account_id = ' . $player->account_id . '
					AND message.game_id = ' . $player->game_id . '
					AND player.game_id = ' . $player->game_id . '
					AND message_type_id = ' . $var["folder_id"] . '
					AND msg_read = "TRUE" 
					GROUP BY sender_id 
					ORDER BY send_time DESC';
            $db->query($query);
            while ($db->next_record()) {
                $playerName = get_colored_text($db->f('alignment'), stripslashes($db->f('sender')) . ' (' . $db->f('player_id') . ')');
                $message = 'Your forces have spotted ' . $playerName . ' passing your forces ' . $db->f("number") . ' times.';
                displayGrouped($playerName, $db->f("player_id"), $db->f("sender_id"), $message, $db->f("first"), $db->f("last"), FALSE);
            }
        } else {
            $query = 'SELECT * FROM message 
					WHERE account_id = ' . $player->account_id . ' AND
					game_id = ' . $player->game_id . '
					AND message_type_id = ' . $var["folder_id"] . '
					AND msg_read = "TRUE"
					ORDER BY send_time DESC';
            $db->query($query);
            while ($db->next_record()) {
                displayMessage($db->f("message_id"), $db->f("sender_id"), stripslashes($db->f("message_text")), $db->f("send_time"), $db->f("msg_read"), $var['folder_id']);
            }
        }
        $db->query("UPDATE message SET msg_read = 'TRUE' WHERE message_type_id = " . MSG_SCOUT . " AND game_id = {$player->game_id} AND account_id = {$player->account_id}");
    } else {