Jump to content

[AJUDA COM COMANDO POR PERMISSÃO ]


Recommended Posts

addCommandHandler( "camhack", 
	function( thePlayer )
		if isPedInVehicle( thePlayer ) then
			if getVehicleOccupant( getPedOccupiedVehicle( thePlayer ) ) ~= thePlayer then
				if getElementData( thePlayer, "isPlayerInCamHackMode" ) then 
					setElementAlpha( thePlayer, 255 )
					setPlayerCamHackDisabled( thePlayer )
				else
					setElementAlpha( thePlayer, 0 )
					setPlayerCamHackEnabled( thePlayer, false )
				end
			end
		else
			if getElementData( thePlayer, "isPlayerInCamHackMode" ) then 
				setElementAlpha( thePlayer, 255 )
				setPlayerCamHackDisabled( thePlayer )
				setElementFrozen( thePlayer, false ) 
				setElementCollisionsEnabled( thePlayer, true ) 		
			else
				setElementAlpha( thePlayer, 0 )
				setPlayerCamHackEnabled( thePlayer, true )
				setElementFrozen( thePlayer, true ) 
				setElementCollisionsEnabled( thePlayer, false ) 			
			end
		end
	end
)

addCommandHandler( "camhackm", 
	function( )
		isSlowCamHack = not isSlowCamHack
	end
)

Bom eu tentei por esses 2 comandos só pra qm tiver a permissão de banimento poder usar com esse codigo : 

if ( hasObjectPermissionTo ( thePlayer, "command.ban", true ) ) then

Só que eu não tive sucesso tentei de várias formas, e não deu certo a resource parava de funcionr ! alguém poderia me ajudar? 

Edited by OverKILL
Link to comment
  • Other Languages Moderators
4 hours ago, OverKILL said:

Bom eu tentei por esses 2 comandos só pra qm tiver a permissão de banimento poder usar com esse codigo : 

if ( hasObjectPermissionTo ( thePlayer, "command.ban", true ) ) then

Só que eu não tive sucesso tentei de várias formas, e não deu certo a resource parava de funcionr ! alguém poderia me ajudar? 

Você está tentando restringir um comando, por padrão usa-se false no terceiro parâmetro. Isso significa que o comando só será liberado se a ACL do jogador estiver explícito que ele tem tal permissão, caso contrário negará o comando. Se você deixar como true, ele vai sempre permitir o comando exceto se estiver explícito na ACL do jogador que ele não tem essa permissão, neste caso o comando se torna vulnerável, para quem não está explícita a permissão de nenhum jeito.

if hasObjectPermissionTo (thePlayer, "command.ban", false) then

No seu exemplo, poderia adicionar uma condição de escape, informando o jogador que ele não tem essa permissão. Geralmente é recomendável dar feedback ao jogador depois que ele usa comandos, senão ele pensa que simplesmente digitou o comando errado e fica tentando novamente sem sucesso.

Eu faria assim:

addCommandHandler ("camhack", function (thePlayer)
	if hasObjectPermissionTo (thePlayer, "command.ban", false) then
		if isPedInVehicle (thePlayer) then
			if getVehicleOccupant (getPedOccupiedVehicle (thePlayer)) ~= thePlayer then -- Aqui não entendi seu objetivo. Sempre será true.
				if getElementData (thePlayer, "isPlayerInCamHackMode") then
					setElementAlpha (thePlayer, 255)
					setPlayerCamHackDisabled (thePlayer)
				else
					setElementAlpha (thePlayer, 0)
					setPlayerCamHackEnabled (thePlayer, false)
				end
			end
		elseif getElementData (thePlayer, "isPlayerInCamHackMode") then
			setElementAlpha (thePlayer, 255)
			setPlayerCamHackDisabled (thePlayer)
			setElementFrozen (thePlayer, false)
			setElementCollisionsEnabled (thePlayer, true)
		else
			setElementAlpha (thePlayer, 0)
			setPlayerCamHackEnabled (thePlayer, true)
			setElementFrozen (thePlayer, true)
			setElementCollisionsEnabled (thePlayer, false)
		end
	else
		outputChatBox ("Acesso negado.", thePlayer, 255, 0, 0)
	end
end)

