Jump to content

como puedo hacer esto?


TarkFox

Recommended Posts

como puedo hacer que cuando unAdmin De Algun Grupo por ejemplo lvl 1 ponga /equipostaff y se cambie el Team Staff y ocupacion que diga lo que yo quiera que diga? por ejemplo lvl 1(ACL) (ocupacion) Trial STAFF y que el admin no muera cuando tenga este comando?

w 
function maskoff ( thePlayer, commandName, r, g, b )  
  
    setPlayerNametagColor( thePlayer, 255, 255, 255) 
end 
  
  
function maskaon ( thePlayer, commandName, r, g, b ) 
    
    setPlayerNametagColor ( thePlayer, F, F, F ) 
end 
  
addCommandHandler("Equipoadm", maskaon) 

Link to comment

Esto te agrega una columna al scoreboard - "Ocupacion" Y te manda al team "Admin" si eres Admin.

Tienes que identificarte primero /login

No se si te refieras a eso?

exports["scoreboard"]:addScoreboardColumn ("Ocupacion", 3 ) 
  
function team (  ) 
   theTeam = createTeam ( "Admin",  143, 143, 16 ) 
end 
addEventHandler ( "onResourceStart", getResourceRootElement(getThisResource()), team ) 
  
function onlogin (  ) 
    if ( isObjectInACLGroup("user."..getAccountName(getPlayerAccount( source )), aclGetGroup("Admin"))) then 
    setElementData( source, "Ocupacion", "Admin" ) 
    setPlayerTeam (source, theTeam) 
    else 
    setElementData( source, "Ocupacion", "Normal" ) 
    end 
end 
addEventHandler ( "onPlayerLogin", getRootElement(), onlogin ) 
  

Link to comment

Server.lua

    EquipoStaff = createTeam("Staff", 255, 255, 255) 
     
    function SecEquipo ( jugador ) 
        local EquipoStaff = getTeamFromName ( "Staff" ) 
        if EquipoStaff and jugador then 
        setPlayerTeam ( jugador, EquipoStaff ) 
        setPlayerNametagColor ( jugador, 255, 255, 255 ) 
        else 
        end 
    end 
    addEvent ( "Equipo", true) 
    addEventHandler ( "Equipo", root, SecEquipo ) 
      
    addCommandHandler ( "staff", SecEquipo) 
     
exports.scoreboard:scoreboardAddColumn("Ocupación") 
  

No encontre la forma de poner "LVL 1" en la columna de Ocupación de el scoreboard, tampoco eso del godmode cuando entras al team, trate de hacer todo lo posible :B

Edited by Guest
Link to comment
Server.lua
    EquipoStaff = createTeam("Staff", 255, 255, 255) 
     
    function SecEquipo ( jugador ) 
        local EquipoStaff = getTeamFromName ( "Staff" ) 
        if EquipoStaff and jugador then 
        setPlayerTeam ( jugador, EquipoStaff ) 
        setPlayerNametagColor ( jugador, 255, 255, 255 ) 
        else 
        end 
    end 
    addEvent ( "Equipo", true) 
    addEventHandler ( "Equipo", root, SecEquipo ) 
      
    addCommandHandler ( "staff", SecEquipo) 
     
exports.scoreboard:scoreboardAddColumn("Ocupación") 
  

No encontre la forma de poner "LVL 1" en la columna de Ocupación de el scoreboard, tampoco eso del godmode cuando entras al team, trate de hacer todo lo posible :B

Eso no tiene ningún sentido.

Link to comment
Server.lua
    EquipoStaff = createTeam("Staff", 255, 255, 255) 
     
    function SecEquipo ( jugador ) 
        local EquipoStaff = getTeamFromName ( "Staff" ) 
        if EquipoStaff and jugador then 
        setPlayerTeam ( jugador, EquipoStaff ) 
        setPlayerNametagColor ( jugador, 255, 255, 255 ) 
        else 
        end 
    end 
    addEvent ( "Equipo", true) 
    addEventHandler ( "Equipo", root, SecEquipo ) 
      
    addCommandHandler ( "staff", SecEquipo) 
     
exports.scoreboard:scoreboardAddColumn("Ocupación") 
  

