[SOLVED] Underscore
#1

Is there any thing available that checks if a name has a underscore e.g. Frank_Pentangeli, and then removes it? so it would be Frank Pentangeli?

Thanks in advance.
Reply
#2

Maybe with strfind and strdel?
Reply
#3

pawn Код:
stock GetPlayerNameEx(playerid)
{
  new string[24];
  GetPlayerName(playerid,string,24);
  new str[24];
  strmid(str,string,0,strlen(string),24);
  for(new i = 0; i < MAX_PLAYER_NAME; i++)
  {
    if (str[i] == '_') str[i] = ' ';
  }
  return str;
}
Reply
#4

Код:
new name[MAX_PLAYER_NAME],tmp5[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME]);
tmp5 = strreplace("_"," ",name);
SetPlayerName(playerid,tmp5);
Код:
stock strreplace(trg[],newstr[],src[]) { //dutils
  new f=0;
  new s1[MAX_STRING];
  new tmp[MAX_STRING];
  format(s1,sizeof(s1),"%s",src);
  f = strfind(s1,trg);
  tmp[0]=0;
  while (f>=0) {
    strcat(tmp,ret_memcpy(s1, 0, f));
    strcat(tmp,newstr);
    format(s1,sizeof(s1),"%s",ret_memcpy(s1, f+strlen(trg), strlen(s1)-f));
    f = strfind(s1,trg);
  }
  strcat(tmp,s1);
  return tmp;
}
Код:
ret_memcpy(source[],index=0,numbytes) {
	new tmp[MAX_STRING];
	new i=0;
	tmp[0]=0;
	if (index>=strlen(source)) return tmp;
	if (numbytes+index>=strlen(source)) numbytes=strlen(source)-index;
	if (numbytes<=0) return tmp;
	for (i=index;i<numbytes+index;i++) {
		tmp[i-index]=source[i];
		if (source[i]==0) return tmp;
	}
	tmp[numbytes]=0;
	return tmp;
}
EDIT: Virtual1ty was first :b
Reply
#5

NVM GOT IT FIXED WITH FORMAT(
Reply
#6

Quote:
Originally Posted by Virtual1ty
pawn Код:
stock GetPlayerNameEx(playerid)
{
  new string[24];
  GetPlayerName(playerid,string,24);
  new str[24];
  strmid(str,string,0,strlen(string),24);
  for(new i = 0; i < MAX_PLAYER_NAME; i++)
  {
    if (str[i] == '_') str[i] = ' ';
  }
  return str;
}
how i'd put this in onplayerconnect?
Reply
#7

Use GetPlayerNameEx(playerid) instead of GetPlayerName(playerid)
Reply
#8

pawn Код:
stock GetPlayerNameEx(playerid)
{
    new pname[MAX_PLAYER_NAME]; GetPlayerName(playerid,pname,sizeof(pname));
    new i = strfind(pname,"_",true);
    if(i != (-1)) pname[i] = ' ';
    return pname;
}
Reply
#9

Still no answer on my question on how to change the player's name in OnPlayerConnect

Thanks in advance.
Reply
#10

no it can't be done because in nicknames can't be " " (space)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)