Jump to content

Como posso verificar se um argument ainda existe? para evitar o WARNING: Bad argument @ 'getTeamName ' [Expected team at argument 1]


Recommended Posts

O Script funciona assim:

O jogador de uma equipe vai ate o marker, digita /dominar, domina a area e todos os jogadores que estão nessa mesma equipe dele, vão ficar ganhando dinheiro a cada um intervalo especifico de tempo, se a área for dominada por outra equipe, ai a equipe antiga para de ganhar dinheiro e a nova começa a ganhar.

o WARNING acontece quando todos os jogadores da equipe que dominou a área sai do servidor e a equipe some do TAB, Ai começa sem parar o WARNING na linha 120: Bad argument @ 'getTeamName ' [Expected team at argument 1], eu sei que ele ocorre porque quando a equipe some, não existe mais o argument Team, ai não tem onde usar o 'getTeamName', mas eu não consegui resolver isso, tem alguma forma de verificar se o argument Team ainda existe? ou um outro jeito de arrumar isso, tentei usar:

if ( Team ) then

mas o problema continuou igual, ai esta meu código:

local sql = { Query = executeSQLQuery };
cooldawnTimer = false

addEventHandler( 'onResourceStart', resourceRoot, function()
	sql.Query( "CREATE TABLE IF NOT EXISTS areas1 (`atualEquipe1` TEXT NOT NULL)")
	local insert = true
	local busca = sql.Query( "SELECT * FROM areas1" )
	for i = 1, #busca do
		insert = false
	end
	if(insert == true) then
		sql.Query( "INSERT INTO areas1 (atualEquipe1) VALUES ('ninguem')")
	end
	sql.Query( "UPDATE areas1 SET atualEquipe1 = 'ninguem'")
end );

----------------------------------------Marker----------------------------------------
local marker =  createMarker (2499.1157226563,-877.779296875,114.53281402588, "cylinder",2,255 ,0 ,0, 100)
local entrar = createMarker (2499.1157226563,-877.779296875,114.53281402588 +1, "arrow", 0, 000,0, 0)

----------------------------------------Blip----------------------------------------
local blip = createBlipAttachedTo ( entrar, 23 )
    setBlipVisibleDistance(blip, 250)

----------------------------------------Ao entrar no marker----------------------------------------
function texto ()
	local busca = sql.Query( "SELECT * FROM areas1" )
	for i = 1, #busca do
		triggerClientEvent(root,"onDominate1", root, busca[i].atualEquipe1 )
	end
end
setTimer ( texto, 1000, 0)

local hillRadar = createRadarArea(2331.3779296875,-1066.1728515625,350,220,255,0,0,0)

function mensagem (source)

	outputChatBox("#000000[ #FF0000Favela 1 #000000]#FFFFFF Digite #FF0000/dominar",source,255,255,255,true)
	
end
addEventHandler("onMarkerHit",marker,mensagem)

----------------------------------------/dominar----------------------------------------
function mastering (element)

if not isElementWithinMarker(element, marker) then return end -- Se o jogador não estiver no marker
	if getElementType(element) == "player" then -- Se o elemento for um jogador
		local inTeam = getPlayerTeam (element) -- InTeam é a equipe do jogador
		
--Bloquear /dominar se:
		if not inTeam then outputChatBox("#000000[ #FF0000Favela 1 #000000]#FFFFFF Você precisa ser membro de alguma corp ou gang para dominar ou pacificar a Favela1", element,255,255,255,true) return end -- Se o jogador não estiver em nenhuma equipe

		if getElementData(element,"ModoPassivo") then outputChatBox("#000000[#FF0000 Erro #000000]#FFFFFF Voce esta com o modo passivo ativado!", element, 255, 0, 0, true) return end -- Se o modo passivo estiver ativo
	
		if getElementData(element,"Dominando") then outputChatBox("#000000[#FF0000 Erro #000000]#FFFFFF Espere 1 minuto para usar este comando novamente!", element, 255, 0, 0, true) return end -- Se o jogador ja deu /dominar
		
		if cooldawnTimer == true then outputChatBox("#000000[ #FF0000Erro #000000]#FFFFFF Esta favela acabou de ser dominada, espere alguns minutos!", element, 255, 255, 255, true) return end -- Se a favela foi dominada a poco tempo

