SA-MP Forums Archive
Comando con nombre [AYUDA] - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Comando con nombre [AYUDA] (/showthread.php?tid=297017)



Comando con nombre [AYUDA] - godoy32 - 14.11.2011

Hola. Estoy un poco confundido con esto. Quiero que cuando, por ejemplo, yo ponga el comando /ir [ID] tambiйn se pueda ir con el nombre, ejemplo: /ir godoy (/ir [ID/Nombre])
No se como hacerlo y estoy complicado.
Saludos.


Respuesta: Comando con nombre [AYUDA] - Parka - 14.11.2011

men yo noce pero creoo que esa funcion tenes que usar GetPlayerName y MAX_PLAYER_NAME creoooo


Respuesta: Comando con nombre [AYUDA] - [J]ulian - 14.11.2011

Utilizб la funciуn ReturnUser, ej:

pawn Код:
new Float:x, Float:y, Floatz, usuario = ReturnUser(tmp);
GetPlayerPos(usuario, x, y, z);
SetPlayerPos(playerid, x, y, z);



Respuesta: Comando con nombre [AYUDA] - Synyster - 14.11.2011

usa sscanf

pawn Код:
if (sscanf(params, "u", nombre)) return SendClientMessage(playerid, 0xFF0000AA, "Uso /ir [Id/Nombre]");



Respuesta: Comando con nombre [AYUDA] - [J]ulian - 14.11.2011

El ya tiene el "/ir id" ( asн que no necesita lo que le estбs diciendo ), lo que quiere es que sea por el nombre tambiйn, la manera mбs fбcil ( para mi ) es la de ReturnUser.


Respuesta: Comando con nombre [AYUDA] - godoy32 - 14.11.2011

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
Utilizб la funciуn ReturnUser, ej:

pawn Код:
new Float:x, Float:y, Floatz, usuario = ReturnUser(tmp);
GetPlayerPos(usuario, x, y, z);
SetPlayerPos(playerid, x, y, z);
Gracias, funciona perfecto


Respuesta: Comando con nombre [AYUDA] - godoy32 - 18.11.2011

Perdonen que reviva el tema, pero surgio un nuevo problema.
Resulta que estaba probando el comando 'transferir' (banco) y si uno poner, por ejemplo: /transferir vicho 5000 sale 'No te puedes transferir a ti mismo'
Acб estб el code
pawn Код:
dcmd_transferir(playerid,params[])
{
        new Index;
        new tmp[256];  tmp  = strtok(params,Index);
        new tmp2[256]; tmp2 = strtok(params,Index);
        new player1;
        new cash = strval(tmp2);
        if(!IsNumeric(tmp2))
        player1 = ReturnUser(tmp);
        else player1 = strval(tmp);
        if(player1 == playerid) return SendClientMessage(playerid,COLOR_RED,"No te puedes transferir a ti mismo");
        if(!IsRangeToBank(playerid)) return SendClientMessage(playerid,COLOR_RED,"No estas en un banco");
        if(pInfo[playerid][Balance] < cash) return SendClientMessage(playerid,COLOR_RED,"No tienes esa cantidad en el banco");
        if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid,COLOR_RED,"Usa: /transferir [ID/Nombre] [Cantidad]");
        pInfo[playerid][Balance] -= cash;
        pInfo[player1][Balance] += cash;
        new string[128];
        format(string,sizeof(string),"Transferiste %d$ a %s ",cash, pName(player1));
        SendClientMessage(playerid,COLOR_YELLOW,string);
        new file[100];
        dini_IntSet(file,"Deposit",pInfo[playerid][Balance]);
        new string2[128]; format(string2,128,"Tu nuevo balance es %d$",pInfo[playerid][Balance]);
        SendClientMessage(playerid,color,string2);
        new string3[128]; format(string3,128,"%s (%d) te transfiriу $%d a tu cuenta",pName(playerid),playerid,cash);
        SendClientMessage(player1,COLOR_YELLOW,string3);
        new string4[128]; format(string4,128,"Tu nuevo balance es: %d$",pInfo[chosenpid][Balance]);
        SendClientMessage(player1,color,string4);
        return 1;
}
Ojala me puedan ayudar


Re: Comando con nombre [AYUDA] - digman - 18.11.2011

Prueba asi:

pawn Код:
dcmd_transferir(playerid,params[])
{
        new Index;
        new tmp[256];  tmp  = strtok(params,Index);
        new tmp2[256]; tmp2 = strtok(params,Index);
        new player1;
        new cash = strval(tmp2);
        if(!IsNumeric(tmp2))
        player1 = ReturnUser(tmp);
        if(IsPlayerConnected(player1)){
        SendClientMessage(playerid,COLOR_RED,"Jugador no Conectado");
        return 1;}
        else player1 = strval(tmp);
        if(player1 == playerid) return SendClientMessage(playerid,COLOR_RED,"No te puedes transferir a ti mismo");
        if(!IsRangeToBank(playerid)) return SendClientMessage(playerid,COLOR_RED,"No estas en un banco");
        if(pInfo[playerid][Balance] < cash) return SendClientMessage(playerid,COLOR_RED,"No tienes esa cantidad en el banco");
        if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid,COLOR_RED,"Usa: /transferir [ID/Nombre] [Cantidad]");
        pInfo[playerid][Balance] -= cash;
        pInfo[player1][Balance] += cash;
        new string[128];
        format(string,sizeof(string),"Transferiste %d$ a %s ",cash, pName(player1));
        SendClientMessage(playerid,COLOR_YELLOW,string);
        new file[100];
        dini_IntSet(file,"Deposit",pInfo[playerid][Balance]);
        new string2[128]; format(string2,128,"Tu nuevo balance es %d$",pInfo[playerid][Balance]);
        SendClientMessage(playerid,color,string2);
        new string3[128]; format(string3,128,"%s (%d) te transfiriу $%d a tu cuenta",pName(playerid),playerid,cash);
        SendClientMessage(player1,COLOR_YELLOW,string3);
        new string4[128]; format(string4,128,"Tu nuevo balance es: %d$",pInfo[chosenpid][Balance]);
        SendClientMessage(player1,color,string4);
        }
        return 1;
        }



Respuesta: Comando con nombre [AYUDA] - [J]ulian - 18.11.2011

No es necesario comprobar si es o no numйrico, la funciуn ReturnUser siempre devuelve la ID del jugador, lo que hace es comprobar si es un nombre conectado devolverte la ID. Asн:

pawn Код:
dcmd_transferir(playerid,params[])
{
        new Index;
        new tmp[256];  tmp  = strtok(params,Index);
        new tmp2[256]; tmp2 = strtok(params,Index);
        new player1 = ReturnUser(tmp);;
        new cash = strval(tmp2);
        if(player1 == playerid) return SendClientMessage(playerid,COLOR_RED,"No te puedes transferir a ti mismo");
        if(!IsRangeToBank(playerid)) return SendClientMessage(playerid,COLOR_RED,"No estas en un banco");
        if(pInfo[playerid][Balance] < cash) return SendClientMessage(playerid,COLOR_RED,"No tienes esa cantidad en el banco");
        if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid,COLOR_RED,"Usa: /transferir [ID/Nombre] [Cantidad]");
        pInfo[playerid][Balance] -= cash;
        pInfo[player1][Balance] += cash;
        new string[128];
        format(string,sizeof(string),"Transferiste %d$ a %s ",cash, pName(player1));
        SendClientMessage(playerid,COLOR_YELLOW,string);
        new file[100];
        dini_IntSet(file,"Deposit",pInfo[playerid][Balance]);
        new string2[128]; format(string2,128,"Tu nuevo balance es %d$",pInfo[playerid][Balance]);
        SendClientMessage(playerid,color,string2);
        new string3[128]; format(string3,128,"%s (%d) te transfiriу $%d a tu cuenta",pName(playerid),playerid,cash);
        SendClientMessage(player1,COLOR_YELLOW,string3);
        new string4[128]; format(string4,128,"Tu nuevo balance es: %d$",pInfo[chosenpid][Balance]);
        SendClientMessage(player1,color,string4);
        return 1;
}



Respuesta: Comando con nombre [AYUDA] - godoy32 - 19.11.2011

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
No es necesario comprobar si es o no numйrico, la funciуn ReturnUser siempre devuelve la ID del jugador, lo que hace es comprobar si es un nombre conectado devolverte la ID. Asн:

pawn Код:
dcmd_transferir(playerid,params[])
{
        new Index;
        new tmp[256];  tmp  = strtok(params,Index);
        new tmp2[256]; tmp2 = strtok(params,Index);
        new player1 = ReturnUser(tmp);;
        new cash = strval(tmp2);
        if(player1 == playerid) return SendClientMessage(playerid,COLOR_RED,"No te puedes transferir a ti mismo");
        if(!IsRangeToBank(playerid)) return SendClientMessage(playerid,COLOR_RED,"No estas en un banco");
        if(pInfo[playerid][Balance] < cash) return SendClientMessage(playerid,COLOR_RED,"No tienes esa cantidad en el banco");
        if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid,COLOR_RED,"Usa: /transferir [ID/Nombre] [Cantidad]");
        pInfo[playerid][Balance] -= cash;
        pInfo[player1][Balance] += cash;
        new string[128];
        format(string,sizeof(string),"Transferiste %d$ a %s ",cash, pName(player1));
        SendClientMessage(playerid,COLOR_YELLOW,string);
        new file[100];
        dini_IntSet(file,"Deposit",pInfo[playerid][Balance]);
        new string2[128]; format(string2,128,"Tu nuevo balance es %d$",pInfo[playerid][Balance]);
        SendClientMessage(playerid,color,string2);
        new string3[128]; format(string3,128,"%s (%d) te transfiriу $%d a tu cuenta",pName(playerid),playerid,cash);
        SendClientMessage(player1,COLOR_YELLOW,string3);
        new string4[128]; format(string4,128,"Tu nuevo balance es: %d$",pInfo[chosenpid][Balance]);
        SendClientMessage(player1,color,string4);
        return 1;
}
Sigue ocurriendo, solo que ahora, sale que el comando no existe.