addCommandHandler ("camhackm", function(thePlayer)
	if hasObjectPermissionTo (thePlayer, "command.ban", false) then
		isSlowCamHack = not isSlowCamHack
	else
		outputChatBox ("Acesso negado.", thePlayer, 255, 0, 0)
	end
end)

 

  • Like 1
Link to comment
11 hours ago, Lord Henry said:

Você está tentando restringir um comando, por padrão usa-se false no terceiro parâmetro. Isso significa que o comando só será liberado se a ACL do jogador estiver explícito que ele tem tal permissão, caso contrário negará o comando. Se você deixar como true, ele vai sempre permitir o comando exceto se estiver explícito na ACL do jogador que ele não tem essa permissão, neste caso o comando se torna vulnerável, para quem não está explícita a permissão de nenhum jeito.


if hasObjectPermissionTo (thePlayer, "command.ban", false) then

No seu exemplo, poderia adicionar uma condição de escape, informando o jogador que ele não tem essa permissão. Geralmente é recomendável dar feedback ao jogador depois que ele usa comandos, senão ele pensa que simplesmente digitou o comando errado e fica tentando novamente sem sucesso.

Eu faria assim:


addCommandHandler ("camhack", function (thePlayer)
	if hasObjectPermissionTo (thePlayer, "command.ban", false) then
		if isPedInVehicle (thePlayer) then
			if getVehicleOccupant (getPedOccupiedVehicle (thePlayer)) ~= thePlayer then -- Aqui não entendi seu objetivo. Sempre será true.
				if getElementData (thePlayer, "isPlayerInCamHackMode") then
					setElementAlpha (thePlayer, 255)
					setPlayerCamHackDisabled (thePlayer)
				else
					setElementAlpha (thePlayer, 0)
					setPlayerCamHackEnabled (thePlayer, false)
				end
			end
		elseif getElementData (thePlayer, "isPlayerInCamHackMode") then
			setElementAlpha (thePlayer, 255)
			setPlayerCamHackDisabled (thePlayer)
			setElementFrozen (thePlayer, false)
			setElementCollisionsEnabled (thePlayer, true)
		else
			setElementAlpha (thePlayer, 0)
			setPlayerCamHackEnabled (thePlayer, true)
			setElementFrozen (thePlayer, true)
			setElementCollisionsEnabled (thePlayer, false)
		end
	else
		outputChatBox ("Acesso negado.", thePlayer, 255, 0, 0)
	end
end)

addCommandHandler ("camhackm", function(thePlayer)
	if hasObjectPermissionTo (thePlayer, "command.ban", false) then
		isSlowCamHack = not isSlowCamHack
	else
		outputChatBox ("Acesso negado.", thePlayer, 255, 0, 0)
	end
end)

 

Obrigado lord <3 , entendi o por que não deu certo o que eu fiz, eu tinha colocado um else em baixo da permissão, obrigado por + essa ajuda !

12 hours ago, Lord Henry said:

Você está tentando restringir um comando, por padrão usa-se false no terceiro parâmetro. Isso significa que o comando só será liberado se a ACL do jogador estiver explícito que ele tem tal permissão, caso contrário negará o comando. Se você deixar como true, ele vai sempre permitir o comando exceto se estiver explícito na ACL do jogador que ele não tem essa permissão, neste caso o comando se torna vulnerável, para quem não está explícita a permissão de nenhum jeito.


if hasObjectPermissionTo (thePlayer, "command.ban", false) then

No seu exemplo, poderia adicionar uma condição de escape, informando o jogador que ele não tem essa permissão. Geralmente é recomendável dar feedback ao jogador depois que ele usa comandos, senão ele pensa que simplesmente digitou o comando errado e fica tentando novamente sem sucesso.

Eu faria assim:


