zixxonx Posted January 2, 2014 Share Posted January 2, 2014 Im muting player with this: mutedSerials [ getPlayerSerial ( target ) ] = 3000 (i put 3000 for testing ) and that's my checker function muteChecker() for id, player in ipairs(getElementsByType("player")) do if(anymute >= 1) then if(mutedSerials [ getPlayerSerial ( player ) ] == 0) then setElementData(player, "Muted", false) SkryptMsg(getPlayerName(player) .." has been unmuted by system!") anymute = anymute - 1 elseif(mutedSerials [ getPlayerSerial (player ) ] > 1000) then mutedSerials [ getPlayerSerial ( player ) ] = mutedSerials [ getPlayerSerial ( player ) ] - 1000 end end end end setTimer(muteChecker, 1000, 0) And i'm getting attempt to compare number with nil What's bad? Thats my script local mutedSerials = { } anymute = 0 function muteSomeone ( player, cmd, target, reason, czas ) if ( target and reason and czas ) then local target = getPlayerFromNamePart ( target ) if ( not isElement ( target ) ) then SkryptMsg ( "There is no player with this name", player) return end local czas = tonumber ( czas ) --local czas = mToMs ( czas ) if ( czas and czas >= 1 and not isPlayerMuted ( target ) ) then local milliseconds = math.floor ( czas * 60000 ) SkryptMsg ( getPlayerName ( target ) .." has been muted for ".. tostring ( czas ) .." minutes (".. reason ..") .") -- setPlayerMuted ( target, true ) --setTimer ( setPlayerMuted, milliseconds, 1, target, false ) mutedSerials [ getPlayerSerial ( target ) ] = 3000 setElementData(target, "Muted", true) anymute = anymute+1 end else SkryptMsg ( "Syntax: /mmute player reason time (in minutes)", player) end end addCommandHandler ( "dexmut", muteSomeone ) function muteChecker() for id, player in ipairs(getElementsByType("player")) do if(anymute >= 1) then if(mutedSerials [ getPlayerSerial ( player ) ] == 0) then setElementData(player, "Muted", false) SkryptMsg(getPlayerName(player) .." has been unmuted by system!") anymute = anymute - 1 elseif(mutedSerials [ getPlayerSerial (player ) ] > 1000) then mutedSerials [ getPlayerSerial ( player ) ] = mutedSerials [ getPlayerSerial ( player ) ] - 1000 end end end end setTimer(muteChecker, 1000, 0) function getPlayerFromNamePart(name) if name then for i, player in ipairs(getElementsByType("player")) do if string.find(getPlayerName(player):lower(), tostring(name):lower(), 1, true) then return player end end end return false end Link to comment
Castillo Posted January 2, 2014 Share Posted January 2, 2014 Where are you getting that error? at what line? Link to comment
Castillo Posted January 2, 2014 Share Posted January 2, 2014 Change the line 39 with this one: elseif ( mutedSerials [ getPlayerSerial ( player ) ] and mutedSerials [ getPlayerSerial ( player ) ] > 1000 ) then Link to comment
zixxonx Posted January 2, 2014 Author Share Posted January 2, 2014 Yeah it work correctly, idk how it can help but it helped. And i wont to create new thread so can i ask here? if messageType == 2 then cancelEvent() local r,g,b local druzyna = getPlayerTeam(source) r, g, b = getTeamColor ( druzyna ) --outputChatBox end I did it, but now how to get all players from current team? I have no idea how can i do it. Link to comment
Castillo Posted January 2, 2014 Share Posted January 2, 2014 You must use getPlayersInTeam. Like this: for _, player in ipairs ( getPlayersInTeam ( druzyna ) ) do -- Your code here end 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