No encontre la forma de poner "LVL 1" en la columna de Ocupación de el scoreboard, tampoco eso del godmode cuando entras al team, trate de hacer todo lo posible :B

Eso no tiene ningún sentido.

._.

Link to comment

no, esque solo los STAFF que esten en el grupo ACL, yo en el grupo ACL tengo los niveles de admin, entonces estos son

lvl 1

lvl 2

lvl 3

lvl 4

lvl 5

lvl 10(mio)

entonces quiero que solo los del ACL (esos qie puse) puedan poner /equipoadm y que sean invencibles(que no mueran por nada del mundo cuando esten con el equipoadm activado) y cuando lo tengan desactivado, que sean como un player normal entienden?

Link to comment
no, esque solo los STAFF que esten en el grupo ACL, yo en el grupo ACL tengo los niveles de admin, entonces estos son

lvl 1

lvl 2

lvl 3

lvl 4

lvl 5

lvl 10(mio)

entonces quiero que solo los del ACL (esos qie puse) puedan poner /equipoadm y que sean invencibles(que no mueran por nada del mundo cuando esten con el equipoadm activado) y cuando lo tengan desactivado, que sean como un player normal entienden?

Tu dices que en el scoreboard aparezca su nivel de admin y tengan godmode?

Link to comment
no, esque solo los STAFF que esten en el grupo ACL, yo en el grupo ACL tengo los niveles de admin, entonces estos son

lvl 1

lvl 2

lvl 3

lvl 4

lvl 5

lvl 10(mio)

entonces quiero que solo los del ACL (esos qie puse) puedan poner /equipoadm y que sean invencibles(que no mueran por nada del mundo cuando esten con el equipoadm activado) y cuando lo tengan desactivado, que sean como un player normal entienden?

Tu dices que en el scoreboard aparezca su nivel de admin y tengan godmode?

Sí eso es lo que quiere, según yo para hacer eso se necesita setElementData y algo relacionado con el ACL

Link to comment

server

addEventHandler ( "onResourceStart", getResourceRootElement(getThisResource()), function( ) 
   theTeam = createTeam ( "STAFF",  143, 143, 16 ) 
end) 
  
addCommandHandler("equipoadm", function (playerSource) 
    if ( isObjectInACLGroup("user."..getAccountName(getPlayerAccount( playerSource )), aclGetGroup("lvl 1"))) 
     or ( isObjectInACLGroup("user."..getAccountName(getPlayerAccount( playerSource )), aclGetGroup("lvl 2"))) 
     or ( isObjectInACLGroup("user."..getAccountName(getPlayerAccount( playerSource )), aclGetGroup("lvl 3"))) 
     or ( isObjectInACLGroup("user."..getAccountName(getPlayerAccount( playerSource )), aclGetGroup("lvl 4"))) 
     or ( isObjectInACLGroup("user."..getAccountName(getPlayerAccount( playerSource )), aclGetGroup("lvl 5"))) 
     or ( isObjectInACLGroup("user."..getAccountName(getPlayerAccount( playerSource )), aclGetGroup("lvl 10"))) 
      then 
     setPlayerTeam (playerSource, theTeam) 
    end 
end) 
  
addEventHandler ("onPlayerDamage", root, 
        function (attacker) 
            if ( attacker ) and  getPlayerTeam(source) ~= getTeamFromName("STAFF")then  
                then 
                cancelEvent() 
            end 
        end 
) 

Edited by Guest
Link to comment

Client

  
addEventHandler ("onClientPlayerDamage", root, 
  function (attacker) 
    if ( attacker and getElementType(attacker) == "player" ) then 
        if ( getPlayerTeam(source) ~= getTeamFromName("STAFF")) then 
            cancelEvent() 
        end 
    end 
  end) 

Server

  
addEventHandler ( "onResourceStart", getResourceRootElement(getThisResource()), function( ) 
   theTeam = createTeam ( "STAFF",  143, 143, 16 ) 
end) 
  
