Jump to content

Help with Timer


.:HyPeX:.

Recommended Posts

Hi guys, i'm trying to make a kind of advanced anti spamming script with mutes, and im just starting, but i'm stuck here:

The problem is when i try to get getTimerDetails is to get the time in the table thats left, it gets the timer expected that i want, (985, 1466,1467) but i do not know how to handle it correctly. Any idea?

antiSpam = {} 
function AntiSpam (message, messageType) 
     if messageType == 0 and isTimer(antiSpam[source]) then 
        setTimer ( getTimerDetails(antiSpam[source])*2 ) 
        cancelEvent () 
        outputChatBox("Stop Flooding!", source, 255, 255, 0) 
            else 
            antiSpam[source] = setTimer(function(source) antiSpam[source] = nil end, 1000, 1, source) 
      
     end 
      
end 
addEventHandler("onPlayerChat", getRootElement(), AntiSpam) 

//EDIT: I've found a litle improvement, but still i'm not sure how to call this.

antiSpam = {} 
function AntiSpam (message, messageType) 
     if messageType == 0 and isTimer(antiSpam[source]) then 
        remaining = ( getTimerDetails( antiSpam[source] ) ) 
        setTimer ( remaining*2 ) 
        cancelEvent () 
        outputChatBox("Stop Flooding!", source, 255, 255, 0) 
            else 
            antiSpam[source] = setTimer(function(source) antiSpam[source] = nil end, 1000, 1, source) 
      
     end 
      
end 
addEventHandler("onPlayerChat", getRootElement(), AntiSpam) 
  

Link to comment

I wanted to set a time for the player to be muted.

Okay this fixed it

antiSpam = {} 
function AntiSpam (message, messageType) 
     if messageType == 0 and isTimer(antiSpam[source]) then 
        remaining, executesRemaining, totalExecutes = getTimerDetails( antiSpam[source] )  
        resetTimer ( antiSpam[source], remaining*2, 1 ) 
        cancelEvent () 
        outputChatBox("Stop Flooding, Every new messange will duplicate your time muted!", source, 255, 255, 0) 
        outputChatBox("Type /sleft to get your time left muted.", source, 255, 255, 0) 
            else 
            antiSpam[source] = setTimer(function(source) antiSpam[source] = nil end, 10000, 1, source) 
      
     end 
      
end 
addEventHandler("onPlayerChat", getRootElement(), AntiSpam) 

Now, if i want to know wich time i got left.. but i cant get the correct call of getTimerDetails, it just outputs the else message.

function timerDetails() 
    remaining, executesRemaining, totalExecutes = getTimerDetails( antiSpam[source] )  
    if (remaining and executesRemaining and totalExecutes) then 
        outputChatBox("Time remaining this second: "..remaining.." Executes remaining: "..executesRemaining.." Total executes: "..totalExecutes) 
        else 
            outputChatBox("You are free to speak") 
    end 
end 
addCommandHandler("sleft", timerDetails) 

Link to comment

Okay guys, none of these work, any idea?

function UnmuteSpam (target, thePlayer, command) 
    target = tostring(target) 
    if isTimer (antiSpam[target]) then 
    killTimer (antiSpam[target]) 
    outputChatBox("This player is now unmuted") 
        else 
            outputChatBox("This player wasn't muted") 
    end 
    end 
   
addCommandHandler("um", UnmuteSpam) 
  
  
function timerDetails() 
    if isTimer(antiSpam[source]) then 
        remaining, executesRemaining, totalExecutes = getTimerDetails( antiSpam[source] ) 
        outputChatBox("Time remaining until chat free: ( remaining ), wait please.") 
        else 
            outputChatBox("You are free to speak") 
    end 
end 
addCommandHandler("sleft", timerDetails) 
  

Link to comment

try

local antiSpam = {} 
  
function UnmuteSpam (thePlayer, _,target) 
    target = tostring(target) 
    if isTimer (antiSpam[target]) then 
    killTimer (antiSpam[target]) 
    outputChatBox("This player is now unmuted") 
        else 
            outputChatBox("This player wasn't muted") 
    end 
    end 
  
addCommandHandler("um", UnmuteSpam) 
  
function timerDetails(source) 
    if isTimer(antiSpam[source]) then 
        remaining, executesRemaining, totalExecutes = getTimerDetails( antiSpam[source] ) 
        outputChatBox("Time remaining until chat free: ( remaining ), wait please.") 
        else 
            outputChatBox("You are free to speak") 
    end 
end 
addCommandHandler("sleft", timerDetails) 

Link to comment
try
local antiSpam = {} 
  
function UnmuteSpam (thePlayer, _,target) 
    target = tostring(target) 
    if isTimer (antiSpam[target]) then 
    killTimer (antiSpam[target]) 
    outputChatBox("This player is now unmuted") 
        else 
            outputChatBox("This player wasn't muted") 
    end 
    end 
  
addCommandHandler("um", UnmuteSpam) 
  
function timerDetails(source) 
    if isTimer(antiSpam[source]) then 
        remaining, executesRemaining, totalExecutes = getTimerDetails( antiSpam[source] ) 
        outputChatBox("Time remaining until chat free: ( remaining ), wait please.") 
        else 
            outputChatBox("You are free to speak") 
    end 
end 
addCommandHandler("sleft", timerDetails) 

worked in behalf, the target didnt worked, outputs the else message, and the sleft tells me the time (fixed it actually it was "..remaining), but it also tells "you are free to speak" and when you're not muted it does nothing.

EDIT//: my script didnt had the "else" on the you are free to speak part, only the unmute doesnt work.

Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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