[Duda] Aplicar funciуn a un ID
#1

Hola, quiero aplicar una funciуn hacнa otro jugador, es decir que por ejemplo al poner /9mm [id], se le de una 9mm al usuario asignado en el comando. Tengo asн una funciуn:

pawn Код:
CMD:9mm(playerid, params[], help)
{
      if (!IsPlayerAdmin(playerid)) return 0;
      GivePlayerWeapon(playerid, 22, 99999);
      return 1;
}
Ahora, їcуmo hago para que al poner /9mm [id] se le de el arma al id elegido? y si el jugador no estб conectado que por ejemplo, diga: "el jugador no estб conectado" o si el id es incorrecto, "el id es incorrecto.". Muchas gracias y un saludo.
Reply
#2

GUНATE DE ESTO

pawn Код:
CMD:giveweapon(playerid,params[])
{
        new Index;
        new tmp[256];  tmp  = strtok(params,Index);
        new tmp2[256]; tmp2 = strtok(params,Index);
        new tmp3[256]; tmp3 = strtok(params,Index);
       
        if(!strlen(tmp) || !strlen(tmp2)) return
        SendClientMessage(playerid, COLOR, "Usage: /giveweapon [PlayerID] [Weapon ID/Name] [Ammo]") &&
        SendClientMessage(playerid, COLOR, "Function: Will give a weapon to a specified player");
        new player1 = strval(tmp);
        new weap, ammo, WeapName[32];
        new string[128];
        if(!strlen(tmp3) || !IsNumeric(tmp3) || strval(tmp3) <= 0 || strval(tmp3) > 99999) ammo = 500;
        else ammo = strval(tmp3);
        if(!IsNumeric(tmp2)) weap = GetWeaponIDFromName(tmp2);
        else weap = strval(tmp2);
        if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID)
        {
            if(!IsValidWeapon(weap))
            return SendClientMessage(playerid,red,"ERROR: Invalid Weapon ID");
            GetWeaponName(weap,WeapName,32);
            format(string, sizeof(string), "== You have given \"%s\" a %s (%d) with %d rounds of Ammo ", PlayerName2(player1), WeapName, weap, ammo);
            SendClientMessage(playerid,COLOR,string);
            if(player1 != playerid)
            {
            format(string,sizeof(string),"==  \"%s\" has given you a %s (%d) with %d rounds of Ammo ", PlayerName2(playerid), WeapName, weap, ammo);
            SendClientMessage(player1,COLOR,string);
            }
            return GivePlayerWeapon(player1, weap, ammo);
    }
    return 1;
}
Reply
#3

Gracias por responder, bueno me salen estos errores:

Quote:

C:\Users\Equipo\Desktop\Samportal RolePlay Prueba\gamemodes\SPRP.pwn(1389) : error 017: undefined symbol "IsNumeric"
C:\Users\Equipo\Desktop\Samportal RolePlay Prueba\gamemodes\SPRP.pwn(1391) : error 017: undefined symbol "IsNumeric"
C:\Users\Equipo\Desktop\Samportal RolePlay Prueba\gamemodes\SPRP.pwn(1391) : error 017: undefined symbol "GetWeaponIDFromName"
C:\Users\Equipo\Desktop\Samportal RolePlay Prueba\gamemodes\SPRP.pwn(1395) : error 017: undefined symbol "IsValidWeapon"
C:\Users\Equipo\Desktop\Samportal RolePlay Prueba\gamemodes\SPRP.pwn(139 : error 017: undefined symbol "PlayerName2"
C:\Users\Equipo\Desktop\Samportal RolePlay Prueba\gamemodes\SPRP.pwn(1402) : error 017: undefined symbol "PlayerName2"
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


6 Errors.

Puse la funciуn asн:

pawn Код:
CMD:a9mm(playerid,params[])
{
        new Index;
        new tmp[256];  tmp  = strtok(params,Index);
        new tmp2[256]; tmp2 = strtok(params,Index);
        new tmp3[256]; tmp3 = strtok(params,Index);

        if(!strlen(tmp) || !strlen(tmp2)) return
        SendClientMessage(playerid, COLOR_ROJO, "Usage: /giveweapon [PlayerID] [Weapon ID/Name] [Ammo]") &&
        SendClientMessage(playerid, COLOR_ROJO, "Function: Will give a weapon to a specified player");
        new player1 = strval(tmp);
        new weap, ammo, WeapName[32];
        new string[128];
        if(!strlen(tmp3) || !IsNumeric(tmp3) || strval(tmp3) <= 0 || strval(tmp3) > 99999) ammo = 500;
        else ammo = strval(tmp3);
        if(!IsNumeric(tmp2)) weap = GetWeaponIDFromName(tmp2);
        else weap = strval(tmp2);
        if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID)
        {
            if(!IsValidWeapon(weap))
            return SendClientMessage(playerid,COLOR_ROJO,"ERROR: Invalid Weapon ID");
            GetWeaponName(weap,WeapName,32);
            format(string, sizeof(string), "== You have given \"%s\" a %s (%d) with %d rounds of Ammo ", PlayerName2(player1), WeapName, weap, ammo);
            SendClientMessage(playerid,COLOR_ROJO,string);
            if(player1 != playerid)
            {
            format(string,sizeof(string),"==  \"%s\" has given you a %s (%d) with %d rounds of Ammo ", PlayerName2(playerid), WeapName, weap, ammo);
            SendClientMessage(player1,COLOR_ROJO,string);
            }
            return GivePlayerWeapon(player1, 22, 99999);
    }
    return 1;
}
їQuй hice mal?, їo que falta por cambiar ahм?
Reply
#4

