..:D&G:.. Posted February 1, 2015 Share Posted February 1, 2015 Hello guys, when I open up my server and try to login I keep getting this error: attempt to index local 'results' a nil value on line 17. --[[ Server - Login ]] Login = {} --[[ [function] Login.callBack(result) * Callback * Return: nil ]] function Login.callBack(result, player) if(result ~= "ERROR")then if(result['error'])then Login.doError(result['error'], player); else if(result['success'] == "ok")then if(getElementType(player) == "player")then setElementData(player, "userdata", result['data']); setElementData(player, "connected", true); Login.doSuccess(player); end else Login.doError("Auth. server problem", player) end end else Login.doError("Couldn't access the auth. server", player); end end --[[ [function] Login.doLogin(email, password) * Connecte l'utilisateur * Return: nil ]] function Login.doLogin(email, password) if email and password then outputChatBox("Email:"..email..' -'.." Password:"..password) callRemote("http://127.0.0.1/controller/api/getUserInformations", Login.callBack, client, email, password); else return false; end end --[[ [function] Login.doError(string message, element player) * Affiche une erreur * Return: nil ]] function Login.doError(message, player) if message and player then triggerClientEvent(player, "Login.doError", player, message); else return false; end end --[[ [function] Login.doSuccess(element player) * Utilisateur connecté, on ferme * Return: nil ]] function Login.doSuccess(player) if player then outputChatBox("DONE"); triggerClientEvent(player, "Login.doSuccess", player); end end --[[ Event Handlers ]] addEvent("Login.doLogin", true); addEventHandler("Login.doLogin", getRootElement(), Login.doLogin); I really don't know what's the problem here, does any one know how to fix it? Link to comment
undefined Posted February 1, 2015 Share Posted February 1, 2015 callRemote("http://127.0.0.1/controller/api/getUserInformations", Login.callBack, client, email, password); Where is the arguements? Link to comment
..:D&G:.. Posted February 1, 2015 Author Share Posted February 1, 2015 Somewhere here: --[[ Interface - Login Description: Interface de connexion au serveur ]] Login = {} Login.elements = {} Login.elements.circle = {} Login.elements.circle.x = 0.3*screenX; Login.elements.circle.y = 0.6*screenY; Login.elements.circle.alpha = 255; Login.elements.background = {} Login.elements.background.x = Login.elements.circle.x+(0.18*screenX/2); Login.elements.background.y = 0.6*screenY; Login.elements.background.alpha = 255; Login.elements.emailInput = {} Login.elements.emailInput.x = Login.elements.background.x + 0.28*Login.elements.background.x; Login.elements.emailInput.y = Login.elements.background.y + 0.1*Login.elements.background.y; Login.elements.emailInput.width = 0.3*screenX; Login.elements.emailInput.height = 0.03*screenX; Login.elements.emailInput.alpha = 255; Login.elements.emailInput.content = "[email protected]"; Login.elements.emailInput.options = {} Login.elements.emailText = {} Login.elements.emailText.x = Login.elements.background.x + 0.28*Login.elements.background.x; Login.elements.emailText.y = Login.elements.background.y + 0.03*Login.elements.background.y; Login.elements.emailText.alpha = 255; Login.elements.passwordInput = {} Login.elements.passwordInput.x = Login.elements.background.x + 0.28*Login.elements.background.x; Login.elements.passwordInput.y = Login.elements.background.y + 0.3*Login.elements.background.y; Login.elements.passwordInput.width = 0.3*screenX; Login.elements.passwordInput.height = 0.03*screenX; Login.elements.passwordInput.alpha = 255; Login.elements.passwordInput.content = ""; Login.elements.passwordInput.value = "test"; Login.elements.passwordInput.masked = true; Login.elements.passwordInput.options = {} Login.elements.passwordText = {} Login.elements.passwordText.x = Login.elements.background.x + 0.28*Login.elements.background.x; Login.elements.passwordText.y = Login.elements.background.y + 0.23*Login.elements.background.y; Login.elements.passwordText.alpha = 255; Login.elements.button = {} Login.elements.button.x = Login.elements.background.x + 1.1*Login.elements.background.x; Login.elements.button.y = Login.elements.background.y + 0.1*Login.elements.background.y; Login.elements.button.w = 0.15*screenX; Login.elements.button.h = 50; Login.elements.button.alpha = 255; Login.elements.button.disabled = false; Login.elements.button.options = {} --[[ ErrorDiv ]] Login.elements.errorDiv = {} Login.elements.errorDiv.x = 0.5*screenX; Login.elements.errorDiv.y = 0.6*screenY; Login.elements.errorDiv.width = 0.3*screenX; Login.elements.errorDiv.height = 0.2*screenY; Login.elements.errorDiv.alpha = 255; Login.elements.errorDiv.visible = false; Login.elements.errorDiv.text = ""; --[[ Loading ]] Login.elements.loading = {} Login.elements.loading.x = Login.elements.background.x + 0.5*Login.elements.background.x; Login.elements.loading.y = Login.elements.background.y + 0.1*Login.elements.background.y; Login.elements.loading.w = 100; Login.elements.loading.h = 100; Login.elements.loading.rotation = 360; Login.elements.loading.alpha = 255; Login.elements.loading.enabled = false; Login.elements.inputs = {} Login.elements.inputs.email = {} Login.elements.inputs.email.element = Login.elements.emailInput; Login.elements.inputs.email.gotFocus = false; Login.elements.inputs.password = {} Login.elements.inputs.password.element = Login.elements.passwordInput; Login.elements.inputs.password.gotFocus = false; Login.elements.buttons = {} Login.elements.buttons.login = {} Login.elements.buttons.login.element = Login.elements.button; Login.elements.buttons.login.functionToCall = "Login_doLogin"; Login.rendering = true; --[[ [function] Login.init() * Initialise l'interface de connexion * Return: nill ]] function Login.init() addEventHandler("onClientClick", getRootElement(), Login.click); addEventHandler("onClientRender", getRootElement(), Login.render); addEventHandler("onClientRender", getRootElement(), Login.mouseHover); addEventHandler("onClientCharacter", getRootElement(), Login.onCharacter); addEventHandler("onClientKey", getRootElement(), Login.onKey); -- we create te dashboard before the cursor, so, the cursor is hover the dashboard Dashboard.init(); Cursor.init(); Cursor.setCursor("normal"); Cursor.setFixe(true); end function Login.quit() removeEventHandler("onClientClick", getRootElement(), Login.click); removeEventHandler("onClientRender", getRootElement(), Login.render); removeEventHandler("onClientRender", getRootElement(), Login.mouseHover); removeEventHandler("onClientCharacter", getRootElement(), Login.onCharacter); removeEventHandler("onClientKey", getRootElement(), Login.onKey); Downloading.quit(); -- create the town around call ( getResourceFromName ( "worldgen" ), "TownInit" ) Player.init(); Mouvement.init(); Interaction.init(); Camera.init(); -- we enable it Dashboard.enable(); Cursor.setFixe(false); -- end --[[ [function] Login.render() * Render * ]] function Login.render() if Login.rendering then --[[ Error div ]] if Login.elements.errorDiv.visible then if Login.elements.errorDiv.opening then aX, aY = Misc.interpolateBetween(Login.elements.errorDiv.x, Login.elements.errorDiv.y, 0,Login.elements.errorDiv.x, Login.elements.errorDiv.y-0.07*screenX,0, Login.elements.errorDiv.startTick, 2000, "OutBounce"); else aX, aY = Misc.interpolateBetween(Login.elements.errorDiv.x, Login.elements.errorDiv.y-0.07*screenX, 0,Login.elements.errorDiv.x, Login.elements.errorDiv.y,0, Login.elements.errorDiv.startTick, 2000, "OutBounce"); end UI.radiusRectangle(aX, aY, Login.elements.errorDiv.width, Login.elements.errorDiv.height, Login.elements.errorDiv.alpha); dxDrawText(Login.elements.errorDiv.text, aX + 0.15*aX, aY + 0.12*aY,0,0, tocolor(255,255,255,255)); dxDrawImage(aX + 0.05*aX, aY + 0.1*aY, 30,30,"client/files/check_no.png", 0,0,0, tocolor(255,255,255,255)); end --[[ Login panel ]] -- background dxDrawRectangle(Login.elements.background.x, Login.elements.background.y, screenX, 0.18*screenX, tocolor(0,109,180,Login.elements.background.alpha)); -- input dxDrawText("Adresse email:", Login.elements.emailText.x, Login.elements.emailText.y, 0.3*screenX, 0.03*screenX, tocolor(255,255,255,Login.elements.emailText.alpha), 1.4); UI.input(Login.elements.emailInput.x, Login.elements.emailInput.y, Login.elements.emailInput.width, Login.elements.emailInput.height, Login.elements.emailInput.content, Login.elements.emailInput.alpha, Login.elements.emailInput.options); -- input dxDrawText("Mot de passe:", Login.elements.passwordText.x, Login.elements.passwordText.y, 0.3*screenX, 0.03*screenX, tocolor(255,255,255,Login.elements.passwordText.alpha), 1.4); UI.input(Login.elements.passwordInput.x, Login.elements.passwordInput.y, 0.3*screenX, 0.03*screenX, Login.elements.passwordInput.content, Login.elements.passwordInput.alpha, Login.elements.passwordInput.options); UI.normalButton(Login.elements.button.x, Login.elements.button.y, Login.elements.button.w, Login.elements.button.h, "Connexion", Login.elements.button.alpha, Login.elements.button.options); dxDrawText("Register on thesimsmta.com", Login.elements.button.x, Login.elements.button.y+Login.elements.button.h+10, Login.elements.button.x+Login.elements.button.w, (Login.elements.button.y+Login.elements.button.h+10)*2, tocolor(255,255,255,255)); -- waiting if(Login.elements.loading.enabled)then local rectAlpha = 150; if Login.elements.loading.opening then Login.elements.loading.alpha, _ = Misc.interpolateBetween(0,0,0,255,0,0,Login.elements.loading.startTick, 1000, "InQuad"); rectAlpha, _ = Misc.interpolateBetween(0,0,0,150,0,0,Login.elements.loading.startTick, 1000, "InQuad"); else Login.elements.loading.alpha, _ = Misc.interpolateBetween(255,0,0,0,0,0,Login.elements.loading.startTick, 1000, "InQuad"); rectAlpha, _ = Misc.interpolateBetween(150,0,0,0,0,0,Login.elements.loading.startTick, 1000, "InQuad"); end dxDrawRectangle(Login.elements.background.x, Login.elements.background.y, screenX, 0.18*screenX, tocolor(0,109,180,rectAlpha)); if(Login.elements.loading.rotation <= 0)then Login.elements.loading.rotation = 360; end Login.elements.loading.rotation = Login.elements.loading.rotation - 15; dxDrawImage(Login.elements.loading.x, Login.elements.loading.y, Login.elements.loading.w, Login.elements.loading.h, "client/files/loading.png", Login.elements.loading.rotation,0,0, tocolor(255,255,255,Login.elements.loading.alpha)); end --circle & avatar dxDrawImage(Login.elements.circle.x, Login.elements.circle.y, 0.18*screenX, 0.18*screenX, "client/files/ui-circle.png", 0,0,0,tocolor(255,255,255, Login.elements.circle.alpha)); dxDrawImage(Login.elements.circle.x+10, Login.elements.circle.y+10, 0.18*screenX-20, 0.18*screenX-20, "client/files/sample.png", 0,0,0,tocolor(255,255,255,Login.elements.circle.alpha)); end end --[[ [function] Login.mouseHover() * * Return: nill ]] function Login.mouseHover() local cursorX, cursorY, _, _, _ = getCursorPosition(); cursorX = cursorX*screenX; cursorY = cursorY*screenY; if(cursorX >= Login.elements.button.x and cursorX <= Login.elements.button.x+Login.elements.button.w and cursorY >= Login.elements.button.y and cursorY <= Login.elements.button.y + Login.elements.button.h)then Login.elements.button.options['hover'] = true; else Login.elements.button.options['hover'] = false; end end --[[ [function] Login.click(button, state, x, y) * Quand l'utilisateur clique sur l'ecran * Return: nill ]] function Login.click(button, state, x, y) if(button == "left" and state == "up")then -- inputs for i, v in pairs(Login.elements.inputs)do if(x >= v.element.x and x <= v.element.x + v.element.width and y >= v.element.y and y <= v.element.y + v.element.height)then v.gotFocus = true; v.element.options['focus'] = true; guiSetInputEnabled(true); else v.gotFocus = false; v.element.options['focus'] = false; -- vérifie l'input --[[for i, t in pairs(Login.elements.inputs)do if t ~= v then Login.checkInput(t); end end]] end end -- buttons Link to comment
undefined Posted February 1, 2015 Share Posted February 1, 2015 You misunderstood me. You called Login.callBack function, but you don't use Login.callBack function's arguements. callRemote("http://127.0.0.1/controller/api/getUserInformations", Login.callBack, client, email, password); It should be as follows: callRemote("http://127.0.0.1/controller/api/getUserInformations", Login.callBack(arg1, arg2), client, email, password); Link to comment
..:D&G:.. Posted February 1, 2015 Author Share Posted February 1, 2015 I don't think there should be arguments. Also, I use FatalTerror's Sims gamemode, I just got it now and I don't know how it works Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now