Example #1
0
function player_getContent($caveID, $playerID)
{
    global $db, $no_resource_flag, $config, $params;
    $no_resource_flag = 1;
    if (!($r = $db->query("SELECT * FROM Player WHERE playerID = '{$playerID}'"))) {
        page_dberror();
    }
    if (!($row = $r->nextRow(MYSQL_ASSOC))) {
        page_dberror();
    }
    $template = tmpl_open($params->SESSION->player->getTemplatePath() . 'playerDetail.ihtml');
    if ($row['avatar']) {
        // FIXME: should be configurable
        tmpl_set($template, 'DETAILS/AVATAR_IMG/avatar', $row['avatar']);
        tmpl_set($template, 'DETAILS/AVATAR_IMG/width', 120);
        tmpl_set($template, 'DETAILS/AVATAR_IMG/height', 120);
    }
    if (!empty($row['awards'])) {
        $tmp = explode('|', $row['awards']);
        $awards = array();
        foreach ($tmp as $tag) {
            $awards[] = array('tag' => $tag, 'award_modus' => AWARD_DETAIL);
        }
        $row['award'] = $awards;
    }
    unset($row['awards']);
    foreach ($row as $k => $v) {
        if (!$v) {
            $row[$k] = _('k.A.');
        }
    }
    $row['mail_modus'] = NEW_MESSAGE;
    $row['mail_receiver'] = urlencode($row['name']);
    $row['caveID'] = $caveID;
    $timediff = getUgaAggaTimeDiff(time_fromDatetime($row['created']), time());
    $row['age'] = 18 + $timediff['year'];
    tmpl_set($template, 'DETAILS', $row);
    // ADDED by chris--- for rank_history
    $row['playerID'] = $playerID;
    // show player's caves
    $caves = getCaves($playerID);
    if ($caves) {
        tmpl_set($template, '/DETAILS/CAVES', $caves);
    }
    //show bodycount
    // Keinen Bodycount fuers erste.... Nebrot
    //$body_count = $row['body_count'];
    //tmpl_set($template, '/DETAILS/BODYCOUNT/body_count', $body_count);
    // show player's history
    $history = Player::getHistory($db, $playerID);
    if (sizeof($history)) {
        tmpl_set($template, '/DETAILS/HISTORY/ENTRY', $history);
    } else {
        tmpl_set($template, '/DETAILS/HISTORY/NOENTRIES/iterate', '');
    }
    return tmpl_parse($template);
}
Example #2
0
function reverseMovementEvent($caveID, $eventID)
{
    global $db;
    // get movements
    $ua_movements = Movement::getMovements();
    // get current time
    $now = time();
    // get movement
    $sql = $db->prepare("SELECT * FROM " . EVENT_MOVEMENT_TABLE . " \n                      WHERE event_movementID = :eventID");
    $sql->bindValue('eventID', $eventID, PDO::PARAM_INT);
    if ($sql->rowCountSelect() == 0) {
        return 1;
    }
    if (!$sql->execute()) {
        return 1;
    }
    $move = $sql->fetch(PDO::FETCH_ASSOC);
    // check movement
    // blocked
    if ($move['blocked']) {
        return 1;
    }
    // not reversable
    if ($ua_movements[$move['movementID']]->returnID == -1) {
        return 1;
    }
    // not own movement
    if ($caveID != $move['caveID']) {
        return 1;
    }
    // expired
    if (time_fromDatetime($move['end']) < $now) {
        return 1;
    }
    // build query
    $start = time_fromDatetime($move['start']);
    $end = time_fromDatetime($move['end']);
    $diff = $now - $start;
    $sql = $db->prepare("UPDATE " . EVENT_MOVEMENT_TABLE . " SET source_caveID = target_caveID, " . "target_caveID = caveID, " . "movementID = :returnID, end = :endTime, start = :startTime " . "WHERE blocked = 0 AND caveID = source_caveID AND " . "caveID = :caveID AND event_movementID = :movementID");
    $sql->bindValue('returnID', $ua_movements[$move['movementID']]->returnID, PDO::PARAM_INT);
    $sql->bindValue('endTime', time_toDatetime($now + $diff), PDO::PARAM_STR);
    $sql->bindValue('startTime', time_toDatetime($now), PDO::PARAM_STR);
    $sql->bindValue('caveID', $caveID, PDO::PARAM_STR);
    $sql->bindValue('movementID', $eventID, PDO::PARAM_STR);
    $sql->execute();
    return intval($sql->rowCount() != 1);
}
Example #3
0
function merchant_getMechantDetail($playerID, $caveID, &$details)
{
    global $db, $template;
    // open template
    $template->setFile('merchant.tmpl');
    @(include_once 'rules/rndMessages.php');
    // messages
    $messageText = array(-3 => array('type' => 'info', 'message' => "Der Händler schaut dich entgeistert an. \"Was willst du von mir?\""), -2 => array('type' => 'info', 'message' => "Der Händler schaut dich entgeistert an. \"Du warst doch gerade erst hier. Komm später nochmal wieder\""), -1 => array('type' => 'error', 'message' => "Es ist ein Fehler bei der Verarbeitung Ihrer Anfrage aufgetreten. Bitte wenden Sie sich an die Administratoren."), 0 => array('type' => 'info', 'message' => "Der Händler schüttelt mit dem Kopf. \"Meine Ware hat ihren Preis und sie ist jeden Rohstoff wert! Der nächste Häuptling ist bestimmt bereit meinen Preis zu zahlen!\""), 1 => array('type' => 'success', 'message' => "Erfreut nimmt der Händler deine Bezahlung entgegen. \"Ich hoffe dir gefällt meine Ware. Empfehle mich bitte weiter!\""));
    $action = Request::getVar('action', '');
    switch ($action) {
        /****************************************************************************************************
        *
        * Holen wir mal das zeugs
        *
        ****************************************************************************************************/
        case 'order':
            $tradeID = Request::getVar('tradeID', -1);
            if (!isset($GLOBALS['tradeTypeList'][$tradeID])) {
                $messageID = -3;
                break;
            }
            $messageID = merchant_processOrder($tradeID, $caveID, $details);
            $details = getCaveSecure($caveID, $_SESSION['player']->playerID);
            break;
    }
    /****************************************************************************************************
    *
    * Anzeigen der kaufbaren Sachen
    *
    ****************************************************************************************************/
    foreach ($GLOBALS['tradeCategoriesTypeList'] as $j => $cat) {
        $trades[$j] = array('id' => $j, 'name' => $GLOBALS['tradeCategoriesTypeList'][$j]->name);
        $lockedCat = array();
        $sql = $db->prepare("SELECT LockTill < :LockTill as allowed, LockTill, cat\n                         FROM " . TRADELOCK_TABLE . "\n                         WHERE PlayerID = :playerID");
        $sql->bindValue('LockTill', date("Y-m-d H:i:s", time()), PDO::PARAM_STR);
        $sql->bindValue('playerID', $playerID, PDO::PARAM_INT);
        if (!$sql->execute()) {
            $locktill = array();
        }
        while ($row = $sql->fetch(PDO::FETCH_ASSOC)) {
            if ($row['allowed'] == 0) {
                $lockedCat[$row['cat']] = time_fromDatetime($row['LockTill']);
            }
        }
        $sql->closeCursor();
        $count = 0;
        foreach ($GLOBALS['tradeTypeList'] as $id => $trade) {
            if ($trade->nodocumentation) {
                continue;
            }
            if ($trade->category != $GLOBALS['tradeCategoriesTypeList'][$j]->id) {
                continue;
            }
            $less = false;
            $canbuy = true;
            $locktill = '';
            if (isset($lockedCat[$cat->id])) {
                $canbuy = false;
                $locktill = $lockedCat[$cat->id];
            }
            $trades[$j]['data'][$id] = array('bgID' => $count++ % 2 + 1, 'name' => $trade->name, 'trade_id' => $id, 'description' => $trade->description, 'dbFieldName' => $trade->tradeID, 'locktill' => !$canbuy ? sprintf(_('Wieder im Angebot ab %s'), gmdate("d.m.Y H:i:s", $locktill)) : '');
            $trades[$j]['data'][$id] = array_merge($trades[$j]['data'][$id], parseCost($trade, $details));
            // show the building link ?!
            if (!$canbuy) {
                $trades[$j]['data'][$id]['no_build_msg'] = sprintf(_('Wieder im Angebot ab %s'), gmdate("d.m.Y H:i:s", $locktill));
            } else {
                if ($trades[$j]['data'][$id]['notenough']) {
                    $trades[$j]['data'][$id]['no_build_msg'] = _('Zu wenig Rohstoffe');
                } else {
                    $trades[$j]['data'][$id]['build_link'] = true;
                }
            }
        }
    }
    if (isset($GLOBALS['rndMerchantMessageText'])) {
        if (!isset($_SESSION['merchant_text_id']) || !isset($_SESSION['merchant_text_time']) || $_SESSION['merchant_text_time'] < time()) {
            $_SESSION['merchant_text_id'] = array_rand($GLOBALS['rndMerchantMessageText'], 1);
            $_SESSION['merchant_text_time'] = time() + 900;
        }
        $template->addVar('rndMessage', $GLOBALS['rndMerchantMessageText'][$_SESSION['merchant_text_id']]);
    }
    /****************************************************************************************************
    *
    * Übergeben ans Template
    *
    ****************************************************************************************************/
    $template->addVars(array('cave_id' => $caveID, 'status_msg' => isset($messageID) ? $messageText[$messageID] : '', 'trades' => $trades));
}
Example #4
0
function time_formatDatetime($timestamp)
{
    $timecorrection = $_SESSION['player']->getTimeCorrection();
    return gmdate("d.m.Y H:i:s", time_fromDatetime($timestamp) + $timecorrection);
}
Example #5
0
function player_getContent($caveID, $playerID)
{
    global $db, $template;
    // open template
    $template->setFile('playerDetail.tmpl');
    $template->setShowResource(false);
    // workaround, if no playerID is submitted! TODO
    if ($playerID == 0) {
        $playerID = $_SESSION['player']->playerID;
    }
    $playerDetails = Player::getPlayer($playerID, true);
    if (!$playerDetails) {
        $template->throwError('Da wollte irgendwie was nicht aus der Datenbank ausgelesen werden :(');
        return;
    }
    if ($playerDetails['avatar']) {
        $playerDetails['avatar'] = @unserialize($playerDetails['avatar']);
        $template->addVars(array('player_avatar' => $playerDetails['avatar']['path'], 'player_avatar_width' => $playerDetails['avatar']['width'], 'player_avatar_height' => $playerDetails['avatar']['height']));
    }
    if (!empty($playerDetails['awards'])) {
        $tmp = explode('|', $playerDetails['awards']);
        $awards = array();
        foreach ($tmp as $tag) {
            $awards[] = $tag;
        }
        $playerDetails['award'] = $awards;
    }
    unset($playerDetails['awards']);
    foreach ($playerDetails as $k => $v) {
        if (!$v) {
            $playerDetails[$k] = _('k.A.');
        }
    }
    $playerDetails['mail_receiver'] = urlencode($playerDetails['name']);
    $playerDetails['caveID'] = $caveID;
    $playerTribe = $playerDetails['tribe'];
    $timediff = getUgaAggaTimeDiff(time_fromDatetime($playerDetails['created']), time());
    $playerDetails['age'] = 18 + $timediff['year'];
    // init messages class
    $parser = new parser();
    $playerDetails['description'] = $parser->p($playerDetails['description']);
    // show player's caves
    $caves = getCaves($playerID);
    if ($caves) {
        $template->addVar('player_caves', $caves);
    }
    // show player's history
    $history = Player::getHistory($playerID);
    if (sizeof($history)) {
        $template->addVar('player_history', $history);
    }
    //get player rank
    $sql = $db->prepare("SELECT rank FROM " . RANKING_TABLE . " WHERE playerID = :playerID");
    $sql->bindValue('playerID', $playerID, pDo::PARAM_INT);
    if (!$sql->execute()) {
        page_dberror();
    }
    if ($row = $sql->fetch()) {
        $playerDetails['rank'] = $row['rank'];
    } else {
        $playerDetails['rank'] = '';
    }
    $template->addVars(array('player_details' => $playerDetails));
}
Example #6
0
function time_formatDatetime($timestamp)
{
    global $params;
    $timecorrection = $params->SESSION->player->getTimeCorrection();
    return gmdate("d.m.Y H:i:s", time_fromDatetime($timestamp) + $timecorrection);
}
Example #7
0
function digest_getAppointments($ownCaves)
{
    global $db;
    $caveIDs = implode(', ', array_keys($ownCaves));
    // unit building events
    $result = array();
    $sql = $db->prepare("SELECT *\n                       FROM " . EVENT_UNIT_TABLE . "\n                       WHERE caveID IN (" . $caveIDs . ")\n                       ORDER BY end ASC, event_unitID ASC");
    if ($sql->execute()) {
        while ($row = $sql->fetch(PDO::FETCH_ASSOC)) {
            $result[] = array('event_name' => $row['quantity'] . "x " . $GLOBALS['unitTypeList'][$row['unitID']]->name, 'cave_name' => $ownCaves[$row['caveID']]['name'], 'cave_id' => $row['caveID'], 'category' => 'unit', 'modus' => UNIT_BUILDER, 'event_id' => $row['event_unitID'], 'event_start' => time_fromDatetime($row['start']), 'event_end' => time_fromDatetime($row['end']), 'event_end_date' => time_formatDatetime($row['end']), 'seconds_before_end' => time_fromDatetime($row['end']) - time());
        }
    }
    $sql->closeCursor();
    // improvement events
    $sql = $db->prepare("SELECT *\n                       FROM " . EVENT_EXPANSION_TABLE . "\n                       WHERE caveID IN (" . $caveIDs . ")\n                       ORDER BY end ASC, event_expansionID ASC");
    $sql->bindValue('caveIDs', $caveIDs);
    if ($sql->execute()) {
        while ($row = $sql->fetch(PDO::FETCH_ASSOC)) {
            $nextLevel = $ownCaves[$row['caveID']][$GLOBALS['buildingTypeList'][$row['expansionID']]->dbFieldName] + 1;
            $result[] = array('event_name' => $GLOBALS['buildingTypeList'][$row['expansionID']]->name . " Stufe " . $nextLevel, 'cave_name' => $ownCaves[$row['caveID']]['name'], 'cave_id' => $row['caveID'], 'category' => 'building', 'modus' => IMPROVEMENT_BUILDER, 'event_id' => $row['event_expansionID'], 'event_start' => time_fromDatetime($row['start']), 'event_end' => time_fromDatetime($row['end']), 'event_end_date' => time_formatDatetime($row['end']), 'seconds_before_end' => time_fromDatetime($row['end']) - time());
        }
    }
    $sql->closeCursor();
    // defense systms events
    $sql = $db->prepare("SELECT *\n                       FROM " . EVENT_DEFENSE_SYSTEM_TABLE . "\n                       WHERE caveID IN (" . $caveIDs . ")\n                       ORDER BY end ASC, event_defenseSystemID ASC");
    if ($sql->execute()) {
        while ($row = $sql->fetch(PDO::FETCH_ASSOC)) {
            $nextLevel = $ownCaves[$row['caveID']][$GLOBALS['defenseSystemTypeList'][$row['defenseSystemID']]->dbFieldName] + 1;
            $result[] = array('event_name' => $GLOBALS['defenseSystemTypeList'][$row['defenseSystemID']]->name . " Stufe " . $nextLevel, 'cave_name' => $ownCaves[$row['caveID']]['name'], 'cave_id' => $row['caveID'], 'category' => 'defense', 'modus' => DEFENSE_BUILDER, 'event_id' => $row['event_defenseSystemID'], 'event_start' => time_fromDatetime($row['start']), 'event_end' => time_fromDatetime($row['end']), 'event_end_date' => time_formatDatetime($row['end']), 'seconds_before_end' => time_fromDatetime($row['end']) - time());
        }
    }
    $sql->closeCursor();
    //science events
    $sql = $db->prepare("SELECT *\n                       FROM " . EVENT_SCIENCE_TABLE . "\n                       WHERE caveID IN (" . $caveIDs . ")\n                       ORDER BY end ASC, event_scienceID ASC");
    if ($sql->execute()) {
        while ($row = $sql->fetch(PDO::FETCH_ASSOC)) {
            $nextLevel = $ownCaves[$row['caveID']][$GLOBALS['scienceTypeList'][$row['scienceID']]->dbFieldName] + 1;
            $result[] = array('event_name' => $GLOBALS['scienceTypeList'][$row['scienceID']]->name . " Stufe " . $nextLevel, 'cave_name' => $ownCaves[$row['caveID']]['name'], 'cave_id' => $row['caveID'], 'category' => 'science', 'modus' => SCIENCE_BUILDER, 'event_id' => $row['event_scienceID'], 'event_start' => time_fromDatetime($row['start']), 'event_end' => time_fromDatetime($row['end']), 'event_end_date' => time_formatDatetime($row['end']), 'seconds_before_end' => time_fromDatetime($row['end']) - time());
        }
    }
    $sql->closeCursor();
    // hero events
    $sql = $db->prepare("SELECT *\n                       FROM " . EVENT_HERO_TABLE . "\n                       WHERE caveID IN (" . $caveIDs . ")\n                       ORDER BY end ASC, event_heroID ASC");
    if ($sql->execute()) {
        while ($row = $sql->fetch(PDO::FETCH_ASSOC)) {
            $result[] = array('event_name' => "Wiedererweckung des Helden", 'cave_name' => $ownCaves[$row['caveID']]['name'], 'cave_id' => $row['caveID'], 'category' => 'hero', 'modus' => HERO_DETAIL, 'event_id' => $row['event_heroID'], 'event_start' => time_fromDatetime($row['start']), 'event_end' => time_fromDatetime($row['end']), 'event_end_date' => time_formatDatetime($row['end']), 'seconds_before_end' => time_fromDatetime($row['end']) - time());
        }
    }
    $sql->closeCursor();
    usort($result, "datecmp");
    return $result;
}