-- 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; end function 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) end function loadplayerdata(player, userid, forum_uid) p_info[player]["logged_in"] = true p_info[player]["uid"] = userid p_info[player]["fuid"] = forum_uid loadplayerchars(player) end function letplayerplay(player) if (player) then spawnPlayer(player, 1959.55, -1714.46, 10) fadeCamera(player, true) setCameraTarget(player,player) end end function 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 command function 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 end end -- Register the command handler and attach it to the 'consoleGiveWeapon' function addCommandHandler ( "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)