Jonas^ Posted May 5, 2018 Share Posted May 5, 2018 (edited) 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 May 5, 2018 by OverKILL Link to comment
DNL291 Posted May 6, 2018 Share Posted May 6, 2018 (edited) if hasObjectPermissionTo( thePlayer, "function.banPlayer" ) ~= true then return end Se não funcionar, digite /debugscript 3 e veja se mostra algum erro do código. Dá próxima vez, faça o post na área correta (Programação em Lua) por favor. Edited May 6, 2018 by DNL291 Link to comment
Other Languages Moderators Lord Henry Posted May 6, 2018 Other Languages Moderators Share Posted May 6, 2018 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) 1 Link to comment
Jonas^ Posted May 6, 2018 Author Share Posted May 6, 2018 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
Jonas^ Posted May 6, 2018 Author Share Posted May 6, 2018 (edited) ERROR: camhack\c_camhack.lua:418 attempt to call global 'hasObjectPermissionTo' (a nill value) Edited May 6, 2018 by OverKILL Link to comment
DNL291 Posted May 6, 2018 Share Posted May 6, 2018 Deixe o script do lado server no meta.xml. Link to comment
Jonas^ Posted May 6, 2018 Author Share Posted May 6, 2018 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 Lord Henry Posted May 6, 2018 Other Languages Moderators Share Posted May 6, 2018 (edited) <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 setPlayerCamHackEnabled e setPlayerCamHackDisabled 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 May 6, 2018 by Lord Henry 1 Link to comment
Jonas^ Posted May 6, 2018 Author Share Posted May 6, 2018 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 setPlayerCamHackEnabled e setPlayerCamHackDisabled 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 Lord Henry Posted May 6, 2018 Other Languages Moderators Share Posted May 6, 2018 (edited) Manda os dois scripts inteiros. Se não quiser postar em público, então manda por mensagem privada. Edited May 6, 2018 by Lord Henry 1 Link to comment
Other Languages Moderators Lord Henry Posted May 7, 2018 Other Languages Moderators Share Posted May 7, 2018 (edited) [CLOSED] Resolvido por privado. Ele estava usando a função hasObjectPermissionTo no lado client. A solução foi usar triggerClientEvent no lado server. Edited May 7, 2018 by Lord Henry 1 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