Jump to content

Login FadeCamera


Siriius

Recommended Posts

Posted

 

 

Good night, I had problems with a login panel that I am using, the login works correctly, the only inconvenience I have is that I try to add a spawn point and it does not work, the image goes black, then try to do it with the "FadeCamera " But I have not been successful in trying, so could you help me?

PD: Sry for my bad english.

 

Server Side:

function PlayerLogin(username,password)
	if username == "" then
		return triggerClientEvent(source,"login_text",source,"error","Escribe tu nombre de usuario")
	end
	if password == "" then
		return triggerClientEvent(source,"login_text",source,"error","Escribe tu contraseña.")
	end
	local account = getAccount ( username, password )
	if account == false then
		return triggerClientEvent(source,"login_text",source,"error","Usuario o Contraseña incorrecta!")
	end
	logIn(source, account, password)
	triggerClientEvent(source,"onLogin",source)
	triggerClientEvent(source,"saveLoginToXML",source,username)
	triggerClientEvent(source,"login_text",source,"sucess","Te has logeado con exito.")
end
addEvent("onRequestLogin",true)
addEventHandler("onRequestLogin",getRootElement(),PlayerLogin)

function registerPlayer(username,password)
	if username == "" then
		return triggerClientEvent(source,"login_text",source,"Error","Escriba su nombre de usuario.")
	end
	if password == "" then
		return triggerClientEvent(source,"login_text",source,"Error","Escriba su contraseña.")
	end
	local account = getAccount (username,password)
	if account then
		return triggerClientEvent(source,"login_text",source,"Error","Nombre De Usuario o Contraseña incorrecta.")
	end
	local accountAdded = addAccount(tostring(username),tostring(password))
	if not accountAdded then
		return triggerClientEvent(source,"login_text",source,"Error","Este usuario esta en uso.")
	end
	outputChatBox ("[Usuario: #FFFFFF" .. username .. " #FF0000| Contraseña: #FFFFFF" .. password .. "#00FF00 ]",source,255,255,255,true)
	triggerClientEvent(source,"onRegister",source)
	triggerClientEvent(source,"login_text",source,"sucess","Se ha creado la cuenta con exito.")
end
addEvent("onRequestRegister",true)
addEventHandler("onRequestRegister",getRootElement(),registerPlayer)

Client Side:

sx,sy = guiGetScreenSize()
x,y =  (sx/1366), (sy/768)

messages = {}
editBox = {}
editBox.__index = editBox
editBox.instances = {}

function onClientResourceStart()
	tick = getTickCount()
	font = dxCreateFont("gfx/sans-pro-regular.ttf", 25)
	sound = playSound("sfx/NightMare.ogg",true)
	g = {}
	g.user = editBox.new()
	g.user:setPosition(x*610,y*320,x*213,y*41)
	g.user.color = {79,86,94,160}
	g.user.font = font
	g.user.text = loadLoginFromXML()
	g.user.visible = true
	g.user.onInput = function()
		g.user.color = {87, 95, 104, 160}
	end
	g.user.onOutput = function()
		g.user.color = {79,86,94,160}
	end
	
	g.pass = editBox.new()
	g.pass:setPosition(x*610,y*390,x*213,y*41)
	g.pass.color = {79,86,94,160}
	g.pass.font = font
	g.pass.masked = true
	g.pass.visible = true
	g.pass.onInput = function()
		g.pass.color = {87, 95, 104, 160}
	end
	g.pass.onOutput = function()
		g.pass.color = {79,86,94,160}
	end
	
	g.rUser = editBox.new()
	g.rUser:setPosition(x*610,y*320,x*213,y*41)
	g.rUser.color = {79,86,94,160}
	g.rUser.font = font
	g.rUser.onInput = function()
		g.rUser.color = {87, 95, 104, 160}
	end
	g.rUser.onOutput = function()
		g.rUser.color = {79,86,94,160}
	end
	
	g.rPass = editBox.new()
	g.rPass:setPosition(x*610,y*390,x*213,y*41)
	g.rPass.color = {79,86,94,160}
	g.rPass.font = font
	g.rPass.masked = true
	g.rPass.onInput = function()
		g.rPass.color = {87, 95, 104, 160}
	end
	g.rPass.onOutput = function()
		g.rPass.color = {79,86,94,160}
	end

	showChat(false)
	showCursor(true)
	addEventHandler("onClientRender", root, paint)
