Jump to content

Restringir comandos a Admin


Finijumper

Recommended Posts

Posted

Como puedo restringir los comandos para que solo los puedan usar los admins, por ej. hay uno que es /be (bala explosiva) y hora lo pueden usar todas las personal del servidor.

Posted

El client.lua es este:

bBullets = false 
  
function enableBlowingbullets() 
    if (bBullets == false)then 
    bBullets = true 
    outputChatBox("Bala explosiva ativada.", 0, 255, 0) 
    outputChatBox("Use /be para desativar.", 0, 255, 0) 
    else 
    bBullets = false 
    outputChatBox("Bala explosiva desativada.", 255, 0, 0) 
    outputChatBox("Use /be para ativar.", 255, 0, 0) 
    end 
end 
addCommandHandler("be", enableBlowingbullets) 
  
function weaponfired (weapon, ammo, ammoInClip, hitX, hitY, hitZ, hitElement ) 
    if (bBullets == true)then 
        triggerServerEvent ("bulletboom", source, hitX, hitY, hitZ ) 
    end 
end 
addEventHandler ( "onClientPlayerWeaponFire", getLocalPlayer (), weaponfired ) 

Y el server.lua ese:

addEvent ("bulletboom", true ) 
  
function bulletexplosion (hitX, hitY, hitZ) 
    createExplosion ( hitX, hitY, hitZ, 2 ) 
end 
  
addEventHandler("bulletboom",getRootElement(),bulletexplosion) 
  

Posted

reemplaza tu server.lua por esto

function bulletexplosion (hitX, hitY, hitZ) 
    if isObjectInACLGroup ( "user." .. getAccountName(getPlayerAccount(source)), aclGetGroup ( "Admin" ) ) then 
         createExplosion ( hitX, hitY, hitZ, 2 ) 
    end 
end 
addEvent("bulletboom",true) 
 addEventHandler("bulletboom",getRootElement(),bulletexplosion) 
  

Posted