--Dominar:		
		
--Corp:
		if getTeamName(inTeam) == "PM" then -- Se o time do jogador for PM
		
			if nomePlayer == nil then outputChatBox("#000000[ #FF0000Erro #000000]#FFFFFF Esta favela nao foi dominada por nenhuma gang!", element,255,255,255,true) return end -- Se a favela nao pertencer a nenhuma gang
		
			if nomePlayer == "PM" then outputChatBox("#000000[ #FF0000Erro #000000]#FFFFFF Esta favela ja foi pacificada, nao deixe outras gangs domina-la novamente!", element,255,255,255,true) return end -- se a favela ja estiver pacificada pela PM


				triggerClientEvent(element,"Temp1",element)	-- Ativa o evento Temp1   
				r, g, b = getTeamColor ( inTeam ) -- 
				outputChatBox("#000000[ #FF0000Favela 1 #000000]#FFFFFF A #0000FF"..getTeamName(inTeam).." #FFFFFFesta #00FF00pacificando #FFFFFFa Favela 1 que pertence a gang #FF0000"..(nomePlayer or ""), root,255,255,255,true)
				setRadarAreaFlashing ( hillRadar, true ) -- Area no mapa piscando
				setElementData(element,"Dominando",true)-- Ganha o elementdata Domindando ao digitar /dominar
				setTimer (setElementData, 60000, 1, element, "Dominando", false) -- Remove o elementdata Dominando depois de 1 minuto
				
				Favela1time = setTimer (function() -- Timer para dominar
					setRadarAreaFlashing ( hillRadar, false ) -- Ao pacificar a area no mapa para de piscar
					givePlayerMoney(element,42000) -- Dinheiro ganho ao pacificar
					outputChatBox("#000000[ #FF0000Favela 1 #000000]#FFFFFF Voce recebeu #00FF0042.000R$#FFFFFF por pacificar a favela!", element,255,255,255,true) -- Msg pro policiial que pacificar
					outputChatBox("#000000[ #FF0000Favela 1 #000000]#FFFFFF A #0000FF"..getTeamName(inTeam).."#FFFFFF conseguiu #00FF00 pacificar#FFFFFF a Favela 1", root,255,255,255,true)
					nomePlayer = getTeamName(inTeam) -- nomePlayer passa a ser a equipe que dominou/pacificou a favela
					sql.Query( "UPDATE areas1 SET atualEquipe1 = '".. nomePlayer .."'")
					r, g, b = getTeamColor ( inTeam )
					setRadarAreaColor(hillRadar, r ,g ,b, 130) -- Muda a cor da area no mapa pra cor da equipe
					triggerClientEvent(element,"TimerStamp1",element) -- Ativa o evento TimerStamp1
					setMarkerColor(marker, 125 ,38 ,205, 80) -- Muda a cor do marker
					cooldawn()
				end,60000,1)