addCommandHandler("equipoadm", function () 
    if ( isObjectInACLGroup("user."..getAccountName(getPlayerAccount( playerSource )), aclGetGroup("lvl 1"))) 
     or ( isObjectInACLGroup("user."..getAccountName(getPlayerAccount( playerSource )), aclGetGroup("lvl 2"))) 
     or ( isObjectInACLGroup("user."..getAccountName(getPlayerAccount( playerSource )), aclGetGroup("lvl 3"))) 
     or ( isObjectInACLGroup("user."..getAccountName(getPlayerAccount( playerSource )), aclGetGroup("lvl 4"))) 
     or ( isObjectInACLGroup("user."..getAccountName(getPlayerAccount( playerSource )), aclGetGroup("lvl 5"))) 
     or ( isObjectInACLGroup("user."..getAccountName(getPlayerAccount( playerSource )), aclGetGroup("lvl 10"))) 
      then 
     setPlayerTeam (playerSource, theTeam) 
    end 
end) 

Link to comment

Server

 Staff = createTeam("Staff", 255, 255, 255) 
        
        function StaffTeam ( player ) 
            local Staff = getTeamFromName ( "Staff" ) 
            if Staff and player then 
            setPlayerTeam ( player, Staff ) 
            setPlayerNametagColor ( player, 255, 255, 255 ) 
            else 
            end 
        end 
        addEvent ( "Equipo", true) 
        addEventHandler ( "Equipo", root, StaffTeam ) 
         
    addCommandHandler ( "staff", StaffTeam)  
  
    exports.scoreboard:scoreboardAddColumn("Ocupación") 
         
function scoreboard() 
    if ( isObjectInACLGroup("user."..getAccountName(getPlayerAccount( source )), aclGetGroup("LvL 10"))) then 
    setElementData(source, "Ocupación", "LvL 10") 
    return true 
    else 
    end 
end 
addEventHandler ("onPlayerLogin", getRootElement(), scoreboard) 
  
function scoreboard2() 
    if ( isObjectInACLGroup("user."..getAccountName(getPlayerAccount( source )), aclGetGroup("TRIAL STAFF"))) then 
    setElementData(source, "Ocupación", "TRIAL STAFF") 
    return true 
    else 
    end 
end 
addEventHandler ("onPlayerLogin", getRootElement(), scoreboard2) 
  
function EnableGodMode ( thePlayer ) 
    local account = getPlayerAccount ( thePlayer ) 
    if ( not account or isGuestAccount ( account ) ) then 
        return 
    end 
  
    local accountName = getAccountName ( account ) 
    if ( isObjectInACLGroup ( "user.".. accountName, aclGetGroup ( "Admin" ) ) ) then 
        local state = ( not getElementData ( thePlayer, "enable" ) ) 
        setElementData ( thePlayer, "enable", state ) 
    end 
end 
addCommandHandler ( "staff", EnableGodMode ) 

Client

addEventHandler ( "onClientPlayerDamage",root, 
function () 
    if getElementData(source,"enable") then 
        cancelEvent() 
    end 
end) 
  
addEventHandler("onClientPlayerStealthKill",localPlayer, 
function (targetPlayer) 
    if getElementData(targetPlayer,"enable") then 
        cancelEvent() 
    end 
end) 

Inicias el script

Creas el ACL marcado en el script (puedes modificarlo a tu gusto) y agregas tu user (user.blah) despues de eso reinicias el script y reconnectas en tu servidor

Edited by Guest
Link to comment

@GHz30 Te recomiendo que leas bien como se usan correctamente las funciones y eventos

addEvent 
addCommandHandler 
exports.scoreboard:scoreboardAddColumn 

No te ofendas pero cada cosa que pones no tiene sentido. Cuando no puedes ayudar no hay de más.

Yo en lo personal no comento cosas que no se. Y cuando las sé y puedo ayudar lo hago. Tu intención de ayudar esta clara pero que sentido tiene comentar algo que no se sabe? Lo probaste? te funcionó? a simple vista se pueden observar muchos errores sin necesidad de probarlo.

Link to comment
@GHz30 Te recomiendo que leas bien como se usan correctamente las funciones y eventos
addEvent 
addCommandHandler 
exports.scoreboard:scoreboardAddColumn 

No te ofendas pero cada cosa que pones no tiene sentido. Cuando no puedes ayudar no hay de más.

Yo en lo personal no comento cosas que no se. Y cuando las sé y puedo ayudar lo hago. Tu intención de ayudar esta clara pero que sentido tiene comentar algo que no se sabe? Lo probaste? te funcionó? a simple vista se pueden observar muchos errores sin necesidad de probarlo.

