[Duda] Usar ID y Razуn.
#1

Hola, edito este post para preguntar una cosa, їhay alguna manera de usar un mismo interior para hacer 2?, es decir que por ejemplo, pongo una casa en SF y otra en LS, pero las dos tienen el mismo interior (el mismo id de Madd Doggs mansiуn por ejemplo), cуmo harнa para que sean dos distintos interiores pero usando el de Madd Doggs.
El problema es que al usar /entrar en una casa de SF y luego usan /entrar en la casa de LS van al mismo interior, yo quiero que sean distintos. Espero que puedan entenderme y ayudarme, gracias y un saludo.
Reply
#2

Intenta asн:
pawn Код:
CMD:san(playerid, params[], help){
      if (!IsPlayerAdmin(playerid)) return 0;
      if(isnull(params)) return SendClientMessage(playerid, -1, "Use /san [id] [razуn]. Ejemplo: /san 5 ASR y RK");
      if(!IsPlayerConnected(strval(params))) SendClientMessage(playerid, -1, "Jugador no conectado.");
      SetPlayerPos(strval(params), 346.870025,309.259033,999.155700);
      SetPlayerInterior(strval(params), 6);
      new str[124], Nick[MAX_PLAYER_NAME];
      GetPlayerName(playerid, Nick, sizeof(Nick));
      format(str, sizeof(str), "%s ha sido sancionado. Razуn: %s", Nick, params[1]);
      for (new i; i <GetMaxPlayers(); i++)
        {
            SendClientMessage(i, 0x00FFB7FF, str);
        }
      return 1;}
Reply
#3

Listo, gracias.
Reply
#4

Eso te funciona porque probaste con un jugador que tenia de ID 1 solo dнgito (en otras palabras, el ID al que sancionaste tenia una ID desde 0 a 9).

Cuando sea mayor a 9 el ID al que sanciones, no te funcionarб correctamente del todo.
Reply
#5

їY cуmo podrнa hacer para que funcione con una id mayor a 9? O mбs bien dicho, con una id con mбs de 1 dнgito.
Reply
#6

Buscando el espacio que separa la ID ingresada con la razуn. En vez de comenzar la razуn siempre en el slot 1, asi como tienes.

pawn Код:
params[1]
Hacerlo con una funciуn que busque carбcteres, como esta.

pawn Код:
stock BC(const contenedora[], caracter = ' ', index = 0)
{
    new
        ind,
        len = strlen(contenedora);
    for(new l = 0; l < len; l++)
    {
        if(contenedora[l] == caracter)
        {
            if(ind == index) return l;
            else ind++;
        }
    }
   
    return 0;
}
Y usarla en tu caso, de esta forma.

pawn Код:
params[BC(params)]
Reply
#7

Ahhh, ahн pruebo, muchas gracias.

Perfecto, y ahora si yo quisiera que al poner /san id [y no la razуn], salga error y que debe poner la razуn (cuando no pongo la razуn, igual lo tele-transporta, pero yo quiero que salga error en vez de hacerte la tele-transportaciуn їcуmo harнa?
Reply
#8

Deberiamos modificar la funciуn que creamos anteriormente.

pawn Код:
stock BC(const contenedora[], caracter = ' ', index = 0)
{
    new
        ind,
        len = strlen(contenedora);
    for(new l = 0; l < len; l++)
    {
        if(contenedora[l] == caracter)
        {
            if(ind == index) return l;
            else ind++;
        }
    }
   
    return -1;
}
Ahora retorna -1 si no encuentra espacios, en otras palabras, retornarб -1 si escribe solamente la ID. Reemplazariamos esta linea.

pawn Код:
if(isnull(params)) return SendClientMessage(playerid, -1, "Use /san [id] [razуn]. Ejemplo: /san 5 ASR y RK");
Por algo como.

pawn Код:
//No encuentra espacios
      if(BC(params) == -1) return SendClientMessage(playerid, -1, "Use /san [id] [razуn]. Ejemplo: /san 5 ASR y RK");
Aunque con eso hay una gran desventaja, es que si el que usa el comando, escribe algo como "/san [id] " (hay 2 espacios despues de la ID) uno de esos espacios serб la razуn. Pero es estъpido colocar 2 espacios despues de la ID.
Reply
#9

Ahн estб, muchas gracias te lo agradezco.

Tengo una duda mбs, їCуmo hago para que aparezca el Nombre_Apellido del id que seleccione al momento de enviar el mensaje?, estб asн en este momento:

pawn Код:
new str[124], Nick[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nick, sizeof(Nick));
format(str, sizeof(str), "El usuario %s a sido baneado. Razуn:%s", Nick, params[BC(params)]);
Pero en vez de poner el Nombre del id seleccionado, dice el Nombre de quiйn uso ese comando.
Reply
#10

Usa el plugin sscanf para que se te sea mas fбcil y rбpido.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)