aaron001 Posted February 8, 2016 Share Posted February 8, 2016 i want to create an announce system like when i do /ann text it displays in topbarchat but it doesnt work out for me ye i am an noob scipter addCommandHandler("ann", function(player, cmd, ...) local accName = getAccountName ( getPlayerAccount ( player ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "LWS" )) then local message = table.concat({...}, " ") if #message > 0 then bool sendClientMessage ( string message, player thePlayer [, int r=255, int g=255, int b=255, bool topBar=true, int time=8 ] ) end end end) Link to comment
KariiiM Posted February 8, 2016 Share Posted February 8, 2016 Try that addCommandHandler("ann", function(player, cmd, ...) local accName = getAccountName ( getPlayerAccount ( player ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "LWS" )) then local message = table.concat({...}, " ") if #message > 0 then sendClientMessage (message, getRootElement(), 255,0,0) end end end) Link to comment
aaron001 Posted February 8, 2016 Author Share Posted February 8, 2016 well it doesnt do anything Lua: addCommandHandler("ann", function(player, cmd, ...) local accName = getAccountName ( getPlayerAccount ( player ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "LWS" )) then local message = table.concat({...}, " ") if #message > 0 then sendClientMessage (message, getRootElement(), 255,0,0) end end end) meta: "UnKnown" type="script" version="0.1"/> Link to comment
KariiiM Posted February 8, 2016 Share Posted February 8, 2016 Can you put the top bar chat function sendClientMessage here? Link to comment
aaron001 Posted February 8, 2016 Author Share Posted February 8, 2016 Thats all i have those 2 and i have an topbarchat script Link to comment
KariiiM Posted February 8, 2016 Share Posted February 8, 2016 Thats all i have those 2 and i have an topbarchat script So you have to make an exports for your topbarchat script. Try this, it will out put on CHATBOX main chat. addCommandHandler("ann", function(player, cmd, ...) local accName = getAccountName ( getPlayerAccount ( player ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "LWS" )) then local message = table.concat({...}, " ") if #message > 0 then outputChatBox(message, getRootElement(), 255,0,0) end end end) Link to comment
Olle Risk Posted February 8, 2016 Share Posted February 8, 2016 Seems like the problem is how you would display multiple messages at once and let them fade out and stuff like that, take a look here for some inspiration. Or you could just download that resource and call it with an export with the exact same syntax as outputChatBox and get a perfectly working announcement system just the way you want it. Link to comment
aaron001 Posted February 8, 2016 Author Share Posted February 8, 2016 i dont want them in main chat i want them in that topbarchat i have an script for it but it wont work out Link to comment
KariiiM Posted February 8, 2016 Share Posted February 8, 2016 i dont want them in main chat i want them in that topbarchat i have an script for it but it wont work out Post the meta of this topbarchat Link to comment
aaron001 Posted February 8, 2016 Author Share Posted February 8, 2016 My announce script: Lua; addCommandHandler("ann", function(player, cmd, ...) local accName = getAccountName ( getPlayerAccount ( player ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "LWS" )) then local message = table.concat({...}, " ") if #message > 0 then sendClientMessage (message, getRootElement(), 255,0,0) end end end) Meta: "UnKnown" type="script" version="0.1"/> TOPBARCHAT SCRIPT: c.Lua: ------------------------------------------ -- TopBarChat -- ------------------------------------------ -- Developer: Braydon Davis -- -- File: c.lua -- -- Copyright 2013 (C) Braydon Davis -- -- All rights reserved. -- ------------------------------------------ -- Script Version: 1.4 -- ------------------------------------------ local maxMessages = 5; -- The max messages that will show (on each bar) local DefaultTime = 8; -- The max time each message will show if time isn't defined. ------------------------------------------ -- For scripters only -- ------------------------------------------ local sx_, sy_ = guiGetScreenSize ( ) local sx, sy = sx_/1280, sy_/720 -- you got xXMADEXx's resolution :3 plz no hak mi local DefaultPos = true; local messages_top = { } local messages_btm = { } function sendClientMessage ( msg, r, g, b, pos, time ) -- Msg: String -- R: Int (0-255) -- G: Int (0-255) -- B: Int (0-255) -- Pos: Boolean -- Time: Int if ( not msg ) then return false end if ( pos == nil ) then pos = DefaultPos end local r, g, b = r or 255, g or 255, b or 255 local time = tonumber ( time ) or DefaultTime local data = { message = msg, r = r, g = g, b = b, alpha=0, locked=true, rTick = getTickCount ( ) + (time*1000) } --> Scripters note: --> The remove and intro fades are handled in the render event if ( pos == true or pos == "top" ) then table.insert ( messages_top, data ) return true elseif ( pos == false or pos == "bottom" ) then table.insert ( messages_btm, data ) return true end return false end addEvent ( getResourceName ( getThisResource ( ) )..":sendClientMessage", true ) addEventHandler ( getResourceName ( getThisResource ( ) )..":sendClientMessage", root, sendClientMessage ) function dxDrawNotificationBar ( ) local doRemove = { top = { }, bottom = { } } -- This is used so it prevents the next message from flashing -- Top Message Bar for i, v in pairs ( messages_top ) do local i = i - 1 if ( not v.locked ) then v.alpha = v.alpha - 3 if ( v.alpha <= 20 ) then table.insert ( doRemove.top, i+1 ) end messages_top[i+1].alpha = v.alpha else if ( v.alpha < 160 ) then v.alpha = v.alpha + 1 messages_top[i+1].alpha = v.alpha end if ( v.rTick <= getTickCount ( ) ) then v.locked = false messages_top[i+1].locked=false end end dxDrawRectangle ( (sx_/2-530/2), i*25, 530, 25, tocolor ( 0, 0, 0, v.alpha ) ) dxDrawText ( tostring ( v.message ), 0, i*25, sx_, (i+1)*25, tocolor ( v.r, v.g, v.b, v.alpha*1.59375 ), sy*1, "default-bold", "center", "center") end if ( #messages_top > maxMessages and messages_top[1].locked ) then messages_top[1].locked = false end -- Bottom Message Bar for i, v in pairs ( messages_btm ) do if ( not v.locked ) then v.alpha = v.alpha - 3 if ( v.alpha <= 20 ) then table.insert ( doRemove.bottom, i ) end messages_btm[i].alpha = v.alpha else if ( v.alpha < 160 ) then v.alpha = v.alpha + 1 messages_btm[i].alpha = v.alpha end if ( v.rTick <= getTickCount ( ) ) then v.locked = false messages_btm[i].locked=false end end dxDrawRectangle ( (sx_/2-530/2), sy_-(i*25), 530, 25, tocolor ( 0, 0, 0, v.alpha ) ) dxDrawText ( tostring ( v.message ), 0, sy_-(i*25), sx_, sy_-((i-1)*25), tocolor ( v.r, v.g, v.b, v.alpha*1.59375 ), sy*1, "default-bold", "center", "center") end if ( #messages_btm > maxMessages and messages_btm[1].locked ) then messages_btm[1].locked = false end -- handle message removes if ( #doRemove.top > 0 )then for i, v in pairs ( doRemove.top ) do table.remove ( messages_top, v ) end end if ( #doRemove.bottom > 0 ) then for i, v in pairs ( doRemove.bottom ) do table.remove ( messages_btm, v ) end end end addEventHandler ( "onClientRender", root, dxDrawNotificationBar ) ------------------------------ -- For development -- ------------------------------ addCommandHandler ( 'rt', function ( ) for i=1, 5 do sendClientMessage ( "Testing - Index ".. tostring ( i ), 255, 255, 255, false ) sendClientMessage ( "Testing - Index ".. tostring ( i ), 255, 255, 255, true ) end end ) S.Lua: ------------------------------------------ -- TopBarChat -- ------------------------------------------ -- Developer: Braydon Davis -- -- File: s.lua -- -- Copyright 2013 (C) Braydon Davis -- -- All rights reserved. -- ------------------------------------------ local rName = getResourceName ( getThisResource ( ) ) function sendClientMessage ( msg, who, r, g, b, pos, time ) if ( msg and who ) then if ( isElement ( who ) ) then triggerClientEvent ( who, rName..":sendClientMessage", who, msg, r, g, b, pos, time ) return true else return false end else return false end end addEventHandler ( "onPlayerJoin", root, function ( ) sendClientMessage ( '* '..getPlayerName ( source )..' has joined!', root, 255, 100, 100, false ) end ) addEventHandler ( 'onPlayerQuit', root, function ( tp, reason, respons ) if ( tp == 'Kicked' or tp == 'Banned' ) then msg = '['..tp..' - '..respons..'] ('..reason..')' else msg = '['..tp..']' end sendClientMessage ( "* "..getPlayerName ( source ).." has quit. "..msg, root, 255, 100, 100, false ) end ) Meta: "xXMADEXx" name="Top Chat" type="script" version="1.4.1" /> Link to comment
KariiiM Posted February 8, 2016 Share Posted February 8, 2016 Here you go: Follow what I am gonna say, First, you've to be sure your topbarchat script is running. Second thing, is go to line "7" ,and change resourcename to the topbarchat folder name. It should work if you had followed those steps correctly. addCommandHandler("ann", function(player, cmd, ...) local accName = getAccountName ( getPlayerAccount ( player ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "LWS" )) then local message = table.concat({...}, " ") if #message > 0 then exports.resourcename:sendClientMessage(message, getRootElement(), 0, 255, 0, false) end end end) Link to comment
Olle Risk Posted February 8, 2016 Share Posted February 8, 2016 i dont want them in main chat i want them in that topbarchat i have an script for it but it wont work out I didn't say the output was in main chat, I said that the script would have been just as simple to write as if it was in main chat. The actual announcements would appear as a fading list of DX messages in the top of your screen, I think the one you use now should provide the same functionality as well but if it fails at least you got alternatives, this is how the syntax would be: addCommandHandler("ann", function(player, cmd, ...) local accName = getAccountName ( getPlayerAccount ( player ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "LWS" )) then exports.resourcename:dm(message, root, 0,255,0) end end) And just as in KariiiM's code you gonna have to replace "resourcename" with the actual name of the top bar resource. Good luck and happy coding. Link to comment
aaron001 Posted February 8, 2016 Author Share Posted February 8, 2016 Thankyou verymuch Link to comment
KariiiM Posted February 8, 2016 Share Posted February 8, 2016 Thankyou verymuch You're welcome. 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