• 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!

Website Gesior stopped working

nanduzenho

Member
Joined
Mar 21, 2021
Messages
187
Solutions
1
Reaction score
15
GitHub
nanduzenho
Good afternoon, I performed this procedure ( Move experience stages to Lua by ranisalt · Pull Request #1642 · otland/forgottenserver (https://github.com/otland/forgottenserver/pull/1642/files) ) to change Exp Stage to Lua on my server and now the site stopped working with the following error:
Parse error: syntax error, unexpected '{', expecting ';' in C:\xampp\htdocs\classes\configlua.php(56) : eval()'d code on line 1

PHP:
<?php
if(!defined('INITIALIZED'))
    exit;

class ConfigLUA extends Errors // NOT SAFE CLASS, LUA CONFIG CAN BE EXECUTED AS PHP CODE
{
    private $config;

    public function __construct($path = false)
    {
        if($path)
            $this->loadFromFile($path);
    }

    public function loadFromFile($path)
    {
        if(Website::fileExists($path))
        {
            $content = Website::getFileContents($path);
            $this->loadFromString($content);
        }
        else
        {
            new Error_Critic('#C-2', 'ERROR: <b>#C-2</b> : Class::ConfigLUA - LUA config file doesn\'t exist. Path: <b>' . $path . '</b>');
        }
    }

    public function fileExists($path)
    {
        return Website::fileExists($path);
    }

    public function loadFromString($string)
    {
        $lines = explode("\n", $string);
        if(count($lines) > 0)
            foreach($lines as $ln => $line)
            {
                $tmp_exp = explode('=', $line, 2);
                if(count($tmp_exp) >= 2)
                {
                    $key = trim($tmp_exp[0]);
                    if(substr($key, 0, 2) != '--')
                    {
                        $value = trim($tmp_exp[1]);
                        if(is_numeric($value))
                            $this->config[ $key ] = (float) $value;
                        elseif(in_array(substr($value, 0 , 1), array("'", '"')) && in_array(substr($value, -1 , 1), array("'", '"')))
                            $this->config[ $key ] = (string) substr(substr($value, 1), 0, -1);
                        elseif(in_array($value, array('true', 'false')))
                            $this->config[ $key ] = ($value == 'true') ? true : false;
                        else
                        {
                            foreach($this->config as $tmp_key => $tmp_value) // load values definied by other keys, like: dailyFragsToBlackSkull = dailyFragsToRedSkull
                                $value = str_replace($tmp_key, $tmp_value, $value);
                            $ret = @eval("return $value;");
                            if((string) $ret == '') // = parser error
                            {
                                new Error_Critic('', 'ERROR: <b>#C-1</b> : Class::ConfigLUA - Line <b>' . ($ln + 1) . '</b> of LUA config file is not valid [key: <b>' . $key . '</b>]');
                            }
                            $this->config[ $key ] = $ret;
                        }
                    }
                }
            }
    }

    public function getValue($key)
    {
        if(isset($this->config[ $key ]))
            return $this->config[ $key ];
        else
            new Error_Critic('#C-3', 'ERROR: <b>#C-3</b> : Class::ConfigLUA - Key <b>' . $key . '</b> doesn\'t exist.');
    }

    public function isSetKey($key)
    {
        return isset($this->config[ $key ]);
    }

    public function getConfig()
    {
        return $this->config;
    }
}

Could someone help me with this?
This error happens because I added this to config.lua on the server

Lua:
experienceStages = {
    { minlevel = 1, maxlevel = 7, multiplier = 7 },
    { minlevel = 8, maxlevel = 20, multiplier = 1 },
    { minlevel = 21, maxlevel = 50, multiplier = 5 },
    { minlevel = 51, maxlevel = 100, multiplier = 4 },
    { minlevel = 101, multiplier = 0.5 }
}
 
Back
Top