addCommandHandler ("camhack", function (thePlayer)
	if hasObjectPermissionTo (thePlayer, "command.ban", false) then
		if isPedInVehicle (thePlayer) then
			if getVehicleOccupant (getPedOccupiedVehicle (thePlayer)) ~= thePlayer then -- Aqui não entendi seu objetivo. Sempre será true.
				if getElementData (thePlayer, "isPlayerInCamHackMode") then
					setElementAlpha (thePlayer, 255)
					setPlayerCamHackDisabled (thePlayer)
				else
					setElementAlpha (thePlayer, 0)
					setPlayerCamHackEnabled (thePlayer, false)
				end
			end
		elseif getElementData (thePlayer, "isPlayerInCamHackMode") then
			setElementAlpha (thePlayer, 255)
			setPlayerCamHackDisabled (thePlayer)
			setElementFrozen (thePlayer, false)
			setElementCollisionsEnabled (thePlayer, true)
		else
			setElementAlpha (thePlayer, 0)
			setPlayerCamHackEnabled (thePlayer, true)
			setElementFrozen (thePlayer, true)
			setElementCollisionsEnabled (thePlayer, false)
		end
	else
		outputChatBox ("Acesso negado.", thePlayer, 255, 0, 0)
	end
end)

addCommandHandler ("camhackm", function(thePlayer)
	if hasObjectPermissionTo (thePlayer, "command.ban", false) then
		isSlowCamHack = not isSlowCamHack
	else
		outputChatBox ("Acesso negado.", thePlayer, 255, 0, 0)
	end
end)

addCommandHandler ("camhackm", function(thePlayer)
	if hasObjectPermissionTo (thePlayer, "command.ban", false) then
		isSlowCamHack = not isSlowCamHack
	else
		outputChatBox ("Acesso negado.", thePlayer, 255, 0, 0)
	end
end)

 esse aqui não funcionou !

 

Link to comment
2 hours ago, DNL291 said:

Deixe o script do lado server no meta.xml.

Não entendi .

2 hours ago, DNL291 said:

Deixe o script do lado server no meta.xml.

<meta>
 

<meta>
	<!-- Configuration -->
	<info author="FornetGear" name="CamHack" description="First ever CamHack in MTA" type="script" version="1.0"/>
	
	<!-- Main -->
	<script src="c_camhack.lua" type="client"/>
    <script src="s_camhack.lua"/>
</meta>

Cada comando desse esta em 1 script diferente desse, eu coloquei o c_camhack.lua no lado server e não resolveu nem funcionou o outro comando.

Link to comment
  • Other Languages Moderators
<script src="s_camhack.lua" /> -- Isso é server-side. Aqui funciona.
<script src="c_camhack.lua" type="client" /> -- Isso é client-side, essa função não vai funcionar aqui.

A função hasObjectPermissionTo é server-side, ela não funciona em scripts do tipo client.

Além disso, provavelmente as funções setPlayerCamHackEnabledsetPlayerCamHackDisabled que estão em outra parte do código possuem funções client-side, dai não adianta passar o script inteiro pra server-side que dai elas não vão funcionar. Nesse caso terá que usar triggerClientEvent, pois você possui funções que só funcionam client-side e outras que só funcionam server-side.

Edited by Lord Henry
  • Like 1
Link to comment
20 minutes ago, Lord Henry said:

<script src="s_camhack.lua" /> -- Isso é server-side. Aqui funciona.

<script src="c_camhack.lua" type="client" /> -- Isso é client-side, essa função não vai funcionar aqui.

A função hasObjectPermissionTo é server-side, ela não funciona em scripts do tipo client.

Além disso, provavelmente as funções setPlayerCamHackEnabledsetPlayerCamHackDisabled que estão em outra parte do código possuem funções client-side, dai não adianta passar o script inteiro pra server-side que dai elas não vão funcionar. Nesse caso terá que usar triggerClientEvent, pois você possui funções que só funcionam client-side e outras que só funcionam server-side.

Vix, não sei o que fazer em tão '

Link to comment
  • Other Languages Moderators

Manda os dois scripts inteiros.
Se não quiser postar em público, então manda por mensagem privada.

Edited by Lord Henry
  • Like 1
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...