• 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!

TalkAction Announcement's!

slaw

Software Developer
Joined
Aug 27, 2007
Messages
3,665
Solutions
125
Reaction score
1,111
Location
Germany
GitHub
slawkens
Announcement's for your server.

script_announ.JPG


Example:
/announ "HEJ HO,3,consolered

Will broadcast every 3 seconds message "HEJ HO" in type "consolered".

OK LETS GO!

data/talkactions/talkactions.xml
PHP:
<talkaction access="3" words="/announ" script="announcement.lua" />

data/talkactions/scripts/announcement.lua
PHP:
-- CONFIG
local SERVER_VERSION = 0 -- 0=TAGS/0.2, 1=TRUNK
local MSG_FREQUENCY = 2000 -- in ms
local MSG_COLOR = MESSAGE_INFO_DESCR

function doAnnouncement(string, delay, color)
	if SERVER_VERSION == 0 then
		broadcastMessage(string, color)
	else
		doBroadcastMessage(string, color)
	end
	annEvent = addEvent(doAnnouncement, delay, string, delay, color)
end

function onSay(cid, words, param)
	if param ~= "" then
		parameters = explode(",", param)
		if param == "stop" then
			if annEvent ~= nil then
				stopEvent(annEvent)
				annEvent = nil
				doPlayerSendCancel(cid, "Announcement has been stopped.")
			else
				doPlayerSendCancel(cid, "No announcement running.")
			end
		elseif annEvent ~= nil then
			doPlayerSendCancel(cid, "Announcement is already running... Stop it by writing: '/announ stop'")
		else
			if parameters[2] ~= nil then
				MSG_FREQUENCY = parameters[2] * 1000
			end
			if parameters[3] ~= nil then
				if MESSAGES[parameters[3]] ~= nil then
					MSG_COLOR = MESSAGES[parameters[3]]
				end
			end
			if SERVER_VERSION == 0 then
				broadcastMessage(parameters[1], MSG_COLOR)
			else
				doBroadcastMessage(parameters[1], MSG_COLOR)
			end
			annEvent = addEvent(doAnnouncement, MSG_FREQUENCY, parameters[1], MSG_FREQUENCY, MSG_COLOR)
		end

	else
		doPlayerSendCancel(cid, "You need to give announcement message as param!")
	end
end

global.lua, add in end of file:
PHP:
MESSAGES =
{
	consolered = MESSAGE_STATUS_CONSOLE_RED,
	consoleorange = MESSAGE_STATUS_CONSOLE_ORANGE,
	red = MESSAGE_STATUS_WARNING,
	white = MESSAGE_EVENT_ADVANCE,
	default = MESSAGE_EVENT_DEFAULT,
	green = MESSAGE_INFO_DESCR,
	statussmall = MESSAGE_STATUS_SMALL,
	consoleblue = MESSAGE_STATUS_CONSOLE_BLUE
}

There is also needed this function to work:
http://otland.net/showthread.php?t=10727 (paste in functions.lua or global.lua)

You can also use in short way this talkaction. Like:
/announ "HEEJ

Then COLOR and FREQUENCY will be taked from default script. :p

You can stop announcement and start another one again by writing:
/announ "stop
 
Last edited:
Don't Work for me, see error;

[21/08/2008 08:42:43] Lua Script Error: [TalkAction Interface]
[21/08/2008 08:42:43] data/talkactions/scripts/announcement.lua:eek:nSay

[21/08/2008 08:42:43] data/talkactions/scripts/announcement.lua:32: attempt to call global 'doBroadcastMessage' (a nil value)
[21/08/2008 08:42:43] stack traceback:
[21/08/2008 08:42:43] data/talkactions/scripts/announcement.lua:32: in function <data/talkactions/scripts/announcement.lua:10>
 
change doBroadcastMessage to broadcastMessage, I guess it was like that ;p

Trunk - doBroadcastMessage
Tags - broadcastMessage
 
Marcinek Paladinek, well with u help works fine!
thanks for you and for you too slawkens!
 
Slawek it doesnt work on my tfs 0.2.13 :/ i have this error :/

Code:
Lua Script Error: [TalkAction Interface]
data/talkactions/scripts/announcement.lua:onSay

data/talkactions/scripts/announcement.lua:32: attempt to call global 'doBroadcas
tMessage' (a nil value)
stack traceback:
        data/talkactions/scripts/announcement.lua:32: in function <data/talkacti
ons/scripts/announcement.lua:10>
 
Slawek it doesnt work on my tfs 0.2.13 :/ i have this error :/

Code:
Lua Script Error: [TalkAction Interface]
data/talkactions/scripts/announcement.lua:onSay

data/talkactions/scripts/announcement.lua:32: attempt to call global 'doBroadcas
tMessage' (a nil value)
stack traceback:
        data/talkactions/scripts/announcement.lua:32: in function <data/talkacti
ons/scripts/announcement.lua:10>

http://otland.net/showpost.php?p=112937&postcount=4
problem solved?
 
I've seen this script in action on your OT server. Very handy indeed. Good work and thank you ;]
 
Ty ty ty all : P

[Updated]
Misspeling.
Config: SERVER_VERSION (TAGS/0.2 - SET 0, TRUNK - SET 1)
 
Try now. Remember if you're using TAGS then set local SERVER_VERSION to 0.
 
I get this error:
[13/09/2008 11:28:43] data/talkactions/scripts/announcement.lua:17: attempt to call global 'explode' (a nil value)
[13/09/2008 11:28:43] stack traceback:
[13/09/2008 11:28:43] data/talkactions/scripts/announcement.lua:17: in function <data/talkactions/scripts/announcement.lua:15>
 
Back
Top