Jump to content

ERRO ( HELP )


Recommended Posts

function playSounds( weapon )
	if(cSoundsEnabled)then
		local x,y,z = getElementPosition(source)
		if weapon == 31 then -- M4A1
			local sound = playSound3D("sounds/weapon/m4.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		end
		elseif weapon == 23 then -- SILENCIADA
			local sound = playSound3D("sounds/weapon/silenced.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		end	
		elseif weapon == 24 then -- DEAGLE
			local sound = playSound3D("sounds/weapon/deagle.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		end
		elseif weapon == 29 then -- MP5
			local sound = playSound3D("sounds/weapon/mp5.ogg", x,y,z)
			setSoundMaxDistance( sound, distance)
		end
		elseif weapon == 30 then -- M240
			local sound = playSound3D("sounds/weapon/ak.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		end
		elseif weapon == 33 then -- SNIPER
			local sound = playSound3D("sounds/weapon/sniper.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		end
	end
end
addEventHandler("onClientPlayerWeaponFire", getRootElement(), playSounds)

LMClient.lua:34: 'end' expected (to close 'function' at line 23) near 'elseif' < -  ERRO

Link to comment

Na estrutura if-elseif você só precisa definir o "end" no último bloco do elseif

Spoiler

function playSounds( weapon )
	if(cSoundsEnabled)then
		local x,y,z = getElementPosition(source)
		if weapon == 31 then -- M4A1
			local sound = playSound3D("sounds/weapon/m4.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		elseif weapon == 23 then -- SILENCIADA
			local sound = playSound3D("sounds/weapon/silenced.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		elseif weapon == 24 then -- DEAGLE
			local sound = playSound3D("sounds/weapon/deagle.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		elseif weapon == 29 then -- MP5
			local sound = playSound3D("sounds/weapon/mp5.ogg", x,y,z)
			setSoundMaxDistance( sound, distance)
		elseif weapon == 30 then -- M240
			local sound = playSound3D("sounds/weapon/ak.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		elseif weapon == 33 then -- SNIPER
			local sound = playSound3D("sounds/weapon/sniper.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		end
	end
end
addEventHandler("onClientPlayerWeaponFire", getRootElement(), playSounds)

 

 

  • Like 1
Link to comment
7 minutes ago, MaligNos said:

Na estrutura if-elseif você só precisa definir o "end" no último bloco do elseif

  Hide contents


 
function playSounds( weapon )
	if(cSoundsEnabled)then
		local x,y,z = getElementPosition(source)
		if weapon == 31 then -- M4A1
			local sound = playSound3D("sounds/weapon/m4.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		elseif weapon == 23 then -- SILENCIADA
			local sound = playSound3D("sounds/weapon/silenced.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		elseif weapon == 24 then -- DEAGLE
			local sound = playSound3D("sounds/weapon/deagle.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		elseif weapon == 29 then -- MP5
			local sound = playSound3D("sounds/weapon/mp5.ogg", x,y,z)
			setSoundMaxDistance( sound, distance)
		elseif weapon == 30 then -- M240
			local sound = playSound3D("sounds/weapon/ak.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		elseif weapon == 33 then -- SNIPER
			local sound = playSound3D("sounds/weapon/sniper.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		end
	end
end
addEventHandler("onClientPlayerWeaponFire", getRootElement(), playSounds)

 

 

Thanks xD

9 minutes ago, MaligNos said:

Na estrutura if-elseif você só precisa definir o "end" no último bloco do elseif

  Reveal hidden contents


 
function playSounds( weapon )
	if(cSoundsEnabled)then
		local x,y,z = getElementPosition(source)
		if weapon == 31 then -- M4A1
			local sound = playSound3D("sounds/weapon/m4.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		elseif weapon == 23 then -- SILENCIADA
			local sound = playSound3D("sounds/weapon/silenced.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		elseif weapon == 24 then -- DEAGLE
			local sound = playSound3D("sounds/weapon/deagle.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		elseif weapon == 29 then -- MP5
			local sound = playSound3D("sounds/weapon/mp5.ogg", x,y,z)
			setSoundMaxDistance( sound, distance)
		elseif weapon == 30 then -- M240
			local sound = playSound3D("sounds/weapon/ak.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		elseif weapon == 33 then -- SNIPER
			local sound = playSound3D("sounds/weapon/sniper.ogg", x,y,z)
			setSoundMaxDistance( sound, distance )
		end
	end
end
addEventHandler("onClientPlayerWeaponFire", getRootElement(), playSounds)

 

 

é, você pode me ajudar resolver 2 warnings? 

 

[2018-06-08 21:23:18] WARNING: LMLogin\loginpanel_client.lua:259: Bad argument @ 'guiSetVisible' [Expected gui-element at argument 1, got nil]
[2018-06-08 21:23:19] WARNING: LMLogin\loginpanel_client.lua:260: Bad argument @ 'guiSetVisible' [Expected gui-element at argument 1, got nil]
-- Hide login window
function hideLoginWindow()
	guiSetInputEnabled(false)
	guiSetVisible(mainWindow, false)
	guiSetVisible(registerWindow, false)
	showCursor(false)
	stopSound(sound) -- Parar a música
	if blackLoginScreen == true then
		fadeCamera(true,removeBlackScreenTime)
	end
end
addEvent("hideLoginWindow", true)
addEventHandler("hideLoginWindow", getRootElement(), hideLoginWindow)

 

Link to comment

O adequado seria para cada novo assunto criar um novo tópico.. mas vamos lá

No debug simplesmente está dizendo que as variáveis (mainWindow, registerWindow) não existem, provavelmente você está definindo-as como variáveis locais dentro de um bloco de código, procure no seu código algo do tipo

local mainWindow = (código...)

local registerWindow = (código...)

E remova essa palavra "local" da frente

Edited by MaligNos
Faltou a última linha
Link to comment
3 minutes ago, MaligNos said:

O adequado seria para cada novo assunto criar um novo tópico.. mas vamos lá

No debug simplesmente está dizendo que as variáveis (mainWindow, registerWindow) não existem, provavelmente você está definindo-as como variáveis locais dentro de um bloco de código, procure no seu código algo do tipo

local mainWindow = (código...)

local registerWindow = (código...)

				mainWindow = guiCreateWindow(412, 157, 387, 456, "Login BR-PT ", false)
				guiWindowSetSizable(mainWindow, false)
				guiSetAlpha(mainWindow, 1.00)

Achei na parte de criar a gui.

Link to comment
9 minutes ago, MaligNos said:

O adequado seria para cada novo assunto criar um novo tópico.. mas vamos lá

No debug simplesmente está dizendo que as variáveis (mainWindow, registerWindow) não existem, provavelmente você está definindo-as como variáveis locais dentro de um bloco de código, procure no seu código algo do tipo

local mainWindow = (código...)

local registerWindow = (código...)

 

3 minutes ago, MaligNos said:

Então não possui o " local mainWindow  = " ? E mesmo assim dá erro ??

Por favor, poste o código completo... fica difícil tentar deduzir....


----------------------------------
-----------| Settings |-----------
----------------------------------

blackLoginScreen = true			-- Set to 'true' to display a black screen to the player untill they log in or choose to play as a guest.

enableKickPlayer = true			-- Set whether to kick the player after they fail to login specified amount of times.

disallowLogout = false			-- Set whether to show the userpanel to the players if they log out of their accounts.

removeBlackScreenTime = 4		-- The time it takes for the black screen to dissapear - If you choose to display the black screen. [IN SECONDS]

maxLoginAttempts = 5 			-- Set the maximum incorrect login attempts before the player gets kicked - If player kicking is enabled.

----------------------------------


-- Screen and GUI window sizes
screenWidth,screenHeight = guiGetScreenSize()
mainWidth,mainHeight = 749,472
regWidth,regHeight = 439,344


-- Generate the XML file name
myFont = guiCreateFont( "verdana.ttf", 13 )
myFont2 = guiCreateFont( "verdana.ttf", 9 )
myFont3 = guiCreateFont( "verdana.ttf", 8 )
myFont4 = guiCreateFont( "verdana.ttf", 18 )
function getServerName()
	triggerServerEvent("onClientLoginLoaded",getLocalPlayer())
end
addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),getServerName)
sound = playSound("Som/music.mp3",true) -- Iniciar a música

function setXmlFileName(sName)
	xmlFileName = tostring("ContaLMTactics_"..sName..".xml")
	loginPanel()
end
addEvent("onGetServerData",true)
addEventHandler("onGetServerData",getRootElement(),setXmlFileName)


----------------------------------

addEvent("onRequestIncreaseAttempts",true)
addEvent("onRequestDisplayPanel",true)
function loginPanel()
		-- Check if autologin is enabled - If yes, then log the player in, else create and show the userpanel
		local xmlFile = xmlLoadFile(xmlFileName)
		if xmlFile then
			status = xmlNodeGetAttribute(xmlFile,"autologin")
			if (status == "true") then
				local username = tostring(xmlNodeGetAttribute(xmlFile,"user"))
				local password = tostring(xmlNodeGetAttribute(xmlFile,"pass"))
				if not (username == "") and not (password == "") then
					triggerServerEvent("onRequestAutologin",getLocalPlayer(),username,password)
				end
			else
				if blackLoginScreen == true then
					fadeCamera(false,0,0,0,0)
				end
				mainWindow = guiCreateWindow(412, 157, 387, 456, "Login [BR-PT]", false)
				guiWindowSetSizable(mainWindow, false)
				guiSetAlpha(mainWindow, 1.00)

				editUsername = guiCreateEdit(93, 116, 187, 25,"",false,mainWindow)
				guiEditSetMaxLength(editUsername,30)

				editPassword = guiCreateEdit(93, 199, 187, 25,"",false,mainWindow)
				guiEditSetMaxLength(editPassword,30)
				guiEditSetMasked(editPassword,true)

				lblUsername = guiCreateLabel(103, 68, 158, 38,"Usuario:",false,mainWindow)
				guiLabelSetColor(lblUsername,254, 254, 254)
				guiLabelSetVerticalAlign(lblUsername,"center")
				guiLabelSetHorizontalAlign(lblUsername,"center",false)
				guiSetFont(lblUsername,myFont2)

				lblPassword = guiCreateLabel(103, 151, 158, 38,"Senha:",false,mainWindow)
				guiLabelSetColor(lblPassword,254, 254, 254)
				guiLabelSetVerticalAlign(lblPassword,"center")
				guiLabelSetHorizontalAlign(lblPassword,"center",false)
				guiSetFont(lblPassword,myFont2)
				
				btnLogin = guiCreateButton(108, 260, 162, 44,"Login",false,mainWindow)
                guiSetFont(btnLogin,myFont)
				
				btnToggleRegister = guiCreateButton(92, 340, 198, 60,"Criar Uma Conta",false,mainWindow)
				guiSetFont(btnToggleRegister,myFont)

				registerWindow = guiCreateWindow(screenWidth/2-regWidth/2,screenHeight/2-regHeight/2,regWidth,regHeight,"Registro LM Tactics Server v1.2 By Jonas",false)
				guiWindowSetSizable(registerWindow,false)
				guiSetAlpha(registerWindow, 1.00)

				editRegistrationUsername = guiCreateEdit(98, 90, 242, 25,"",false,registerWindow)

				editRegistrationPassword = guiCreateEdit(98, 162, 242, 25,"",false,registerWindow)
				guiEditSetMasked(editRegistrationPassword,true)

				editRegistrationRepeatPassword = guiCreateEdit(93, 240, 242, 25,"",false,registerWindow)
				guiEditSetMasked(editRegistrationRepeatPassword,true)

				lblRUsername = guiCreateLabel(98, 56, 242, 17,"Usuario:",false,registerWindow)
				guiLabelSetColor(lblRUsername,254, 254, 254)
				guiLabelSetVerticalAlign(lblRUsername,"center")
				guiLabelSetHorizontalAlign(lblRUsername,"center",false)
				guiSetFont(lblRUsername,myFont2)

				lblRPassword = guiCreateLabel(98, 130, 242, 17,"Senha:",false,registerWindow)
				guiLabelSetColor(lblRPassword,254, 254, 254)
				guiLabelSetVerticalAlign(lblRPassword,"center")
				guiLabelSetHorizontalAlign(lblRPassword,"center",false)
				guiSetFont(lblRPassword,myFont2)

				lblRepeatPassword = guiCreateLabel(99, 203, 242, 17,"Confirme sua senha:",false,registerWindow)
				guiLabelSetColor(lblRepeatPassword,254, 254, 254)
				guiLabelSetVerticalAlign(lblRepeatPassword,"center")
				guiLabelSetHorizontalAlign(lblRepeatPassword,"center",false)
				guiSetFont(lblRepeatPassword,myFont2)

				btnCancel = guiCreateButton(232, 292, 179, 38,"Cancelar",false,registerWindow)
				guiSetFont(btnCancel,myFont2)

				btnConfirmRegistration = guiCreateButton(29,292,179,38,"Registrar",false,registerWindow)
				guiSetFont(btnConfirmRegistration,myFont2)

				guiSetVisible(mainWindow, true)
				guiSetVisible(registerWindow, false)
				guiSetInputEnabled(true)
				showCursor(true)
				addEventHandler("onClientGUIClick",btnLogin,onClickLogin)
				addEventHandler("onClientGUIClick",btnToggleRegister,onClickRegisterToggle)
				addEventHandler("onClientGUIClick",btnConfirmRegistration,onClickRegisterConfirm)
				addEventHandler("onClientGUIClick",btnCancel,onClickCancel)
				addEventHandler("onRequestIncreaseAttempts",getRootElement(),increaseAttempts)
				attemptedLogins = 0
			end
			xmlUnloadFile(xmlFile)
		else
			xmlFileHandler(true)
		end
		addEventHandler("onRequestDisplayPanel",getRootElement(),logoutHandler)
end
--addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),loginPanel)



-- Desativar Auto Login
function removeAutoLogin()
    local xmlFile = xmlLoadFile(xmlFileName)
	if xmlFile then
		local status = xmlNodeGetAttribute(xmlFile,"autologin")
		if status == "true" then
			xmlNodeSetAttribute(xmlFile,"autologin","false")
			outputChatBox("#FF0000[INFO] - #FFFFFFAuto-login #FF0000Desativado!",255,255,255,true)
			xmlSaveFile(xmlFile)
			xmlUnloadFile(xmlFile)
		else
			outputChatBox("#FF0000[INFO] - #FFFFFFAuto-login já está #FF0000Desativado!",255,255,255,true)
			xmlUnloadFile(xmlFile)
		end
	end
end
addCommandHandler("desativarauto", removeAutoLogin)



-- Ativar autologin
function addAutoLogin()
    local xmlFile = xmlLoadFile(xmlFileName)
	if xmlFile then
		local status  = xmlNodeGetAttribute(xmlFile,"autologin")
		if status == "false" then
			xmlNodeSetAttribute(xmlFile,"autologin","true")
			outputChatBox("#00FF00[INFO] - #FFFFFFAuto-login #00FF00Ativado!",255,255,255,true)
			setTimer(outputChatBox,1000,1,"#FF0000[AVISO] - #FFFFFFPara desabilitar o login automático, use #FF0000/desativarauto.",255,255,255,true)
			xmlSaveFile(xmlFile)
			xmlUnloadFile(xmlFile)
		else
			outputChatBox("#00FF00[INFO] - #FFFFFFAuto-login já está #00FF00Ativado!",255,255,255,true)
			xmlUnloadFile(xmlFile)
		end
	end
end
addCommandHandler("ativarauto", addAutoLogin)



-- LOGIN PLAYER
function onClickLogin(button,state)
	if(button == "left" and state == "up") then
		if (source == btnLogin) then
			username = guiGetText(editUsername)
			password = guiGetText(editPassword)
			triggerServerEvent("onRequestLogin",getLocalPlayer(),username,password,enableKickPlayer,attemptedLogins,maxLoginAttempts)
			xmlFileHandler()
		end
	end
end



-- REGISTER PLAYER
function onClickRegisterConfirm(button,state)
	if(button == "left" and state == "up") then
		if (source == btnConfirmRegistration) then
			username = guiGetText(editRegistrationUsername)
			password = guiGetText(editRegistrationPassword)
			passwordConfirm = guiGetText(editRegistrationRepeatPassword)
			triggerServerEvent("onRequestRegister",getLocalPlayer(),username,password,passwordConfirm)
		end
	end
end



-- Open registration window
function onClickRegisterToggle(button,state)
	if(button == "left" and state == "up") then
		if (source == btnToggleRegister) then
			guiSetVisible(registerWindow, true)
			guiBringToFront(registerWindow)
			guiSetInputEnabled(true)
			showCursor(true)
		end
	end
end



-- Cancel registration
function onClickCancel(button,state)
	if(button == "left" and state == "up") then
		if (source == btnCancel) then
			guiSetVisible(mainWindow, true)
			guiSetVisible(registerWindow, false)
			guiSetInputEnabled(true)
			showCursor(true)
		end
	end
end

-- Show login window
function showLoginWindow()
	guiSetVisible(mainWindow, true)
	guiSetVisible(registerWindow, false)
	guiSetInputEnabled(true)
	showCursor(true)
end
addEvent("showLoginWindow", true)
addEventHandler("showLoginWindow",getRootElement(),showLoginWindow)



-- Hide login window
function hideLoginWindow()
	guiSetInputEnabled(false)
	guiSetVisible(mainWindow, false)
	guiSetVisible(registerWindow, false)
	showCursor(false)
	stopSound(sound) -- Parar a música
	if blackLoginScreen == true then
		fadeCamera(true,removeBlackScreenTime)
	end
end
addEvent("hideLoginWindow", true)
addEventHandler("hideLoginWindow", getRootElement(), hideLoginWindow)



-- Hide register window
function hideRegisterWindow()
	guiSetInputEnabled(true)
	guiSetVisible(mainWindow, true)
	guiSetVisible(registerWindow, false)
	showCursor(true)
end
addEvent("hideRegisterWindow", true)
addEventHandler("hideRegisterWindow", getRootElement(), hideRegisterWindow)


-- Show login panel when a player logs out if 'dissalowLogout' is set to TRUE
function logoutHandler()
	if (disallowLogout == true) then
		loginPanel()
		setTimer(outputChatBox,600,1,"#FF0000[AVISO] - #FFFFFF Você foi desconectado. Por favor, faça login novamente.",255,255,255,true)
	end
end

-----------------------------------------------------------------------------------------------|

-- XML File Handler
function xmlFileHandler(gReturn)
	local xmlFile = xmlLoadFile(xmlFileName)
	if not xmlFile then
		xmlFile = xmlCreateFile(xmlFileName,"settings")
		xmlNodeSetAttribute(xmlFile,"autologin","false")
	end
	xmlNodeSetAttribute(xmlFile,"user",tostring(guiGetText(editUsername)))
	xmlNodeSetAttribute(xmlFile,"pass",tostring(guiGetText(editPassword)))
	xmlSaveFile(xmlFile)
	xmlUnloadFile(xmlFile)
	if (gReturn) then
		if (gReturn == true) then
			loginPanel()
		else
			return
		end
	end
end


-- Increase Login Attepts
function increaseAttempts()
	attemptedLogins = attemptedLogins+1
end

 

5 minutes ago, MaligNos said:

Então não possui o " local mainWindow  = " ? E mesmo assim dá erro ??

Por favor, poste o código completo... fica difícil tentar deduzir....

é warning

Link to comment
15 minutes ago, MaligNos said:

Olhei rapidão aqui, tente descomentar a linha 144


addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),loginPanel)

 

descomentei e ficou num carregamento infinito, e não é erro é warning

Link to comment
1 minute ago, OverKILL said:

Então - Não tem como resolver os warnings?

Com certeza tem. Só foi uma suposição minha, até porque eu não vejo a função hideLoginWindow de fato sendo chamada. Uma solução simples seria uma checagem nas variáveis:

function hideLoginWindow()
	guiSetInputEnabled(false)
	if mainWindow then
		guiSetVisible(mainWindow, false)
	end
	if registerWindow then
		guiSetVisible(registerWindow, false)
	end
	showCursor(false)
	stopSound(sound) -- Parar a música
	if blackLoginScreen == true then
		fadeCamera(true,removeBlackScreenTime)
	end
end
addEvent("hideLoginWindow", true)
addEventHandler("hideLoginWindow", getRootElement(), hideLoginWindow)

 

  • Like 2
Link to comment
5 minutes ago, DNL291 said:

Com certeza tem. Só foi uma suposição minha, até porque eu não vejo a função hideLoginWindow de fato sendo chamada. Uma solução simples seria uma checagem nas variáveis:


function hideLoginWindow()	guiSetInputEnabled(false)	if mainWindow then		guiSetVisible(mainWindow, false)	end	if registerWindow then		guiSetVisible(registerWindow, false)	end	showCursor(false)	stopSound(sound) -- Parar a música	if blackLoginScreen == true then		fadeCamera(true,removeBlackScreenTime)	endendaddEvent("hideLoginWindow", true)addEventHandler("hideLoginWindow", getRootElement(), hideLoginWindow)

 

Perfeito, funcionou, obrigado!

Link to comment
  • Other Languages Moderators

Geralmente os painéis devem ser criados ao iniciar o resource e logo em seguida deixá-los invisíveis. Dessa forma as funções que mostram/ocultam o painel nunca darão erro por falta de painel, pois ele sempre existirá. (No caso de painéis DX, basta iniciar/parar de renderizá-los, já que eles são recriados a cada frame.)

No seu caso você só cria o painel após a função de criação ser chamada pelo server. Mas o que pode acontecer é o server chamar a função de mostrar o painel antes disso. E aí que ocorre o problema, ele vai tentar mostrar algo que não foi criado ainda.

Além disso, tenha em mente que os triggerEvents precisam de certo tempo para serem concluídos, diferente de uma chamada interna de função que ocorre instantaneamente. Isso significa que se você der triggerClientEvent na função que cria o painel ao mesmo tempo que usa triggerClientEvent na função que mostra o painel, ele não terá tempo de criar o painel antes de mostrá-lo, gerando erro pois o painel ainda não existe.

Link to comment

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