--Gang:
			else
				if getTeamName(inTeam) == nomePlayer then outputChatBox("#000000[ #FF0000Erro #000000]#FFFFFF Esta favela ja pertence a sua gang, apenas defenda ela!", element,255,255,255,true) return end --Se a favela ja for da gang do jogador

				triggerClientEvent(element,"Temp1",element) -- Ativa o evento Temp1
				r, g, b = getTeamColor ( inTeam )
				outputChatBox("#000000[ #FF0000Favela 1 #000000]#FFFFFF A gang #FF0000"..getTeamName(inTeam).."#FFFFFF esta#FFFFFF dominando a Favela 1 que pertence a #FF0000"..(nomePlayer or ""), root,255,255,255,true)
				setRadarAreaFlashing ( hillRadar, true ) -- Faz a area do mapa ficar piscando
				setElementData(element,"Dominando",true) -- Ganha o ElementData Domindando ao digitar /dominar
				setTimer (setElementData, 60000, 1, element, "Dominando", false) -- Remove o elementdata Dominando depois de 1 minuto
					
				Favela1time = setTimer (function() -- Timer para dominar
					setRadarAreaFlashing ( hillRadar, false ) -- Faz a area parar de piscar
					outputChatBox("#000000[ #FF0000Favela 1 #000000]#FFFFFF A gang #FF0000"..getTeamName(inTeam).."#FFFFFF dominou a Favela 1 que pertencia a #FF0000"..(nomePlayer or ""), root,255,255,255,true)
					nomePlayer = getTeamName(inTeam) -- nomePlayer passa a ser o time do jogador que dominou
					sql.Query( "UPDATE areas1 SET atualEquipe1 = '".. nomePlayer .."'")
					r, g, b = getTeamColor ( inTeam )
					setRadarAreaColor(hillRadar, r ,g ,b, 130) -- A area do mapa fica da cor da equipe
					triggerClientEvent(element,"TimerStamp1",element) -- Ativa o evento TimerStamp1
					setMarkerColor(marker, 125 ,38 ,205, 80) -- Muda a cor do marker
					cooldawn()
				--	Team = getPlayerTeam (element) -- para o money timer
						if getPlayerWantedLevel(element) < 6 then -- Se o jogador tiver menos de 6 estrelas de procurado
							setPlayerWantedLevel(element,getPlayerWantedLevel(element)+1) -- Adiciona mais um level de procurado ao jogador que dominar
						end
					end,60000,1)
								
------------------------------MoneyTimer------------------------------								
				moneyTimer = setTimer ( function ()
					if (Team) then
						if getTeamName(Team) == nomePlayer then
							local players = getPlayersInTeam(Team)
							for playerKey, playerValue in ipairs ( players ) do
								givePlayerMoney(playerValue, 100)
							end
						end
					end
				end,5000,0)
------------------------------.------------------------------
		end	
	end		
end
addCommandHandler("dominar", mastering)

----------------------------------------Ao sair do marker enquanto domina----------------------------------------
function onLeave (element)
	triggerClientEvent(element,"TimerStamp1",element)
	setRadarAreaFlashing ( hillRadar, false )
		if (isTimer(Favela1time)) then
        if not killTimer(Favela1time) then return end
        outputChatBox("#000000[ #FF0000Favela 1 #000000]#FFFFFF Volte para o marker para continuar dominando!", element,255,255,255,true)
	end
end
addEventHandler("onMarkerLeave",marker,onLeave)

----------------------------------------Cooldawn para dominar----------------------------------------
function cooldawn ()
	if cooldawnTimer == false then 
		cooldawnTimer = true 
	else
		end 
		setTimer(function()
			cooldawnTimer = false 
			outputChatBox("#000000[ #FF0000Favela 1 #000000]#FFFFFF A Favela 1 ja pode ser dominada novamente!", root, 255, 255, 255, true)
	end, 60000*60*0.2, 1)
end

 

Link to post

Olá.

Por favor, sempre que for criar um tópico, insira um título pequeno que relate, em poucas palavras, o contexto do seu conteúdo que será postado. Não é necessário dizer o que está acontecendo, no título do tópico. Este título já seria suficiente: Como posso verificar se um argumento ainda existe?

Também, evite mandar o código dessa forma (ESTÁ OCUPANDO MUITO ESPAÇO!!!) adicione o conteúdo do código dentro de um Spoiler.
ipoW97o.png

Sobre o seu erro: aonde está o erro? 😄 - poste apenas a parte do código onde ele se encontra, pois ninguém vai procurar nesse código imenso.

Link to post
6 hours ago, andr0xy said:

Olá.

