Jump to content

Help with MTA Fairplay


JJuane

Recommended Posts

Here is the log

================================================================== 
= Multi Theft Auto: San Andreas v1.3.5 
================================================================== 
= Server name      : El server de Mako 
= Server IP address:  
= Server port      : 22003 
=  
= Log file         : .. 1.3/Server/mods/deathmatch/logs/server.log 
= Maximum players  : 16 
= HTTP port        : 22005 
= Voice Chat       : Disabled 
= Bandwidth saving : None 
================================================================== 
[2014-03-10 16:56:58] Resources: 37 loaded, 0 failed 
[2014-03-10 16:56:58] MODULE: Loaded "MySQL 5.0 database module" (0.50) by "Alberto Alonso <[email protected]>" 
[2014-03-10 16:56:58] Starting resources... 
[2014-03-10 16:56:58] Server minclientversion is now 1.3.5-9.06178 
[2014-03-10 16:56:58] ERROR: roleplay-accounts\s_webserver.lua:85: attempt to index global 'databaseConfig' (a nil value) 
[2014-03-10 16:56:58] startResource: Resource 'roleplay-accounts' started 
[2014-03-10 16:56:58] Server started and is ready to accept connections! 
[2014-03-10 16:56:58] To stop the server, type 'shutdown' or press Ctrl-C 
[2014-03-10 16:56:58] Type 'help' for a list of commands. 
[2014-03-10 16:56:58] INFO: API returned 'ERROR' when sending 0 player(s) to web server. 
[2014-03-10 16:56:59] Querying MTA master server... success! (Auto detected IP:181.166.55.15) 
[2014-03-10 16:57:05] Full start beginning now. 
[2014-03-10 16:57:05] Starting roleplay-admin 
[2014-03-10 16:57:05] startResource: Resource 'roleplay-admin' started 
[2014-03-10 16:57:05] Starting roleplay-animations 
[2014-03-10 16:57:05] startResource: Resource 'roleplay-animations' started 
[2014-03-10 16:57:05] Starting roleplay-anticheat 
[2014-03-10 16:57:05] startResource: Resource 'roleplay-anticheat' started 
[2014-03-10 16:57:06] Starting roleplay-banking 
[2014-03-10 16:57:06] WARNING: roleplay-banking\s_banking.lua:192: Bad argument @ 'dbQuery' [Expected db-connection at argument 1, got nil] 
[2014-03-10 16:57:06] Error: MySQL query failed when tried to fetch all ATMs. 
[2014-03-10 16:57:06] WARNING: roleplay-banking\s_banking.lua:212: Bad argument @ 'dbQuery' [Expected db-connection at argument 1, got nil] 
[2014-03-10 16:57:06] WARNING: roleplay-banking\s_banking.lua:223: Bad argument @ 'dbQuery' [Expected db-connection at argument 1, got nil] 
[2014-03-10 16:57:06] WARNING: roleplay-banking\s_banking.lua:234: Bad argument @ 'dbQuery' [Expected db-connection at argument 1, got nil] 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-banking' started 
[2014-03-10 16:57:06] Starting roleplay-chat 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-chat' started 
[2014-03-10 16:57:06] Starting roleplay-dmv 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-dmv' started 
[2014-03-10 16:57:06] Starting roleplay-dofbokeh 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-dofbokeh' started 
[2014-03-10 16:57:06] Starting roleplay-donators 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-donators' started 
[2014-03-10 16:57:06] Starting roleplay-drugs 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-drugs' started 
[2014-03-10 16:57:06] Starting roleplay-emergency 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-emergency' started 
[2014-03-10 16:57:06] Starting roleplay-factions 
[2014-03-10 16:57:06] WARNING: roleplay-factions\s_factions.lua:33: Bad argument @ 'dbQuery' [Expected db-connection at argument 1, got nil] 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-factions' started 
[2014-03-10 16:57:06] Starting roleplay-fancy 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-fancy' started 
[2014-03-10 16:57:06] Starting roleplay-gates 
[2014-03-10 16:57:06] WARNING: roleplay-gates\s_gates.lua:158: Bad argument @ 'dbQuery' [Expected db-connection at argument 1, got nil] 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-gates' started 
[2014-03-10 16:57:06] Starting roleplay-gearbox 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-gearbox' started 
[2014-03-10 16:57:06] Starting roleplay-interiors 
[2014-03-10 16:57:06] WARNING: roleplay-interiors\s_elevators.lua:147: Bad argument @ 'dbQuery' [Expected db-connection at argument 1, got nil] 
[2014-03-10 16:57:06] WARNING: roleplay-interiors\s_interiors.lua:625: Bad argument @ 'dbQuery' [Expected db-connection at argument 1, got nil] 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-interiors' started 
[2014-03-10 16:57:06] Starting roleplay-inventory 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-inventory' started 
[2014-03-10 16:57:06] Starting roleplay-items 
[2014-03-10 16:57:06] WARNING: roleplay-items\s_worlditems.lua:110: Bad argument @ 'dbQuery' [Expected db-connection at argument 1, got nil] 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-items' started 
[2014-03-10 16:57:06] Starting roleplay-jobs 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-jobs' started 
[2014-03-10 16:57:06] Starting roleplay-logging 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-logging' started 
[2014-03-10 16:57:06] Starting roleplay-maps 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-maps' started 
[2014-03-10 16:57:06] Starting roleplay-notifications 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-notifications' started 
[2014-03-10 16:57:06] Starting roleplay-pd 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-pd' started 
[2014-03-10 16:57:06] Starting roleplay-phone 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-phone' started 
[2014-03-10 16:57:06] Starting roleplay-realism 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-realism' started 
[2014-03-10 16:57:06] Starting roleplay-settings 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-settings' started 
[2014-03-10 16:57:06] Starting roleplay-shaders 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-shaders' started 
[2014-03-10 16:57:06] Starting roleplay-shop 
[2014-03-10 16:57:06] WARNING: roleplay-shop\s_shop.lua:56: Bad argument @ 'dbQuery' [Expected db-connection at argument 1, got nil] 
[2014-03-10 16:57:06] Error: MySQL query failed when tried to fetch all shops. 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-shop' started 
[2014-03-10 16:57:06] Starting roleplay-utilities 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-utilities' started 
[2014-03-10 16:57:06] Starting roleplay-vehiclefuel 
[2014-03-10 16:57:06] WARNING: roleplay-vehiclefuel\s_vehiclefuel.lua:50: Bad argument @ 'dbQuery' [Expected db-connection at argument 1, got nil] 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-vehiclefuel' started 
[2014-03-10 16:57:06] Starting roleplay-vehiclenodes 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-vehiclenodes' started 
[2014-03-10 16:57:06] Starting roleplay-vehicles 
[2014-03-10 16:57:06] WARNING: roleplay-vehicles\s_vehicles.lua:230: Bad argument @ 'dbQuery' [Expected db-connection at argument 1, got nil] 
[2014-03-10 16:57:06] Error: MySQL query failed when tried to fetch all vehicles. 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-vehicles' started 
[2014-03-10 16:57:06] Starting roleplay-vehicleshop 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-vehicleshop' started 
[2014-03-10 16:57:06] Starting roleplay-weapons 
[2014-03-10 16:57:06] startResource: Resource 'roleplay-weapons' started 
[2014-03-10 16:57:06] Starting roleplay-weather 
[2014-03-10 16:57:07] startResource: Resource 'roleplay-weather' started 
[2014-03-10 16:57:07] Stopping roleplay-inventory 
[2014-03-10 16:57:07] Starting roleplay-inventory 
[2014-03-10 16:57:07] roleplay-inventory restarted successfully 
[2014-03-10 16:57:07] Weather: Weather API returned few clouds, 21.34, 3.66. Weather, temperature and wind speed set. 
[2014-03-10 16:57:35] Reloaded bans. 
[2014-03-10 16:57:58] INFO: API returned 'ERROR' when sending 0 player(s) to web server. 
[2014-03-10 16:58:06] Reloaded bans. 
[2014-03-10 16:58:36] Reloaded bans. 
[2014-03-10 16:58:58] INFO: API returned 'ERROR' when sending 0 player(s) to web server. 
[2014-03-10 16:59:06] Reloaded bans. 
[2014-03-10 16:59:33] SHUTDOWN: Got shutdown command from Console (No reason specified) 
[2014-03-10 16:59:33] Server stopped! 
[2014-03-10 16:59:33] Stopping resources.................... 
[2014-03-10 16:59:34] Closing SQLite3 database 
  

