• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

[Error When I Make a Web Page]

jacksponge

New Member
Joined
Nov 29, 2008
Messages
106
Reaction score
3
Hi to all of you otlanders i want to know if any of you could help me to figure out

this problem that i currently have :/



PHP:
Check server configuration

Warning: syntax error, unexpected '(' in C:/Documents and Settings/Jesus/Desktop/OTserv/config.lua on line 17 in C:\xampp\htdocs\install.php on line 150

Could Anyone Help me please? :)
 
Config.lua

PHP:
-- The Forgotten Server Config

    -- Account manager
    accountManager = true
    namelockManager = true
    newPlayerChooseVoc = false
    newPlayerSpawnPosX = 95
    newPlayerSpawnPosY = 117
    newPlayerSpawnPosZ = 7
    newPlayerTownId = 1
    newPlayerLevel = 1
    newPlayerMagicLevel = 0
    generateAccountNumber = false

    -- Unjustified kills
    -- NOTE: *Banishment and *BlackSkull variables are >summed up<
    -- (dailyFragsToRedSkull + dailyFragsToBanishment) with their
    -- *RedSkull equivalents.
    -- Auto banishing works only if useBlackSkull set to negative.
    -- advancedFragList is not advised if you use huge frags
    -- requirements.
    redSkullLength = 30 * 24 * 60 * 60
    blackSkullLength = 45 * 24 * 60 * 60
    dailyFragsToRedSkull = 3
    weeklyFragsToRedSkull = 5
    monthlyFragsToRedSkull = 10
    dailyFragsToBlackSkull = dailyFragsToRedSkull
    weeklyFragsToBlackSkull = weeklyFragsToRedSkull
    monthlyFragsToBlackSkull = monthlyFragsToRedSkull
    dailyFragsToBanishment = dailyFragsToRedSkull
    weeklyFragsToBanishment = weeklyFragsToRedSkull
    monthlyFragsToBanishment = monthlyFragsToRedSkull
    blackSkulledDeathHealth = 40
    blackSkulledDeathMana = 0
    useBlackSkull = true
    useFragHandler = true
    advancedFragList = false

    -- Banishments
    -- violationNameReportActionType 1 = just a report, 2 = name lock, 3 = player banishment
    -- killsBanLength works only if useBlackSkull option is disabled.
    notationsToBan = 3
    warningsToFinalBan = 4
    warningsToDeletion = 5
    banLength = 7 * 24 * 60 * 60
    killsBanLength = 7 * 24 * 60 * 60
    finalBanLength = 30 * 24 * 60 * 60
    ipBanishmentLength = 1 * 24 * 60 * 60
    broadcastBanishments = true
    maxViolationCommentSize = 200
    violationNameReportActionType = 2
    autoBanishUnknownBytes = false

    -- Battle
    -- NOTE: showHealingDamageForMonsters inheritates from showHealingDamage.
    -- loginProtectionPeriod is the famous Tibia anti-magebomb system.
    -- deathLostPercent set to nil enables manual mode.
    worldType = "pvp"
    protectionLevel = 1
    pvpTileIgnoreLevelAndVocationProtection = true
    pzLocked = 60 * 1000
    huntingDuration = 60 * 1000
    criticalHitChance = 7
    criticalHitMultiplier = 1
    displayCriticalHitNotify = false
    removeWeaponAmmunition = true
    removeWeaponCharges = true
    removeRuneCharges = true
    whiteSkullTime = 15 * 60 * 1000
    noDamageToSameLookfeet = false
    showHealingDamage = false
    showHealingDamageForMonsters = false
    fieldOwnershipDuration = 5 * 1000
    stopAttackingAtExit = false
    oldConditionAccuracy = false
    loginProtectionPeriod = 10 * 1000
    deathLostPercent = 10
    stairhopDelay = 2 * 1000
    pushCreatureDelay = 2 * 1000
    deathContainerId = 1987
    gainExperienceColor = 215
    addManaSpentInPvPZone = true
    squareColor = 0
    allowFightback = true

    -- Connection config
    worldId = 0
    ip = "127.0.0.1"
    bindOnlyConfiguredIpAddress = false
    loginPort = 7171
    gamePort = 7172
    adminPort = 7171
    statusPort = 7171
    loginTries = 10
    retryTimeout = 5 * 1000
    loginTimeout = 60 * 1000
    maxPlayers = 1000
    motd = "Welcome to the Forgotten Server!"
    displayOnOrOffAtCharlist = false
    onePlayerOnlinePerAccount = true
    allowClones = false
    serverName = "Forgotten"
    loginMessage = "Welcome to the Forgotten Server!"
    statusTimeout = 5 * 60 * 1000
    replaceKickOnLogin = true
    forceSlowConnectionsToDisconnect = false
    loginOnlyWithLoginServer = false
    premiumPlayerSkipWaitList = false

    -- Database
    -- NOTE: sqlFile is used only by sqlite database, and sqlKeepAlive by mysql database.
    -- To disable sqlKeepAlive such as mysqlReadTimeout use 0 value.
    sqlType = "sqlite"
    sqlHost = "localhost"
    sqlPort = 3306
    sqlUser = "root"
    sqlPass = "*****"
    sqlDatabase = "theforgottenserver"
    sqlFile = "forgottenserver.s3db"
    sqlKeepAlive = 0
    mysqlReadTimeout = 10
    mysqlWriteTimeout = 10
    encryptionType = "plain"

    -- Deathlist
    deathListEnabled = true
    deathListRequiredTime = 1 * 60 * 1000
    deathAssistCount = 19
    maxDeathRecords = 5

    -- Guilds
    ingameGuildManagement = true
    levelToFormGuild = 8
    premiumDaysToFormGuild = 0
    guildNameMinLength = 4
    guildNameMaxLength = 20

    -- Highscores
    highscoreDisplayPlayers = 15
    updateHighscoresAfterMinutes = 60

    -- Houses
    buyableAndSellableHouses = true
    houseNeedPremium = true
    bedsRequirePremium = true
    levelToBuyHouse = 1
    housesPerAccount = 0
    houseRentAsPrice = false
    housePriceAsRent = false
    housePriceEachSquare = 1000
    houseRentPeriod = "never"
    houseCleanOld = 0
    guildHalls = false

    -- Item usage
    timeBetweenActions = 200
    timeBetweenExActions = 1000
    hotkeyAimbotEnabled = true

    -- Map
    -- NOTE: storeTrash costs more memory, but will perform alot faster cleaning.
    mapName = "forgotten"
    mapAuthor = "Komic"
    randomizeTiles = true
    storeTrash = true
    cleanProtectedZones = true
    mailboxDisabledTowns = "-1"

    -- Process
    -- NOTE: defaultPriority works only on Windows and niceLevel on *nix
    -- coresUsed are seperated by comma cores ids used by server process,
    -- default is -1, so it stays untouched (automaticaly assigned by OS).
    defaultPriority = "high"
    niceLevel = 5
    coresUsed = "-1"

    -- Startup
    optimizeDatabaseAtStartup = true
    removePremiumOnInit = true
    confirmOutdatedVersion = false

    -- Spells
    formulaLevel = 5.0
    formulaMagic = 1.0
    bufferMutedOnSpellFailure = false
    spellNameInsteadOfWords = false
    emoteSpells = false

    -- Outfits
    allowChangeOutfit = true
    allowChangeColors = true
    allowChangeAddons = true
    disableOutfitsForPrivilegedPlayers = false
    addonsOnlyPremium = true

    -- Miscellaneous
    -- NOTE: promptExceptionTracerErrorBox works only with precompiled support feature,
    -- called "exception tracer" (__EXCEPTION_TRACER__ flag).
    dataDirectory = "data/"
    bankSystem = true
    displaySkillLevelOnAdvance = false
    promptExceptionTracerErrorBox = true
    separateViplistPerCharacter = false
    maximumDoorLevel = 500
    maxMessageBuffer = 4

    -- Saving-related
    -- useHouseDataStorage usage may be found at README.
    saveGlobalStorage = true
    useHouseDataStorage = false
    storePlayerDirection = false

    -- Loot
    -- monsterLootMessage 0 to disable, 1 - only party, 2 - only player, 3 - party or player (like Tibia's)
    checkCorpseOwner = true
    monsterLootMessage = 3
    monsterLootMessageType = 25

    -- Ghost mode
    ghostModeInvisibleEffect = false
    ghostModeSpellEffects = true

    -- Limits
    idleWarningTime = 14 * 60 * 1000
    idleKickTime = 15 * 60 * 1000
    expireReportsAfterReads = 1
    playerQueryDeepness = 2
    maxItemsPerPZTile = 0
    maxItemsPerHouseTile = 0

    -- Premium-related
    freePremium = false
    premiumForPromotion = true

    -- Blessings
    -- NOTE: blessingReduction* regards items/containers loss.
    -- eachBlessReduction is how much each bless reduces the experience/magic/skills loss.
    blessingOnlyPremium = true
    blessingReductionBase = 30
    blessingReductionDecreament = 5
    eachBlessReduction = 8

    -- Rates
    -- NOTE: experienceStages configuration is located in data/XML/stages.xml.
    -- rateExperienceFromPlayers 0 to disable.
    experienceStages = false
    rateExperience = 5.0
    rateExperienceFromPlayers = 0
    rateSkill = 3.0
    rateMagic = 3.0
    rateLoot = 2.0
    rateSpawn = 1

    -- Monster rates
    rateMonsterHealth = 1.0
    rateMonsterMana = 1.0
    rateMonsterAttack = 1.0
    rateMonsterDefense = 1.0

    -- Experience from players
    -- NOTE: min~Threshold* set to 0 will disable the minimum threshold:
    -- player will gain experience from every lower leveled player.
    -- max~Threshold* set to 0 will disable the maximum threshold:
    -- player will gain experience from every higher leveled player.
    minLevelThresholdForKilledPlayer = 0.9
    maxLevelThresholdForKilledPlayer = 1.1

    -- Stamina
    -- NOTE: Stamina is stored in miliseconds, so seconds are multiplied by 1000.
    -- rateStaminaHits multiplies every hit done a creature, which are later
    -- multiplied by player attack speed.
    -- rateStaminaGain is divider of every logged out second, eg:
    -- 60000 / 3 = 20000 milliseconds, what gives 20 stamina seconds for 1 minute being logged off.
    -- rateStaminaThresholdGain is divider for the premium stamina.
    -- staminaRatingLimit* is in minutes.
    rateStaminaLoss = 1
    rateStaminaGain = 3
    rateStaminaThresholdGain = 12
    staminaRatingLimitTop = 41 * 60
    staminaRatingLimitBottom = 14 * 60
    rateStaminaAboveNormal = 1.5
    rateStaminaUnderNormal = 0.5
    staminaThresholdOnlyPremium = true

    -- Party
    -- NOTE: experienceShareLevelDifference is float number.
    -- experienceShareLevelDifference is highestLevel * value
    experienceShareRadiusX = 30
    experienceShareRadiusY = 30
    experienceShareRadiusZ = 1
    experienceShareLevelDifference = 2 / 3
    extraPartyExperienceLimit = 20
    extraPartyExperiencePercent = 5
    experienceShareActivity = 2 * 60 * 1000

    -- Global save
    -- NOTE: globalSaveHour means like 03:00, not that it will save every 3 hours,
    -- if you want such a system please check out data/globalevents/globalevents.xml.
    globalSaveEnabled = false
    globalSaveHour = 8
    shutdownAtGlobalSave = true
    cleanMapAtGlobalSave = false

    -- Spawns
    deSpawnRange = 2
    deSpawnRadius = 50

    -- Summons
    maxPlayerSummons = 2
    teleportAllSummons = false
    teleportPlayerSummons = false

    -- Status
    ownerName = ""
    ownerEmail = "@otland.net"
    url = "http://otland.net/"
    location = "Europe"
    displayGamemastersWithOnlineCommand = false

    -- Logs
    -- NOTE: This kind of logging does not work in GUI version.
    -- For such, please compile the software with __GUI_LOGS__ flag.
    adminLogsEnabled = false
    displayPlayersLogging = true
    prefixChannelLogs = ""
    runFile = ""
    outLogName = ""
    errorLogName = ""
    truncateLogsOnStartup = false
 
Install.php

PHP:
<?PHP
$config['site'] = parse_ini_file('config/config.ini');
session_start();
//save config in ini file
function saveconfig_ini($config) {
$file = fopen("config/config.ini", "w");
foreach($config as $param => $data) {
$file_data .= $param.' = "'.str_replace('"', '', $data).'"
';
}
rewind($file);
fwrite($file, $file_data);
fclose($file);
}

function check_password($pass)
{
  $temp = strspn("$pass", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890");
  if ($temp != strlen($pass)) {
  return false;
  }
  else
  {
  $ok = "/[a-zA-Z0-9]{1,40}/";
  return (preg_match($ok, $pass))? true: false;
  }
}

function password_ency($password)
{
    $ency = $GLOBALS['passwordency'];
    if($ency == 'sha1')
        return sha1($password);
    elseif($ency == 'md5')
        return md5($password);
    elseif($ency == '')
        return $password;
}

if($_REQUEST['page'] == '' && !isset($_REQUEST['step'])) {
echo '<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
    <title>Installation of account maker</title>
</head>
<frameset cols="230,*">
    <frame name="menu" src="install.php?page=menu" />
    <frame name="step" src="install.php?page=step&step=0" />
    <noframes><body>Frames don\'t work. Install Firefox :P</body></noframes>
</frameset>
</html>';
}
if($_REQUEST['page'] == 'menu') {
echo '<h2>MENU</h2><br>
<b>IF NOT INSTALLED:</b><br>
<a href="install.php?page=step&step=start" target="step">0. Informations</a><br>
<a href="install.php?page=step&step=1" target="step">1. Set server path</a><br>
<a href="install.php?page=step&step=2" target="step">2. Check DataBase connection</a><br>
<a href="install.php?page=step&step=3&server_conf=yes" target="step">3. Add tables and columns to DB</a><br>
<a href="install.php?page=step&step=4&server_conf=yes" target="step">4. Add samples to DB</a><br>
<a href="install.php?page=step&step=5&server_conf=yes" target="step">5. Set Admin Account</a><br>
<b>FOR ADMINS:</b><br>
<a href="index.php?subtopic=adminpanel&action=install_monsters" target="step">6. Load Monsters from OTS</a><br>
<a href="index.php?subtopic=adminpanel&action=install_spells" target="step">7. Load Spells from OTS</a><br>';

}
if($_REQUEST['page'] == 'step') {
if($config['site']['install'] != "no") {
if($_REQUEST['server_conf'] == 'yes' || ($_REQUEST['step'] > 2 && $_REQUEST['step'] < 6)) {
//load server config
$config['server'] = parse_ini_file($config['site']['server_path'].'config.lua');
if(isset($config['server']['mysqlHost'])) {
//new (0.2.6+) ots config.lua file
$mysqlhost = $config['server']['mysqlHost'];
$mysqluser = $config['server']['mysqlUser'];
$mysqlpass = $config['server']['mysqlPass'];
$mysqldatabase = $config['server']['mysqlDatabase'];
}
elseif(isset($config['server']['sqlHost'])) {
//old (0.2.4) ots config.lua file
$mysqlhost = $config['server']['sqlHost'];
$mysqluser = $config['server']['sqlUser'];
$mysqlpass = $config['server']['sqlPass'];
$mysqldatabase = $config['server']['sqlDatabase'];
}
$sqlitefile = $config['server']['sqliteDatabase'];
$passwordency = '';
if(strtolower($config['server']['useMD5Passwords']) == 'yes' || strtolower($config['server']['passwordType']) == 'md5') {
    $passwordency = 'md5';
}
if(strtolower($config['server']['passwordType']) == 'sha1') {
    $passwordency = 'sha1';
}
// loads #####POT mainfile#####
include('pot/OTS.php');
// PDO and POT connects to database
$ots = POT::getInstance();
if(strtolower($config['server']['sqlType']) == "mysql")
{
    //connect to MySQL database
    try
    {
        $ots->connect(POT::DB_MYSQL, array('host' => $mysqlhost, 'user' => $mysqluser, 'password' => $mysqlpass, 'database' => $mysqldatabase) );
    }
    catch(PDOException $error)
    {
        echo 'Database error - can\'t connect to MySQL database. Possible reasons:<br>1. MySQL server is not running on host.<br>2. MySQL user, password, database or host isn\'t configured in: <b>'.$config['site']['server_path'].'config.lua</b> .<br>3. MySQL user, password, database or host is wrong.';
        exit;
    }
}
elseif(strtolower($config['server']['sqlType']) == "sqlite")
{
    //connect to SQLite database
    $link_to_sqlitedatabase = $config['site']['server_path'].$sqlitefile;
    try
    {
        $ots->connect(POT::DB_SQLITE, array('database' => $link_to_sqlitedatabase));
    }
    catch(PDOException $error)
    {
        echo 'Database error - can\'t open SQLite database. Possible reasons:<br><b>'.$link_to_sqlitedatabase.'</b> - file isn\'t valid SQLite database.<br><b>'.$link_to_sqlitedatabase.'</b> - doesn\'t exist.';
        exit;
    }
}
else
{
    echo 'Database error. Unknown database type in <b>'.$config['site']['server_path'].'config.lua</b> . Must be equal to: "<b>mysql</b>" or "<b>sqlite</b>". Now is: "<b>'.strtolower($config['server']['sqlType']).'"</b>';
    exit;
}
$SQL = POT::getInstance()->getDBHandle();
}
$step = $_REQUEST['step'];
if(empty($step)) {
$step = $config['site']['install'];
}
if($step == 'start') {
echo '<h1>STEP '.$step.'</h1>Informations<br>';
echo 'Welcome to Gesior Account Maker installer. <b>First do steps 1-5 one by one, later (when you will be logged on admin account) press on links to steps 6-11 to load configuration from OTS.</b>';
}
if($step == '1') {
if(isset($_REQUEST['server_path'])) {
    echo '<h1>STEP '.$step.'</h1>Check server configuration<br>';
    $config['site']['server_path'] = $_REQUEST['server_path'];
    $config['site']['server_path'] = trim($config['site']['server_path'])."\\";
    $config['site']['server_path'] = str_replace("\\\\", "/", $config['site']['server_path']);
    $config['site']['server_path'] = str_replace("\\", "/", $config['site']['server_path']);
    $config['site']['server_path'] = str_replace("//", "/", $config['site']['server_path']);
    saveconfig_ini($config['site']);
    if(file_exists($config['site']['server_path'].'config.lua')) {
        $config['server'] = parse_ini_file($config['site']['server_path'].'config.lua');
        if(isset($config['server']['sqlType'])) {
            $config['site']['install'] = 2;
            saveconfig_ini($config['site']);
            echo 'File <b>config.lua</b> loaded from <font color="red"><i>'.$config['site']['server_path'].'config.lua</i></font> and looks like fine server config file. Now you can check database('.$config['server']['sqlType'].') connection: <a href="install.php?page=step&step=2">STEP 2 - check database connection</a>';
        }
        else
        {
            echo 'File <b>config.lua</b> loaded from <font color="red"><i>'.$config['site']['server_path'].'config.lua</i></font> and it\'s not valid TFS config.lua file. <a href="install.php?page=step&step=1">Go to STEP 1 - select other directory.</a> If it\'s your config.lua file from TFS contact with acc. maker author.';
        }
    }
    else
    {
        echo 'Can\'t load file <b>config.lua</b> from <font color="red"><i>'.$config['site']['server_path'].'config.lua</i></font> File doesn\'t exist in selected directory. <a href="install.php?page=step&step=1">Go to STEP 1 - select other directory.</a>';
    }
}
else
{
echo 'Please write you TFS directory below. Like: <i>C:\Documents and Settings\Gesior\Desktop\TFS 0.2.9\</i><form action="install.php">
<input type="text" name="server_path" size="90" value="'.$config['site']['server_path'].'" /><input type="hidden" name="page" value="step" /><input type="hidden" name="step" value="1" /><input type="submit" value="Set server path" />
</form>';
}
}
if($step == '2') {
echo '<h1>STEP '.$step.'</h1>Check database connection<br>';
echo 'If you don\'t see any errors press <a href="install.php?page=step&step=3&server_conf=yes">link to STEP 3 - Add tables and columns to DB</a>. If you see some errors it mean server has wrong configuration. Check FAQ or ask author of acc. maker.';
//load server config
$config['server'] = parse_ini_file($config['site']['server_path'].'config.lua');
if(isset($config['server']['mysqlHost'])) {
//new (0.2.6+) ots config.lua file
$mysqlhost = $config['server']['mysqlHost'];
$mysqluser = $config['server']['mysqlUser'];
$mysqlpass = $config['server']['mysqlPass'];
$mysqldatabase = $config['server']['mysqlDatabase'];
}
elseif(isset($config['server']['sqlHost'])) {
//old (0.2.4) ots config.lua file
$mysqlhost = $config['server']['sqlHost'];
$mysqluser = $config['server']['sqlUser'];
$mysqlpass = $config['server']['sqlPass'];
$mysqldatabase = $config['server']['sqlDatabase'];
}
$sqlitefile = $config['server']['sqliteDatabase'];
$passwordency = '';
if(strtolower($config['server']['useMD5Passwords']) == 'yes' || strtolower($config['server']['passwordType']) == 'md5') {
    $passwordency = 'md5';
}
if(strtolower($config['server']['passwordType']) == 'sha1') {
    $passwordency = 'sha1';
}
// loads #####POT mainfile#####
include('pot/OTS.php');
// PDO and POT connects to database
$ots = POT::getInstance();
if(strtolower($config['server']['sqlType']) == "mysql")
{
    //connect to MySQL database
    try
    {
        $ots->connect(POT::DB_MYSQL, array('host' => $mysqlhost, 'user' => $mysqluser, 'password' => $mysqlpass, 'database' => $mysqldatabase) );
    }
    catch(PDOException $error)
    {
        echo 'Database error - can\'t connect to MySQL database. Possible reasons:<br>1. MySQL server is not running on host.<br>2. MySQL user, password, database or host isn\'t configured in: <b>'.$config['site']['server_path'].'config.lua</b> .<br>3. MySQL user, password, database or host is wrong.';
        exit;
    }
}
elseif(strtolower($config['server']['sqlType']) == "sqlite")
{
    //connect to SQLite database
    $link_to_sqlitedatabase = $config['site']['server_path'].$sqlitefile;
    try
    {
        $ots->connect(POT::DB_SQLITE, array('database' => $link_to_sqlitedatabase));
    }
    catch(PDOException $error)
    {
        echo 'Database error - can\'t open SQLite database. Possible reasons:<br><b>'.$link_to_sqlitedatabase.'</b> - file isn\'t valid SQLite database.<br><b>'.$link_to_sqlitedatabase.'</b> - doesn\'t exist.';
        exit;
    }
}
else
{
    echo 'Database error. Unknown database type in <b>'.$config['site']['server_path'].'config.lua</b> . Must be equal to: "<b>mysql</b>" or "<b>sqlite</b>". Now is: "<b>'.strtolower($config['server']['sqlType']).'"</b>';
    exit;
}
$SQL = POT::getInstance()->getDBHandle();
$config['site']['install'] = 3;
saveconfig_ini($config['site']);
}
if($step == '3') {
echo '<h1>STEP '.$step.'</h1>Add tables and columns to DB<br>';
echo 'Installer try to add new tables and columns to database.<br>';
        $config['server'] = parse_ini_file($config['site']['server_path'].'config.lua');
        if($config['server']['sqlType'] == "sqlite") {
            //if sqlite
            try { $SQL->query('ALTER TABLE accounts ADD "key" VARCHAR(255) NOT NULL DEFAULT "";'); } catch(PDOException $error) {}
            try { $SQL->query('ALTER TABLE accounts ADD "page_lastday" INTEGER(11) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
            try { $SQL->query('ALTER TABLE accounts ADD "email_new" VARCHAR(255) NOT NULL DEFAULT "";'); } catch(PDOException $error) {}
            try { $SQL->query('ALTER TABLE accounts ADD "email_new_time" INTEGER(15) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
            try { $SQL->query('ALTER TABLE accounts ADD "created" INTEGER(11) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
            try { $SQL->query('ALTER TABLE accounts ADD "rlname" VARCHAR(255) NOT NULL DEFAULT "";'); } catch(PDOException $error) {}
            try { $SQL->query('ALTER TABLE accounts ADD "location" VARCHAR(255) NOT NULL DEFAULT "";'); } catch(PDOException $error) {}
            try { $SQL->query('ALTER TABLE accounts ADD "page_access" INTEGER(11) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
            try { $SQL->query('ALTER TABLE accounts ADD "email_code" VARCHAR(255) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
            try { $SQL->query('ALTER TABLE accounts ADD "next_email" INTEGER(11) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
            try { $SQL->query('ALTER TABLE accounts ADD "premium_points" INTEGER(11) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
            echo "Added columns to table <b>accounts</b>.<br/>";
            try { $SQL->query('ALTER TABLE guilds ADD "description" TEXT NOT NULL DEFAULT "";'); } catch(PDOException $error) {}
            try { $SQL->query('ALTER TABLE guilds ADD "logo_gfx_name" VARCHAR(255) NOT NULL DEFAULT "";'); } catch(PDOException $error) {}
            echo "Added columns to table <b>guilds</b>.<br/>";
            try { $SQL->query('ALTER TABLE players ADD "online" INTEGER(11) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
            try { $SQL->query('ALTER TABLE players ADD "created" INTEGER(11) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
            try { $SQL->query('ALTER TABLE players ADD "nick_verify" INTEGER(11) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
            try { $SQL->query('ALTER TABLE players ADD "old_name" VARCHAR(255) NOT NULL DEFAULT "";'); } catch(PDOException $error) {}
            try { $SQL->query('ALTER TABLE players ADD "hide_char" INTEGER(11) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
            try { $SQL->query('ALTER TABLE players ADD "comment" TEXT NOT NULL DEFAULT "";'); } catch(PDOException $error) {}
            echo "Added columns to table <b>players</b>.<br/>";
            try { $SQL->query('CREATE TABLE "z_news_big" (
                        "hide_news" INTEGER NOT NULL DEFAULT 0,
                        "date" INTEGER NOT NULL,
                        "author" VARCHAR(255) NOT NULL,
                        "author_id" INTEGER NOT NULL,
                        "image_id" INTEGER NOT NULL DEFAULT 0,
                        "topic" VARCHAR(255) NOT NULL,
                        "text" TEXT NOT NULL);'); } catch(PDOException $error) {}
            echo "Added table <b>z_news_big</b> (news).<br/>";
            try { $SQL->query('CREATE TABLE "z_news_tickers" (
                        "date" INTEGER NOT NULL,
                        "author" INTEGER NOT NULL,
                        "image_id" INTEGER NOT NULL DEFAULT 0,
                        "text" TEXT NOT NULL,
                        "hide_ticker" INTEGER NOT NULL DEFAULT 0);'); } catch(PDOException $error) {}
            echo "Added table <b>z_news_tickers</b> (tickers).<br/>";
            try { $SQL->query('CREATE TABLE "z_spells" (
                        "name" VARCHAR(255) NOT NULL,
                        "spell" VARCHAR(255) NOT NULL,
                        "spell_type" VARCHAR(255) NOT NULL,
                        "mana" INTEGER NOT NULL DEFAULT 0,
                        "lvl" INTEGER NOT NULL DEFAULT 0,
                        "mlvl" INTEGER NOT NULL DEFAULT 0,
                        "soul" INTEGER NOT NULL DEFAULT 0,
                        "pacc" VARCHAR(255) NOT NULL,
                        "vocations" VARCHAR(255) NOT NULL,
                        "conj_count" INTEGER NOT NULL DEFAULT 0,
                        "hide_spell" INTEGER NOT NULL DEFAULT 0);'); } catch(PDOException $error) {}
            echo "Added table <b>z_spells</b> (spells list).<br/>";
            try { $SQL->query('CREATE TABLE "z_monsters" (
              "hide_creature" INTEGER NOT NULL DEFAULT 0,
              "name" VARCHAR(255) NOT NULL,
              "mana" INTEGER NOT NULL,
              "exp" INTEGER NOT NULL,
              "health" INTEGER NOT NULL,
              "speed_lvl" INTEGER NOT NULL DEFAULT 1,
              "use_haste" INTEGER NOT NULL,
              "voices" text NOT NULL,
              "immunities" VARCHAR(255) NOT NULL,
              "summonable" INTEGER NOT NULL,
              "convinceable" INTEGER NOT NULL,
              "race" VARCHAR(255) NOT NULL,
              "gfx_name" VARCHAR(255) NOT NULL)'); } catch(PDOException $error) {}
            echo "Added table <b>z_monsters</b> (monsters list).<br/>";
        }
        elseif($config['server']['sqlType'] == "mysql")
        {
            //if mysql
            echo "<h3>Add columns to table <b>accounts</b></h3>";
            try { $SQL->query("ALTER TABLE `accounts` ADD `key` VARCHAR( 20 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>key</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>key</b> to table <b>accounts</b>, already exist?<br/>";}
            try { $SQL->query("ALTER TABLE `accounts` ADD `page_lastday` INT( 11 ) NOT NULL;"); echo "<font color=\"green\">Added column</font> <b>page_lastday</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>page_lastday</b> to table <b>accounts</b>, already exist?<br/>";}
            try { $SQL->query("ALTER TABLE `accounts` ADD `email_new` VARCHAR( 255 ) NOT NULL;"); echo "<font color=\"green\">Added column</font> <b>email_new</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>email_new</b> to table <b>accounts</b>, already exist?<br/>";}
            try { $SQL->query("ALTER TABLE `accounts` ADD `email_new_time` INT( 15 ) NOT NULL;"); echo "<font color=\"green\">Added column</font> <b>email_new_time</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>email_new_time</b> to table <b>accounts</b>, already exist?<br/>";}
            try { $SQL->query("ALTER TABLE `accounts` ADD `created` INT( 11 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>created</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>created</b> to table <b>accounts</b>, already exist?<br/>";}
            try { $SQL->query("ALTER TABLE `accounts` ADD `rlname` VARCHAR( 255 ) NOT NULL DEFAULT '';"); echo "<font color=\"green\">Added column</font> <b>rlname</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>rlname</b> to table <b>accounts</b>, already exist?<br/>";}
            try { $SQL->query("ALTER TABLE `accounts` ADD `location` VARCHAR( 255 ) NOT NULL DEFAULT '';"); echo "<font color=\"green\">Added column</font> <b>location</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>location</b> to table <b>accounts</b>, already exist?<br/>";}
            try { $SQL->query("ALTER TABLE `accounts` ADD `page_access` INT( 11 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>page_access</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>page_access</b> to table <b>accounts</b>, already exist?<br/>";}
            try { $SQL->query("ALTER TABLE `accounts` ADD `email_code` VARCHAR( 255 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>email_code</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>email_code</b> to table <b>accounts</b>, already exist?<br/>";}
            try { $SQL->query("ALTER TABLE `accounts` ADD `next_email` INT( 11 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>next_email</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>next_email</b> to table <b>accounts</b>, already exist?<br/>";}
            try { $SQL->query("ALTER TABLE `accounts` ADD `premium_points` INT( 11 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>premium_points</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>premium_points</b> to table <b>accounts</b>, already exist?<br/>";}
            echo "<h3>Add columns to table <b>guilds</b></h3>";
            try { $SQL->query('ALTER TABLE `guilds` ADD `description` TEXT NOT NULL DEFAULT "";'); echo "<font color=\"green\">Added column</font> <b>description</b> to table <b>guilds</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>description</b> to table <b>guilds</b>, already exist?<br/>";}
            try { $SQL->query('ALTER TABLE `guilds` ADD `logo_gfx_name` VARCHAR( 255 ) NOT NULL DEFAULT "";'); echo "<font color=\"green\">Added column</font> <b>logo_gfx_name</b> to table <b>guilds</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>logo_gfx_name</b> to table <b>guilds</b>, already exist?<br/>";}
            echo "<h3>Add columns to table <b>players</b></h3>";
            try { $SQL->query("ALTER TABLE `players` ADD `online` INT( 11 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>online</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>online</b> to table <b>players</b>, already exist?<br/>";}
            try { $SQL->query("ALTER TABLE `players` ADD `created` INT( 11 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>created</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>created</b> to table <b>players</b>, already exist?<br/>";}
            try { $SQL->query("ALTER TABLE `players` ADD `nick_verify` INT( 11 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>nick_verify</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>nick_verify</b> to table <b>players</b>, already exist?<br/>";}
            try { $SQL->query("ALTER TABLE `players` ADD `old_name` VARCHAR( 255 ) NOT NULL DEFAULT '';"); echo "<font color=\"green\">Added column</font> <b>old_name</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>old_name</b> to table <b>players</b>, already exist?<br/>";}
            try { $SQL->query("ALTER TABLE `players` ADD `hide_char` INT( 11 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>hide_char</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>hide_char</b> to table <b>players</b>, already exist?<br/>";}
            try { $SQL->query("ALTER TABLE `players` ADD `comment` TEXT NOT NULL;"); echo "<font color=\"green\">Added column</font> <b>comment</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>comment</b> to table <b>players</b>, already exist?<br/>";}
            try { $SQL->query("ALTER TABLE `accounts` ADD `vote` INT( 11 ) NOT NULL;"); echo "<font color=\"green\">Added column</font> <b>vote</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>vote</b> to table <b>players</b>, already exist?<br/>";}
            echo "<h3>Add new tables to database</h3>";
            try { $SQL->query("CREATE TABLE `z_news_big` (
                        `hide_news` tinyint(1) NOT NULL DEFAULT '0',
                        `date` int(11) NOT NULL DEFAULT '0',
                        `author` varchar(255) NOT NULL,
                        `author_id` int(11) NOT NULL,
                        `image_id` int(3) NOT NULL DEFAULT '0',
                        `topic` varchar(255) NOT NULL,
                        `text` text NOT NULL
                        ) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
                        echo '<font color=\"green\">Added table <b>z_news_big</b></font><br/>';
                    } catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_news_big</b> not added.</font> Already exist?<br/>";}
            try { $SQL->query("CREATE TABLE `z_news_tickers` (
                        `date` int(11) NOT NULL default '1',
                        `author` int(11) NOT NULL,
                        `image_id` int(3) NOT NULL default '0',
                        `text` text NOT NULL,
                        `hide_ticker` tinyint(1) NOT NULL
                        ) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
                        echo '<font color=\"green\">Added table <b>z_news_tickers</b></font><br/>';
                    } catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_news_tickers</b> not added.</font> Already exist?<br/>";}
            try { $SQL->query('CREATE TABLE `z_spells` (
                        `name` VARCHAR(255) NOT NULL,
                        `spell` VARCHAR(255) NOT NULL,
                        `spell_type` VARCHAR(255) NOT NULL,
                        `mana` INTEGER NOT NULL DEFAULT 0,
                        `lvl` INTEGER NOT NULL DEFAULT 0,
                        `mlvl` INTEGER NOT NULL DEFAULT 0,
                        `soul` INTEGER NOT NULL DEFAULT 0,
                        `pacc` VARCHAR(255) NOT NULL,
                        `vocations` VARCHAR(255) NOT NULL,
                        `conj_count` INTEGER NOT NULL DEFAULT 0,
                        `hide_spell` INTEGER NOT NULL DEFAULT 0);');
                    echo '<font color=\"green\">Added table <b>z_spells</b></font><br/>';
                    } catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_spells</b> not added.</font> Already exist?<br/>";}
            try { $SQL->query('CREATE TABLE `z_monsters` (
              `hide_creature` tinyint(1) NOT NULL default \'0\',
              `name` varchar(255) NOT NULL,
              `mana` int(11) NOT NULL,
              `exp` int(11) NOT NULL,
              `health` int(11) NOT NULL,
              `speed_lvl` int(11) NOT NULL default \'1\',
              `use_haste` tinyint(1) NOT NULL,
              `voices` text NOT NULL,
              `immunities` varchar(255) NOT NULL,
              `summonable` tinyint(1) NOT NULL,
              `convinceable` tinyint(1) NOT NULL,
              `race` varchar(255) NOT NULL,
              `gfx_name` varchar(255) NOT NULL
            ) ENGINE=MyISAM DEFAULT CHARSET=latin1;'); 
            echo"<font color=\"green\">Added table <b>z_monsters</b></font><br/>";
            } catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_monsters</b> not added.</font> Already exist?<br/>";}
            try { $SQL->query("CREATE TABLE `z_ots_comunication` (
                           `id` int(11) NOT NULL auto_increment,
                           `name` varchar(255) NOT NULL,
                            `type` varchar(255) NOT NULL,
                           `action` varchar(255) NOT NULL,
                            `param1` varchar(255) NOT NULL,
                           `param2` varchar(255) NOT NULL,
                           `param3` varchar(255) NOT NULL,
                           `param4` varchar(255) NOT NULL,
                           `param5` varchar(255) NOT NULL,
                           `param6` varchar(255) NOT NULL,
                           `param7` varchar(255) NOT NULL,
                           `delete_it` int(2) NOT NULL default '1',
                             PRIMARY KEY  (`id`)
                         ) ENGINE=MyISAM  DEFAULT CHARSET=latin1;");
            echo "<font color=\"green\">Added table <b>z_ots_comunication</b> (shopsystem).<br/></font>";
            }
            catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_ots_comunication</b> not added.</font> Already exist?<br/>";}
            try { $SQL->query("CREATE TABLE `z_shop_offer` (
                           `id` int(11) NOT NULL auto_increment,
                           `points` int(11) NOT NULL default '0',
                           `itemid1` int(11) NOT NULL default '0',
                           `count1` int(11) NOT NULL default '0',
                           `itemid2` int(11) NOT NULL default '0',
                           `count2` int(11) NOT NULL default '0',
                           `offer_type` varchar(255) default NULL,
                           `offer_description` text NOT NULL,
                           `offer_name` varchar(255) NOT NULL,
                           `pid` INT(11) NOT NULL DEFAULT '0',  
                           PRIMARY KEY  (`id`)
                         ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;");
            echo "<font color=\"green\">Added table <b>z_shop_offer</b> (shopsystem).<br/></font>";
            }
            catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_shop_offer</b> not added.</font> Already exist?<br/>";}
            try { $SQL->query("CREATE TABLE `z_shop_history_item` (
                           `id` int(11) NOT NULL auto_increment,
                           `to_name` varchar(255) NOT NULL default '0',
                              `to_account` int(11) NOT NULL default '0',
                             `from_nick` varchar(255) NOT NULL,
                           `from_account` int(11) NOT NULL default '0',
                           `price` int(11) NOT NULL default '0',
                           `offer_id` int(11) NOT NULL default '0',
                           `trans_state` varchar(255) NOT NULL,
                           `trans_start` int(11) NOT NULL default '0',
                           `trans_real` int(11) NOT NULL default '0',
                           PRIMARY KEY  (`id`)
                         ) ENGINE=MyISAM  DEFAULT CHARSET=latin1;");
            echo "<font color=\"green\">Added table <b>z_shop_history_item</b> (shopsystem).<br/></font>";
            }
            catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_shop_history_item</b> not added.</font> Already exist?<br/>";}
            try { $SQL->query("CREATE TABLE `z_shop_history_pacc` (
                           `id` int(11) NOT NULL auto_increment,
                           `to_name` varchar(255) NOT NULL default '0',
                           `to_account` int(11) NOT NULL default '0',
                           `from_nick` varchar(255) NOT NULL,
                           `from_account` int(11) NOT NULL default '0',
                           `price` int(11) NOT NULL default '0',
                           `pacc_days` int(11) NOT NULL default '0',
                           `trans_state` varchar(255) NOT NULL,
                           `trans_start` int(11) NOT NULL default '0',
                           `trans_real` int(11) NOT NULL default '0',
                           PRIMARY KEY  (`id`)
                         ) ENGINE=MyISAM  DEFAULT CHARSET=latin1;"); 
            echo "<font color=\"green\">Added table <b>z_shop_history_pacc</b> (shopsystem).<br/></font>";
            }
            catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_shop_history_pacc</b> not added.</font> Already exist?<br/>";}
            try { $SQL->query("CREATE TABLE IF NOT EXISTS `z_changelog` (
                           `id` int(11) NOT NULL auto_increment,
                           `type` varchar(255) NOT NULL default '',
                           `where` varchar(255) NOT NULL default '',
                           `date` int(11) NOT NULL default '0',
                           `description` varchar(255) NOT NULL,
                            PRIMARY KEY  (`id`)
                         ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;"); 
            echo "<font color=\"green\">Added table <b>z_changelog</b> (changelog).<br/></font>";
            }
            catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_changelog</b> not added.</font> Already exist?<br/>";}
            try { $SQL->query("CREATE TABLE `z_polls` (
                           `id` int(11) NOT NULL auto_increment,
                           `question` varchar(255) NOT NULL,
                           `end` int(11) NOT NULL,
                           `start` int(11) NOT NULL,
                           `answers` int(11) NOT NULL,
                           `votes_all` int(11) NOT NULL,
                           PRIMARY KEY  (`id`)
                         ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;");
             echo "<font color=\"green\">Added table <b>z_polls</b> (poll-system).<br/></font>";
            }
            catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_polls</b> not added.</font> Already exist?<br/>";}
            try { $SQL->query("CREATE TABLE `z_polls_answers` (
                           `poll_id` int(11) NOT NULL,
                           `answer_id` int(11) NOT NULL,
                           `answer` varchar(255) NOT NULL,
                           `votes` int(11) NOT NULL
                         ) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
            echo "<font color=\"green\">Added table <b>z_polls_answers</b> (poll-system).<br/></font>";
            }
            catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_polls_answers</b> not added.</font> Already exist?<br/>";}
            try { $SQL->query("CREATE TABLE `z_bug_tracker` (
                          `account` varchar(255) NOT NULL,
                          `type` int(11) NOT NULL,
                          `status` int(11) NOT NULL,
                          `text` text NOT NULL,
                          `id` int(11) NOT NULL,
                          `subject` varchar(255) NOT NULL,
                          `reply` int(11) NOT NULL,
                          `who` int(11) NOT NULL,
                          `uid` int(11) NOT NULL auto_increment,
                          `tag` int(11) NOT NULL,
                          PRIMARY KEY  (`uid`)
                          ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;");
            echo "<font color=\"green\">Added table <b>z_bug_tracker</b> (bug tracker).<br/></font>";
            }
            catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_bug_tracker</b> not added.</font> Already exist?<br/>";}
        }
        $config['site']['install'] = 4;
        saveconfig_ini($config['site']);
    echo 'Tables and columns added to database.<br>Go to <a href="install.php?page=step&step=4&server_conf=yes">STEP 4 - Add samples</a>';
}
if($step == '4') {
echo '<h1>STEP '.$step.'</h1>Add samples to DB:<br>';
$check_news_ticker = $SQL->query('SELECT * FROM z_news_tickers WHERE image_id = 1 AND author = 1 AND hide_ticker = 0 LIMIT 1 OFFSET 0')->fetch();
if(!isset($check_news_ticker['author'])) {
$SQL->query('INSERT INTO z_news_tickers (date, author, image_id, text, hide_ticker) VALUES ('.time().', 1, 1, "Hello! Gesior account manager 0.32beta2 installed. Report bugs to [email protected]", 0)');
echo "Added first news ticker.<br/>";
} else {
echo "News ticker sample is already in database. New sample is not needed.<br/>";
}
$check_news = $SQL->query('SELECT * FROM z_news_big WHERE author = "Gesior" LIMIT 1 OFFSET 0')->fetch();
if(!isset($check_news['author'])) {
$SQL->query('INSERT INTO z_news_big (hide_news, date, author, author_id, image_id, topic, text) VALUES (0, '.time().', "Gesior", 1, 0, "New account manager!", "Gesior account manager 0.32beta2 installed. All options should work fine. Report bugs in acc. maker thread");');
echo "Added first news.<br/>";
} else {
echo "News sample is already in database. New sample is not needed.<br/>";
}
$check_voc_0 = $SQL->query('SELECT * FROM players WHERE name = "Rook Sample" LIMIT 1 OFFSET 0')->fetch();
if(!isset($check_voc_0['name'])) {
$SQL->query('INSERT INTO players (name, group_id, account_id, sex, vocation, experience, level, maglevel, health, healthmax, mana, manamax, manaspent, soul, direction, lookbody, lookfeet, lookhead, looklegs, looktype, lookaddons, posx, posy, posz, cap, lastlogin, lastip, save, conditions, redskulltime, redskull, guildnick, rank_id, town_id, loss_experience, loss_mana, loss_skills, lastlogout, blessings, premend, online, comment, created, hide_char, nick_verify) VALUES ("Rook Sample", 1, 1, 1, 0, 0, 1, 0, 185, 185, 35, 35, 0, 100,"", 44, 44, 44, 44, 128, 0, 0, 0, 0, 420, "", "", 1,"","","","","","1","","","","","","","","",'.time().',1,1)');
echo "Added 'Rook Sample' character.<br/>";
 
Rest of Install.php

PHP:
} else {
echo "Character 'Rook Sample' already in database.<br/>";
}
$check_voc_1 = $SQL->query('SELECT * FROM players WHERE name = "Sorcerer Sample" LIMIT 1 OFFSET 0')->fetch();
if(!isset($check_voc_1['name'])) {
$SQL->query('INSERT INTO players (name, group_id, account_id, sex, vocation, experience, level, maglevel, health, healthmax, mana, manamax, manaspent, soul, direction, lookbody, lookfeet, lookhead, looklegs, looktype, lookaddons, posx, posy, posz, cap, lastlogin, lastip, save, conditions, redskulltime, redskull, guildnick, rank_id, town_id, loss_experience, loss_mana, loss_skills, lastlogout, blessings, premend, online, comment, created, hide_char, nick_verify) VALUES ("Sorcerer Sample", 1, 1, 1, 1, 0, 1, 0, 185, 185, 35, 35, 0, 100,"", 44, 44, 44, 44, 128, 0, 0, 0, 0, 420, "", "", 1,"","","","","","1","","","","","","","","",'.time().',1,1)');
echo "Added 'Sorcerer Sample' character.<br/>";
} else {
echo "Character 'Sorcerer Sample' already in database.<br/>";
}
$check_voc_2 = $SQL->query('SELECT * FROM players WHERE name = "Druid Sample" LIMIT 1 OFFSET 0')->fetch();
if(!isset($check_voc_2['name'])) {
$SQL->query('INSERT INTO players (name, group_id, account_id, sex, vocation, experience, level, maglevel, health, healthmax, mana, manamax, manaspent, soul, direction, lookbody, lookfeet, lookhead, looklegs, looktype, lookaddons, posx, posy, posz, cap, lastlogin, lastip, save, conditions, redskulltime, redskull, guildnick, rank_id, town_id, loss_experience, loss_mana, loss_skills, lastlogout, blessings, premend, online, comment, created, hide_char, nick_verify) VALUES ("Druid Sample", 1, 1, 1, 2, 0, 1, 0, 185, 185, 35, 35, 0, 100,"", 44, 44, 44, 44, 128, 0, 0, 0, 0, 420, "", "", 1,"","","","","","1","","","","","","","","",'.time().',1,1)');
echo "Added 'Druid Sample' character.<br/>";
} else {
echo "Character 'Druid Sample' already in database.<br/>";
}
$check_voc_3 = $SQL->query('SELECT * FROM players WHERE name = "Paladin Sample" LIMIT 1 OFFSET 0')->fetch();
if(!isset($check_voc_3['name'])) {
$SQL->query('INSERT INTO players (name, group_id, account_id, sex, vocation, experience, level, maglevel, health, healthmax, mana, manamax, manaspent, soul, direction, lookbody, lookfeet, lookhead, looklegs, looktype, lookaddons, posx, posy, posz, cap, lastlogin, lastip, save, conditions, redskulltime, redskull, guildnick, rank_id, town_id, loss_experience, loss_mana, loss_skills, lastlogout, blessings, premend, online, comment, created, hide_char, nick_verify) VALUES ("Paladin Sample", 1, 1, 1, 3, 0, 1, 0, 185, 185, 35, 35, 0, 100,"", 44, 44, 44, 44, 128, 0, 0, 0, 0, 420, "", "", 1,"","","","","","1","","","","","","","","",'.time().',1,1)');
echo "Added 'Paladin Sample' character.<br/>";
} else {
echo "Character 'Paladin Sample' already in database.<br/>";
}
$check_voc_4 = $SQL->query('SELECT * FROM players WHERE name = "Knight Sample" LIMIT 1 OFFSET 0')->fetch();
if(!isset($check_voc_4['name'])) {
$SQL->query('INSERT INTO players (name, group_id, account_id, sex, vocation, experience, level, maglevel, health, healthmax, mana, manamax, manaspent, soul, direction, lookbody, lookfeet, lookhead, looklegs, looktype, lookaddons, posx, posy, posz, cap, lastlogin, lastip, save, conditions, redskulltime, redskull, guildnick, rank_id, town_id, loss_experience, loss_mana, loss_skills, lastlogout, blessings, premend, online, comment, created, hide_char, nick_verify) VALUES ("Knight Sample", 1, 1, 1, 4, 0, 1, 0, 185, 185, 35, 35, 0, 100,"", 44, 44, 44, 44, 128, 0, 0, 0, 0, 420, "", "", 1,"","","","","","1","","","","","","","","",'.time().',1,1)');
echo "Added 'Knight Sample' character.<br/>";
} else {
echo "Character 'Knight Sample' already in database.<br/>";
$config['site']['install'] = 5;
saveconfig_ini($config['site']);
echo 'All samples added to database. Now you can go to <a href="install.php?page=step&step=5&server_conf=yes">STEP 5 - Set Admin Account</a><br/>';
}
}
if($step == '5') {
echo '<h1>STEP '.$step.'</h1>Set Admin Account<br>';
$config['server'] = parse_ini_file($config['site']['server_path'].'config.lua');
if(empty($_REQUEST['saveaccpassword'])) {
    echo 'Admin account number is: <b>1</b><br/>Set new password to this account.<br>';
    echo 'New password: <form action="install.php" method=POST><input type="text" name="newpass" size="35">(Don\'t give it password to anyone!)';
    echo '<input type="hidden" name="saveaccpassword" value="yes"><input type="hidden" name="page" value="step"><input type="hidden" name="step" value="5"><input type="submit" value="SET"></form><br>If account with number 1 doesn\'t exist installator will create it and set your password.';
    } else {
    $newpass = $_POST['newpass'];
    if(!check_password($newpass))
        echo 'Password contains illegal characters. Please use only a-Z and 0-9. <a href="install.php?page=step&step=5&server_conf=yes">GO BACK</a> and write other password.';

    else
    {
        $newpass_to_db = password_ency($newpass);
        //ustawienie/stworzenie konta admina
        $account = new OTS_Account();
        $account->load(1);
        if($account->isLoaded())
        {
            //set password
            $account->setPassword($newpass_to_db);
            $account->save();
            $account->setCustomField("page_access", 3);
        }
        else
        {
            //create account
            $number = $account->create(1,1,1);
            $account->setPassword($newpass_to_db);
            $account->unblock();
            $account->save();
            $account->setCustomField("page_access", 3);
        }
        $_SESSION['account'] = 1;
        $_SESSION['password'] = $newpass;
        $logged = TRUE;
        $account->setCustomField("page_lastday", time());
        echo '<h1>Admin account number: 1<br>Admin account password: '.$_POST['newpass'].'</h1><br/><h3>It\'s end of first part of installation. Installation is blocked. From now don\'t modify file config.ini!<br>Press links to STEPs 6-9 in menu.</h3>'; 
        $config['site']['install'] = 'no';
        saveconfig_ini($config['site']);
    }
    }
}
}
else
{
echo "Account maker is already installed! To reinstall open file 'config.ini' in directory 'config' and change:<br/><b>install = \"no\"</b><br/>to:</br><b>install = \"start\"</b><br/>and enter this site again.";
}
}
?>
 
Replace Config.lua with


PHP:
-- The Forgotten Server Config

    -- Account manager
    accountManager = true
    namelockManager = true
    newPlayerChooseVoc = false
    newPlayerSpawnPosX = 95
    newPlayerSpawnPosY = 117
    newPlayerSpawnPosZ = 7
    newPlayerTownId = 1
    newPlayerLevel = 1
    newPlayerMagicLevel = 0
    generateAccountNumber = false

-- The Forgotten Server Config

    -- Account manager
    accountManager = true
    namelockManager = true
    newPlayerChooseVoc = false
    newPlayerSpawnPosX = 95
    newPlayerSpawnPosY = 117
    newPlayerSpawnPosZ = 7
    newPlayerTownId = 1
    newPlayerLevel = 1
    newPlayerMagicLevel = 0
    generateAccountNumber = false

	-- Unjustified kills
	redSkullLength = 12 * 60 * 60
	blackSkullLength = 24 * 60 * 60
	dailyFragsToRedSkull = 6
	weeklyFragsToRedSkull = 9
	monthlyFragsToRedSkull = 17
	dailyFragsToBlackSkull = dailyFragsToRedSkull
	weeklyFragsToBlackSkull = weeklyFragsToRedSkull
	monthlyFragsToBlackSkull = monthlyFragsToRedSkull
	dailyFragsToBanishment = dailyFragsToRedSkull
	weeklyFragsToBanishment = weeklyFragsToRedSkull
	monthlyFragsToBanishment = monthlyFragsToRedSkull
	blackSkulledDeathHealth = 40
	blackSkulledDeathMana = 0
	useBlackSkull = true
	useFragHandler = true
        advancedFragList = false

    -- Banishments
    -- violationNameReportActionType 1 = just a report, 2 = name lock, 3 = player banishment
    -- killsBanLength works only if useBlackSkull option is disabled.
    notationsToBan = 3
    warningsToFinalBan = 4
    warningsToDeletion = 5
    banLength = 7 * 24 * 60 * 60
    killsBanLength = 7 * 24 * 60 * 60
    finalBanLength = 30 * 24 * 60 * 60
    ipBanishmentLength = 1 * 24 * 60 * 60
    broadcastBanishments = true
    maxViolationCommentSize = 200
    violationNameReportActionType = 2
    autoBanishUnknownBytes = false

    -- Battle
    -- NOTE: showHealingDamageForMonsters inheritates from showHealingDamage.
    -- loginProtectionPeriod is the famous Tibia anti-magebomb system.
    -- deathLostPercent set to nil enables manual mode.
    worldType = "pvp"
    protectionLevel = 1
    pvpTileIgnoreLevelAndVocationProtection = true
    pzLocked = 60 * 1000
    huntingDuration = 60 * 1000
    criticalHitChance = 7
    criticalHitMultiplier = 1
    displayCriticalHitNotify = false
    removeWeaponAmmunition = true
    removeWeaponCharges = true
    removeRuneCharges = true
    whiteSkullTime = 15 * 60 * 1000
    noDamageToSameLookfeet = false
    showHealingDamage = false
    showHealingDamageForMonsters = false
    fieldOwnershipDuration = 5 * 1000
    stopAttackingAtExit = false
    oldConditionAccuracy = false
    loginProtectionPeriod = 10 * 1000
    deathLostPercent = 10
    stairhopDelay = 2 * 1000
    pushCreatureDelay = 2 * 1000
    deathContainerId = 1987
    gainExperienceColor = 215
    addManaSpentInPvPZone = true
    squareColor = 0
    allowFightback = true

    -- Connection config
    worldId = 0
    ip = "127.0.0.1"
    bindOnlyConfiguredIpAddress = false
    loginPort = 7171
    gamePort = 7172
    adminPort = 7171
    statusPort = 7171
    loginTries = 10
    retryTimeout = 5 * 1000
    loginTimeout = 60 * 1000
    maxPlayers = 1000
    motd = "Welcome to the Forgotten Server!"
    displayOnOrOffAtCharlist = false
    onePlayerOnlinePerAccount = true
    allowClones = false
    serverName = "Forgotten"
    loginMessage = "Welcome to the Forgotten Server!"
    statusTimeout = 5 * 60 * 1000
    replaceKickOnLogin = true
    forceSlowConnectionsToDisconnect = false
    loginOnlyWithLoginServer = false
    premiumPlayerSkipWaitList = false

    -- Database
    -- NOTE: sqlFile is used only by sqlite database, and sqlKeepAlive by mysql database.
    -- To disable sqlKeepAlive such as mysqlReadTimeout use 0 value.
    sqlType = "sqlite"
    sqlHost = "localhost"
    sqlPort = 3306
    sqlUser = "root"
    sqlPass = "*****"
    sqlDatabase = "theforgottenserver"
    sqlFile = "forgottenserver.s3db"
    sqlKeepAlive = 0
    mysqlReadTimeout = 10
    mysqlWriteTimeout = 10
    encryptionType = "plain"

    -- Deathlist
    deathListEnabled = true
    deathListRequiredTime = 1 * 60 * 1000
    deathAssistCount = 19
    maxDeathRecords = 5

    -- Guilds
    ingameGuildManagement = true
    levelToFormGuild = 8
    premiumDaysToFormGuild = 0
    guildNameMinLength = 4
    guildNameMaxLength = 20

    -- Highscores
    highscoreDisplayPlayers = 15
    updateHighscoresAfterMinutes = 60

    -- Houses
    buyableAndSellableHouses = true
    houseNeedPremium = true
    bedsRequirePremium = true
    levelToBuyHouse = 1
    housesPerAccount = 0
    houseRentAsPrice = false
    housePriceAsRent = false
    housePriceEachSquare = 1000
    houseRentPeriod = "never"
    houseCleanOld = 0
    guildHalls = false

    -- Item usage
    timeBetweenActions = 200
    timeBetweenExActions = 1000
    hotkeyAimbotEnabled = true

    -- Map
    -- NOTE: storeTrash costs more memory, but will perform alot faster cleaning.
    mapName = "forgotten"
    mapAuthor = "Komic"
    randomizeTiles = true
    storeTrash = true
    cleanProtectedZones = true
    mailboxDisabledTowns = "-1"

    -- Process
    -- NOTE: defaultPriority works only on Windows and niceLevel on *nix
    -- coresUsed are seperated by comma cores ids used by server process,
    -- default is -1, so it stays untouched (automaticaly assigned by OS).
    defaultPriority = "high"
    niceLevel = 5
    coresUsed = "-1"

    -- Startup
    optimizeDatabaseAtStartup = true
    removePremiumOnInit = true
    confirmOutdatedVersion = false

    -- Spells
    formulaLevel = 5.0
    formulaMagic = 1.0
    bufferMutedOnSpellFailure = false
    spellNameInsteadOfWords = false
    emoteSpells = false

    -- Outfits
    allowChangeOutfit = true
    allowChangeColors = true
    allowChangeAddons = true
    disableOutfitsForPrivilegedPlayers = false
    addonsOnlyPremium = true

    -- Miscellaneous
    -- NOTE: promptExceptionTracerErrorBox works only with precompiled support feature,
    -- called "exception tracer" (__EXCEPTION_TRACER__ flag).
    dataDirectory = "data/"
    bankSystem = true
    displaySkillLevelOnAdvance = false
    promptExceptionTracerErrorBox = true
    separateViplistPerCharacter = false
    maximumDoorLevel = 500
    maxMessageBuffer = 4

    -- Saving-related
    -- useHouseDataStorage usage may be found at README.
    saveGlobalStorage = true
    useHouseDataStorage = false
    storePlayerDirection = false

    -- Loot
    -- monsterLootMessage 0 to disable, 1 - only party, 2 - only player, 3 - party or player (like Tibia's)
    checkCorpseOwner = true
    monsterLootMessage = 3
    monsterLootMessageType = 25

    -- Ghost mode
    ghostModeInvisibleEffect = false
    ghostModeSpellEffects = true

    -- Limits
    idleWarningTime = 14 * 60 * 1000
    idleKickTime = 15 * 60 * 1000
    expireReportsAfterReads = 1
    playerQueryDeepness = 2
    maxItemsPerPZTile = 0
    maxItemsPerHouseTile = 0

    -- Premium-related
    freePremium = false
    premiumForPromotion = true

    -- Blessings
    -- NOTE: blessingReduction* regards items/containers loss.
    -- eachBlessReduction is how much each bless reduces the experience/magic/skills loss.
    blessingOnlyPremium = true
    blessingReductionBase = 30
    blessingReductionDecreament = 5
    eachBlessReduction = 8

    -- Rates
    -- NOTE: experienceStages configuration is located in data/XML/stages.xml.
    -- rateExperienceFromPlayers 0 to disable.
    experienceStages = false
    rateExperience = 5.0
    rateExperienceFromPlayers = 0
    rateSkill = 3.0
    rateMagic = 3.0
    rateLoot = 2.0
    rateSpawn = 1

    -- Monster rates
    rateMonsterHealth = 1.0
    rateMonsterMana = 1.0
    rateMonsterAttack = 1.0
    rateMonsterDefense = 1.0

    -- Experience from players
    -- NOTE: min~Threshold* set to 0 will disable the minimum threshold:
    -- player will gain experience from every lower leveled player.
    -- max~Threshold* set to 0 will disable the maximum threshold:
    -- player will gain experience from every higher leveled player.
    minLevelThresholdForKilledPlayer = 0.9
    maxLevelThresholdForKilledPlayer = 1.1

    -- Stamina
    -- NOTE: Stamina is stored in miliseconds, so seconds are multiplied by 1000.
    -- rateStaminaHits multiplies every hit done a creature, which are later
    -- multiplied by player attack speed.
    -- rateStaminaGain is divider of every logged out second, eg:
    -- 60000 / 3 = 20000 milliseconds, what gives 20 stamina seconds for 1 minute being logged off.
    -- rateStaminaThresholdGain is divider for the premium stamina.
    -- staminaRatingLimit* is in minutes.
    rateStaminaLoss = 1
    rateStaminaGain = 3
    rateStaminaThresholdGain = 12
    staminaRatingLimitTop = 41 * 60
    staminaRatingLimitBottom = 14 * 60
    rateStaminaAboveNormal = 1.5
    rateStaminaUnderNormal = 0.5
    staminaThresholdOnlyPremium = true

    -- Party
    -- NOTE: experienceShareLevelDifference is float number.
    -- experienceShareLevelDifference is highestLevel * value
    experienceShareRadiusX = 30
    experienceShareRadiusY = 30
    experienceShareRadiusZ = 1
    experienceShareLevelDifference = 2 / 3
    extraPartyExperienceLimit = 20
    extraPartyExperiencePercent = 5
    experienceShareActivity = 2 * 60 * 1000

    -- Global save
    -- NOTE: globalSaveHour means like 03:00, not that it will save every 3 hours,
    -- if you want such a system please check out data/globalevents/globalevents.xml.
    globalSaveEnabled = false
    globalSaveHour = 8
    shutdownAtGlobalSave = true
    cleanMapAtGlobalSave = false

    -- Spawns
    deSpawnRange = 2
    deSpawnRadius = 50

    -- Summons
    maxPlayerSummons = 2
    teleportAllSummons = false
    teleportPlayerSummons = false

    -- Status
    ownerName = ""
    ownerEmail = "@otland.net"
    url = "http://otland.net/"
    location = "Europe"
    displayGamemastersWithOnlineCommand = false

    -- Logs
    -- NOTE: This kind of logging does not work in GUI version.
    -- For such, please compile the software with __GUI_LOGS__ flag.
    adminLogsEnabled = false
    displayPlayersLogging = true
    prefixChannelLogs = ""
    runFile = ""
    outLogName = ""
    errorLogName = ""
    truncateLogsOnStartup = false
 
Replace Install.php with
PHP:
<?PHP
$config['site'] = parse_ini_file('config/config.ini');
session_start();
//save config in ini file
function saveconfig_ini($config) {
$file = fopen("config/config.ini", "w");
foreach($config as $param => $data) {
$file_data .= $param.' = "'.str_replace('"', '', $data).'"
';
}
rewind($file);
fwrite($file, $file_data);
fclose($file);
}

function check_password($pass)
{
  $temp = strspn("$pass", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890");
  if ($temp != strlen($pass)) {
  return false;
  }
  else
  {
  $ok = "/[a-zA-Z0-9]{1,40}/";
  return (preg_match($ok, $pass))? true: false;
  }
}

function password_ency($password)
{
	$ency = $GLOBALS['passwordency'];
	if($ency == 'sha1')
		return sha1($password);
	elseif($ency == 'md5')
		return md5($password);
	elseif($ency == '')
		return $password;
}

if($_REQUEST['page'] == '' && !isset($_REQUEST['step']))
	echo '<html>
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
	<title>Installation of account maker</title>
	</head>
	<frameset cols="230,*">
	<frame name="menu" src="install.php?page=menu" />
	<frame name="step" src="install.php?page=step&step=0" />
	<noframes><body>Frames don\'t work. Install Firefox :P</body></noframes>
	</frameset>
	</html>';
if($_REQUEST['page'] == 'menu')
	echo '<h2>MENU</h2><br><b>IF NOT INSTALLED:</b><br>
	<a href="install.php?page=step&step=start" target="step">0. Informations</a><br>
	<a href="install.php?page=step&step=1" target="step">1. Set server path</a><br>
	<a href="install.php?page=step&step=2" target="step">2. Check DataBase connection</a><br>
	<a href="install.php?page=step&step=3&server_conf=yes" target="step">3. Add tables and columns to DB</a><br>
	<a href="install.php?page=step&step=4&server_conf=yes" target="step">4. Add samples to DB</a><br>
	<a href="install.php?page=step&step=5&server_conf=yes" target="step">5. Set Admin Account</a><br>
	<b>FOR ADMINS:</b><br>
	<a href="index.php?subtopic=adminpanel&action=install_monsters" target="step">6. Load Monsters from OTS</a><br>
	<a href="index.php?subtopic=adminpanel&action=install_spells" target="step">7. Load Spells from OTS</a><br>';
if($_REQUEST['page'] == 'step') {
	if($config['site']['install'] != "no") {
		if($_REQUEST['server_conf'] == 'yes' || ($_REQUEST['step'] > 2 && $_REQUEST['step'] < 6)) {
			$config['server'] = parse_ini_file($config['site']['server_path'].'config.lua');
			if(isset($config['server']['mysqlHost'])) {
				$mysqlhost = $config['server']['mysqlHost'];
				$mysqluser = $config['server']['mysqlUser'];
				$mysqlpass = $config['server']['mysqlPass'];
				$mysqldatabase = $config['server']['mysqlDatabase'];
			}
			elseif(isset($config['server']['sqlHost'])) {
				$mysqlhost = $config['server']['sqlHost'];
				$mysqluser = $config['server']['sqlUser'];
				$mysqlpass = $config['server']['sqlPass'];
				$mysqldatabase = $config['server']['sqlDatabase'];
			}
			$sqlitefile = $config['server']['sqliteDatabase'];
			$passwordency = '';
			if(strtolower($config['server']['useMD5Passwords']) == 'yes' || strtolower($config['server']['passwordType']) == 'md5')
				$passwordency = 'md5';
			if(strtolower($config['server']['passwordType']) == 'sha1')
				$passwordency = 'sha1';
			// loads #####POT mainfile#####
			include('pot/OTS.php');
			// PDO and POT connects to database
			$ots = POT::getInstance();
			if(strtolower($config['server']['sqlType']) == "mysql") {
				try {
					$ots->connect(POT::DB_MYSQL, array('host' => $mysqlhost, 'user' => $mysqluser, 'password' => $mysqlpass, 'database' => $mysqldatabase) );
				}
				catch(PDOException $error) {
					echo 'Database error - can\'t connect to MySQL database. Possible reasons:<br>1. MySQL server is not running on host.<br>2. MySQL user, password, database or host isn\'t configured in: <b>'.$config['site']['server_path'].'config.lua</b> .<br>3. MySQL user, password, database or host is wrong.';
					exit;
				}
			}
			elseif(strtolower($config['server']['sqlType']) == "sqlite") {
				$link_to_sqlitedatabase = $config['site']['server_path'].$sqlitefile;
				try {
					$ots->connect(POT::DB_SQLITE, array('database' => $link_to_sqlitedatabase));
				}
				catch(PDOException $error) {
					echo 'Database error - can\'t open SQLite database. Possible reasons:<br><b>'.$link_to_sqlitedatabase.'</b> - file isn\'t valid SQLite database.<br><b>'.$link_to_sqlitedatabase.'</b> - doesn\'t exist.';
					exit;
				}
			} else {
				echo 'Database error. Unknown database type in <b>'.$config['site']['server_path'].'config.lua</b> . Must be equal to: "<b>mysql</b>" or "<b>sqlite</b>". Now is: "<b>'.strtolower($config['server']['sqlType']).'"</b>';
				exit;
			}
			$SQL = POT::getInstance()->getDBHandle();
		}
		$step = $_REQUEST['step'];
		if(empty($step))
			$step = $config['site']['install'];
		if($step == 'start') {
			echo '<h1>STEP '.$step.'</h1>Informations<br>';
			echo 'Welcome to Gesior Account Maker installer. <b>First do steps 1-5 one by one, later (when you will be logged on admin account) press on links to steps 6-8 to load configuration from OTS.</b>';
		}
	if($step == '1') {
		if(isset($_REQUEST['server_path'])) {
			echo '<h1>STEP '.$step.'</h1>Check server configuration<br>';
			$config['site']['server_path'] = $_REQUEST['server_path'];
			$config['site']['server_path'] = trim($config['site']['server_path'])."\\";
			$config['site']['server_path'] = str_replace("\\\\", "/", $config['site']['server_path']);
			$config['site']['server_path'] = str_replace("\\", "/", $config['site']['server_path']);
			$config['site']['server_path'] = str_replace("//", "/", $config['site']['server_path']);
			saveconfig_ini($config['site']);
			if(file_exists($config['site']['server_path'].'config.lua')) {
				$config['server'] = parse_ini_file($config['site']['server_path'].'config.lua');
				if(isset($config['server']['sqlType'])) {
					$config['site']['install'] = 2;
					saveconfig_ini($config['site']);
					echo 'File <b>config.lua</b> loaded from <font color="red"><i>'.$config['site']['server_path'].'config.lua</i></font> and looks like fine server config file. Now you can check database('.$config['server']['sqlType'].') connection: <a href="install.php?page=step&step=2">STEP 2 - check database connection</a>';
				}
				else
				{
					echo 'File <b>config.lua</b> loaded from <font color="red"><i>'.$config['site']['server_path'].'config.lua</i></font> and it\'s not valid TFS config.lua file. <a href="install.php?page=step&step=1">Go to STEP 1 - select other directory.</a> If it\'s your config.lua file from TFS contact with acc. maker author.';
				}
			}
			else
			{
				echo 'Can\'t load file <b>config.lua</b> from <font color="red"><i>'.$config['site']['server_path'].'config.lua</i></font> File doesn\'t exist in selected directory. <a href="install.php?page=step&step=1">Go to STEP 1 - select other directory.</a>';
			}
		}
		else
		{
		echo 'Please write you TFS directory below. Like: <i>C:\Documents and Settings\Gesior\Desktop\TFS 0.3.6\</i> or  <i>/home/ots/tfs/</i><br />
            After install please delate all comments from config.lua
            <br />Example:
            <pre>-- Account manager</pre>
            <form action="install.php">
		<input type="text" name="server_path" size="90" value="'.$config['site']['server_path'].'" /><input type="hidden" name="page" value="step" /><input type="hidden" name="step" value="1" /><input type="submit" value="Set server path" /></form>';
		}
	}
	if($step == '2') {
		echo '<h1>STEP '.$step.'</h1>Check database connection<br>';
		echo 'If you don\'t see any errors press <a href="install.php?page=step&step=3&server_conf=yes">link to STEP 3 - Add tables and columns to DB</a>. If you see some errors it mean server has wrong configuration. Check FAQ or ask author of acc. maker.';
		//load server config
		$config['server'] = parse_ini_file($config['site']['server_path'].'config.lua');
		if(isset($config['server']['mysqlHost'])) {
			//new (0.2.6+) ots config.lua file
			$mysqlhost = $config['server']['mysqlHost'];
			$mysqluser = $config['server']['mysqlUser'];
			$mysqlpass = $config['server']['mysqlPass'];
			$mysqldatabase = $config['server']['mysqlDatabase'];
		}
		elseif(isset($config['server']['sqlHost'])) {
			//old (0.2.4) ots config.lua file
			$mysqlhost = $config['server']['sqlHost'];
			$mysqluser = $config['server']['sqlUser'];
			$mysqlpass = $config['server']['sqlPass'];
			$mysqldatabase = $config['server']['sqlDatabase'];
		}
		$sqlitefile = $config['server']['sqliteDatabase'];
		$passwordency = '';
		if(strtolower($config['server']['useMD5Passwords']) == 'yes' || strtolower($config['server']['passwordType']) == 'md5')
			$passwordency = 'md5';
		if(strtolower($config['server']['passwordType']) == 'sha1')
			$passwordency = 'sha1';
		// loads #####POT mainfile#####
		include('pot/OTS.php');
		$ots = POT::getInstance();
		if(strtolower($config['server']['sqlType']) == "mysql") {
			try {
				$ots->connect(POT::DB_MYSQL, array('host' => $mysqlhost, 'user' => $mysqluser, 'password' => $mysqlpass, 'database' => $mysqldatabase) );
			}
			catch(PDOException $error) {
				echo 'Database error - can\'t connect to MySQL database. Possible reasons:<br>1. MySQL server is not running on host.<br>2. MySQL user, password, database or host isn\'t configured in: <b>'.$config['site']['server_path'].'config.lua</b> .<br>3. MySQL user, password, database or host is wrong.';
				exit;
			}
		}
		elseif(strtolower($config['server']['sqlType']) == "sqlite") {
			$link_to_sqlitedatabase = $config['site']['server_path'].$sqlitefile;
			try {
				$ots->connect(POT::DB_SQLITE, array('database' => $link_to_sqlitedatabase));
			}
			catch(PDOException $error) {
				echo 'Database error - can\'t open SQLite database. Possible reasons:<br><b>'.$link_to_sqlitedatabase.'</b> - file isn\'t valid SQLite database.<br><b>'.$link_to_sqlitedatabase.'</b> - doesn\'t exist.';
				exit;
			}
		}
		else
		{
			echo 'Database error. Unknown database type in <b>'.$config['site']['server_path'].'config.lua</b> . Must be equal to: "<b>mysql</b>" or "<b>sqlite</b>". Now is: "<b>'.strtolower($config['server']['sqlType']).'"</b>';
			exit;
		}
		$SQL = POT::getInstance()->getDBHandle();
		$config['site']['install'] = 3;
		saveconfig_ini($config['site']);
	}
	if($step == '3') {
		echo '<h1>STEP '.$step.'</h1>Add tables and columns to DB<br>';
		echo 'Installer try to add new tables and columns to database.<br>';
		$config['server'] = parse_ini_file($config['site']['server_path'].'config.lua');
		if($config['server']['sqlType'] == "sqlite") {
			try { $SQL->query('ALTER TABLE accounts ADD "key" VARCHAR(255) NOT NULL DEFAULT "";'); } catch(PDOException $error) {}
			try { $SQL->query('ALTER TABLE accounts ADD "page_lastday" INTEGER(11) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
			try { $SQL->query('ALTER TABLE accounts ADD "email_new" VARCHAR(255) NOT NULL DEFAULT "";'); } catch(PDOException $error) {}
			try { $SQL->query('ALTER TABLE accounts ADD "email_new_time" INTEGER(15) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
			try { $SQL->query('ALTER TABLE accounts ADD "created" INTEGER(11) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
			try { $SQL->query('ALTER TABLE accounts ADD "rlname" VARCHAR(255) NOT NULL DEFAULT "";'); } catch(PDOException $error) {}
			try { $SQL->query('ALTER TABLE accounts ADD "location" VARCHAR(255) NOT NULL DEFAULT "";'); } catch(PDOException $error) {}
			try { $SQL->query('ALTER TABLE accounts ADD "page_access" INTEGER(11) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
			try { $SQL->query('ALTER TABLE accounts ADD "email_code" VARCHAR(255) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
			try { $SQL->query('ALTER TABLE accounts ADD "next_email" INTEGER(11) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
			try { $SQL->query('ALTER TABLE accounts ADD "premium_points" INTEGER(11) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
			echo "Added columns to table <b>accounts</b>.<br/>";
			try { $SQL->query('ALTER TABLE guilds ADD "description" TEXT NOT NULL DEFAULT "";'); } catch(PDOException $error) {}
			try { $SQL->query('ALTER TABLE guilds ADD "logo_gfx_name" VARCHAR(255) NOT NULL DEFAULT "";'); } catch(PDOException $error) {}
			echo "Added columns to table <b>guilds</b>.<br/>";
			try { $SQL->query('ALTER TABLE players ADD "online" INTEGER(11) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
			try { $SQL->query('ALTER TABLE players ADD "created" INTEGER(11) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
			try { $SQL->query('ALTER TABLE players ADD "nick_verify" INTEGER(11) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
			try { $SQL->query('ALTER TABLE players ADD "old_name" VARCHAR(255) NOT NULL DEFAULT "";'); } catch(PDOException $error) {}
			try { $SQL->query('ALTER TABLE players ADD "hide_char" INTEGER(11) NOT NULL DEFAULT 0;'); } catch(PDOException $error) {}
			try { $SQL->query('ALTER TABLE players ADD "comment" TEXT NOT NULL DEFAULT "";'); } catch(PDOException $error) {}
			echo "Added columns to table <b>players</b>.<br/>";
			try { $SQL->query('CREATE TABLE "z_news_tickers" (
						"date" INTEGER NOT NULL,
						"author" INTEGER NOT NULL,
						"image_id" INTEGER NOT NULL DEFAULT 0,
						"text" TEXT NOT NULL,
						"hide_ticker" INTEGER NOT NULL DEFAULT 0);'); } catch(PDOException $error) {}
			echo "Added table <b>z_news_tickers</b> (tickers).<br/>";
			try { $SQL->query('CREATE TABLE "z_spells" (
						"name" VARCHAR(255) NOT NULL,
						"spell" VARCHAR(255) NOT NULL,
						"spell_type" VARCHAR(255) NOT NULL,
						"mana" INTEGER NOT NULL DEFAULT 0,
						"lvl" INTEGER NOT NULL DEFAULT 0,
						"mlvl" INTEGER NOT NULL DEFAULT 0,
						"soul" INTEGER NOT NULL DEFAULT 0,
						"pacc" VARCHAR(255) NOT NULL,
						"vocations" VARCHAR(255) NOT NULL,
						"conj_count" INTEGER NOT NULL DEFAULT 0,
						"hide_spell" INTEGER NOT NULL DEFAULT 0);'); } catch(PDOException $error) {}
			echo "Added table <b>z_spells</b> (spells list).<br/>";
			try { $SQL->query('CREATE TABLE "z_monsters" (
						"hide_creature" INTEGER NOT NULL DEFAULT 0,
						"name" VARCHAR(255) NOT NULL,
						"mana" INTEGER NOT NULL,
						"exp" INTEGER NOT NULL,
						"health" INTEGER NOT NULL,
						"speed_lvl" INTEGER NOT NULL DEFAULT 1,
						"use_haste" INTEGER NOT NULL,
						"voices" text NOT NULL,
						"immunities" VARCHAR(255) NOT NULL,
						"summonable" INTEGER NOT NULL,
						"convinceable" INTEGER NOT NULL,
						"race" VARCHAR(255) NOT NULL,
						"gfx_name" VARCHAR(255) NOT NULL)'); } catch(PDOException $error) {}
			echo "Added table <b>z_monsters</b> (monsters list).<br/>";
		}
		elseif($config['server']['sqlType'] == "mysql") {
			echo "<h3>Add columns to table <b>accounts</b></h3>";
			try { $SQL->query("ALTER TABLE `accounts` ADD `page_lastday` INT( 11 ) NOT NULL;"); echo "<font color=\"green\">Added column</font> <b>page_lastday</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>page_lastday</b> to table <b>accounts</b>, already exist?<br/>";}
			try { $SQL->query("ALTER TABLE `accounts` ADD `email_new` VARCHAR( 255 ) NOT NULL;"); echo "<font color=\"green\">Added column</font> <b>email_new</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>email_new</b> to table <b>accounts</b>, already exist?<br/>";}
			try { $SQL->query("ALTER TABLE `accounts` ADD `email_new_time` INT( 15 ) NOT NULL;"); echo "<font color=\"green\">Added column</font> <b>email_new_time</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>email_new_time</b> to table <b>accounts</b>, already exist?<br/>";}
			try { $SQL->query("ALTER TABLE `accounts` ADD `created` INT( 11 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>created</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>created</b> to table <b>accounts</b>, already exist?<br/>";}
			try { $SQL->query("ALTER TABLE `accounts` ADD `rlname` VARCHAR( 255 ) NOT NULL DEFAULT '';"); echo "<font color=\"green\">Added column</font> <b>rlname</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>rlname</b> to table <b>accounts</b>, already exist?<br/>";}
			try { $SQL->query("ALTER TABLE `accounts` ADD `location` VARCHAR( 255 ) NOT NULL DEFAULT '';"); echo "<font color=\"green\">Added column</font> <b>location</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>location</b> to table <b>accounts</b>, already exist?<br/>";}
			try { $SQL->query("ALTER TABLE `accounts` ADD `page_access` INT( 11 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>page_access</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>page_access</b> to table <b>accounts</b>, already exist?<br/>";}
			try { $SQL->query("ALTER TABLE `accounts` ADD `email_code` VARCHAR( 255 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>email_code</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>email_code</b> to table <b>accounts</b>, already exist?<br/>";}
			try { $SQL->query("ALTER TABLE `accounts` ADD `next_email` INT( 11 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>next_email</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>next_email</b> to table <b>accounts</b>, already exist?<br/>";}
			try { $SQL->query("ALTER TABLE `accounts` ADD `premium_points` INT( 11 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>premium_points</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>premium_points</b> to table <b>accounts</b>, already exist?<br/>";}
			try { $SQL->query("ALTER TABLE `accounts` ADD `vote` INT( 11 ) NOT NULL;"); echo "<font color=\"green\">Added column</font> <b>vote</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>vote</b> to table <b>players</b>, already exist?<br/>";}
			try { $SQL->query("ALTER TABLE `accounts` ADD `last_post` INT( 11 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>last post</b> to table <b>accounts</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>last posts</b> to table <b>accounts</b>, already exist?<br/>";}
                 	try { $SQL->query("ALTER TABLE `accounts` ADD `flag` VARCHAR( 255 ) NOT NULL;"); echo "<font color=\"green\">Added column</font> <b>flag</b> to table <b>accounts</b><br />";}  catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>flag</b> to table <b>accounts</b>, already exist?<br/>";}
				echo "<h3>Add columns to table <b>guilds</b></h3>";
			try { $SQL->query('ALTER TABLE `guilds` ADD `description` TEXT NOT NULL DEFAULT "";'); echo "<font color=\"green\">Added column</font> <b>description</b> to table <b>guilds</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>description</b> to table <b>guilds</b>, already exist?<br/>";}
			try { $SQL->query('ALTER TABLE `guilds` ADD `logo_gfx_name` VARCHAR( 255 ) NOT NULL DEFAULT "";'); echo "<font color=\"green\">Added column</font> <b>logo_gfx_name</b> to table <b>guilds</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>logo_gfx_name</b> to table <b>guilds</b>, already exist?<br/>";}
				echo "<h3>Add columns to table <b>players</b></h3>";
			try { $SQL->query("ALTER TABLE `players` ADD `created` INT( 11 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>created</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>created</b> to table <b>players</b>, already exist?<br/>";}
			try { $SQL->query("ALTER TABLE `players` ADD `nick_verify` INT( 11 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>nick_verify</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>nick_verify</b> to table <b>players</b>, already exist?<br/>";}
			try { $SQL->query("ALTER TABLE `players` ADD `old_name` VARCHAR( 255 ) NOT NULL DEFAULT '';"); echo "<font color=\"green\">Added column</font> <b>old_name</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>old_name</b> to table <b>players</b>, already exist?<br/>";}
			try { $SQL->query("ALTER TABLE `players` ADD `hide_char` INT( 11 ) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>hide_char</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>hide_char</b> to table <b>players</b>, already exist?<br/>";}
			try { $SQL->query("ALTER TABLE `players` ADD `worldtransfer` int(11) NOT NULL DEFAULT '0';"); echo "<font color=\"green\">Added column</font> <b>worldtransfer</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>worldtransfer</b> to table <b>players</b>, already exist?<br/>";}
			try { $SQL->query("ALTER TABLE `players` ADD `comment` TEXT NOT NULL;"); echo "<font color=\"green\">Added column</font> <b>comment</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>comment</b> to table <b>players</b>, already exist?<br/>";}
                  try { $SQL->query("ALTER TABLE `players` ADD `show_outfit` TINYINT( 4 ) NOT NULL DEFAULT '1';"); echo "<font color=\"green\">Added column</font> <b>show_outfit</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>comment</b> to table <b>players</b>, already exist?<br/>";}
                  try { $SQL->query("ALTER TABLE `players` ADD `show_eq` TINYINT( 4 ) NOT NULL DEFAULT '1';"); echo "<font color=\"green\">Added column</font> <b>show_eq</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>comment</b> to table <b>players</b>, already exist?<br/>";}
                  try { $SQL->query("ALTER TABLE `players` ADD `show_bars`  TINYINT( 4 ) NOT NULL DEFAULT '1';"); echo "<font color=\"green\">Added column</font> <b>show_bars</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>comment</b> to table <b>players</b>, already exist?<br/>";}
                  try { $SQL->query("ALTER TABLE `players` ADD `show_skills` TINYINT( 4 ) NOT NULL DEFAULT '1';"); echo "<font color=\"green\">Added column</font> <b>show_skills</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>comment</b> to table <b>players</b>, already exist?<br/>";}
                  try { $SQL->query("ALTER TABLE `players` ADD `show_quests` TINYINT( 4 ) NOT NULL DEFAULT '1';"); echo "<font color=\"green\">Added column</font> <b>show_quests</b> to table <b>players</b><br />";} catch(PDOException $error) { echo "<font color=\"red\">Can't add column</font> <b>comment</b> to table <b>players</b>, already exist?<br/>";}
				echo "<h3>Add new tables to database</h3>";
			try { $SQL->query("CREATE TABLE `z_news_tickers` (
						`date` int(11) NOT NULL default '1',
						`author` int(11) NOT NULL,
						`image_id` int(3) NOT NULL default '0',
						`text` text NOT NULL,
						`hide_ticker` tinyint(1) NOT NULL
						) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
						echo '<font color=\"green\">Added table <b>z_news_tickers</b></font><br/>';
					} catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_news_tickers</b> not added.</font> Already exist?<br/>";}
			try { $SQL->query('CREATE TABLE `z_spells` (
						`name` VARCHAR(255) NOT NULL,
						`spell` VARCHAR(255) NOT NULL,
						`spell_type` VARCHAR(255) NOT NULL,
						`mana` INTEGER NOT NULL DEFAULT 0,
						`lvl` INTEGER NOT NULL DEFAULT 0,
						`mlvl` INTEGER NOT NULL DEFAULT 0,
						`soul` INTEGER NOT NULL DEFAULT 0,
						`pacc` VARCHAR(255) NOT NULL,
						`vocations` VARCHAR(255) NOT NULL,
						`conj_count` INTEGER NOT NULL DEFAULT 0,
						`hide_spell` INTEGER NOT NULL DEFAULT 0);');
					echo '<font color=\"green\">Added table <b>z_spells</b></font><br/>';
					} catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_spells</b> not added.</font> Already exist?<br/>";}
			try { $SQL->query('CREATE TABLE `z_monsters` (
						`hide_creature` tinyint(1) NOT NULL default \'0\',
			 			`name` varchar(255) NOT NULL,
			 			`mana` int(11) NOT NULL,
			 			`exp` int(11) NOT NULL,
			 			`health` int(11) NOT NULL,
			 			`speed_lvl` int(11) NOT NULL default \'1\',
			 			`use_haste` tinyint(1) NOT NULL,
			 			`voices` text NOT NULL,
			 			`immunities` varchar(255) NOT NULL,
			 			`summonable` tinyint(1) NOT NULL,
			 			`convinceable` tinyint(1) NOT NULL,
			 			`race` varchar(255) NOT NULL,
			 			`gfx_name` varchar(255) NOT NULL
					    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;'); 
			echo"<font color=\"green\">Added table <b>z_monsters</b></font><br/>";
			} catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_monsters</b> not added.</font> Already exist?<br/>";}
			try { $SQL->query("CREATE TABLE `z_ots_comunication` (
 						`id` int(11) NOT NULL auto_increment,
 						`name` varchar(255) NOT NULL,
  						`type` varchar(255) NOT NULL,
 						`action` varchar(255) NOT NULL,
  						`param1` varchar(255) NOT NULL,
 						`param2` varchar(255) NOT NULL,
 						`param3` varchar(255) NOT NULL,
 						`param4` varchar(255) NOT NULL,
 						`param5` varchar(255) NOT NULL,
 						`param6` varchar(255) NOT NULL,
 						`param7` varchar(255) NOT NULL,
 						`delete_it` int(2) NOT NULL default '1',
  						 PRIMARY KEY  (`id`)
 					    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1;");
			echo "<font color=\"green\">Added table <b>z_ots_comunication</b> (shopsystem).<br/></font>";
			}
			catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_ots_comunication</b> not added.
 
Rest of Install.php
PHP:
</font> Already exist?<br/>";}
			try { $SQL->query("CREATE TABLE `z_shop_offer` (
 						`id` int(11) NOT NULL auto_increment,
 						`points` int(11) NOT NULL default '0',
 						`itemid1` int(11) NOT NULL default '0',
 						`count1` int(11) NOT NULL default '0',
 						`itemid2` int(11) NOT NULL default '0',
 						`count2` int(11) NOT NULL default '0',
 						`offer_type` varchar(255) default NULL,
 						`offer_description` text NOT NULL,
 						`offer_name` varchar(255) NOT NULL,
 						`pid` INT(11) NOT NULL DEFAULT '0',  
 						PRIMARY KEY  (`id`)
 					    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;");
			echo "<font color=\"green\">Added table <b>z_shop_offer</b> (shopsystem).<br/></font>";
			}
			catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_shop_offer</b> not added.</font> Already exist?<br/>";}
			try { $SQL->query("CREATE TABLE `z_shop_history_item` (
 						`id` int(11) NOT NULL auto_increment,
 						`to_name` varchar(255) NOT NULL default '0',
    						`to_account` int(11) NOT NULL default '0',
   						`from_nick` varchar(255) NOT NULL,
 						`from_account` int(11) NOT NULL default '0',
 						`price` int(11) NOT NULL default '0',
 						`offer_id` int(11) NOT NULL default '0',
 						`trans_state` varchar(255) NOT NULL,
 						`trans_start` int(11) NOT NULL default '0',
 						`trans_real` int(11) NOT NULL default '0',
 						PRIMARY KEY  (`id`)
 					    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1;");
			echo "<font color=\"green\">Added table <b>z_shop_history_item</b> (shopsystem).<br/></font>";
			}
			catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_shop_history_item</b> not added.</font> Already exist?<br/>";}
			try { $SQL->query("CREATE TABLE `z_shop_history_pacc` (
 						`id` int(11) NOT NULL auto_increment,
 						`to_name` varchar(255) NOT NULL default '0',
 						`to_account` int(11) NOT NULL default '0',
 						`from_nick` varchar(255) NOT NULL,
 						`from_account` int(11) NOT NULL default '0',
 						`price` int(11) NOT NULL default '0',
 						`pacc_days` int(11) NOT NULL default '0',
 						`trans_state` varchar(255) NOT NULL,
 						`trans_start` int(11) NOT NULL default '0',
 						`trans_real` int(11) NOT NULL default '0',
 						PRIMARY KEY  (`id`)
 					    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1;"); 
			echo "<font color=\"green\">Added table <b>z_shop_history_pacc</b> (shopsystem).<br/></font>";
			}
			catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_shop_history_pacc</b> not added.</font> Already exist?<br/>";}

			try { $SQL->query("CREATE TABLE `z_polls` (
 						`id` int(11) NOT NULL auto_increment,
 						`question` varchar(255) NOT NULL,
 						`end` int(11) NOT NULL,
 						`start` int(11) NOT NULL,
 						`answers` int(11) NOT NULL,
 						`votes_all` int(11) NOT NULL,
 						PRIMARY KEY  (`id`)
 					    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;");
 			echo "<font color=\"green\">Added table <b>z_polls</b> (poll-system).<br/></font>";
			}
			catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_polls</b> not added.</font> Already exist?<br/>";}
			try { $SQL->query("CREATE TABLE `z_polls_answers` (
 						`poll_id` int(11) NOT NULL,
 						`answer_id` int(11) NOT NULL,
 						`answer` varchar(255) NOT NULL,
 						`votes` int(11) NOT NULL
 					    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
			echo "<font color=\"green\">Added table <b>z_polls_answers</b> (poll-system).<br/></font>";
			}
			catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_polls_answers</b> not added.</font> Already exist?<br/>";}

			try { $SQL->query("CREATE TABLE `zaypay_payment` (
						`payID` bigint(30) NOT NULL,
						`account_id` int(20) NOT NULL,
						`status` varchar(255) NOT NULL,
						PRIMARY KEY  (`payID`)
						) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
			echo "<font color=\"green\">Added table <b>zaypay_payment</b>.<br/></font>";
			}
			catch(PDOException $error) { echo "<font color=\"red\">Table <b>zaypay_payment</b> not added.</font> Already exist?<br/>";}
			try { $SQL->query("CREATE TABLE z_bug_tracker (
                                    `account` varchar(255) NOT NULL,
                                    `type` int(11) NOT NULL,
                                    `status` int(11) NOT NULL,
                                    `text` text NOT NULL,
                                    `id` int(11) NOT NULL,
                                    `subject` varchar(255) NOT NULL,
                                    `priority` int(11) NOT NULL,
                                    `reply` int(11) NOT NULL,
                                    `who` int(11) NOT NULL,
                                    `uid` int(11) NOT NULL AUTO_INCREMENT,
                                    `tag` int(11) NOT NULL,
                                    PRIMARY KEY (uid)
                                    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1;");
			echo "<font color=\"green\">Added table <b>z_bug_tracker</b> (bug tracker).<br/></font>";
			}
			catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_bug_tracker</b> not added.</font> Already exist?<br/>";}
		      try { $SQL->query("CREATE TABLE `z_changelog` (
 						`id` int(11) NOT NULL auto_increment,
 						`type` varchar(255) NOT NULL default '',
 						`where` varchar(255) NOT NULL default '',
 						`date` int(11) NOT NULL default '0',
 						`description` varchar(255) NOT NULL,
 						 PRIMARY KEY  (`id`)
 					    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;");
			echo "<font color=\"green\">Added table <b>z_changelog</b> (changelog).<br/></font>";
			}
			catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_changelog</b> not added.</font> Already exist?<br/>";}
                  try { $SQL->query("CREATE TABLE `z_forum` (
						`id` int(11) NOT NULL auto_increment,
						`sticky` tinyint(1) NOT NULL DEFAULT '0',
						`closed` tinyint(1) NOT NULL DEFAULT '0',
						`first_post` int(11) NOT NULL default '0',
						`last_post` int(11) NOT NULL default '0',
						`section` int(3) NOT NULL default '0',
						`icon_id` int(3) NOT NULL default '1',
						`replies` int(20) NOT NULL default '0',
						`views` int(20) NOT NULL default '0',
						`author_aid` int(20) NOT NULL default '0',
						`author_guid` int(20) NOT NULL default '0',
						`post_text` text NOT NULL,
						`post_topic` varchar(255) NOT NULL,
						`post_smile` tinyint(1) NOT NULL default '0',
						`post_date` int(20) NOT NULL default '0',
						`last_edit_aid` int(20) NOT NULL default '0',
						`edit_date` int(20) NOT NULL default '0',
						`post_ip` varchar(32) NOT NULL default '0.0.0.0',
						PRIMARY KEY  (`id`),
						KEY `section` (`section`)
						) ENGINE=MyISAM AUTO_INCREMENT=1;");
			echo "<font color=\"green\">Added table <b>z_forum</b> (forum).<br/></font>";
			}
			catch(PDOException $error) { echo "<font color=\"red\">Table <b>z_forum</b> not added.</font> Already exist?<br/>";}

            }
		$config['site']['install'] = 4;
		saveconfig_ini($config['site']);
		echo '<br>Tables and columns added to database.<br>Go to <a href="install.php?page=step&step=4&server_conf=yes">STEP 4 - Add samples</a>';
	}
	if($step == '4') {
		echo '<h1>STEP '.$step.'</h1>Add samples to DB:<br>';
		$check_news_ticker = $SQL->query('SELECT * FROM z_news_tickers WHERE image_id = 1 AND author = 1 AND hide_ticker = 0 LIMIT 1 OFFSET 0')->fetch();
		if(!isset($check_news_ticker['author'])) {
			$SQL->query('INSERT INTO z_news_tickers (date, author, image_id, text, hide_ticker) VALUES ('.time().', 1, 1, "Hello! Gesior account manager 0.3.6 installed. Report bugs Otland.Net Thread. Thanks to widnet and Norix.", 0)');
			echo "Added first news ticker.<br/>";
		} else {
			echo "News ticker sample is already in database. New sample is not needed.<br/>";
		}
		$check_voc_0 = $SQL->query('SELECT * FROM players WHERE name = "Rook Sample" LIMIT 1 OFFSET 0')->fetch();
		if(!isset($check_voc_0['name'])) {
			$SQL->query('INSERT INTO `players` (`id`, `name`, `world_id`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `save`, `skull`, `skulltime`, `rank_id`, `guildnick`, `lastlogout`, `blessings`, `balance`, `stamina`, `direction`, `loss_experience`, `loss_mana`, `loss_skills`, `loss_containers`, `loss_items`, `premend`, `online`, `marriage`, `promotion`, `deleted`, `description`, `created`, `nick_verify`, `old_name`, `hide_char`, `comment`) VALUES
			(NULL, "Rook Sample", 0, 1, 1, 1, 0, 150, 150, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 50, 50, 7, "", 400, 0, 0, 0, 0, 0, 0, 0, "", 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, "", 0, 0, "", 0, "")');
			echo "Added 'Rook Sample' character.<br/>";
		} else {
			echo "Character 'Rook Sample' already in database.<br/>";
		}
		$check_voc_1 = $SQL->query('SELECT * FROM players WHERE name = "Sorcerer Sample" LIMIT 1 OFFSET 0')->fetch();
		if(!isset($check_voc_1['name'])) {
			$SQL->query('INSERT INTO `players` (`id`, `name`, `world_id`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `save`, `skull`, `skulltime`, `rank_id`, `guildnick`, `lastlogout`, `blessings`, `balance`, `stamina`, `direction`, `loss_experience`, `loss_mana`, `loss_skills`, `loss_containers`, `loss_items`, `premend`, `online`, `marriage`, `promotion`, `deleted`, `description`, `created`, `nick_verify`, `old_name`, `hide_char`, `comment`) VALUES
			(NULL, "Sorcerer Sample", 0, 1, 1, 1, 1, 150, 150, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 50, 50, 7, "", 400, 0, 0, 0, 0, 0, 0, 0, "", 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, "", 0, 0, "", 0, "")');
			echo "Added 'Sorcerer Sample' character.<br/>";
		} else {
			echo "Character 'Sorcerer Sample' already in database.<br/>";
		}
		$check_voc_2 = $SQL->query('SELECT * FROM players WHERE name = "Druid Sample" LIMIT 1 OFFSET 0')->fetch();
		if(!isset($check_voc_2['name'])) {
			$SQL->query('INSERT INTO `players` (`id`, `name`, `world_id`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `save`, `skull`, `skulltime`, `rank_id`, `guildnick`, `lastlogout`, `blessings`, `balance`, `stamina`, `direction`, `loss_experience`, `loss_mana`, `loss_skills`, `loss_containers`, `loss_items`, `premend`, `online`, `marriage`, `promotion`, `deleted`, `description`, `created`, `nick_verify`, `old_name`, `hide_char`, `comment`) VALUES
			(NULL, "Druid Sample", 0, 1, 1, 1, 2, 150, 150, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 50, 50, 7, "", 400, 0, 0, 0, 0, 0, 0, 0, "", 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, "", 0, 0, "", 0, "")');
			echo "Added 'Druid Sample' character.<br/>";
		} else {
			echo "Character 'Druid Sample' already in database.<br/>";
		}
		$check_voc_3 = $SQL->query('SELECT * FROM players WHERE name = "Paladin Sample" LIMIT 1 OFFSET 0')->fetch();
		if(!isset($check_voc_3['name'])) {
			$SQL->query('INSERT INTO `players` (`id`, `name`, `world_id`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `save`, `skull`, `skulltime`, `rank_id`, `guildnick`, `lastlogout`, `blessings`, `balance`, `stamina`, `direction`, `loss_experience`, `loss_mana`, `loss_skills`, `loss_containers`, `loss_items`, `premend`, `online`, `marriage`, `promotion`, `deleted`, `description`, `created`, `nick_verify`, `old_name`, `hide_char`, `comment`) VALUES
			(NULL, "Paladin Sample", 0, 1, 1, 1, 3, 150, 150, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 50, 50, 7, "", 400, 0, 0, 0, 0, 0, 0, 0, "", 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, "", 0, 0, "", 0, "")');
			echo "Added 'Paladin Sample' character.<br/>";
		} else {
			echo "Character 'Paladin Sample' already in database.<br/>";
		}
		$check_voc_4 = $SQL->query('SELECT * FROM players WHERE name = "Knight Sample" LIMIT 1 OFFSET 0')->fetch();
		if(!isset($check_voc_4['name'])) {
			$SQL->query('INSERT INTO `players` (`id`, `name`, `world_id`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `save`, `skull`, `skulltime`, `rank_id`, `guildnick`, `lastlogout`, `blessings`, `balance`, `stamina`, `direction`, `loss_experience`, `loss_mana`, `loss_skills`, `loss_containers`, `loss_items`, `premend`, `online`, `marriage`, `promotion`, `deleted`, `description`, `created`, `nick_verify`, `old_name`, `hide_char`, `comment`) VALUES
			(NULL, "Knight Sample", 0, 1, 1, 1, 4, 150, 150, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 50, 50, 7, "", 400, 0, 0, 0, 0, 0, 0, 0, "", 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, "", 0, 0, "", 0, "")');
			echo "Added 'Knight Sample' character.<br/>";
			echo 'All samples added to database. Now you can go to <a href="install.php?page=step&step=5&server_conf=yes">STEP 5 - Set Admin Account</a>';
		} else {
			echo "Character 'Knight Sample' already in database.<br/>";
			$config['site']['install'] = 5;
			saveconfig_ini($config['site']);
			echo 'All samples added to database. Now you can go to <a href="install.php?page=step&step=5&server_conf=yes">STEP 5 - Set Admin Account</a><br/>';
		}
	}
	if($step == '5') {
		echo '<h1>STEP '.$step.'</h1>Set Admin Account<br>';
		$config['server'] = parse_ini_file($config['site']['server_path'].'config.lua');
		if(empty($_REQUEST['saveaccpassword'])) {
			echo 'Admin account number is: <b>1</b><br/>Set new password to this account.<br>';
			echo 'New password: <form action="install.php" method=POST><input type="text" name="newpass" size="35">(Don\'t give it password to anyone!)';
			echo '<input type="hidden" name="saveaccpassword" value="yes"><input type="hidden" name="page" value="step"><input type="hidden" name="step" value="5"><input type="submit" value="SET"></form><br>If account with number 1 doesn\'t exist installator will create it and set your password.';
		} else {
			$newpass = $_POST['newpass'];
				if(!check_password($newpass))
					echo 'Password contains illegal characters. Please use only a-Z and 0-9. <a href="install.php?page=step&step=5&server_conf=yes">GO BACK</a> and write other password.';
				else
				{
					$newpass_to_db = password_ency($newpass);
					$account = new OTS_Account();
					$account->load(1);
					if($account->isLoaded()) {
						$account->setPassword($newpass_to_db);
						$account->save();
						$account->setCustomField("page_access", 3);
					} else {
						$number = $account->create(1,1,1);
						$account->setPassword($newpass_to_db);
						$account->unblock();
						$account->save();
						$account->setCustomField("page_access", 3);
					}
					$_SESSION['account'] = 1;
					$_SESSION['password'] = $newpass;
					$logged = TRUE;
					$account->setCustomField("page_lastday", time());
					echo '<h1>Admin account number: 1<br>Admin account password: '.$_POST['newpass'].'</h1><br/><h3>It\'s end of first part of installation. Installation is blocked. From now don\'t modify file config.ini!<br>Press links to STEPs 6 and 7 in menu.</h3>'; 
					$config['site']['install'] = 'no';
					saveconfig_ini($config['site']);
				}
			}
		}
	}
	else
		echo "Account maker is already installed! To reinstall open file 'config.ini' in directory 'config' and change:<br/><b>install = \"no\"</b><br/>to:</br><b>install = \"start\"</b><br/>and enter this site again.";
}
?>
 
I did put the Config.lua and it gave me an error then i put the "Install.php you gave me" and i got this error

Parse error: syntax error, unexpected $end, expecting T_VARIABLE or T_DOLLAR_OPEN_CURLY_BRACES or T_CURLY_OPEN in C:\xampp\htdocs\install.php on line 363
 
I get This Error:

Warning: syntax error, unexpected '=' in C:/Documents and Settings/Jesus/Desktop/OTserv/config.lua on line 48 in C:\xampp\htdocs\install.php on line 150
File config.lua loaded from C:/Documents and Settings/Jesus/Desktop/OTserv/config.lua and it's not valid TFS config.lua file. Go to STEP 1 - select other directory. If it's your config.lua file from TFS contact with acc. maker author.
 
did you know how to install it? Any Tutorials? :/ sorry but i have never hear of it and i need at least an idea of how to install it :)

Thank you i will rep++ though.
 
This is Modern acc official subforum here at otland [LINK]

It's very easy to install
Download the files, open your Modern AAC and upload everything to your www folder

Now enter your web browser, and write http://127.0.0.1/ or yourip.com

You should either get directly to the Modern AAC Install website.. Just follow the instructions and you will have modern acc installed :)
 
Back
Top