void  GScr_GetCvarInt()
{
  const char *stringval;
  
  if(Scr_GetNumParam() != 1)
  {
	Scr_Error("Usage: getcvarint <cvarname>");
  }
  stringval = Cvar_GetVariantString(Scr_GetString(0));
  Scr_AddInt(atoi(stringval));
}
__cdecl char* PbSvGameQuery(int para_01, char* string){

    int maxclients;
    client_t *cl;
    gclient_t *gclient;
    string[255] = 0;
    int		var_01;
    if(!string) return NULL;
    switch(para_01){
	case 0x65:
            maxclients = sv_maxclients->integer;
	    if(!maxclients) return 0;
	    *string = 0x30;
	    Com_sprintf(string, 255, "%i", maxclients);
	    return 0;

	case 0x66:
	    maxclients = sv_maxclients->integer;
	    var_01 = atoi(string);
	    Com_Memset(string, 0, 0x68);
	    if(var_01 < 0 || var_01 > maxclients) return "PB_Error: Query Failed";
	    cl = &svs.clients[var_01];

	    if(cl->state < CS_ACTIVE || cl->noPb == qtrue) return "PB_Error: Query Failed";
	    Q_strncpyz(string, cl->name, 254);
	    Q_strncpyz(&string[33], cl->pbguid, 221);
	    Q_strncpyz(&string[66], NET_AdrToString(&cl->netchan.remoteAddress), 188);
	    return NULL;

	case 0x67:
	    Q_strncpyz(string, Cvar_GetVariantString(string),255);
	    return NULL;

	case 0x72:

	    maxclients = sv_maxclients->integer;
	    *string = 0;
	    var_01 = atoi(string);

	    if(var_01 < 0 || var_01 > maxclients) return "PB_Error: Query Failed";;

	    cl = &svs.clients[var_01];
	    gclient = &level.clients[para_01];

	    if(cl->state < CS_ACTIVE || cl->noPb) return "PB_Error: Query Failed";;

	    Com_sprintf(string,255,"ping=%d score=%d", cl->ping, gclient->pers.scoreboard.score);
	    return NULL;

	default:
	    return NULL;
    }
}
void  GScr_GetCvar()
{
  const char *stringval;
  const char *querystr;
  char promod_fool_names[1024];
  char promod_fool_sums[1024];

  if(Scr_GetNumParam() != 1)
  {
	Scr_Error("Usage: getcvar <cvarname>");
  }

  querystr = Scr_GetString(0);

  stringval = Cvar_GetVariantString(querystr);

  if( !Q_stricmpn( querystr, "sv_iwd" , 6) )
  {
    Cvar_VariableStringBuffer("sv_iwdNames", promod_fool_names, sizeof( promod_fool_names ));
    Cvar_VariableStringBuffer("sv_iwds", promod_fool_sums, sizeof( promod_fool_sums ));

    char* ptr_names = promod_fool_names;
    char* ptr_sums = promod_fool_sums;
    int len;
    /* 1st get the number of IWDs */
    while(*ptr_names && *ptr_sums)
    {
        if(*ptr_names == ' ' && *ptr_sums == ' ')
        {
            ptr_names++;
            ptr_sums++;

            if(!Q_stricmpn(ptr_names, "xiceops_", 8))
            {
                len = Q_strichr(ptr_names, ' ');
                if(len == -1)
                {
                    Scr_AddString(stringval);
                    return;
                }
                Q_bstrcpy(ptr_names, &ptr_names[len +1]);

                len = Q_strichr(ptr_sums, ' ');
                if(len == -1)
                {
                    Scr_AddString(stringval);
                    return;
                }
                Q_bstrcpy(ptr_sums, &ptr_sums[len +1]);
            }
        }
        if(*ptr_names != ' ')
            ptr_names++;

        if(*ptr_sums != ' ')
            ptr_sums++;
    }

    if(!Q_stricmp( querystr, "sv_iwdNames") )
    {
        Scr_AddString(promod_fool_names);
        return;
    }
    if(!Q_stricmp( querystr, "sv_iwds") )
    {
        Scr_AddString(promod_fool_sums);
        return;
    }
  }

  Scr_AddString(stringval);
}
void Cvar_VariableStringBuffer(const char* cvarname, char* buff, size_t size){
    Q_strncpyz(buff, Cvar_GetVariantString(cvarname), size);
}