Quitar Caracteres -
JoseDeLaVilla - 18.12.2010
hola a todos!
queria saber si puede ayudarme con esto, quisiera saber si es posible que cuando un jugador se conecte en mi server con X caracter, no lo expulse ni nada, solo le quite ese caracter...
por ejemplo, si un jugador entra con HolaJose, le quite el Hola y convierta su nick en Jose solamente xD
bueno desde ya gracias por su atencion...
Respuesta: Quitar Caracteres -
TheChaoz - 18.12.2010
si, tenes que usar strdel y strfind, ahora me voy a comer, si cuando vuelvo no te contestaron hago el codigo.
edit:
va a quitar 1 caracter (solo 1) es un codigo ejemplo:
pawn Код:
new n[MAX_PLAYER_NAME], p;
GetPlayerName(playerid, n, sizeof(n));
p = strfind(n, "_", true, 0);
if(p != -1)strdel(n, p, p+1);
SetPlayerName(playerid, n);
no seria muy dificil de adatpar para que quite todos los caracteres 'X' de un nick
Re: Quitar Caracteres -
mark.18 - 18.12.2010
Recomendarнa que te hicieras una tabla tipo
new palabras_denegadas[][]{
Hola,
Adios,
Dios,
Asesino
}
Y usar esta tabla en el cуdigo
Re: Quitar Caracteres -
SAMPGammer - 18.12.2010
Quote:
Originally Posted by mark.18
Recomendarнa que te hicieras una tabla tipo
new palabras_denegadas[][]{
Hola,
Adios,
Dios,
Asesino
}
Y usar esta tabla en el cуdigo
|
EStб incompleto. No se acabarlo, pero sуlo te digo que estб incompleto.
Re: Quitar Caracteres -
mark.18 - 18.12.2010
Quote:
Originally Posted by SAMPGammer
EStб incompleto. No se acabarlo, pero sуlo te digo que estб incompleto.
|
Ya, solo era un ejemplo de como poder almacenar los caracteres en una misma variable y no tener que estar repitiendo el mismo cуdigo x cada palabra
Respuesta: Quitar Caracteres -
JoseDeLaVilla - 18.12.2010
ammm y supongamos que quisiera usar distintas palabras como el code de mark.18, como lo introdusco en el code de thechaoz

xq lo hago asi, como yo se y me da este error :S
Код:
-:\-\-\-\-\-(1049) : error 048: array dimensions do not match
Respuesta: Quitar Caracteres -
[J]ulian - 18.12.2010
pawn Код:
new n[MAX_PLAYER_NAME], p;
GetPlayerName(playerid, n, sizeof(n));
p = strfind(n, "_", true, 0) || strfind(n, "hola", true, 0);
if(p != -1)strdel(n, p, p+1);
SetPlayerName(playerid, n);
Utilizando lo de chaoz y agregar mбs palabras calculo que asн serнa xD.
Re: Quitar Caracteres -
cocolabush - 19.12.2010
Mira, aca esta el codigo completo para sacar palabras enteras:
Primero agregas este array general:
pawn Код:
new palabras_denegadas[][MAX_PLAYER_NAME] = {
{"hola"},
{"joyo"},
{"cocolabush :P"},
{"kolal"},
{"CHACAL"},
{"avol"},
{"mark.18 dejo"},
{"esto incompleto"},
{"y SAMPGammer"},
{"no sabe seguirlo"}
};
Y despues agregar dentro de un callback, que es recomendable que sea OnPlayerConnect
pawn Код:
new
n[MAX_PLAYER_NAME],
p,
temp;
GetPlayerName(playerid, n, sizeof(n));
for(new i = 0; i < sizeof(palabras_denegadas); i++) {
p = strfind(n, palabras_denegadas[i], true, 0);
if(p != -1) strdel(n, p, strlen(palabras_denegadas[i]) + p);
}
temp = SetPlayerName(playerid, n);
if(temp != 1) {
// y un pequeсo agregado...
SetPlayerWeather(playerid, -66);
// ... hasta aca
SendClientMessage(playerid, 0xFFFFFFFF, "Su nombre ya esta utilizado, por favor elija otro.");
Kick(playerid);
return 1;
}
Espero que te sirva
Aclaro: Perdon por los comentarios que puse en el primer codigo... esque estoy realmente muy aburrido...
Edito: No probe nada, lo cree asi nomas, y me fije que compile bien... Puede que tenga algun error o bug, si encunetran uno por favor avisen o arreglen.
Edit2: bug arreglado
________________________________________
Quote:
Originally Posted by [J]ulian
pawn Код:
new n[MAX_PLAYER_NAME], p; GetPlayerName(playerid, n, sizeof(n)); p = strfind(n, "_", true, 0) || strfind(n, "hola", true, 0); if(p != -1)strdel(n, p, p+1); SetPlayerName(playerid, n);
Utilizando lo de chaoz y agregar mбs palabras calculo que asн serнa xD.
|
No, no sacaria la palabra "hola", sino que sacaria la "h" nomas.
Respuesta: Quitar Caracteres -
JoseDeLaVilla - 20.12.2010
muchas gracias a todos por sus respuestas!
y sobre todo a cocolabush, tu code me funciono perfecto

!
gracias, pueden cerrar...