TarkFox Posted January 29, 2014 Share 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) Link to comment
Cocodrilo Posted January 29, 2014 Share 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 ) Link to comment
Guest Posted January 29, 2014 Share 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 Link to comment
Cocodrilo Posted January 30, 2014 Share 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. Link to comment
Guest Posted January 30, 2014 Share 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. ._. Link to comment
Tomas Posted January 30, 2014 Share 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 Link to comment
Guest Posted January 30, 2014 Share Posted January 30, 2014 Intente usar setElementData pero no me daba error ._. Link to comment
Tomas Posted January 30, 2014 Share Posted January 30, 2014 Intente usar setElementData pero no me daba error ._. Cual error? ... Link to comment
Cocodrilo Posted January 30, 2014 Share 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 Link to comment
TarkFox Posted January 30, 2014 Author Share 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? Link to comment
Tomas Posted January 30, 2014 Share 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? Link to comment
Guest Posted January 30, 2014 Share 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 Link to comment
Cocodrilo Posted January 30, 2014 Share 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 Link to comment
Castillo Posted January 30, 2014 Share Posted January 30, 2014 El evento "onPlayerDamage" no se puede cancelar. Link to comment
Cocodrilo Posted January 30, 2014 Share Posted January 30, 2014 El evento "onPlayerDamage" no se puede cancelar. oh, recien veo. Solo onClientPlayerDamage Link to comment
Cocodrilo Posted January 30, 2014 Share 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) Link to comment
Guest Posted January 30, 2014 Share 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 Link to comment
Cocodrilo Posted January 31, 2014 Share 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. Link to comment
Guest Posted January 31, 2014 Share 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. Link to comment
MTA Team 0xCiBeR Posted January 31, 2014 MTA Team Share 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) Link to comment
Cocodrilo Posted January 31, 2014 Share 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. (: Link to comment
Alexs Posted January 31, 2014 Share 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 Link to comment
BorderLine Posted January 31, 2014 Share 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 Link to comment
Recommended Posts