SA-MP Forums Archive
[Duda] Usar ID y Razуn. - 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: [Duda] Usar ID y Razуn. (/showthread.php?tid=463374)



(Duda) Crear distintos interiores con un interior. - Kryzis - 11.09.2013

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.


Respuesta: [Duda] Usar ID y Razуn. - hotspicytaco - 11.09.2013

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;}



Respuesta: [Duda] Usar ID y Razуn. - Kryzis - 11.09.2013

Listo, gracias.


Respuesta: [Duda] Usar ID y Razуn. - DesingMyCry - 11.09.2013

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.



Respuesta: [Duda] Usar ID y Razуn. - Kryzis - 11.09.2013

ї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.


Respuesta: [Duda] Usar ID y Razуn. - DesingMyCry - 11.09.2013

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)]



- Kryzis - 11.09.2013

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?


Respuesta: [Duda] Usar ID y Razуn. - DesingMyCry - 11.09.2013

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.


- Kryzis - 11.09.2013

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.


Respuesta: [Duda] Usar ID y Razуn. - DesingMyCry - 11.09.2013

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