-- ACCOUNTSYSTEM SERVER SCRIPT------ TODO:-- - Mehr infos bei der char-auswahl-- - mehr spielerdatenspeichern-- - pos speichern und laden xd-- - halt class selection allgemein.. -- X Loginsperre bei bestimmter Anzahl versuchen (p_info[player]["loginattempts"] nigga fav) [DONE]-- - einheitliche Sprache nutzen im script .. auch kommentare xD -- - jemanden finden der das hier irgendwann mal liest sonst hab ichs umsonst geschrieben :D -- - aufhören selbstgespräche zu führen XD-- X schlafen gehen [DONE]--------p_info = {}p_chrs = {}c_info = {}function resetPlayer(player) p_info[player] = {} p_chrs[player] = {} c_info[player] = {} p_info[source]["loggedin"] = false; p_info[source]["loginattempts"] = 0;endfunction loadplayerchars(player) local res = mysql_query(m, "SELECT id, char_fname, char_lname, skinid, money FROM `rmta_server_chars` WHERE `active` = 1 AND `server_uid` = " .. p_info[player]["uid"] .. ";") p_info[player]["charcount"] = 0 for res,row in mysql_rows_assoc(res) do p_info[player]["charcount"] = p_info[player]["charcount"]+1 p_chrs[player][p_info[player]["charcount"]] = {} p_chrs[player][p_info[player]["charcount"]]["cid"] = row["id"] p_chrs[player][p_info[player]["charcount"]]["fname"] = row["char_fname"] p_chrs[player][p_info[player]["charcount"]]["lname"] = row["char_lname"] p_chrs[player][p_info[player]["charcount"]]["skinid"] = row["skinid"] p_chrs[player][p_info[player]["charcount"]]["money"] = row["money"] end mysql_free_result(res)endfunction loadplayerdata(player, userid, forum_uid) p_info[player]["logged_in"] = true p_info[player]["uid"] = userid p_info[player]["fuid"] = forum_uid loadplayerchars(player)endfunction letplayerplay(player) if (player) then spawnPlayer(player, 1959.55, -1714.46, 10) fadeCamera(player, true) setCameraTarget(player,player) endendfunction loginHandler(username,password) local res = mysql_query(m, "SELECT id, forum_uid, active, banned FROM `rmta_server_users` WHERE `name` = '" .. mysql_escape_string( m, username ) .. "' AND `pwd` = '" .. mysql_escape_string( m, password ) .. "' LIMIT 1") if username=="justspawn" then letplayerplay(client) else if not res then outputDebugString("MySQL Error SR_LOGIHAN1. Bitte melden!") else if mysql_num_rows(res) == 1 then local row = mysql_fetch_assoc(res) if row["active"] == 0 then triggerClientEvent(client, "loginFailed", getRootElement(), "inactive") elseif row["banned"] == 1 then triggerClientEvent(client, "loginFailed", getRootElement(), "ban") else local uid = row["id"] local res2 = mysql_query(m, "SELECT id FROM `rmta_server_chars` WHERE `active` = 1 AND `server_uid` = " .. uid .. " LIMIT 1;") if mysql_num_rows(res2) == 0 then triggerClientEvent(client, "loginFailed", getRootElement(), "nochar") else mysql_free_result(res2) p_info[client]["loggedin"] = true; loadplayerdata(client, uid, row["forum_uid"]) letplayerplay(client) end end else triggerClientEvent(client, "loginFailed", getRootElement(), "namepw") p_info[client]["loginattempts"] = p_info[client]["loginattempts"]+1 if(p_info[client]["loginattempts"] == 5) then kickPlayer(client, "Zu viele fehlgeschlagene Login-Versuche!") end end end end mysql_free_result(res)end-- Define our function that will handle this commandfunction consoleGiveWeapon ( playerSource, commandName, weapName ) -- If a player triggered it (rather than the admin) then if ( playerSource ) then -- Get the weapon ID from the name local weapID = getWeaponIDFromName ( weapName ) -- If it's a valid weapon if ( weapID ) then -- Give the weapon to the player giveWeapon ( playerSource, weapID, 20 ) -- Output it in the chat box outputChatBox ( "You got a " .. weapName, playerSource ) else outputChatBox ( "Invalid weapon name." ) end endend-- Register the command handler and attach it to the 'consoleGiveWeapon' functionaddCommandHandler ( "weapon", consoleGiveWeapon )addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), function() m = mysql_connect("localhost", "root", "", "realmta") if ( not m ) then outputDebugString("MySQL Connection failed!!") end for i,player in ipairs(getElementsByType("player")) do resetPlayer(player) end end)addEventHandler("onResourceStop", getResourceRootElement(getThisResource()), function() if ( m ) then mysql_close(m) end end)addEventHandler("onPlayerJoin", getRootElement(), function() resetPlayer(source) end)addEventHandler("onPlayerQuit", getRootElement(), function() p_info[source] = nil p_chrs[source] = nil c_info[source] = nil end)addEvent("submitLogin",true)addEventHandler("submitLogin",root,loginHandler)