SA-MP Forums Archive
[AYUDA]Comando - 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: [AYUDA]Comando (/showthread.php?tid=173263)



[AYUDA]Comando - Lobo - 01.09.2010

Hola, necesito que me ayuden con un comando, es este:

pawn Код:
dcmd_setkills(playerid,params[]) {
    if(PlayerInfo[playerid][Level] == 5) {
        new string[128], tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
        if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USA: /setkills [playername] [kills]");
        if(strlen(tmp2) < 1 || strlen(tmp2) > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: No puedes poner un Score tan corto");
        if(udb_Exists(tmp)) {
            dUserSetINT(tmp).("kills",udb_hash(tmp2));
            PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
            format(string, sizeof(string),"ACCOUNT: Haz cambiado la cantidad de kills a \"%s\", Cantidad:\"%s\"", tmp, tmp2);
            return SendClientMessage(playerid,yellow,string);
        } else return SendClientMessage(playerid,red, "ERROR: Este jugador no esta registrado o no tiene una cuenta");
    } else return SendClientMessage(playerid,red,"ERROR: Tu no puedes cambiarle la cantidad de KILLS a alguien");
}
Quiero que la cantidad que ponga en los parametros sea igual, lo que pasa esque comienzo a usar el DINI y este comando lo saque del LADMIN, necesito ayuda, porfavor!


Respuesta: [AYUDA]Comando - laborgward - 02.09.2010

pero no entiendo, el comando te tira error? o lo keres agregar a ti sist de administracion?
se mas especifico


Re: [AYUDA]Comando - Lobo - 02.09.2010

El error esta aquн
pawn Код:
dUserSetINT(tmp).("kills",udb_hash(tmp2));
Quiero que esa parte en lugar de cambiar los datos numericos los deje asн, pero no se usar el Dini, y ahн lo que hace es esa fincion que dice "udb_hash" y cambia los caracteres que pongo de parametro, como lo hace con las password
Y quiero saber que funcion del dini me permite cambiarlo sin que se altere el dato que yo ingrese.
Ese comando lo uso para el Ladmin4v2, fue una ocurrencia
Ojala alguien me pueda ayudar.


Re: [AYUDA]Comando - MrDeath537 - 02.09.2010

No usйs udb_hash para convertir el texto que serнa las kills a numйrico, usб strval


Re: [AYUDA]Comando - Lobo - 02.09.2010

Podrias darme un ejemplo porfavor *.*
Esque estoy algo Noob con Dini, y pues la verdad nunca me habia hecho falta


Re: [AYUDA]Comando - MrDeath537 - 02.09.2010

pawn Код:
dcmd_setkills(playerid,params[]) {
    if(PlayerInfo[playerid][Level] == 5) {
        new string[128], tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
        if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "USA: /setkills [playername] [kills]");
        if(strlen(tmp2) < 1 || strlen(tmp2) > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: No puedes poner un Score tan corto");
        if(udb_Exists(tmp)) {
            dUserSetINT(tmp).("kills",strval(tmp2));
            PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
            format(string, sizeof(string),"ACCOUNT: Haz cambiado la cantidad de kills a \"%s\", Cantidad:\"%s\"", tmp, tmp2);
            return SendClientMessage(playerid,yellow,string);
        } else return SendClientMessage(playerid,red, "ERROR: Este jugador no esta registrado o no tiene una cuenta");
    } else return SendClientMessage(playerid,red,"ERROR: Tu no puedes cambiarle la cantidad de KILLS a alguien");
}



Re: [AYUDA]Comando - Lobo - 03.09.2010

Muchas gracias ^^ Funciono correctamente.


Re: [AYUDA]Comando - MrDeath537 - 03.09.2010

De nada.


Re: [AYUDA]Comando - Miguel - 03.09.2010

Para los que no saben, tmp2 era una "string", y para que fuera un nъmero en vez de un string se necesitaba usar strval(string[]).

їComo?
pawn Код:
("kills", strval(tmp2)) // tmp2 se pasa a un numero entero.