Por favor, sempre que for criar um tópico, insira um título pequeno que relate, em poucas palavras, o contexto do seu conteúdo que será postado. Não é necessário dizer o que está acontecendo, no título do tópico. Este título já seria suficiente: Como posso verificar se um argumento ainda existe?

Também, evite mandar o código dessa forma (ESTÁ OCUPANDO MUITO ESPAÇO!!!) adicione o conteúdo do código dentro de um Spoiler.
ipoW97o.png

Sobre o seu erro: aonde está o erro? 😄 - poste apenas a parte do código onde ele se encontra, pois ninguém vai procurar nesse código imenso.

Entendi, desculpe, o problema esta nessa parte do codigo, quando o jogador usa o /dominar e domina

Spoiler

----------------------------------------/dominar----------------------------------------
function mastering (element)

if not isElementWithinMarker(element, marker) then return end -- Se o jogador não estiver no marker
	if getElementType(element) == "player" then -- Se o elemento for um jogador
		local inTeam = getPlayerTeam (element) -- InTeam é a equipe do jogador
		
--Bloquear /dominar se:
		if not inTeam then outputChatBox("#000000[ #FF0000Favela 1 #000000]#FFFFFF Você precisa ser membro de alguma corp ou gang para dominar ou pacificar a Favela1", element,255,255,255,true) return end -- Se o jogador não estiver em nenhuma equipe

		if getElementData(element,"ModoPassivo") then outputChatBox("#000000[#FF0000 Erro #000000]#FFFFFF Voce esta com o modo passivo ativado!", element, 255, 0, 0, true) return end -- Se o modo passivo estiver ativo
	
		if getElementData(element,"Dominando") then outputChatBox("#000000[#FF0000 Erro #000000]#FFFFFF Espere 1 minuto para usar este comando novamente!", element, 255, 0, 0, true) return end -- Se o jogador ja deu /dominar
		
		if cooldawnTimer == true then outputChatBox("#000000[ #FF0000Erro #000000]#FFFFFF Esta favela acabou de ser dominada, espere alguns minutos!", element, 255, 255, 255, true) return end -- Se a favela foi dominada a poco tempo

--Dominar:		
		
--Corp:
		if getTeamName(inTeam) == "PM" then -- Se o time do jogador for PM
		
			if nomePlayer == nil then outputChatBox("#000000[ #FF0000Erro #000000]#FFFFFF Esta favela nao foi dominada por nenhuma gang!", element,255,255,255,true) return end -- Se a favela nao pertencer a nenhuma gang
		
			if nomePlayer == "PM" then outputChatBox("#000000[ #FF0000Erro #000000]#FFFFFF Esta favela ja foi pacificada, nao deixe outras gangs domina-la novamente!", element,255,255,255,true) return end -- se a favela ja estiver pacificada pela PM


				triggerClientEvent(element,"Temp1",element)	-- Ativa o evento Temp1   
				r, g, b = getTeamColor ( inTeam ) -- 
				outputChatBox("#000000[ #FF0000Favela 1 #000000]#FFFFFF A #0000FF"..getTeamName(inTeam).." #FFFFFFesta #00FF00pacificando #FFFFFFa Favela 1 que pertence a gang #FF0000"..(nomePlayer or ""), root,255,255,255,true)
				setRadarAreaFlashing ( hillRadar, true ) -- Area no mapa piscando
				setElementData(element,"Dominando",true)-- Ganha o elementdata Domindando ao digitar /dominar
				setTimer (setElementData, 60000, 1, element, "Dominando", false) -- Remove o elementdata Dominando depois de 1 minuto
				
				Favela1time = setTimer (function() -- Timer para dominar
					setRadarAreaFlashing ( hillRadar, false ) -- Ao pacificar a area no mapa para de piscar
					givePlayerMoney(element,42000) -- Dinheiro ganho ao pacificar
					outputChatBox("#000000[ #FF0000Favela 1 #000000]#FFFFFF Voce recebeu #00FF0042.000R$#FFFFFF por pacificar a favela!", element,255,255,255,true) -- Msg pro policiial que pacificar
					outputChatBox("#000000[ #FF0000Favela 1 #000000]#FFFFFF A #0000FF"..getTeamName(inTeam).."#FFFFFF conseguiu #00FF00 pacificar#FFFFFF a Favela 1", root,255,255,255,true)
					nomePlayer = getTeamName(inTeam) -- nomePlayer passa a ser a equipe que dominou/pacificou a favela
					sql.Query( "UPDATE areas1 SET atualEquipe1 = '".. nomePlayer .."'")
					r, g, b = getTeamColor ( inTeam )
					setRadarAreaColor(hillRadar, r ,g ,b, 130) -- Muda a cor da area no mapa pra cor da equipe
					triggerClientEvent(element,"TimerStamp1",element) -- Ativa o evento TimerStamp1
					setMarkerColor(marker, 125 ,38 ,205, 80) -- Muda a cor do marker
					cooldawn()
				end,60000,1)

