20.04.2014, 02:14
Sscanf lo que hace es separar params, que es una cadena de texto que contiene todo lo que viene despuйs del comando, o sea, los parбmetros. Por ejemplo: /kick 13 health hack (13 razуn health hack son los parбmetros).
Para manejar los datos de los parбmetros en PAWN, necesitas separar esa cadena de texto (o string en inglйs) en variables.
Por ejemplo:
Ahн lo que le ordenй es separar a params en una variable entera y en una string, entonces idobjetivo es la ID del jugador que quiero expulsar y razon es la razуn de la expulsiуn contenida en una variable string. Entonces "is[128]", podrнa traducirse como "sscanf separa a params en una variable integer (entera) y en una string con capacidad mбxima 128 y conten los datos en las siguientes variables", entonces is[128] especifican el tipo de variable en el que se van a contener. Esos carбcteres se llaman specificiers o especificadores, hay muchos acб tenйs una lista simple:
Ahora lo que faltarнa serнa unos checks, para ver si el jugador estб conectado.
Y por ъltimo:
(Faltarнa algъn mensajito para que diga la razуn y el mensaje "pepe fue expulsado razуn...")
Para manejar los datos de los parбmetros en PAWN, necesitas separar esa cadena de texto (o string en inglйs) en variables.
Por ejemplo:
pawn Код:
CMD:kick(playerid, params[])
{
//condicion de si es admin o no
new idobjetivo, razon[128];
if(sscanf(params, "is[128]", idobjetivo, razon))
{
SendClientMessage(playerid, 0xFF0000FF, "Parбmetros invбlidos, utilize este formato: /kick ID razуn");
return 1;
}
Specifier(s) | Name | Example values |
b | Binary | 01001, 0b1100 |
c | Character | a, o, * |
f | Float | 0.7, -99.5 |
g | IEEE Float | 0.7, -99.5, INFINITY, -INFINITY, NAN, NAN_E |
h, x | Hex | 1A, 0x23 |
i, d | Integer | 1, 42, -10 |
l | Logical | true, false |
n | Number | 42, 0b010, 0xAC, 045 |
o | Octal | 045 12 |
q | Bot name/id | ShopBot, 27 |
r | Player name/id | ******, 42 |
u | User name/id (bots and players) | ******, 0 |
pawn Код:
if(!IsPlayerConnected(idobjetivo)) return SendClientMessage(playerid, 0xFF0000FF, "Jugador no conectado");
pawn Код:
Kick(idobjetivo);
return 1;
}