• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

!afk

DedicatedOT

New Member
Joined
Jun 13, 2009
Messages
977
Reaction score
4
Location
USA
Anyone know how to make the !afk function?

Basically someone says !afk, then it will have the words AFK coming atop the person's head, then when he/she says !afk again, it will stop.
 
Like this \/?
- Talkaction.xml
PHP:
<talkaction words="!afk" event="script" value="afk.lua" />
PHP:
local time = 3 -- Seconds
local say_events = {}
local function SayText(cid)
    if isPlayer(cid) == TRUE then
         if say_events[getPlayerGUID(cid)] ~= nil then
             if isPlayer(cid) == TRUE then
                 doSendAnimatedText(getPlayerPosition(cid),"AFK", math.random(01,255))
             end
             say_events[getPlayerGUID(cid)] = addEvent(SayText, time * 1000 / 2, cid)       
         end                                                       
    end
    return TRUE
end

local storage = 38417
function onSay(cid, words, param, channel)
local afkCheck = getPlayerStorageValue(cid, storage)
    if(param == "") then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
    return TRUE
    end
     if (param == "on") then
        if (afkCheck == -1) then
            if (isPlayer(cid) == TRUE) then
                doSendAnimatedText(getPlayerPosition(cid),"AFK", math.random(01,255))
            end
            say_events[getPlayerGUID(cid)] = addEvent(SayText, time * 1000, cid)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "You are now AFK.")
            doCreatureSetNoMove(cid, true)
            setPlayerStorageValue(cid, storage, 1)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You are already AFK.")
        end
     elseif (param == "off") then
        stopEvent(say_events[getPlayerGUID(cid)])
        say_events[getPlayerGUID(cid)] = nil
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Welcome Back!")
        doCreatureSetNoMove(cid, false)
        setPlayerStorageValue(cid, storage, -1)
    end
    return TRUE
end

Code:
- !afk on
- !afk off

CREDITS \/
 
Last edited:
I know, there are a lot of ways to do this.

Code:
function onThink(cid, interval)
	if (getPlayerIdleTime(cid) >= 10 * 60 * 1000) then
		doSendAnimatedText(getCreaturePosition(cid), "AFK!", TEXTCOLOR_WHITE)
	end
	return true
end
 
I know, there are a lot of ways to do this.

Code:
function onThink(cid, interval)
	if (getPlayerIdleTime(cid) >= 10 * 60 * 1000) then
		doSendAnimatedText(getCreaturePosition(cid), "AFK!", TEXTCOLOR_WHITE)
	end
	return true
end
you would have to loop through all online players, but nice example
 
it says cannot load talkactions anyone can help me?
i have added it properly but it doesnt work. what am i doing wrong
 
Back
Top Bottom