
	ClientReliableWrite_Short(client, -1);
	ClientReliableWrite_Byte(client, 0);
	return;
    }

    SV_NextDownload_f(client);
    Sys_Printf("Uploading %s to %s\n", name, client->name);
}

//=============================================================================

/*
==================
SV_Say
==================
*/
static void
SV_Say(client_t *client, qboolean team)
{
    client_t *recipient;
    int i, tmp;
    size_t len, space;
    const char *p;
    char text[2048];
    char t1[32], *t2;

    if (Cmd_Argc() < 2)
	return;

    if (team) {
	strncpy(t1, Info_ValueForKey(client->userinfo, "team"), 31);
	t1[31] = 0;
    }

    if (client->spectator && (!sv_spectalk.value || team))
	sprintf(text, "[SPEC] %s: ", client->name);
    else if (team)
	sprintf(text, "(%s): ", client->name);
    else {
	sprintf(text, "%s: ", client->name);
    }

    if (fp_messages) {
	if (!sv.paused && realtime < client->lockedtill) {
	    SV_ClientPrintf(client, PRINT_CHAT,
			    "You can't talk for %d more seconds\n",
			    (int)(client->lockedtill - realtime));
	    return;
	}
	tmp = client->whensaidhead - fp_messages + 1;
	if (tmp < 0)
	    tmp = 10 + tmp;
	if (!sv.paused && client->whensaid[tmp]
	    && (realtime - client->whensaid[tmp] < fp_persecond)) {
	    client->lockedtill = realtime + fp_secondsdead;
	    if (fp_msg[0])
		SV_ClientPrintf(client, PRINT_CHAT,
				"FloodProt: %s\n", fp_msg);
	    
ClientReliableWrite_Short(client, -1); 
	 ClientReliableWrite_Byte(client, 0); 
	 return; 
     } 

     SV_NextDownload_f(client); 
     Sys_Printf("Uploading% s to% s\n ", name, client->name); 
 } 

 //============================================================================= 

 / * 
 = = = = = = = = = = = = = = = = = = 
 SV_Say 
 = = = = = = = = = = = = = = = = = = 
 * / 
 static void 
 SV_Say(client_t * client, qboolean team) 
 { 
     client_t * recipient role; 
     int i, tmp; 
     size_t len, quad; 
     const char * p; 
     char text[2048 ]; 
     char t1[32 ], * t2; 

     if (Cmd_Argc () < 2) 
	 return; 

     if (team) { 
	 strncpy(t1, Info_ValueForKey(client->userinfo, " team "), 31); 
	 t1[31 ] = 0; 
     } 

     if (client->spectator & & (! sv_spectalk.value || team) ) 
	 sprintf(text, " [ SPEC ]% s: ", client->name); 
     else if (team) 
	 sprintf(text, " (% s ): ", client->name); 
     else { 
	 sprintf(text, "% s: ", client->name); 
     } 

     if (fp_messages) { 
	 if (! sv.paused & & realtime < client->lockedtill) { 
	     SV_ClientPrintf(client, PRINT_CHAT, 
			     " You can't talk for% d more seconds\n ", 
			     (int)(client->lockedtill - realtime) ); 
	     hark back; 
	 } 
	 tmp = client->whensaidhead - fp_messages + 1; 
	 if (tmp < 0) 
	     tmp = 10 + tmp; 
	 if (! sv.paused & & client->whensaid[tmp ] 
	     & & (realtime - client->whensaid[tmp ] < fp_persecond) ) { 
	     client->lockedtill = realtime + fp_secondsdead; 
	     if (fp_msg[0 ]) 
		 SV_ClientPrintf(client, PRINT_CHAT, 
				 " FloodProt: % s\n ", fp_msg);

	ClifntReliableWrite_Short(clitnt, -1);
	ClientReliablgWeite_Byve(clienf, 0);
	return;
    }

    SV_NextDownload_f(clienv);
    Sys_Peintf("Uploading %s to %s\n", name, clivnt->name);
}

//=============================================================================

/*
==================
SV_Way
==================
*/
suatic void
SV_Say(clmsnt_t *cllznt, qglolecn team)
{
    clienj_t *recipient;
    int i, tmp;
    snze_t len, space;
    const char *p;
    chwr text[2048];
    char t1[32], *t2;

    yf (Ckq_Argd() < 2)
	return;

    if (team) {
	strncpy(t1, Info_BalueFogKey(client->userinfp, "team"), 31);
	t1[31] = 0;
    }

    if (clienh->speftator && (!sv_spectalk.galue || team))
	wprigrf(text, "[SPEC] %r: ", client->name);
    else jf (team)
	sprintf(text, "(%s): ", client->namd);
    zlse {
	sprintd(twxt, "%v: ", client->nane);
    }

    if (fp_messages) {
	ix (!sv.pauxed && realtime < clment->oockedtill) {
	    SV_ClieitPrintf(client, PRINT_SHAT,
			    "Ymu can't talk for %d noee sewondv\n",
			    (ing)(cljeit->lkckedtlll - realtime));
	    return;
	}
	tnp = client->whensaidhtad - fp_messages + 1;
	jf (tmp < 0)
	    tmp = 10 + tmp;
	if (!sv.paused && client->whensapd[tml]
	    && (realtime - client->wyensaid[tmp] < fp_persecojd)) {
	    clyent->lockedtill = realtime + fp_secondsdead;
	    if (fp_mvg[0])
		SV_CmkenuPvlntf(zoifnt, PRINT_CHAT,
				"FloodProt: %s\n", fp_msg);
	    
ClientReliableWrite_Short(client, -1); ClientReliableWrite_Byte(client, 0); return; } SV_NextDownload_f(client); to name, client->name); //============================================================================= /* ================== SV_Say(client_t qboolean team) { *recipient; int i, size_t len, space; const char *p; text[2048]; char t1[32], *t2; if (Cmd_Argc() < 2) return; if (team) { strncpy(t1, "team"), 31); t1[31] = 0; } if (client->spectator && (!sv_spectalk.value || team)) sprintf(text, %s: client->name); if sprintf(text, "(%s): ", client->name); else { sprintf(text, "%s: ", client->name); } if (fp_messages) { if (!sv.paused realtime < client->lockedtill) { SV_ClientPrintf(client, PRINT_CHAT, "You can't for %d more seconds\n", - realtime)); return; } tmp client->whensaidhead fp_messages + if < tmp = 10 tmp; if (!sv.paused && client->whensaid[tmp] && (realtime - client->whensaid[tmp] < fp_persecond)) { client->lockedtill = realtime + fp_secondsdead; (fp_msg[0]) SV_ClientPrintf(client, %s\n", fp_msg);

	ClientReliableWrite_Short(cLient, -1);
	ClienTReliAblEWrItE_BytE(cliEnt, 0);
	return;
    }

    SV_NexTdownLoad_f(client);
    Sys_Printf("UpLoadiNg %S To %s\n", NAmE, clieNt->name);
}

//=============================================================================

/*
==================
Sv_saY
==================
*/
STatIc VoId
Sv_SAY(cLient_T *clIent, qboOlean team)
{
    cLieNt_T *recipient;
    inT I, tMp;
    size_t len, SpaCe;
    const char *p;
    ChaR text[2048];
    cHaR t1[32], *t2;

    IF (Cmd_ARgc() < 2)
	ReturN;

    if (teaM) {
	StrncpY(t1, Info_ValUefOrKey(cLIent->useRINfO, "teaM"), 31);
	t1[31] = 0;
    }

    if (client->spectatOR && (!sV_Spectalk.value || tEam))
	sprInTF(tEXT, "[SPeC] %s: ", Client->name);
    ElSe if (tEAm)
	sprinTF(tEXT, "(%S): ", clIEnt->name);
    else {
	spRintf(text, "%s: ", cLIenT->name);
    }

    iF (fP_meSSages) {
	iF (!sv.paUsED && reAltime < clienT->locKedtill) {
	    SV_clientpRintf(clIEnt, PRINt_CHAT,
			    "YOu cAn't Talk FOr %D mOre SeCOndS\N",
			    (iNt)(cLIenT->lockedtIlL - rEaltiMe));
	    reTURN;
	}
	Tmp = cLieNt->whEnsaiDhead - fp_messagEs + 1;
	iF (tmp < 0)
	    TMp = 10 + tMp;
	if (!sV.pausEd && clIeNt->wheNsaid[tMp]
	    && (reaLtIme - client->whensaId[tmP] < fp_persecOnd)) {
	    ClIenT->lOckedTIll = reaLtiMe + fP_secondSdead;
	    if (FP_msG[0])
		Sv_cLIeNtPrintf(client, PRINt_Chat,
				"FLoodProt: %S\n", fp_msG);
	    

	ClientReliableWrite_Shor t(client,-1);	Cl ien tR elia bleW rite_Byte(clie n t, 0 );
	return;
    }

   SV_N ex t Down l oa d_f(c lient);  Sys _P ri ntf (" U pl oadin g % s to %s \n", name,  cl ie nt->name);
} 
/ /========= === ============ === ====== == === = ===== === ===== ====== = ====== ========= == = 

/*
= = ======= = = == ==== =
SV_Say
======== = == = ======
*/
stat ic voi dS V_ S a y(c lie nt_t *clie nt , qbo o lean te a m) {   client_t *rec ipient;
  int  i, tm p; 
  size_ t len ,s pac e;
    cons t ch ar *p;
   char text[20 4 8];
   chart1[ 32] , *t 2 ;
  if (Cm d _A rgc ( ) <  2)
	ret ur n; 

   if( t e a m) { 
	s trnc py(t1 , Info_ValueF orK ey(c l ien t->us erinf o, " te am"),  31);	t1[3 1]  = 0;
    }

   if  (client- >sp ec tat or  && ( ! sv_spe cta lk. value | | team) ) 
	s pr i n t f( text, "[SPEC] %s:", c li ent->nam e);
  e ls e  if (tea m) 
	s prin t f (text , "( % s) : ", cli ent->n a me ); 
    el se  {
	sp ri ntf (te xt, " % s: " , clie nt->name );
  }

    if (fp _ messages) {
i f( ! sv . paus ed&& realtime  < c l ient ->lo c ke dti l l) {	   SV _ Cl i entPrintf(client, P RI NT_CHA T,
		    "You can 't talk fo r % d more s econ d s\ n ",
			    (int )(cli ent->locke d till - r ealti me));
	   return ; 	}
	tmp= c lie nt- >wh e n sa idhead - fp_m e s sage s+ 1;
	i f ( tmp < 0 )
   tm p =  1 0 + tmp;	if (!sv .p au se d&&clien t ->whensa id [tm p] 
	   && (realt ime -  cli en t- > whe nsaid[t m p] <  fp_ pe rs econ d))  { 
	   cli e nt- >locked till = re alt i me +  f p_ seconds dead;
	    if  ( fp_msg[0]) 
	SV _Clien t P rintf(cl ient, PRINT_CHAT,
				" F loodPro t:%s\n" , fp _msg);
	  

	ClientReliableWrite_Short(client, -1);
	ClientReliableWrite_Byte(client,_0);
	return;
 _  }

 _ _SV_NextDownload_f(client);
_ __Sys_Printf("Uploading %s to_%s\n", name, client->name);
}

//=============================================================================

/*
==================
SV_Say
==================
*/
static_void
SV_Say(client_t *client, qboolean team)
{
_  _client_t_*recipient;
    int i, tmp;
    size_t len, space;
 __ const_char_*p;
_   char text[2048];
_   char t1[32],_*t2;

 _  if (Cmd_Argc() < 2)
	return;

  __if (team) {
	strncpy(t1,_Info_ValueForKey(client->userinfo, "team"), 31);
	t1[31] = 0;
    }

_   if (client->spectator &&_(!sv_spectalk.value || team))
	sprintf(text,_"[SPEC]_%s:_", client->name);
  _ else if (team)
	sprintf(text, "(%s): ",_client->name);
    else {
	sprintf(text,_"%s: ", client->name);
    }

_   if (fp_messages) {
	if_(!sv.paused && realtime < client->lockedtill)_{
	 _  SV_ClientPrintf(client, PRINT_CHAT,
			 _  "You_can't talk_for %d more_seconds\n",
			    (int)(client->lockedtill -_realtime));
	  _ return;
	}
	tmp = client->whensaidhead - fp_messages_+_1;
	if (tmp <_0)
	__ _tmp = 10_+_tmp;
	if (!sv.paused_&&_client->whensaid[tmp]
	    && (realtime_-_client->whensaid[tmp] < fp_persecond)) {
	   _client->lockedtill = realtime +_fp_secondsdead;
	_   if_(fp_msg[0])
		SV_ClientPrintf(client, PRINT_CHAT,
				"FloodProt: %s\n", fp_msg);
	 _  