Example #1
0
function cave_giveUpCave($caveID, $playerID, $tribeID)
{
    global $db;
    $sql = $db->prepare("UPDATE " . CAVE_TABLE . "\n                      SET playerID = 0,\n                        takeoverable = 0,\n                        protection_end = NOW()+0,\n                        secureCave = 0\n                      WHERE playerID = :playerID\n                        AND caveID = :caveID\n                        AND starting_position = 0");
    $sql->bindValue('playerID', $playerID, PDO::PARAM_INT);
    $sql->bindValue('caveID', $caveID, PDO::PARAM_INT);
    if (!$sql->execute() || $sql->rowCount() == 0) {
        return false;
    }
    $sql = $db->prepare("UPDATE " . CAVE_TABLE . " c\n                       SET  name = (SELECT name FROM " . CAVE_ORGINAL_NAME_TABLE . " co WHERE co.caveID = :caveID)\n                       WHERE c.caveID = :caveID");
    $sql->bindValue('caveID', $caveID, PDO::PARAM_INT);
    $sql->execute();
    @unlink("/var/www/speed/images/temp/{$caveID}.png");
    // delete all scheduled Events
    //   Event_movement - will only be deleted, when a new player gets that cave
    //   Event_artefact - can't be deleted, as it would result in serious errors
    //   Event_wonder   - FIX ME: don't know
    $db->query("DELETE FROM " . EVENT_DEFENSE_SYSTEM_TABLE . " WHERE caveID = '{$caveID}'");
    $db->query("DELETE FROM " . EVENT_EXPANSION_TABLE . " WHERE caveID = '{$caveID}'");
    $db->query("DELETE FROM " . EVENT_SCIENCE_TABLE . " WHERE caveID = '{$caveID}'");
    $db->query("DELETE FROM " . EVENT_UNIT_TABLE . " WHERE caveID = '{$caveID}'");
    $db->query("DELETE FROM " . EVENT_HERO_TABLE . " WHERE caveID = '{$caveID}'");
    if ($tribeID != 0) {
        $ownRelations = TribeRelation::getRelations($tribeID);
        foreach ($ownRelations['own'] as $actRelation) {
            $ownType = $actRelation['relationType'];
            if ($GLOBALS['relationList'][$ownType]['isPrepareForWar'] || $GLOBALS['relationList'][$ownType]['isWar']) {
                $newfame = $actRelation['fame'] - NONSECURE_CAVE_VAlUE * NONSECURE_CAVE_GIVEUP_FAKTOR;
                $sql = $db->prepare("UPDATE " . RELATION_TABLE . "\n                             SET fame = :newfame\n                             WHERE tribeID = :actTribeRelation\n                               AND tribeID_target  = :actTargetRelation");
                $sql->bindValue('newfame', $newfame, PDO::PARAM_INT);
                $sql->bindValue('actTribeRelation', $actRelation['tribeID'], PDO::PARAM_INT);
                $sql->bindValue('actTargetRelation', $actRelation['tribeID_target'], PDO::PARAM_INT);
                $sql->execute();
            }
        }
    }
    // delete hero
    $caveData = getCaveByID($caveID);
    if ($caveData['hero'] != 0) {
        hero_killHero($playerID);
    }
    return 1;
}
Example #2
0
    } else {
        echo "SUCCESS\n";
    }
}
echo "DELETE PLAYER {$playerID}: Delete messages ";
$sql1 = $db_game->prepare("UPDATE " . MESSAGE_TABLE . "\n                         SET recipientDeleted = 1 \n                         WHERE recipientID = :playerID");
$sql1->bindValue('playerID', $playerID, PDO::PARAM_INT);
$sql2 = $db_game->prepare("UPDATE " . MESSAGE_TABLE . "\n                           SET senderDeleted = 1 \n                           WHERE senderID = :playerID");
$sql2->bindValue('playerID', $playerID, PDO::PARAM_INT);
if (!$sql1->execute() || !$sql2->execute()) {
    echo "FAILURE\n";
} else {
    echo "SUCCESS\n";
}
echo "DELETE PLAYER {$playerID}: Delete hero";
if (!hero_killHero($playerID)) {
    echo "FAILURE hero_killHero";
}
$sql = $db_game->prepare("DELETE FROM " . HERO_TABLE . "\n                          WHERE playerID = :playerID");
$sql->bindValue('playerID', $playerID, PDO::PARAM_INT);
if (!$sql->execute()) {
    echo "FAILURE\n";
} else {
    echo "SUCCESS\n";
}
echo "DELETE PLAYER {$playerID}: Delete Session ";
$sql = $db_game->prepare("DELETE FROM " . SESSION_TABLE . " WHERE playerID = :playerID");
$sql->bindValue('playerID', $playerID, PDO::PARAM_INT);
if (!$sql->execute()) {
    echo "FAILURE\n";
} else {