Sí Cocodrilo, soy un mal scripter y no se acomodar bien las funciones de los eventos, sobre de probar el script, sí lo probe y me funciono perfectamente, mire la consola y no me dio ningun error.

Gracias de igual por tu comentario Coco, me ayudan a tratar de ayudar y aprender más de script, algún dia me gustaria ser mejor persona para ayudar aqui.

Link to comment

Me alegra mucho que realmente haya gente que quiera ayudar :) @Cocodrilo en cuanto a tu script es ineficiente que uses tantas funciones, para que me entiendas te dejo esto:

Server:

  
  
addEventHandler ( "onResourceStart", resourceRoot, function( )--aca como veras es mejor usar resourceRoot 
   theTeam = createTeam ( "STAFF",  143, 143, 16 ) 
end) 
  
addCommandHandler("equipoadm", function () 
local es = getPlayerAccount(source) 
local cuenta = getAccountName(es)--Simplemente obtienes una vez la cuenta y usas la misma variable para cada comprobación 
if not isGuestAccount(es) then 
    if ( isObjectInACLGroup("user."..cuenta, aclGetGroup("lvl 1"))) 
     or ( isObjectInACLGroup("user."..cuenta, aclGetGroup("lvl 2"))) 
     or ( isObjectInACLGroup("user."..cuenta, aclGetGroup("lvl 3"))) 
     or ( isObjectInACLGroup("user."..cuenta, aclGetGroup("lvl 4"))) 
     or ( isObjectInACLGroup("user."..cuenta, aclGetGroup("lvl 5"))) 
     or ( isObjectInACLGroup("user."..cuenta, aclGetGroup("lvl 10"))) 
      then 
     setPlayerTeam (playerSource, theTeam) 
    end 
  end 
end) 

Link to comment
Me alegra mucho que realmente haya gente que quiera ayudar :) @Cocodrilo en cuanto a tu script es ineficiente que uses tantas funciones, para que me entiendas te dejo esto:

Server:

  
  
addEventHandler ( "onResourceStart", resourceRoot, function( )--aca como veras es mejor usar resourceRoot 
   theTeam = createTeam ( "STAFF",  143, 143, 16 ) 
end) 
  
addCommandHandler("equipoadm", function () 
local es = getPlayerAccount(source) 
local cuenta = getAccountName(es)--Simplemente obtienes una vez la cuenta y usas la misma variable para cada comprobación 
if not isGuestAccount(es) then 
    if ( isObjectInACLGroup("user."..cuenta, aclGetGroup("lvl 1"))) 
     or ( isObjectInACLGroup("user."..cuenta, aclGetGroup("lvl 2"))) 
     or ( isObjectInACLGroup("user."..cuenta, aclGetGroup("lvl 3"))) 
     or ( isObjectInACLGroup("user."..cuenta, aclGetGroup("lvl 4"))) 
     or ( isObjectInACLGroup("user."..cuenta, aclGetGroup("lvl 5"))) 
     or ( isObjectInACLGroup("user."..cuenta, aclGetGroup("lvl 10"))) 
      then 
     setPlayerTeam (playerSource, theTeam) 
    end 
  end 
end) 

Yo entiendo y trato de hacer el script lo mas corto posible. Que por cierto tu ejemplo fue unas lineas mas largo que el mio. Pero bueno, a como leí por ahi.. cada quien tiene sus propias maneras. (:

Link to comment
Yo entiendo y trato de hacer el script lo mas corto posible. Que por cierto tu ejemplo fue unas lineas mas largo que el mio. Pero bueno, a como leí por ahi.. cada quien tiene sus propias maneras. (:

La diferencia es que la cuenta del jugador no cambiara en la ejecución del código, así que con conseguir una sola vez la cuenta bastaría, pero luego ambos utilizan demasiadas veces la función 'isObjectInACLGroup' así que melindrear al respecto de la cuenta esta de mas.

*Por cierto, 'addCommandHandler' no tiene un parámetro de fuente (source) y el jugador debe definirse en los parámetros de la función conjunta, cosa que ninguno de los dos hace.

Edited by Guest
Link to comment
  • Recently Browsing   0 members

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