end
addEventHandler("onClientResourceStart",resourceRoot,onClientResourceStart)

function paint()
	local rh,ry = interpolateBetween(0, (y*559/2)+y*105, 0, y*559, y*105, 0, (getTickCount()-tick)/1400, "Linear")

	dxDrawImage(0,0,sx,sy,"gfx/wallpaper.png")
	if getTickCount()-tick > 1500 then
		local bColor = tocolor(25, 20, 15,150)
		if isMouseInPosition(x*552,y*450,x*262,y*44) then
			bColor = tocolor(50, 40, 30,150)
		end
		dxDrawImage(x*605,y*90,x*199,y*178,"gfx/logo.png",getTickCount()/30,0,0,tocolor(255,255,255,255))
		
		if not inRegisterTab then
			dxDrawRectangle(x*562,y*320,x*49,y*41,tocolor(40,45,48,160))
			dxDrawImage(x*563,y*322,x*45,y*38,"gfx/user.png")
			dxDrawRectangle(x*562,y*390,x*49,y*41,tocolor(40,45,48,160))
			dxDrawImage(x*563,y*392,x*45,y*38,"gfx/pass.png")
		
			dxDrawRectangle(x*561,y*450,x*262,y*44,bColor)
			dxDrawBorder(x*561,y*450,x*262,y*44,tocolor(0,0,0,240),1.4)
			dxDrawText("Comenzar",x*561,y*450,x*552+x*262,y*450+y*44,tocolor(255,255,255),y*1,font,"center","center")
			dxDrawText("MTA: Dawn Of The NightMare",x*-400,y*-450,x*552+x*262,y*450+y*44,tocolor(100,90,80),y*1,font,"center","center")
		
			dxDrawText([[ ¿No estas registrado?
      #00ccff¡Registrate!]],x*588,y*420,x*588+x*192,y*592+y*43,tocolor(255,255,255),y*0.6,font,"center","center",false,false,false,true)
		end

		for k,self in pairs(editBox.instances) do
			if self.visible then
				local px,py,pw,ph = self:getPosition()
				local text = self.masked and string.gsub(self.text,".","•") or self.text
				local alignX = dxGetTextWidth(text,self.scale,self.font) <= pw and "left" or "right"
				dxDrawRectangle(px, py, pw, ph, tocolor(unpack(self.color)))
				dxDrawText(text,px+x*5, py,px-x*5+pw, py+ph,tocolor(unpack(self.textColor)),self.scale,self.font,alignX,"center",true)		
				if self.input and dxGetTextWidth(text,self.scale,self.font) <= pw then
					local lx = dxGetTextWidth(text,self.scale,self.font)+px+x*8
					local lx = dxGetTextWidth(text,self.scale,self.font)+px+x*8
					dxDrawLine(lx, py+y*10, lx, py+ph-y*10, tocolor(255,255,255,math.abs(math.sin(getTickCount()/300))*200), 2)
				end
			end
		end
		
	if not inRegisterTab then
		dxDrawBorder(x*561,y*320,x*262,y*41,tocolor(0,0,0,240),1)
		dxDrawBorder(x*561,y*390,x*262,y*41,tocolor(0,0,0,240),1)
	else
	
		dxDrawRectangle(x*561,y*320,x*49,y*41,tocolor(40,45,48,160))
		dxDrawImage(x*563,y*322,x*45,y*38,"gfx/user.png")
		dxDrawRectangle(x*561,y*390,x*49,y*41,tocolor(40,45,48,160))
		dxDrawImage(x*563,y*392,x*45,y*38,"gfx/pass.png")
		dxDrawBorder(x*561,y*320,x*262,y*41,tocolor(0,0,0,240),1)
		dxDrawBorder(x*561,y*390,x*262,y*41,tocolor(0,0,0,240),1)
		
		dxDrawRectangle(x*561,y*450,x*262,y*44,bColor)
		dxDrawBorder(x*561,y*450,x*262,y*44,tocolor(0,0,0,240),1.4)
		dxDrawText("Registrar",x*561,y*450,x*552+x*262,y*450+y*44,tocolor(255,255,255),y*1,font,"center","center")
	end
	
	end
		
	if getKeyState("backspace") then
		for k,self in pairs(editBox.instances) do
			if self.visible and self.input then
				if not keyState then
					keyState = getTickCount() + 400
					self.text = string.sub(self.text,1,string.len(self.text)-1)
				elseif keyState and keyState < getTickCount() then
					keyState = getTickCount()+100
					self.text = string.sub(self.text,1,string.len(self.text)-1)
				end
				return
			end
		end
		keyState = nil
	end
	
	for i, v in pairs(messages) do
		if v.visible then
			dxDrawRectangle(sx-dxGetTextWidth(v.text, 1, "default-bold")-10, 35*i, dxGetTextWidth(v.text, 1, "default-bold")+50, 32,v.color)
			dxDrawBorder(sx-dxGetTextWidth(v.text, 1, "default-bold")-10, 35*i, dxGetTextWidth(v.text, 1, "default-bold")+20, 32,tocolor(255,255,255,200),1.6)
			dxDrawText(v.text,sx-dxGetTextWidth(v.text,1,"default-bold")-5, 9+35*i, dxGetTextWidth(v.text, 1, "default-bold"), 32, tocolor(255,255,255,255), 1, "default-bold", "left", "top", false, false ,false, true)
		end
	end
end

function onClientClick(button,state,cX,cY)
	if not isCursorShowing() then
		return
	end
	if button == "left" and state == "up" then
		for k,self in pairs(editBox.instances) do
			if self.visible then
				if self.input then
					self.input = nil
					self.onOutput()
				end
				local x,y,w,h = self:getPosition()
				if isMouseInPosition(x,y,w,h) then
					self.input = true
					self.onInput()
				end
			end
		end
		if not inRegisterTab then
			if isMouseInPosition(x*552,y*450,x*262,y*44) then
				triggerServerEvent("onRequestLogin",localPlayer,g.user.text,g.pass.text)
			elseif isMouseInPosition(x*700,y*520,x*44,y*22) then
				g.user.visible = false
				g.pass.visible = false
				
				inRegisterTab = true
				g.rUser.visible = true
				g.rPass.visible = true
			end
		else
			if isMouseInPosition(x*552,y*450,x*262,y*44) then
				triggerServerEvent("onRequestRegister",localPlayer,g.rUser.text,g.rPass.text)
			end
		end
	end
end
addEventHandler("onClientClick", root, onClientClick)

function onClientCharacter(character)
	if not isCursorShowing() then
		return
	end
	for k,self in pairs(editBox.instances) do
		if self.visible and self.input then
			if (string.len(self.text)) < self.maxLength then
				self.text = self.text..character
			end
		end
	end
end
addEventHandler("onClientCharacter", root, onClientCharacter)

function editBox.new()
	local self = setmetatable({}, editBox)
	self.text = ""
	self.maxLength = 20
	self.scale = y*0.8
	self.state = "normal"
	self.font = "sans"
	self.color = {255,255,255,220}
	self.textColor = {255,255,255,220}
	table.insert(editBox.instances, self)
	return self
end

function editBox:getPosition()
	return self.x, self.y, self.w, self.h
end

function editBox:setPosition(x,y,w,h)
	self.x, self.y, self.w, self.h = x,y,w,h
	return true
end

function dxDrawBorder(posX, posY,posW,posH,color,scale)
	dxDrawLine(posX, posY, posX+posW, posY, color, scale,false)
	dxDrawLine(posX, posY, posX, posY+posH, color, scale,false)
	dxDrawLine(posX, posY+posH, posX+posW, posY+posH, color, scale,false)
	dxDrawLine(posX+posW, posY, posX+posW, posY+posH, color, scale,false)
end

function isMouseInPosition(x,y,width,height)
    local cx, cy = getCursorPosition()
    local cx, cy = (cx*sx), (cy*sy)
    if (cx >= x and cx <= x + width) and (cy >= y and cy <= y + height) then
        return true
    else
        return false
    end
end

function onLogin()
	showChat(true)
	showCursor(false)
	stopSound(sound)
	removeEventHandler("onClientRender", root, paint)
	removeEventHandler("onClientClick",root,onClientClick)
	removeEventHandler("onClientCharacter",root,onClientCharacter)
end
addEvent("onLogin", true)
addEventHandler("onLogin", localPlayer, onLogin)

function onRegister()
	g.user.visible = true
	g.pass.visible = true
	g.user.text = ""
	g.pass.text = ""
		
	inRegisterTab = false
	g.rUser.visible = false
	g.rPass.visible = false
	g.rUser.text = ""
	g.rPass.text = ""
end
addEvent("onRegister", true)
addEventHandler("onRegister", localPlayer, onRegister)

function loadLoginFromXML()
	local XML = xmlLoadFile ("userdata.xml")
    if not XML then
        XML = xmlCreateFile("userdata.xml", "login")
    end
	
    local usernameNode = xmlFindChild (XML, "username", 0)
    if usernameNode then
        return xmlNodeGetValue(usernameNode)
    else
		return ""
    end
    xmlUnloadFile ( XML )
end

function saveLoginToXML(username)
    local XML = xmlLoadFile ("userdata.xml")
    if not XML then
        XML = xmlCreateFile("userdata.xml", "login")
    end
	if (username ~= "") then
		local usernameNode = xmlFindChild (XML, "username", 0)
		if not usernameNode then
			usernameNode = xmlCreateChild(XML, "username")
		end
		xmlNodeSetValue (usernameNode, tostring(username))
	end
    xmlSaveFile(XML)
    xmlUnloadFile (XML)
end
addEvent("saveLoginToXML", true)
addEventHandler("saveLoginToXML", root, saveLoginToXML)


function login_text(result, text)
	if result == "sucess" then
	    addNotification(text,1)
	elseif result == "error" then
	    addNotification(text,2)
	end
end
addEvent("login_text",true)
addEventHandler("login_text",root,login_text)

function addNotification(text, type)
    text = string.gsub(text,"#%x%x%x%x%x%x","")
	local i = 0
	if text == "" or text == nil or not type then
		return
	else
		for i = 0, #messages+1 do
			if messages[i] then
				i = i+1
			else
				messages[i] = {}
				messages[i].text = text
				messages[i].visible = true
				if type == 1 then
					messages[i].color = tocolor(0,255,0,160)
				elseif type == 2 then
					messages[i].color = tocolor(255,0,0,160)
				end
				setTimer(removeNotify,5000,1,i)
			end
		end
	end
end

function removeNotify(i)
	messages[i].visible = false
	messages[i] = nil
end

function dxDrawBorder(posX, posY,posW,posH,color,scale)
	dxDrawLine(posX, posY, posX+posW, posY, color, scale,false)
	dxDrawLine(posX, posY, posX, posY+posH, color, scale,false)
	dxDrawLine(posX, posY+posH, posX+posW, posY+posH, color, scale,false)
	dxDrawLine(posX+posW, posY, posX+posW, posY+posH, color, scale,false)
end

 

Posted
11 hours ago, Dimos7 said:

for spawn a player is


spawnPlayer(player, x, y, z)

 

I know but already try to add a spawn point and add the function "FadeCamera" But the screen is still dark.

 

  • Moderators
Posted (edited)
17 hours ago, Siriius said:

 

 

Good night, I had problems with a login panel that I am using, the login works correctly, the only inconvenience I have is that I try to add a spawn point and it does not work, the image goes black, then try to do it with the "FadeCamera " But I have not been successful in trying, so could you help me?

PD: Sry for my bad english.

 

Server Side:


function PlayerLogin(username,password)
	if username == "" then
		return triggerClientEvent(source,"login_text",source,"error","Escribe tu nombre de usuario")
	end
	if password == "" then
		return triggerClientEvent(source,"login_text",source,"error","Escribe tu contraseña.")
	end
	local account = getAccount ( username, password )
	if account == false then
		return triggerClientEvent(source,"login_text",source,"error","Usuario o Contraseña incorrecta!")
	end
	logIn(source, account, password)
	triggerClientEvent(source,"onLogin",source)
	triggerClientEvent(source,"saveLoginToXML",source,username)
	triggerClientEvent(source,"login_text",source,"sucess","Te has logeado con exito.")
end
addEvent("onRequestLogin",true)
addEventHandler("onRequestLogin",getRootElement(),PlayerLogin)

function registerPlayer(username,password)
	if username == "" then
		return triggerClientEvent(source,"login_text",source,"Error","Escriba su nombre de usuario.")
	end
	if password == "" then
		return triggerClientEvent(source,"login_text",source,"Error","Escriba su contraseña.")
	end
	local account = getAccount (username,password)
	if account then
		return triggerClientEvent(source,"login_text",source,"Error","Nombre De Usuario o Contraseña incorrecta.")
	end
	local accountAdded = addAccount(tostring(username),tostring(password))
	if not accountAdded then
		return triggerClientEvent(source,"login_text",source,"Error","Este usuario esta en uso.")
	end
	outputChatBox ("[Usuario: #FFFFFF" .. username .. " #FF0000| Contraseña: #FFFFFF" .. password .. "#00FF00 ]",source,255,255,255,true)
	triggerClientEvent(source,"onRegister",source)
	triggerClientEvent(source,"login_text",source,"sucess","Se ha creado la cuenta con exito.")
end
addEvent("onRequestRegister",true)
addEventHandler("onRequestRegister",getRootElement(),registerPlayer)

Client Side:


sx,sy = guiGetScreenSize()
x,y =  (sx/1366), (sy/768)

messages = {}
editBox = {}
editBox.__index = editBox
editBox.instances = {}

function onClientResourceStart()
	tick = getTickCount()
	font = dxCreateFont("gfx/sans-pro-regular.ttf", 25)
	sound = playSound("sfx/NightMare.ogg",true)
	g = {}
	g.user = editBox.new()
	g.user:setPosition(x*610,y*320,x*213,y*41)
	g.user.color = {79,86,94,160}
	g.user.font = font
	g.user.text = loadLoginFromXML()
	g.user.visible = true
	g.user.onInput = function()
		g.user.color = {87, 95, 104, 160}
	end
	g.user.onOutput = function()
		g.user.color = {79,86,94,160}
	end
	
	g.pass = editBox.new()
	g.pass:setPosition(x*610,y*390,x*213,y*41)
	g.pass.color = {79,86,94,160}
	g.pass.font = font
	g.pass.masked = true
	g.pass.visible = true
	g.pass.onInput = function()
		g.pass.color = {87, 95, 104, 160}
	end
	g.pass.onOutput = function()
		g.pass.color = {79,86,94,160}
	end
	
	g.rUser = editBox.new()
	g.rUser:setPosition(x*610,y*320,x*213,y*41)
	g.rUser.color = {79,86,94,160}
	g.rUser.font = font
	g.rUser.onInput = function()
		g.rUser.color = {87, 95, 104, 160}
	end
	g.rUser.onOutput = function()
		g.rUser.color = {79,86,94,160}
	end
	
	g.rPass = editBox.new()
	g.rPass:setPosition(x*610,y*390,x*213,y*41)
	g.rPass.color = {79,86,94,160}
	g.rPass.font = font
	g.rPass.masked = true
	g.rPass.onInput = function()
		g.rPass.color = {87, 95, 104, 160}
	end
	g.rPass.onOutput = function()
		g.rPass.color = {79,86,94,160}
	end

	showChat(false)
	showCursor(true)
	addEventHandler("onClientRender", root, paint)
end
addEventHandler("onClientResourceStart",resourceRoot,onClientResourceStart)

function paint()
	local rh,ry = interpolateBetween(0, (y*559/2)+y*105, 0, y*559, y*105, 0, (getTickCount()-tick)/1400, "Linear")

	dxDrawImage(0,0,sx,sy,"gfx/wallpaper.png")
	if getTickCount()-tick > 1500 then
		local bColor = tocolor(25, 20, 15,150)
		if isMouseInPosition(x*552,y*450,x*262,y*44) then
			bColor = tocolor(50, 40, 30,150)
		end
		dxDrawImage(x*605,y*90,x*199,y*178,"gfx/logo.png",getTickCount()/30,0,0,tocolor(255,255,255,255))
		
		if not inRegisterTab then
			dxDrawRectangle(x*562,y*320,x*49,y*41,tocolor(40,45,48,160))
			dxDrawImage(x*563,y*322,x*45,y*38,"gfx/user.png")
			dxDrawRectangle(x*562,y*390,x*49,y*41,tocolor(40,45,48,160))
			dxDrawImage(x*563,y*392,x*45,y*38,"gfx/pass.png")
		
			dxDrawRectangle(x*561,y*450,x*262,y*44,bColor)
			dxDrawBorder(x*561,y*450,x*262,y*44,tocolor(0,0,0,240),1.4)
			dxDrawText("Comenzar",x*561,y*450,x*552+x*262,y*450+y*44,tocolor(255,255,255),y*1,font,"center","center")
			dxDrawText("MTA: Dawn Of The NightMare",x*-400,y*-450,x*552+x*262,y*450+y*44,tocolor(100,90,80),y*1,font,"center","center")
		
			dxDrawText([[ ¿No estas registrado?
      #00ccff¡Registrate!]],x*588,y*420,x*588+x*192,y*592+y*43,tocolor(255,255,255),y*0.6,font,"center","center",false,false,false,true)
		end

		for k,self in pairs(editBox.instances) do
			if self.visible then
				local px,py,pw,ph = self:getPosition()
				local text = self.masked and string.gsub(self.text,".","•") or self.text
				local alignX = dxGetTextWidth(text,self.scale,self.font) <= pw and "left" or "right"
				dxDrawRectangle(px, py, pw, ph, tocolor(unpack(self.color)))
				dxDrawText(text,px+x*5, py,px-x*5+pw, py+ph,tocolor(unpack(self.textColor)),self.scale,self.font,alignX,"center",true)		
				if self.input and dxGetTextWidth(text,self.scale,self.font) <= pw then
					local lx = dxGetTextWidth(text,self.scale,self.font)+px+x*8
					local lx = dxGetTextWidth(text,self.scale,self.font)+px+x*8
					dxDrawLine(lx, py+y*10, lx, py+ph-y*10, tocolor(255,255,255,math.abs(math.sin(getTickCount()/300))*200), 2)
				end
			end
		end
		
	if not inRegisterTab then
		dxDrawBorder(x*561,y*320,x*262,y*41,tocolor(0,0,0,240),1)
		dxDrawBorder(x*561,y*390,x*262,y*41,tocolor(0,0,0,240),1)
	else
	
		dxDrawRectangle(x*561,y*320,x*49,y*41,tocolor(40,45,48,160))
		dxDrawImage(x*563,y*322,x*45,y*38,"gfx/user.png")
		dxDrawRectangle(x*561,y*390,x*49,y*41,tocolor(40,45,48,160))
		dxDrawImage(x*563,y*392,x*45,y*38,"gfx/pass.png")
		dxDrawBorder(x*561,y*320,x*262,y*41,tocolor(0,0,0,240),1)
		dxDrawBorder(x*561,y*390,x*262,y*41,tocolor(0,0,0,240),1)
		
		dxDrawRectangle(x*561,y*450,x*262,y*44,bColor)
		dxDrawBorder(x*561,y*450,x*262,y*44,tocolor(0,0,0,240),1.4)
		dxDrawText("Registrar",x*561,y*450,x*552+x*262,y*450+y*44,tocolor(255,255,255),y*1,font,"center","center")
	end
	
	end
		
	if getKeyState("backspace") then
		for k,self in pairs(editBox.instances) do
			if self.visible and self.input then
				if not keyState then
					keyState = getTickCount() + 400
					self.text = string.sub(self.text,1,string.len(self.text)-1)
				elseif keyState and keyState < getTickCount() then
					keyState = getTickCount()+100
					self.text = string.sub(self.text,1,string.len(self.text)-1)
				end
				return
			end
		end
		keyState = nil
	end
	
	for i, v in pairs(messages) do
		if v.visible then
			dxDrawRectangle(sx-dxGetTextWidth(v.text, 1, "default-bold")-10, 35*i, dxGetTextWidth(v.text, 1, "default-bold")+50, 32,v.color)
			dxDrawBorder(sx-dxGetTextWidth(v.text, 1, "default-bold")-10, 35*i, dxGetTextWidth(v.text, 1, "default-bold")+20, 32,tocolor(255,255,255,200),1.6)
			dxDrawText(v.text,sx-dxGetTextWidth(v.text,1,"default-bold")-5, 9+35*i, dxGetTextWidth(v.text, 1, "default-bold"), 32, tocolor(255,255,255,255), 1, "default-bold", "left", "top", false, false ,false, true)
		end
	end
end

function onClientClick(button,state,cX,cY)
	if not isCursorShowing() then
		return
	end
	if button == "left" and state == "up" then
		for k,self in pairs(editBox.instances) do
			if self.visible then
				if self.input then
					self.input = nil
					self.onOutput()
				end
				local x,y,w,h = self:getPosition()
				if isMouseInPosition(x,y,w,h) then
					self.input = true
					self.onInput()
				end
			end
		end
		if not inRegisterTab then
			if isMouseInPosition(x*552,y*450,x*262,y*44) then
				triggerServerEvent("onRequestLogin",localPlayer,g.user.text,g.pass.text)
			elseif isMouseInPosition(x*700,y*520,x*44,y*22) then
				g.user.visible = false
				g.pass.visible = false
				
				inRegisterTab = true
				g.rUser.visible = true
				g.rPass.visible = true
			end
		else
			if isMouseInPosition(x*552,y*450,x*262,y*44) then
				triggerServerEvent("onRequestRegister",localPlayer,g.rUser.text,g.rPass.text)
			end
		end
	end
end
addEventHandler("onClientClick", root, onClientClick)

function onClientCharacter(character)
	if not isCursorShowing() then
		return
	end
	for k,self in pairs(editBox.instances) do
		if self.visible and self.input then
			if (string.len(self.text)) < self.maxLength then
				self.text = self.text..character
			end
		end
	end
end
addEventHandler("onClientCharacter", root, onClientCharacter)

function editBox.new()
	local self = setmetatable({}, editBox)
	self.text = ""
	self.maxLength = 20
	self.scale = y*0.8
	self.state = "normal"
	self.font = "sans"
	self.color = {255,255,255,220}
	self.textColor = {255,255,255,220}
	table.insert(editBox.instances, self)
	return self
end

function editBox:getPosition()
	return self.x, self.y, self.w, self.h
end

function editBox:setPosition(x,y,w,h)
	self.x, self.y, self.w, self.h = x,y,w,h
	return true
end

function dxDrawBorder(posX, posY,posW,posH,color,scale)
	dxDrawLine(posX, posY, posX+posW, posY, color, scale,false)
	dxDrawLine(posX, posY, posX, posY+posH, color, scale,false)
	dxDrawLine(posX, posY+posH, posX+posW, posY+posH, color, scale,false)
	dxDrawLine(posX+posW, posY, posX+posW, posY+posH, color, scale,false)
end

function isMouseInPosition(x,y,width,height)
    local cx, cy = getCursorPosition()
    local cx, cy = (cx*sx), (cy*sy)
    if (cx >= x and cx <= x + width) and (cy >= y and cy <= y + height) then
        return true
    else
        return false
    end
end

function onLogin()
	showChat(true)
	showCursor(false)
	stopSound(sound)
	removeEventHandler("onClientRender", root, paint)
	removeEventHandler("onClientClick",root,onClientClick)
	removeEventHandler("onClientCharacter",root,onClientCharacter)
end
addEvent("onLogin", true)
addEventHandler("onLogin", localPlayer, onLogin)

function onRegister()
	g.user.visible = true
	g.pass.visible = true
	g.user.text = ""
	g.pass.text = ""
		
	inRegisterTab = false
	g.rUser.visible = false
	g.rPass.visible = false
	g.rUser.text = ""
	g.rPass.text = ""
end
addEvent("onRegister", true)
addEventHandler("onRegister", localPlayer, onRegister)

function loadLoginFromXML()
	local XML = xmlLoadFile ("userdata.xml")
    if not XML then
        XML = xmlCreateFile("userdata.xml", "login")
    end
	
    local usernameNode = xmlFindChild (XML, "username", 0)
    if usernameNode then
        return xmlNodeGetValue(usernameNode)
    else
		return ""
    end
    xmlUnloadFile ( XML )
end

function saveLoginToXML(username)
    local XML = xmlLoadFile ("userdata.xml")
    if not XML then
        XML = xmlCreateFile("userdata.xml", "login")
    end
	if (username ~= "") then
		local usernameNode = xmlFindChild (XML, "username", 0)
		if not usernameNode then
			usernameNode = xmlCreateChild(XML, "username")
		end
		xmlNodeSetValue (usernameNode, tostring(username))
	end
    xmlSaveFile(XML)
    xmlUnloadFile (XML)
end
addEvent("saveLoginToXML", true)
addEventHandler("saveLoginToXML", root, saveLoginToXML)


function login_text(result, text)
	if result == "sucess" then
	    addNotification(text,1)
	elseif result == "error" then
	    addNotification(text,2)
	end
end
addEvent("login_text",true)
addEventHandler("login_text",root,login_text)

function addNotification(text, type)
    text = string.gsub(text,"#%x%x%x%x%x%x","")
	local i = 0
	if text == "" or text == nil or not type then
		return
	else
		for i = 0, #messages+1 do
			if messages[i] then
				i = i+1
			else
				messages[i] = {}
				messages[i].text = text
				messages[i].visible = true
				if type == 1 then
					messages[i].color = tocolor(0,255,0,160)
				elseif type == 2 then
					messages[i].color = tocolor(255,0,0,160)
				end
				setTimer(removeNotify,5000,1,i)
			end
		end
	end
end

function removeNotify(i)
	messages[i].visible = false
	messages[i] = nil
end

function dxDrawBorder(posX, posY,posW,posH,color,scale)
	dxDrawLine(posX, posY, posX+posW, posY, color, scale,false)
	dxDrawLine(posX, posY, posX, posY+posH, color, scale,false)
	dxDrawLine(posX, posY+posH, posX+posW, posY+posH, color, scale,false)
	dxDrawLine(posX+posW, posY, posX+posW, posY+posH, color, scale,false)
end

 

I do not see anything related to spawning or fading the camera in this code.

It is a 100% failure if there is no code...

 

Would you mind stop fooling us? It is not even close to funny.

Edited by IIYAMA

Do you want to improve your Lua programming skills and make less mistakes?   Start with Lua Language Server!   🙀

 

  Useful functions  3x 

  Tutorials  4x 

 

Posted
16 hours ago, IIYAMA said:

I do not see anything related to spawning or fading the camera in this code.

It is a 100% failure if there is no code...

 

Would you mind stop fooling us? It is not even close to funny.

 

I read again my post, and no one asked me to do the script, I just asked for an indication of where I could add the "FadeCamera" There are times that minimal things are overlooked, so if you do not care or bother or just do not want to help I invite you to leave the post no offense.

  • Moderators
Posted
Quote

Good night, I had problems with a login panel that I am using, the login works correctly, the only inconvenience I have is that I try to add a spawn point and it does not work, the image goes black, then try to do it with the "FadeCamera " But I have not been successful in trying, so could you help me?

Quote

I know but already try to add a spawn point and add the function "FadeCamera" But the screen is still dark.

 

Ehm? I am here to help you else I wouldn't have read your post.

Also you didn't asked us where you could add the spawn part in your code. You only asked us if we could take a look at the code where you tried to add it.

 

To answer your new question:

  • Spawn the player between line 16 and line 17. Also spawn the player between: 38 and 39.
  • To fade the camera see code:
addEventHandler("onPlayerSpawn", root,
function ()
	fadeCamera(source, true, 0.5)
end)
 

 

 

 

 

 

 

Do you want to improve your Lua programming skills and make less mistakes?   Start with Lua Language Server!   🙀

 

  Useful functions  3x 

  Tutorials  4x 

 

Posted (edited)

 

14 minutes ago, IIYAMA said:

 

Ehm? I am here to help you else I wouldn't have read your post.

Also you didn't asked us where you could add the spawn part in your code. You only asked us if we could take a look at the code where you tried to add it.

 

To answer your new question:

  • Spawn the player between line 16 and line 17. Also spawn the player between: 38 and 39.
  • To fade the camera see code:

addEventHandler("onPlayerSpawn", root,function ()	fadeCamera(source, true, 0.5)end) 
  •  

 

  • Forgive the aggressiveness.
  • Try to add the function to that line

 

 

Edited by Siriius

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...