Bajate el plugin sscanf y su include te van a hacer las cosas muchнsimas mбs fбciles.
Reply
#5

Dijo guiate de йl, no que copies el cуdigo.

pawn Код:
CMD:9mm(playerid, params[], help)
{
      if (!IsPlayerAdmin(playerid)) return 0;
      if(!IsPlayerConnected(strval(params))) SendClientMessage(playerid, -1, "Jugador no conectado.");

      GivePlayerWeapon(strval(params), 22, 99999);

      return 1;
}
El parбmetro que tu nombras "params" obtiene lo que el jugador escribe despues de "/comando " (notese al final un espacio) por lo que en tu caso, el ID deberia ser "params" solamente, con la funciуn strval podemos transformar una cadena a un integer, como en el cуdigo que te dejй.
Reply
#6

Quote:
Originally Posted by DesingMyCry
Посмотреть сообщение
Dijo guiate de йl, no que copies el cуdigo.

pawn Код:
CMD:9mm(playerid, params[], help)
{
      if (!IsPlayerAdmin(playerid)) return 0;
      if(!IsPlayerConnected(strval(params))) SendClientMessage(playerid, -1, "Jugador no conectado.");

      GivePlayerWeapon(strval(params), 22, 99999);

      return 1;
}
El parбmetro que tu nombras "params" obtiene lo que el jugador escribe despues de "/comando " (notese al final un espacio) por lo que en tu caso, el ID deberia ser "params" solamente, con la funciуn strval podemos transformar una cadena a un integer, como en el cуdigo que te dejй.
Йl editу el mensaje, ese "guнate de esto" no estaba, por lo tanto no hables de copiar, йl me envнo el cуdigo asн como estaba, sin explicaciуn, y aъn no entiendo mucho este lenguaje para hacerlo a mн modo. Y es йl el que deberнa protestar porque copiй ese cуdigo, no tъ, asн que si no te ofende, no te metas en lo que no te incumbe.

Ahн pruebo eso, gracias por responder.

Quote:
Originally Posted by JustBored
Посмотреть сообщение
Bajate el plugin sscanf y su include te van a hacer las cosas muchнsimas mбs fбciles.
Ahora lo descargo, їeso para quй sirve?
Reply
#7

Dices que no me incumbe pero esto es un foro pъblico que cualquiera puede comentar. Si creas un tуpico pidiendo ayuda es estъpido decir que no me meta porque no me incumbe. No te enojes porque no te ayudarб.

Ademбs no soy adivino como para saber que editу el comentario (no ando muy pendiente de ello).

El cуdigo que te dejй es correcto, verificalo, y deja de lado la forma en la que me expreso porque esa es mi naturaleza.
Reply
#8

Quote:
Originally Posted by DesingMyCry
Посмотреть сообщение
Dices que no me incumbe pero esto es un foro pъblico que cualquiera puede comentar. Si creas un tуpico pidiendo ayuda es estъpido decir que no me meta porque no me incumbe. No te enojes porque no te ayudarб.

Ademбs no soy adivino como para saber que editу el comentario (no ando muy pendiente de ello).

El cуdigo que te dejй es correcto, verificalo, y deja de lado la forma en la que me expreso porque esa es mi naturaleza.
Claro que cualquiera puede comentar, a lo que me refiero con el que "no te incumbe", es el cуdigo que йl me habнa dado, no tienes por quй decir que no me copie el cуdigo, aparte, si йl quisiera darme sus cуdigos, su GM, o lo que sea, no tendrнa nada de malo, si йl lo puso ahн, serб por algo.
Sн, es correcto y te lo agradezco.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)