I don't know why im getting that errors, i think sql connection is ok, but, how to fix that?

Link to comment

Here is the mtaserver.conf

<config> 
     
    <!-- This parameter specifies the name the server will be visible as in the ingame server browser  
         and on Game-Monitor. It is a required parameter. --> 
    <servername>El server de Mako</servername> 
     
    <!-- ONLY USE THIS PARAMETER IF YOU ARE SURE OF WHAT YOU ARE DOING - it is generally only 
         needed for professional servers and should be left blank otherwise. 
         This parameter specifies the IP to use for servers that have multiple IP addresses. If left 
         blank, it will default to server's standard local IP address. --> 
    <!-- SERVERIP SHOULD BE LEFT BLANK UNLESS YOU ARE SURE OF WHAT YOU ARE DOING --> 
    <serverip></serverip> 
    <!-- WARNING: SETTING serverip AND THEN ASKING FOR SUPPORT CAN CAUSE DEATH OR INJURY --> 
     
    <!-- This parameter specifies the UDP port on which the server will be accepting incoming player 
         connections; default value: 22003. It is a required parameter. --> 
    <serverport>22003</serverport> 
     
    <!-- This parameter specifies the number of maximum player slots available on the server; default 
         value: 32. It is a required parameter. --> 
    <maxplayers>16</maxplayers> 
     
    <!-- This parameter specifies whether the builtin http server is enabled. 
         The builtin http server is used for webadmin and (if httpdownloadurl is empty) resource downloads. 
         Values: 0 - disabled , 1 - enabled ; default value: 1. Optional parameter. --> 
    <httpserver>1</httpserver> 
     
    <!-- This parameter specifies the TCP port on which the server will be accepting incoming http 
         connections. It can be set to the same value as <serverport>. It is a required parameter 
         if <httpserver> is set to 1. --> 
    <httpport>22005</httpport> 
     
    <!-- If set, this parameter specifies the external URL from which clients will be able to download 
         needed resources ingame. If not set (or the external URL files are incorrect), resource downloads 
         are switched to the internal http server. --> 
    <httpdownloadurl></httpdownloadurl> 
     
    <!-- This parameter specifies whether the client files for hosting on an external web server should be 
         automatically copied into mods/deathmatch/resource-cache/http-client-files/ 
         Only relevant if <httpdownloadurl> is set. 
         Values: 0 - disabled , 1 - enabled ; default value: 1. Optional parameter. --> 
    <httpautoclientfiles>1</httpautoclientfiles> 
     
    <!-- This parameter is deprecated. Please use httpmaxconnectionsperclient instead--> 
    <httpconnectionsperclient></httpconnectionsperclient> 
     
    <!-- This parameter limits the number of http connections each client can make. Depending on the type 
         of http server that is used, a lower figure may reduce download timeouts. 
         Available range: 1 to 8. --> 
    <httpmaxconnectionsperclient>4</httpmaxconnectionsperclient> 
     
    <!-- This parameter limits the number http connections that an IP can initiate over a short period of time. 
         Available range: 1 to 100. default value: 20 --> 
    <httpdosthreshold>20</httpdosthreshold> 
     
    <!-- By default, the server will block the use of customized GTA:SA data files. --> 
    <!-- To allow specific client files, add one or more of the following: --> 
    <!-- <client_file name="data/carmods.dat" verify="0"/> --> 
     
    <!-- Comma separated list of disabled anti-cheats. 
         For details see [url=https://wiki.multitheftauto.com/wiki/Anti-cheat_guide]https://wiki.multitheftauto.com/wiki/Anti-cheat_guide[/url] 
         e.g. To disable anti-cheat #2 and #3, use: 2,3 --> 
    <disableac></disableac> 
     
    <!-- Comma separated list of enabled special detections. 
         A special detection is a type of anti-cheat for (usually) harmless game modifications. 
         Competitive servers may wish to enable special detections, but most servers should leave this setting blank. 
         For details see [url=https://wiki.multitheftauto.com/wiki/Anti-cheat_guide]https://wiki.multitheftauto.com/wiki/Anti-cheat_guide[/url] 
         e.g. To enable special detection #12 use: 12 --> 
    <enablesd></enablesd> 
     
    <!-- This parameter specifies whether communications between the server and client is encrypted. 
         Encryption can help prevent network data being viewed and modified. 
         Values: 0 - disabled , 1 - enabled ; default value: 1. Optional parameter. --> 
    <networkencryption>1</networkencryption> 
     
    <!-- Minimum client version. Clients with a lower version will not be allowed to connect. After 
         disconnection, clients will be given an opportunity to download an update. 
         If left blank, this setting is disabled and there are no restrictions on who can connect. 
         Version numbers are described here: [url=https://wiki.multitheftauto.com/wiki/GetPlayerVersion]https://wiki.multitheftauto.com/wiki/GetPlayerVersion[/url] 
         and look like this: 1.1.0-9.03100.0  
         Note that this setting only determines if the client should be prompted to update. The actual 
         build number they receive will be the highest available. See: [url=https://nightly.multitheftauto.com/ver]https://nightly.multitheftauto.com/ver[/url]  --> 
    <minclientversion>1.3.5-9.06178</minclientversion> 
     
    <!-- This parameter specifies if/when the <minclientversion> setting is automatically updated. 
         Keeping <minclientversion> updated can help reduce cheating. 
         Note: The instant setting (2) is only recommened for competitive servers. 
         Values: 0 - disabled, 1 - enabled (delayed by a few days), 2 - enabled (instant) ; default value: 1.  --> 
    <minclientversion_auto_update>1</minclientversion_auto_update> 
     
    <!-- Recommended client version. When connecting, if clients have a lower version, they will be given 
         the option to download an update. If left blank, this setting is disabled. 
         Note that this setting only determines if the client should be prompted to update. The actual 
         build number they receive will be the highest available. See: [url=https://nightly.multitheftauto.com/ver]https://nightly.multitheftauto.com/ver[/url]  --> 
    <recommendedclientversion></recommendedclientversion> 
     
    <!-- This parameter can be used to make the server report to Game-Monitor master servers, allowing it to 
         be visible in the ingame server browser. An additional UDP port needs to be available for this to 
         work (value from <serverport> + 123 , so on a default <serverport> value 22003 the right port 
         will be 22126 ). Available values: 0 - disabled , 1 - enabled. Optional parameter, defaults to 0. --> 
    <ase>1</ase> 
     
    <!-- This parameter allows you to disable LAN broadcasting. --> 
    <donotbroadcastlan>0</donotbroadcastlan> 
     
    <!-- If set, players will have to provide a password specified below, before they can connect to the 
         server. If left blank, server doesn't require a password from them. --> 
    <password></password> 
     
    <!-- This parameter reduces the server's bandwidth usage by using various optimizations. 
         Values: none, medium or maximum ; default value: medium --> 
    <bandwidth_reduction>none</bandwidth_reduction> 
     
    <!-- The following ???_sync_interval parameters determine the time in milliseconds between certain 
         network packets being sent. More information on how each settings works is available here: 
         https://wiki.multitheftauto.com/wiki/Server_mtaserver.conf --> 
    <!-- Player sync interval. Default: 100 --> 
    <player_sync_interval>100</player_sync_interval> 
    <!-- Lightweight (player) sync interval. Used when players are far apart. Default: 1500 --> 
    <lightweight_sync_interval>1500</lightweight_sync_interval> 
    <!-- Camera sync interval. Default: 500 --> 
    <camera_sync_interval>500</camera_sync_interval> 
    <!-- Ped sync interval. Default: 400 --> 
    <ped_sync_interval>500</ped_sync_interval> 
    <!-- Unoccupied_vehicle sync interval. Default: 400 --> 
    <unoccupied_vehicle_sync_interval>1000</unoccupied_vehicle_sync_interval> 
    <!-- Keysync mouse rotation sync interval. For limiting key sync packets due to mouse movement. Default: 100 --> 
    <keysync_mouse_sync_interval>100</keysync_mouse_sync_interval> 
    <!-- Keysync analog movement sync interval. For limiting key sync packets due to joystick movement. Default: 100 --> 
    <keysync_analog_sync_interval>100</keysync_analog_sync_interval> 
     
    <!-- This parameter can improve the reliability of shots when using certain weapons. However, it uses more bandwidth. 
         Values: 0 - disabled , 1 - enabled ; default value: 0. --> 
    <bullet_sync>0</bullet_sync> 
     
    <!-- This parameter sets the amount of extrapolation that clients will apply to remote vehicles. This can reduce 
         some of the latency induced location disparency by predicting where the remote vehicles will probably be. 
         Depending on the gamemode, an incorrect prediction may have a negative effect. Therefore this setting 
         should be considered experimental. 
         Available range: 0 to 100.  Default - 0 --> 
    <vehext_percent>0</vehext_percent> 
     
    <!-- This parameter places a limit on how much time (in milliseconds) the vehicle extrapolation will attempt to 
         compensate for. 
         Only relevant if <vehext_percent> is greater than zero. 
         Available range: 50 to 500.  Default - 150 --> 
    <vehext_ping_limit>150</vehext_ping_limit> 
     
    <!-- This parameter can reduce the delay of player actions appearing on remote clients by 2 frames (approx 50ms). 
         Due to the impact this may have on shot lag compensation, it should be considered experimental. 
         Values: 0 - disabled , 1 - enabled ; default value: 0. --> 
    <latency_reduction>0</latency_reduction> 
     
    <!-- Specifies the location and file name of this servers unique private key. 
         This is used to prevent private files saved on the client from being read by other servers. 
         More infomation about client private files can be found here: [url=https://wiki.multitheftauto.com/wiki/Filepath]https://wiki.multitheftauto.com/wiki/Filepath[/url] 
         Keep a backup of this file in a safe place. Default value: server-id.keys--> 
    <idfile>server-id.keys</idfile> 
     
    <!-- Specifies the location and name of the main server log file. If left blank, server won't be saving this file. --> 
    <logfile>logs/server.log</logfile> 
     
    <!-- As well as the main log file, login successes and failures are logged here for easy reviewing of security issues. 
         If left blank, this file is not used --> 
    <authfile>logs/server_auth.log</authfile> 
     
    <!-- Specifies the location and name of the file used to log database queries. 
         The server command 'debugdb' sets the amount of logging. --> 
    <dbfile>logs/db.log</dbfile> 
     
    <!-- Specifies the location and name of the file used to log loadstring function calls. 
         If left blank or not set, no logging is done. --> 
    <!-- <loadstringfile>logs/loadstring.log</loadstringfile> --> 
     
    <!-- This parameter specifies the location and name of the Access Control List settings file. If left 
         blank, server will use acl.xml file, located in the same folder as this configuration file. --> 
    <acl>acl.xml</acl> 
     
    <!-- Specifies the location and name of the debugscript log file. If left blank, server won't be saving this file. --> 
    <scriptdebuglogfile>logs/scripts.log</scriptdebuglogfile> 
     
    <!-- Specifies the level of the debugscript log file. Available values: 0, 1, 2, 3. When not set, defaults to 0. --> 
    <scriptdebugloglevel>0</scriptdebugloglevel> 
     
    <!-- Specifies the level of the html debug. Available values: 0, 1, 2, 3. When not set, defaults to 0. --> 
    <htmldebuglevel>0</htmldebuglevel> 
     
    <!-- Specifies the frame rate limit that will be applied to connecting clients. 
         Available range: 25 to 100. Default: 36. --> 
    <fpslimit>36</fpslimit> 
     
    <!-- Specifies whether or not players should automatically be logged in based on their IP adresses --> 
    <autologin>0</autologin> 
     
    <!-- This parameter specifies whether or not to enable player voice chat in-game 
         Values: 0 - disabled , 1 - enabled --> 
    <voice>0</voice> 
     
    <!-- This parameter specifies the sample rate for voice chat.  'voice' parameter must be set to 1 for this to be effective. 
         Higher settings use more bandwidth and increase the sampling quality of voice chat 
         Values: 0 - Narrowband (8kHz), 1 - Wideband (16kHz), 2 - Ultrawideband (32kHz).  Default - 1 --> 
    <voice_samplerate>1</voice_samplerate> 
     
    <!-- This parameter specifies the voice quality for voice chat.  'voice' parameter must be set to 1 for this to be effective. 
         Higher settings use more bandwidth and increase the the overall quality of voice chat 
         Available range: 0 to 10.  Default - 4 --> 
    <voice_quality>4</voice_quality> 
     
    <!-- Specifies the voice bitrate, in bps. This optional parameter overrides the previous two settings.  
         If not set, MTA handles this automatically.  Use with care. --> 
    <!-- <voice_bitrate>24600</voice_bitrate> --> 
     
    <!-- This parameter specifies the path to use for a basic backup of some server files. 
         Note that basic backups are only made during server startup. Default value: backups --> 
    <backup_path>backups</backup_path> 
     
    <!-- This parameter specifies the number of days between each basic backup. 
         Backups are only made during server startup, so the actual interval may be much longer. 
         Setting backup_interval to 0 will disable backups 
         Available range: 0 to 30.  Default - 3 --> 
    <backup_interval>3</backup_interval> 
     
    <!-- This parameter specifies the maximum number of backup copies to keep. 
         Setting backup_copies to 0 will disable backups 
         Available range: 0 to 100.  Default - 5 --> 
    <backup_copies>5</backup_copies> 
     
    <!-- This parameter specifies when the internal sqlite databases should be defragmented. 
         http://www.sqlite.org/lang_vacuum.html 
         Values: 0 - Never, 1 - On server start only after basic backup, 2 - On server start always.  Default - 1 --> 
    <compact_internal_databases>1</compact_internal_databases> 
     
    <!-- Specifies the module(s) which are loaded with the server. To load several modules, add more <module> 
         parameter(s). Optional parameter. --> 
    <!-- <module src="sample_win32.dll"/> --> 
    <!-- <module src="sample_linux.so"/> --> 
          <module src="mta_mysql.dll" /> 
     
    <!-- Specifies resources that are loaded when the server starts and/or which are protected from being stopped. 
         To specify several resources, add more <resource> parameter(s). --> 
     
    <!-- play is the default freeroam gamemode. Remove the following line to prevent it from starting. --> 
    <resource src="roleplay-initializer" startup="1" default="true" protected="1" /> 
     
</config> 
  

Link to comment

Yes, everything.

S_account.lua

--[[ 
    - FairPlay Gaming: Roleplay
    (c) Copyright 2014 FairPlay Gaming. All rights reserved.
]]
 
local checkMD5s = {}
local timers = {}
local reconnecting = false
local g_motd = false
local connection = nil
local databaseConfig = {
    ["type"] = "mysql",
    ["table"] = "mta",
    ["hostname"] = "127.0.0.1",
    ["username"] = "root",
    ["password"] = "1234"
}
 
local addCommandHandler_ = addCommandHandler
    addCommandHandler  = function(commandName, fn, restricted, caseSensitive)
    if (type(commandName) ~= "table") then
        commandName = {commandName}
    end
    for key, value in ipairs(commandName) do
        if (key == 1) then
            addCommandHandler_(value, fn, restricted, false)
        else
            addCommandHandler_(value,
                function(player, ...)
                    fn(player, ...)
                end, false, false
            )
        end
    end
end
 
addCommandHandler("setmotd",
    function(player, cmd, ...)
        if (not isClientLeadAdmin(player)) then
            outputServerLog("Command Error: " .. getPlayerName(player) .. " tried to execute command /" .. cmd .. ".")
            return
        else
            local message = table.concat({...}, " ")
            if (not ...) or (not message) or (#message <= 1) then
                outputChatBox("SYNTAX: /" .. cmd .. " [message of the day]", player, 210, 160, 25, false)
            else
                g_motd = message
                outputAdminLog(getPlayerName(player) .. " updated the Message of the Day.")
               
                for i,v in ipairs(getElementsByType("player")) do
                    triggerClientEvent(v, ":_updateFreshMOTD_:", v, g_motd)
                    if (isClientPlaying(v)) then
                        triggerClientEvent(v, ":_addNewMessage_:", v, "MESSAGE OF THE DAY: " .. message, 35000)
                    end
                end
               
                dbExec(connection, "UPDATE `??` SET `??` = '??' WHERE `??` = '??'", "config", "value", message, "key", "motd")
            end
        end
    end
)
 
addCommandHandler("motd",
    function(player, cmd)
        if (not isClientPlaying(player)) then return end
        if (not getElementData(player, "roleplay:temp.motdcmd")) then
            triggerClientEvent(player, ":_addNewMessage_:", player, "MESSAGE OF THE DAY: " .. g_motd)
        end
        setElementData(player, "roleplay:temp.motdcmd", 1, false)
        setTimer(function(player)
            if (isElement(player)) then
                removeElementData(player, "roleplay:temp.motdcmd")
            end
        end, 20000, 1, player)
    end
)
 
addCommandHandler("saveme",
    function(player, cmd)
        if (not isClientLoggedIn(player)) then return end
        if (not getElementData(player, "roleplay:accounts.lastsave")) then
            saveCharacter(player, true)
            setElementData(player, "roleplay:accounts.lastsave", 1, false)
            setTimer(function(player)
                removeElementData(player, "roleplay:accounts.lastsave")
            end, 60000, 1, player)
        else
            outputChatBox("You cannot save so often! Please wait for a minute or so and try again then.", player, 245, 20, 20, false)
        end
    end
)
 
function getSQLConnection()
    if (not reconnecting) then
        return connection
    else
        setTimer(getSQLConnection, 150, 1)
    end
end
 
function reconnectSQL()
    outputServerLog("Notice: MySQL reconnect incoming.")
    reconnecting = true
    destroyElement(connection)
    connection = dbConnect(databaseConfig["type"], "dbname=" .. databaseConfig["table"] .. ";host=" .. databaseConfig["hostname"], databaseConfig["username"], databaseConfig["password"])
    if (not connection) then
        outputServerLog("Error: MySQL connection is not established!")
        setTimer(reconnectSQL, 1500, 1)
    else
        reconnecting = false
        outputServerLog("Notice: MySQL connection is established!")
        testSQLConnection()
        loadKilledCharacters()
    end
    return true
end
 
function testSQLConnection()
    if (connection) then
        local query = dbQuery(connection, "SELECT `??` FROM `??` WHERE `??` = '??' LIMIT 1", "value", "config", "key", "motd")
        if (query) then
            local result, num_affected_rows, errmsg = dbPoll(query, -1)
            if (num_affected_rows > 0) then
                for result,row in pairs(result) do
                    if (row["value"]) then
                        outputServerLog("Notice: Connection is working!")
                        g_motd = row["value"]
                    end
                end
            else
                outputServerLog("Error: MySQL query failed.")
            end 
        else
            outputServerLog("Error: MySQL query failed.")
        end
    else
        outputServerLog("Error: Could not test the query connection due to no stable MySQL connection.")
        outputServerLog("... attempting a repair ...")
        connection = dbConnect(databaseConfig["type"], "dbname=" .. databaseConfig["table"] .. ";host=" .. databaseConfig["hostname"], databaseConfig["username"], databaseConfig["password"])
        if (not connection) then
            outputServerLog("... repair failed!")
        else
            outputServerLog("... repair successful!")
        end
    end
end
 
setTimer(function()
    for i,v in ipairs(getElementsByType("player")) do
        if (getPlayerPing(v) > 5000) and (isClientLoggedIn(v)) then
            outputAdminLog(getPlayerName(v) .. " was kicked for high ping (" .. getPlayerPing(v) .. "/5000).")
            kickPlayer(v, "Autokick: Lower your ping!")
        end
    end
end, 30000, 0)
 
addEventHandler("onResourceStart", resourceRoot,
    function()
        aclReload()
        connection = dbConnect(databaseConfig["type"], "dbname=" .. databaseConfig["table"] .. ";host=" .. databaseConfig["hostname"], databaseConfig["username"], databaseConfig["password"])
       
        if (not connection) then
            outputServerLog("Error: MySQL connection is not established!")
        else
            outputServerLog("Notice: MySQL connection is established!")
            testSQLConnection()
        end
       
        setTimer(function()
            reconnectSQL()
        end, 60000*5, 0)
       
        for i,v in ipairs(getElementsByType("player")) do
            if (isClientInTutorial(v)) then
                local x, y, z = tonumber(getElementData(v, "roleplay:temp.x")), tonumber(getElementData(v, "roleplay:temp.y")), tonumber(getElementData(v, "roleplay:temp.z"))
                setElementPosition(v, x, y, z)
                setElementInterior(v, 0)
                setElementDimension(v, 0)
                setCameraTarget(v, v)
                setElementRotation(v, 0, 0, 90)
                setElementFrozen(v, false)
                setElementData(v, "roleplay:accounts.state", 2, true)
                removeElementData(v, "roleplay:temp.md5rofl")
                removeElementData(v, "roleplay:temp.x")
                removeElementData(v, "roleplay:temp.y")
                removeElementData(v, "roleplay:temp.z")
                setElementData(v, "roleplay:accounts.option3", 1, false)
                dbExec(connection, "UPDATE `??` SET `??` = '??' WHERE `??` = '??'", "accounts", "option_3", 1, "id", getAccountID(v))
                toggleAllControls(v, true, true, true)
            end
        end
    end
)
 
addEventHandler("onResourceStop", resourceRoot,
    function()
        if (isElement(connection)) then destroyElement(connection) end
        for i,v in ipairs(getElementsByType("player")) do
            if (isClientPlaying(v)) then
                saveCharacter(v)
            end
            if (getElementData(v, "roleplay:temp.motdcmd")) then
                removeElementData(v, "roleplay:temp.motdcmd")
            end
        end
    end
)
 
addEvent(":_raiseGameHour_:", true)
addEventHandler(":_raiseGameHour_:", root,
    function()
        if (source ~= client) then
            if (isElement(source)) then
                kickPlayer(source, "no cheat plz!!")
            end
           
            if (isElement(client)) then
                kickPlayer(client, "no cheat plz!")
            end
           
            return
        end
       
        --outputDebugString("Just a note: " .. getPlayerName(client) .. " played for +1 minute (total: " .. getCharacterTime(client) .. ").")
        setElementData(client, "roleplay:characters.stime", tonumber(getElementData(client, "roleplay:characters.stime"))+1, false)
        setElementData(client, "roleplay:characters.time", tonumber(getElementData(client, "roleplay:characters.time"))+1, false)
    end
)
 
addEventHandler("onPlayerQuit", root,
    function(type, reason, responsible)
        if (isClientLoggedIn(source) and isClientPlaying(source)) then
            saveCharacter(source)
        end
       
        if (not exports['roleplay-accounts']:isClientPlaying(source)) then return end
        if (type ~= "Kicked") and (type ~= "Banned") and (type ~= "Quit") then
            local x, y, z = getElementPosition(source)
            for i,v in ipairs(getElementsByType("player")) do
                if (getDistanceBetweenPoints3D(x, y, z, getElementPosition(v)) < 30) then
                    outputChatBox(" (( " .. getRealPlayerName(source) .. " left the game [" .. type .. "] ))", v, 190, 190, 190, false)
                end
            end
        end
    end
)
 
addEvent(":_submitLogin_:", true)
addEventHandler(":_submitLogin_:", root,
    function(username, password)
        if (source ~= client) then return end
        if (username) and (password) then
Link to comment

This is wrong.

[2014-03-10 16:57:06] WARNING: roleplay-banking\s_banking.lua:212: Bad argument @ 'dbQuery' [Expected db-connection at argument 1, got nil] 

You are not choosing a SQL Connection at the first argument - I see the same errors over multiple systems so I'm guessing thats a issue with more than 1 resource

Link to comment
  • Moderators

@Controlled: Well, this problem is because the SQL connection failed. Socialz didn't handle this.

@JJuane:

The first error:

[2014-03-10 16:56:58] ERROR: roleplay-accounts\s_webserver.lua:85: attempt to index global 'databaseConfig' (a nil value) 

Is bug that Socialz introduced in his code. But isn't a problem if you aren't using the web interface. I'll send a pull request to him when I'll fix it on my side.

By the way, the real problem is coming from you. Here are the possible reasons:

1 - The db connection details aren't correct (ip, login, password, database name

local databaseConfig = { 
    ["type"] = "mysql", --Do not modify 
    ["table"] = "", --The database name you created in phpMyAdmin 
    ["hostname"] = "127.0.0.1", --The ip of the MySQL server (127.0.0.1 means the local computer) 
    ["username"] = "", --The login 
    ["password"] = "" --The password 
} 

2 - Your MySQL server isn't started

3 - You didn't create a database in it and/or you forgot to import the sql dump in it (database.sql) (must be done with phpMyAdmin)

I checked the git repo quickly but I guess there is no other possible reason.

EDIT:

The first error:

[2014-03-10 16:56:58] ERROR: roleplay-accounts\s_webserver.lua:85: attempt to index global 'databaseConfig' (a nil value) 

Is bug that Socialz introduced in his code. But isn't a problem if you aren't using the web interface. I'll send a pull request to him when I'll fix it on my side.

Pull request sent: https://github.com/Socialz/lua-mta-fairplay/pull/1

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...