dewu Posted September 7, 2014 Share Posted September 7, 2014 Hi guys. I got two problems. 1. I want to add [ADMIN] tag when he text on global. I try to do that, but it's not working: -- Global chat function globalMessage(thePlayer, cmd, ...) local message = table.concat ( { ... }, " " ); local name = getPlayerName(thePlayer); for _,v in ipairs(getElementsByType("player")) do outputChatBox("#FF0000[GLOBAL]#00FF00"..name..": #FFFFFF"..message,v, 255, 255, 255, true) end if isObjectInACLGroup("user." .. account, aclGetGroup("Admin")) then outputChatBox("#FF0000[ADMIN]#00FF00"..name..": #FFFFFF"..message,v, 255, 255, 255, true) end end addCommandHandler("global", globalMessage); addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), function() for index,player in pairs(getElementsByType("player")) do bindKey(player,"x", "down", "chatbox", "global"); end end ) addEventHandler("onPlayerJoin", getRootElement(), function() bindKey(source, "x", "down", "chatbox", "global"); end ) 2. How to set admin ping immunity? Link to comment
justn Posted September 7, 2014 Share Posted September 7, 2014 -- Global chat function globalMessage(thePlayer, cmd, ...) local message = table.concat ( { ... }, " " ); local name = getPlayerName(thePlayer); local account = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup("user." .. account, aclGetGroup("Admin")) then outputChatBox("#FF0000[ADMIN]#00FF00"..name..": #FFFFFF"..message,root, 255, 255, 255, true) else outputChatBox("#FF0000[GLOBAL]#00FF00"..name..": #FFFFFF"..message,root, 255, 255, 255, true) end end addCommandHandler("global", globalMessage); addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), function() for index,player in pairs(getElementsByType("player")) do bindKey(player,"x", "down", "chatbox", "global"); end end) addEventHandler("onPlayerJoin", getRootElement(), function() bindKey(source, "x", "down", "chatbox", "global"); end ) Link to comment
joaosilva099 Posted September 7, 2014 Share Posted September 7, 2014 global you are saying is the T chat or is an chatbox that u created called global? Link to comment
dewu Posted September 7, 2014 Author Share Posted September 7, 2014 -- Global chat function globalMessage(thePlayer, cmd, ...) local message = table.concat ( { ... }, " " ); local name = getPlayerName(thePlayer); local account = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup("user." .. account, aclGetGroup("Admin")) then outputChatBox("#FF0000[ADMIN]#00FF00"..name..": #FFFFFF"..message,root, 255, 255, 255, true) else outputChatBox("#FF0000[GLOBAL]#00FF00"..name..": #FFFFFF"..message,root, 255, 255, 255, true) end end addCommandHandler("global", globalMessage); addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), function() for index,player in pairs(getElementsByType("player")) do bindKey(player,"x", "down", "chatbox", "global"); end end) addEventHandler("onPlayerJoin", getRootElement(), function() bindKey(source, "x", "down", "chatbox", "global"); end ) It's works, thanks! And the second problem still idk how to do that ;/ I'am admin on server and i am kicking by ;d Link to comment
justn Posted September 8, 2014 Share Posted September 8, 2014 Whatever ping-kicker system you're using, you should edit the code, so if the player ( who is being kicked ) is not an admin, then he will be kicked. Link to comment
dewu Posted September 8, 2014 Author Share Posted September 8, 2014 Yeah, I know. But how to do that? Where i can find code with ping-kicker function? Link to comment
dewu Posted September 8, 2014 Author Share Posted September 8, 2014 Okay, i found it: Client: function playerPingCheck() if getPlayerPing(getLocalPlayer()) > gameplayVariables.ping then pingFails = pingFails + 1 if pingFails == 5 then triggerServerEvent("kickPlayerOnHighPing", getLocalPlayer()) return end startRollMessage2("Ping", "Your ping is over " .. gameplayVariables.ping .. "! (" .. pingFails .. "/5)", 255, 22, 0) if isTimer(pingTimer) then return end pingTimer = setTimer(function() pingFails = 0 end, 30000, 1) end end setTimer(playerPingCheck, 4000, 0) Server: function kickPlayerOnHighPing() outputChatBox(getPlayerName(source) .. " was kicked due to high ping!", getRootElement(), 27, 89, 224, true) kickPlayer(source, "Your Ping was straight too high.") end addEvent("kickPlayerOnHighPing", true) addEventHandler("kickPlayerOnHighPing", getRootElement(), kickPlayerOnHighPing) How to set admin immunity? Link to comment
justn Posted September 9, 2014 Share Posted September 9, 2014 Your new server-sided code, if the player is in "Console, Admin, SuperModerator or Moderator" then he won't be kicked. function kickPlayerOnHighPing() if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("Admin" )) or not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("Console" )) or not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("Moderator" )) or not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("SuperModerator" )) then outputChatBox(getPlayerName(source) .. " was kicked due to high ping!", getRootElement(), 27, 89, 224, true) kickPlayer(source, "Your Ping was straight too high.") end end addEvent("kickPlayerOnHighPing", true) addEventHandler("kickPlayerOnHighPing", getRootElement(), kickPlayerOnHighPing) Link to comment
dewu Posted September 9, 2014 Author Share Posted September 9, 2014 It's not working. I'm still kicking by server. Link to comment
Castillo Posted September 9, 2014 Share Posted September 9, 2014 function kickPlayerOnHighPing ( ) local accountName = getAccountName ( getPlayerAccount ( source ) ) if ( not isObjectInACLGroup ( "user.".. accountName, aclGetGroup ( "Admin" ) ) and not isObjectInACLGroup ( "user.".. accountName, aclGetGroup ( "Console" ) ) and not isObjectInACLGroup ( "user.".. accountName, aclGetGroup ( "Moderator" ) ) and not isObjectInACLGroup ( "user.".. accountName, aclGetGroup ( "SuperModerator" ) ) ) then outputChatBox ( getPlayerName ( source ) .. " was kicked due to high ping!", getRootElement(), 27, 89, 224, true ) kickPlayer ( source, "Your Ping was straight too high." ) end end addEvent ( "kickPlayerOnHighPing", true ) addEventHandler ( "kickPlayerOnHighPing", getRootElement(), kickPlayerOnHighPing ) Link to comment
dewu Posted September 9, 2014 Author Share Posted September 9, 2014 I've not test it yet, but I know when Solidsnake14 write something it'll works Thanks. 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