Funciona, pero me gustaría que la gente que no fuera admin no puediera usar el comando (o que no le saliera ningún mensaje cuando lo escribieran, ya que ahora no pueden disparar explosivos pero ven esto:

bebfab5159b25fd987d0ec19a42dbb3d.png

Posted
  
bBullets = false 
  
function enableBlowingbullets() 
    if (bBullets == false)then 
    bBullets = true 
    outputChatBox("Bala explosiva ativada.", 0, 255, 0) 
    outputChatBox("Use /be para desativar.", 0, 255, 0) 
    else 
    bBullets = false 
    outputChatBox("Bala explosiva desativada.", 255, 0, 0) 
    outputChatBox("Use /be para ativar.", 255, 0, 0) 
    end 
end 
addCommandHandler("be", enableBlowingbullets) 
  
function weaponfired (weapon, ammo, ammoInClip, hitX, hitY, hitZ, hitElement ) 
    if isObjectInACLGroup ( "user." .. getAccountName(getPlayerAccount(source)), aclGetGroup ( "Admin" ) ) then 
    if (bBullets == true)then 
        triggerServerEvent ("bulletboom", source, hitX, hitY, hitZ ) 
    end 
end 
end 
addEventHandler ( "onClientPlayerWeaponFire", getLocalPlayer (), weaponfired ) 
  

Recuerda al postear códigos encerrarlos en el tag [lua ] [ /lua]

Posted

Gracias por lo del tag, no lo sabía. Ahora pruebo el código y edito el mensaje.

EDITO: No funciona, Tomasito, he remplazado todo el código por el tuyo y ahora ni los admin pueden disparar explosivos. Y los que no son admins pueden usar el comando igualmente (les sale la imagen que puse anteriormente). :cry:

Posted

Ohh cierto, ni me había dado cuenta que era Client-Side xD

Con respecto a lo del chat no puedes poner un chat para una persona específica en el client-side. Deberías hacerlo en el sv-side.

Postea todo el código y te lo arreglo todo, o al menos el orden de los argumentos de la función handleada al evento bulletboom.

Posted

El client.lua es este:

bBullets = false 
  
function enableBlowingbullets() 
    if (bBullets == false)then 
    bBullets = true 
    outputChatBox("Bala explosiva ativada.", 0, 255, 0) 
    outputChatBox("Use /be para desativar.", 0, 255, 0) 
    else 
    bBullets = false 
    outputChatBox("Bala explosiva desativada.", 255, 0, 0) 
    outputChatBox("Use /be para ativar.", 255, 0, 0) 
    end 
end 
addCommandHandler("be", enableBlowingbullets) 
  
function weaponfired (weapon, ammo, ammoInClip, hitX, hitY, hitZ, hitElement ) 
    if (bBullets == true)then 
        triggerServerEvent ("bulletboom", source, hitX, hitY, hitZ ) 
    end 
end 
addEventHandler ( "onClientPlayerWeaponFire", getLocalPlayer (), weaponfired )  

Y el server.lua ese:

addEvent ("bulletboom", true ) 
  
function bulletexplosion (hitX, hitY, hitZ) 
    createExplosion ( hitX, hitY, hitZ, 2 ) 
end 
  
addEventHandler("bulletboom",getRootElement(),bulletexplosion) 
  

Posted
  
-- Sv side: 
    function enableBlowingbullets(player) 
if getElementData(player,"bBullets") == "false" then 
 if isObjectInACLGroup ( "user." .. getAccountName(getPlayerAccount(player)), aclGetGroup ( "Admin" ) ) then 
        outputChatBox("Bala explosiva activada.",player, 0, 255, 0) 
        outputChatBox("Use /be para desactivar.",player, 0, 255, 0) 
setElementData(player,"bBullets","true") 
        else 
        outputChatBox("Bala explosiva desactivada.",player, 255, 0, 0) 
        outputChatBox("Use /be para activar.",player, 255, 0, 0) 
    setElementData(player,"bBullets","false") 
        end 
    end 
end 
    addCommandHandler("be", getRootElement(),enableBlowingbullets) 
  
function setfalse () 
setElementDatA(source,"bBullets","false") 
end 
addEventHandler("onPlayerLogin",getRootElement(),setfalse) 
  
-- Clientside 
  
    addEvent ("bulletboom", true ) 
      
    function bulletexplosion (hitX, hitY, hitZ) 
if getElementData(source,"bBullets") == "true" then 
        createExplosion ( hitX, hitY, hitZ, 2 ) 
    end 
     end 
    addEventHandler("bulletboom",getRootElement(),bulletexplosion) 
      

Posted
Ahora ni los admin pueden activar la bala explosiva :( Cuando le doy a start script me sale eso: https://www.dropbox.com/s/0gr6ba1lmlcp8fj/consola%20be.png?dl=0
  
  
-- Sv side: 
    function enableBlowingbullets(player) 
if getElementData(player,"bBullets") == "false" then 
 if isObjectInACLGroup ( "user." .. getAccountName(getPlayerAccount(player)), aclGetGroup ( "Admin" ) ) then 
        outputChatBox("Bala explosiva activada.",player, 0, 255, 0) 
        outputChatBox("Use /be para desactivar.",player, 0, 255, 0) 
setElementData(player,"bBullets","true") 
        else 
        outputChatBox("Bala explosiva desactivada.",player, 255, 0, 0) 
        outputChatBox("Use /be para activar.",player, 255, 0, 0) 
    setElementData(player,"bBullets","false") 
        end 
    end 
end 
    addCommandHandler("be",enableBlowingbullets) 
  
function setfalse () 
setElementDatA(source,"bBullets","false") 
end 
addEventHandler("onPlayerLogin",getRootElement(),setfalse) 
  
-- Clientside 
  
    addEvent ("bulletboom", true ) 
      
    function bulletexplosion (hitX, hitY, hitZ) 
if getElementData(source,"bBullets") == "true" then 
        createExplosion ( hitX, hitY, hitZ, 2 ) 
    end 
     end 
    addEventHandler("bulletboom",getRootElement(),bulletexplosion) 
      
      

Posted

Lol, el problema es que puse setElementDatA y Lua es sensible a las mayúsculas, ahí lo arreglo, lo siento:}

  
  
  
-- Sv side: 
    function enableBlowingbullets(player) 
if getElementData(player,"bBullets") == "false" then 
 if isObjectInACLGroup ( "user." .. getAccountName(getPlayerAccount(player)), aclGetGroup ( "Admin" ) ) then 
        outputChatBox("Bala explosiva activada.",player, 0, 255, 0) 
        outputChatBox("Use /be para desactivar.",player, 0, 255, 0) 
setElementData(player,"bBullets","true") 
        else 
        outputChatBox("Bala explosiva desactivada.",player, 255, 0, 0) 
        outputChatBox("Use /be para activar.",player, 255, 0, 0) 
    setElementData(player,"bBullets","false") 
        end 
    end 
end 
    addCommandHandler("be",enableBlowingbullets) 
  
function setfalse () 
setElementData(source,"bBullets","false") 
end 
addEventHandler("onPlayerLogin",getRootElement(),setfalse) 
  
-- Clientside 
  
    addEvent ("bulletboom", true ) 
      
    function bulletexplosion (hitX, hitY, hitZ) 
if getElementData(source,"bBullets") == "true" then 
        createExplosion ( hitX, hitY, hitZ, 2 ) 
    end 
     end 
    addEventHandler("bulletboom",getRootElement(),bulletexplosion) 
      
     

PD: Para que funcione debes activar el script, y reconectar.

Posted

Ya descubrí el problema xD

Client side:

  
function bulletexplosion (a,b,c,hitX, hitY, hitZ) 
if getElementData(source,"bBullets") == "si" then 
        createExplosion ( hitX, hitY, hitZ, 2 ) 
end 
end 
addEventHandler("onClientPlayerWeaponFire",getRootElement(),bulletexplosion) 
  

Server-side:

  
  
function enableBlowingbullets(player) 
    if isObjectInACLGroup ( "user." .. getAccountName(getPlayerAccount(player)), aclGetGroup ( "Admin" ) ) then 
    if getElementData(player,"bBullets") == "no" or not getElementData(player,"bBullets") then 
        outputChatBox("Bala explosiva activada.",player, 0, 255, 0) 
        outputChatBox("Use /be para desactivar.",player, 0, 255, 0) 
        setElementData(player,"bBullets","si") 
        else 
        outputChatBox("Bala explosiva desactivada.",player, 255, 0, 0) 
        outputChatBox("Use /be para activar.",player, 255, 0, 0) 
        setElementData(player,"bBullets","no") 
        end 
        else 
                        outputChatBox("Necesitas ser admin para usar este comando!",player,255,0,0) 
  
        end 
end 
    addCommandHandler("be",enableBlowingbullets) 
  

Y Alexs.. No me vengas a joder con los elementData ._.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...