TarkFox Posted January 29, 2014 Posted January 29, 2014 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)
Cocodrilo Posted January 29, 2014 Posted January 29, 2014 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 )
Guest Posted January 29, 2014 Posted January 29, 2014 (edited) 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 January 30, 2014 by Guest
Cocodrilo Posted January 30, 2014 Posted January 30, 2014 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.
Guest Posted January 30, 2014 Posted January 30, 2014 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. ._.
Tomas Posted January 30, 2014 Posted January 30, 2014 Se refiere a dentro del ACL según el lugar que ocupe, osea Mod/Smod/Admin sea la ocupación Trial STAFF (Mod) Moderador (Smod) Administrador (Admin) Creo que quiere decir eso
Guest Posted January 30, 2014 Posted January 30, 2014 Intente usar setElementData pero no me daba error ._.
Tomas Posted January 30, 2014 Posted January 30, 2014 Intente usar setElementData pero no me daba error ._. Cual error? ...
Cocodrilo Posted January 30, 2014 Posted January 30, 2014 El código que puse funciona bien. Pero como que no entendí del todo lo que el quiere hacer. Faltó que se explicara un poco mejor
TarkFox Posted January 30, 2014 Author Posted January 30, 2014 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?
Tomas Posted January 30, 2014 Posted January 30, 2014 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?
Guest Posted January 30, 2014 Posted January 30, 2014 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
Cocodrilo Posted January 30, 2014 Posted January 30, 2014 (edited) 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 January 30, 2014 by Guest
Castillo Posted January 30, 2014 Posted January 30, 2014 El evento "onPlayerDamage" no se puede cancelar.
Cocodrilo Posted January 30, 2014 Posted January 30, 2014 El evento "onPlayerDamage" no se puede cancelar. oh, recien veo. Solo onClientPlayerDamage
Cocodrilo Posted January 30, 2014 Posted January 30, 2014 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)
Guest Posted January 30, 2014 Posted January 30, 2014 (edited) 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 January 31, 2014 by Guest
Cocodrilo Posted January 31, 2014 Posted January 31, 2014 @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.
Guest Posted January 31, 2014 Posted January 31, 2014 @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.
MTA Team 0xCiBeR Posted January 31, 2014 MTA Team Posted January 31, 2014 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)
Cocodrilo Posted January 31, 2014 Posted January 31, 2014 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. (:
Alexs Posted January 31, 2014 Posted January 31, 2014 (edited) 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 January 31, 2014 by Guest
BorderLine Posted January 31, 2014 Posted January 31, 2014 *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. Buen punto
Recommended Posts