Agregar un tag
#1

hola bueno quiero saber como puede un jugador que cuando ponga un comando x se le agrege un tag a su nombre diciendo [tag]jugador
Reply
#2

Tienes que hacer un comando:

1є En una cadena de caracteres aсades el texto que le pases como parбmetro del comando. (Tag)
2є En esa misma cadena aсбdele despuйs del tag el nombre del usuario. GetPlayerName(...)
3є Dale al usuario el nombre guardado en la cadena de caracteres. SetPlayerName(...)

Un ejemplo para lo del tag, format(string,sizeof(string),"[%s]%s",tag,nombre);

Para que te lo hagan: https://sampforum.blast.hk/showthread.php?tid=126022
Reply
#3

esperaba algo un poco mas explicado por lo menos algo un poco mas elaborado pero tampoco que me lo hizieran pero si lo pueden poner en partes estaria agradecido
Reply
#4

Puedo poner mбs palabras pero no explicarlo mejor.

їQuй es lo que no entiendes?,їquй necesitas que te explique mejor?, їquй quieres que ponga en partes? (Creo que dividir la explicaciуn en: 1є,2є,3є ya es hacerlo por partes)
Reply
#5

Bueno aver, esto si o si requiere algun sistema de registro (que vos tengas o algo) y lo que hice fue en DINI.

pawn Код:
// Definimos

new Tag[MAX_PLAYERS];

// Vamos a OnPlayerCommandText...

if(strcmp(cmd, "/tag", true) == 0)
{
    tmp = strtok(cmdtext, idx); // si no tenes definido tmp defini new tmp[256];
    if(!strlen(tmp))
    {
          SendClientMessage(playerid, 0xBFC0C2FF, "Utiliza: /Tag [nombre del tag]");
          return 1;
    }
    if(Tag[playerid] == 1)
    {
    SendClientMessage(playerid, 0xFF0000AA, "Ya has utilizado tu TAG ! Usa /BorrarTag para volver a crear uno !");
    return 1;
    }
    Tag[playerid] = 1;
   
    new tnick[128];
    format(tnick,sizeof(tnick),"Direccion-de-la-carpeta/Usuarios/%s.ini",tnick); // IMPORTANTE: Aca tenes que configurar la direccion de la carpeta donde van los usuarios de tu server.
   
    new Nick2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nick2, sizeof(Nick2));
    format(Nick2, sizeof Nick2, "[%s]%s", tmp, Nick2);
    SetPlayerName(playerid, Nick2);
        dini_Remove(tnick);
        new strmsg[128];
        format(strmsg,128,"Nombre cambiado satistactoriamente a {FFFFFF}%s",Nick2);
        SendClientMessage(playerid, 0xFF8C00FF, strmsg);
    return 1;
}

if(strcmp(cmd, "/borrartag", true) == 0)
{
    if(Tag[playerid] == 0)
    {
    SendClientMessage(playerid, 0xFF0000AA, "No has hecho un TAG !");
    return 1;
    }
    Tag[playerid] = 0;
   
    format(string, sizeof(string), "Direccion-de-la-carpeta/Usuarios/%s.ini", sendername); // Aca lo mismo que antes, configura la carpeta
    if(fexist(string))
    {
    format(string, sizeof(string), "Direccion-de-la-carpeta/Usuarios/%s.ini", sendername); // Aca lo mismo que antes, configura la carpeta
    SetPlayerName(playerid, sendername);
   
    new strmsg[128];
    format(strmsg,128,"Nombre cambiado satistactoriamente a {FFFFFF}%s",sendername);
    SendClientMessage(playerid, 0xFF8C00FF, strmsg);
    }
    return 1;
}
Probб asн, a mi me funcionу perfecto.
Reply
#6

pawn Код:
new Nick2[MAX_PLAYER_NAME+5];
por los [ ] y los 3 caracteres del TAG, si no podrнa quedar fuera 5 letras del nick ( si usa todos los caracteres )
Reply
#7

Ponle MAX_PLAYER_NAME+5, pero el servidor no pondrб los ъtlimos 5 caracteres.

Si el lнmite es 24/25 no se puede hacer nada.
Reply
#8

Pero creo que cambiandolo con SetPlayerName si acepta mбs, el lнmite es al entrar ( creo )
Reply
#9

Tincho, el lo que pide es para ponerse un tag en el momento, no para guardarlo en un archivo o algo xD.
Reply
#10

Quote:
Originally Posted by leaNN!
Посмотреть сообщение
Tincho, el lo que pide es para ponerse un tag en el momento, no para guardarlo en un archivo o algo xD.
Y nunca se guarda, testealo y vas a ver
Es que sino no se puede xD
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)