--Gang:
			else
				if getTeamName(inTeam) == nomePlayer then outputChatBox("#000000[ #FF0000Erro #000000]#FFFFFF Esta favela ja pertence a sua gang, apenas defenda ela!", element,255,255,255,true) return end --Se a favela ja for da gang do jogador

				triggerClientEvent(element,"Temp1",element) -- Ativa o evento Temp1
				r, g, b = getTeamColor ( inTeam )
				outputChatBox("#000000[ #FF0000Favela 1 #000000]#FFFFFF A gang #FF0000"..getTeamName(inTeam).."#FFFFFF esta#FFFFFF dominando a Favela 1 que pertence a #FF0000"..(nomePlayer or ""), root,255,255,255,true)
				setRadarAreaFlashing ( hillRadar, true ) -- Faz a area do mapa ficar piscando
				setElementData(element,"Dominando",true) -- Ganha o ElementData Domindando ao digitar /dominar
				setTimer (setElementData, 60000, 1, element, "Dominando", false) -- Remove o elementdata Dominando depois de 1 minuto
					
				Favela1time = setTimer (function() -- Timer para dominar
					setRadarAreaFlashing ( hillRadar, false ) -- Faz a area parar de piscar
					outputChatBox("#000000[ #FF0000Favela 1 #000000]#FFFFFF A gang #FF0000"..getTeamName(inTeam).."#FFFFFF dominou a Favela 1 que pertencia a #FF0000"..(nomePlayer or ""), root,255,255,255,true)
					nomePlayer = getTeamName(inTeam) -- nomePlayer passa a ser o time do jogador que dominou
					sql.Query( "UPDATE areas1 SET atualEquipe1 = '".. nomePlayer .."'")
					r, g, b = getTeamColor ( inTeam )
					setRadarAreaColor(hillRadar, r ,g ,b, 130) -- A area do mapa fica da cor da equipe
					triggerClientEvent(element,"TimerStamp1",element) -- Ativa o evento TimerStamp1
					setMarkerColor(marker, 125 ,38 ,205, 80) -- Muda a cor do marker
					cooldawn()
					Team = getPlayerTeam (element) -- para o money timer
						if getPlayerWantedLevel(element) < 6 then -- Se o jogador tiver menos de 6 estrelas de procurado
							setPlayerWantedLevel(element,getPlayerWantedLevel(element)+1) -- Adiciona mais um level de procurado ao jogador que dominar
						end
					end,60000,1)
								
------------------------------MoneyTimer------------------------------								
				moneyTimer = setTimer ( function ()
					if (Team) then
						if getTeamName(Team) == nomePlayer then
							local players = getPlayersInTeam(Team)
							for playerKey, playerValue in ipairs ( players ) do
								givePlayerMoney(playerValue, 100)
							end
						end
					end
				end,5000,0)
------------------------------.------------------------------
		end	
	end		
end
addCommandHandler("dominar", mastering)

 

 

Link to post

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