1 #include "net_notice.qh"
4 void sv_notice_join_think()
7 float argc = tokenizebyseparator(autocvar_sv_join_notices, "|");
11 for(i = argc - 1; i >= 0; --i)
12 sv_notice_to(self.owner, argv(i), autocvar_sv_join_notices_time, false);
19 // to-do: make sv_join_notices support per-entry times
20 if(autocvar_sv_join_notices == "")
25 n.think = sv_notice_join_think;
26 n.nextthink = time + 1;
29 void sv_notice_to(entity _to, string _notice, float _howlong, float _modal)
32 WriteByte(MSG_ONE, SVC_TEMPENTITY);
33 WriteByte(MSG_ONE, TE_CSQC_SVNOTICE);
34 WriteString(MSG_ONE, _notice);
35 WriteLong(MSG_ONE, _howlong);
36 WriteByte(MSG_ONE, _modal);
39 void sv_notice_toall(string _notice, float _howlong, float _modal)
42 FOR_EACH_REALCLIENT(_head)
43 sv_notice_to(_head, _notice, _howlong, _modal);
56 _notice.classname = "sv_notice";
57 _notice.netname = strzone(ReadString());
58 _notice.alpha = ReadLong() + time;
59 _notice.skin = ReadByte();
68 _notes = findchain(classname, "sv_notice");
74 vector v1, v2 = '0 0 0', v3;
76 v2_x = vid_conwidth - (2 * M1);
77 v2_y = vid_conheight - (2 * M1);
79 drawfill(v1, v2, '0 0 0', 0.5, DRAWFLAG_NORMAL);
80 v1 = '1 1 0' * (M1 + M2);
81 v2_x = vid_conwidth - (2 * (M1 + M2));
82 v2_y = vid_conheight - (2 * (M1 + M2));
83 drawfill(v1, v2, '0.5 0.5 0.5', 0.5, DRAWFLAG_NORMAL);
86 #define OUT(s,z) drawcolorcodedstring(v3, s, '1 1 0' * z, 1, DRAWFLAG_NORMAL); v3_y += z + 4
88 OUT(_("^1Server notices:"), 32);
90 //drawcolorcodedstring(v1 + '5 5 0', "^1Server notices:", '32 32 0', 1, DRAWFLAG_NORMAL);
94 _notice = sprintf(_("^7%s (^3%d sec left)"), _notes.netname , rint(_notes.alpha - time));
100 if(_notes.alpha <= time)
102 _notes.think = SUB_Remove;
103 _notes.nextthink = time;
106 _notes = _notes.chain;