I don't want to bug my neighbours with this. Just to shine some light on what am doing I got this from the market place LINK and it was shouting the announcement. So I want to make my own.
This is what my script looks like as of now.
string card = "Announcement";key linecountid;key lineid;integer linemax;integer random_integer( integer min, integer max ){ return min + (integer)( llFrand( max - min + 1 ) );}default{ state_entry() { llSetPrimitiveParams([ PRIM_TEXTURE, ALL_SIDES, "f75823f3-f2df-bcde-c398-09724eafaef4", <1.0, 1.0, 0.0>, <0.0, 0.0, 0.0>, 0.0 ]); llSetObjectName("GLaDOS"); linecountid = llGetNumberOfNotecardLines(card); llSetTimerEvent(300.0); //1800sec = 30mins | 600 = 10min | 300 = 5min } changed(integer change) { if (change & CHANGED_INVENTORY) //note that it's & and not &&... it's bitwise! { llOwnerSay("I feel like I have gained more knowledge."); llPlaySound("038483a4-6b7d-5f14-d782-2b7a656041ae",0.5); llSleep(0.1); llResetScript(); } } timer() { llPlaySound("59411461-3f3c-dc31-106f-a31827865c3f",0.5); llSetPrimitiveParams ([PRIM_POINT_LIGHT, TRUE, <1.0, 0.0, 0.0>, 1.00, 2.0, 0.75]); llSetPrimitiveParams( [ PRIM_GLOW, ALL_SIDES, 0.05 ] ) ; llSetPrimitiveParams( [ PRIM_FULLBRIGHT, ALL_SIDES, TRUE]); llSetPrimitiveParams( [ PRIM_COLOR, ALL_SIDES, <1.0, 0.0, 0.0> ,1.0]); llSleep(2.5); lineid = llGetNotecardLine(card, random_integer(0, linemax)); llSleep(0.5); llSetPrimitiveParams ([PRIM_POINT_LIGHT, FALSE, <0.0, 0.0, 0.0>, 1.00, 2.0, 0.75]); llSetPrimitiveParams( [ PRIM_GLOW, ALL_SIDES, 0.0 ] ); llSetPrimitiveParams( [ PRIM_FULLBRIGHT, ALL_SIDES, FALSE]); llSetPrimitiveParams( [ PRIM_COLOR, ALL_SIDES, <0.000, 0.122, 0.247> ,1.0]); } dataserver(key id, string data) { if (id == linecountid) { linemax = (integer)data - 1; } else if (id == lineid) { llSay(0, data); } }}