All pastes #2088775 Raw Edit

Anfang von Accountsystem Servers

public lua v1 · immutable
#2088775 ·published 2011-10-10 17:04 UTC
rendered paste body
-- 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)