[Ajuda] Comando /dararma
#1

Gente boa tarde, eu sou iniciante em Pawn e estou tentando criar o comando /dararma sendo que eu especifique no comando a arma que eu darei e a muniзгo. Por exemplo: /dararma 38 100. Atй entгo eu sу consegui fazer um comando que a arma jб estivesse especificada no comando que foi:
Код:
	if (strcmp("/teste", cmdtext, true, 10) == 0)
	{
	    GivePlayerWeapon(playerid,38,999);
	}
	return 1;
Se puderem por explicaзхes ao lado da linha explicando, ficarei muito grato!
Reply
#2

PRONTO MANO! AGORA SУ COLOCAR EM SEU GM E PRONTO SEJA FFELIZ KK

pawn Код:
if(strcmp(cmd, "/dararma", true) == 0)//COMANDO
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "USE: /dararma [id] [arma id(ex. 24 = Eagle)] [muniзгo]");
    return 1;
    }
    new playa;
    new gun;
    new ammo;
    playa = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    gun = strval(tmp);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "USE: /dararma [id] [arma id] [muniзгo]");
    return 1;
    }
    if(gun < 1 || gun > 46 || gun==38 || gun==35 || gun==37 || gun==44 || gun==45 || gun==9  || gun==26 || gun==27 || gun==28 || gun==32)//DEFINE O ID DAS ARMAS QUE SГO PROIBIDAS (MINIGUN,ETC)
    { SendClientMessage(playerid, COLOR_GRAD1, "   ID Proibido!"); return 1; }
    tmp = strtok(cmdtext, idx);
    ammo = strval(tmp);
    if(ammo <1||ammo > 999)//NUMERO MINIMO E MAXIMO DE MUNЗГO QUE VOCК PODE DAR
    { SendClientMessage(playerid, COLOR_GRAD1, "   O minimo de muniзгo й 1 e o mбximo й 999!"); return 1; }
    if(PlayerInfo[playerid][pAdmin] < 1)//admin lvl 1 + que pode setar esse comando
    {
    SendClientMessage(playerid, COLOR_GREY," Vocк nгo tem autorizaзгo para usar este comando.");//SE NГO FOR ADMIN IRБ APARECER ESSA MENSAGEM
    return 1;
    }
    if(IsPlayerConnected(playa))
    {
    if(playa != INVALID_PLAYER_ID)//INDENTIFICA SE O PLAYER ESTБ CONECTADO
    {
    GivePlayerWeapon(playa, gun, ammo);
    }
    }
    }
    return 1;
    }
Reply
#3

Use SSCANF й melhor.
Reply
#4

pawn Код:
if (strcmp("/teste", cmdtext, true, 10) == 0)
{
new OtherPlayer, Arma, Valor;
if(sscanf(params, "uii", OtherPlayer, Arma, Valor)) SendClientMessage(playerid, 0xFF0000AA, "Use: /dararma [id] [Arma][Muniзгo]");

GivePlayerWeapon(OtherPlayer, Arma, Valor);
return 1;
}
Creio que seja isso
Reply
#5

PHP код:
CMD:dararma(playerid, params[]){
    new 
NomeArma[80];
    new 
stringdararma[128];
    new 
ArmaCMD, Municao, ID;
    if(
sscanf(params, "uii", ID, ArmaCMD, Municao)) return SendClientMessage(playerid, -1, "Use:  /dararma [ID/Nome] [Arma] [Muniзгo]");
    if(!
IsPlayerConnected(ID)) return SendClientMessage(playerid, -1, "ID/Nome invбlido.");
    if(
ArmaCMD < 1 || ArmaCMD == 19 || ArmaCMD == 20 || ArmaCMD == 21 || ArmaCMD > 46) return SendClientMessage(playerid, -1, "ID da arma invбlido, use de 1 а 46.");
    if(
ArmaCMD == 1) NomeArma = "Soco Inglкs";
    if(
ArmaCMD == 2) NomeArma = "Taco de Golf";
    if(
ArmaCMD == 3) NomeArma = "Cacetete";
    if(
ArmaCMD == 4) NomeArma = "Faca";
    if(
ArmaCMD == 5) NomeArma = "Taco de Baseball";
    if(
ArmaCMD == 6) NomeArma = "Pб";
    if(
ArmaCMD == 7) NomeArma = "Taco de Sinuca";
    if(
ArmaCMD == 8) NomeArma = "Kitana";
    if(
ArmaCMD == 9) NomeArma = "Serra elйtrica";
    if(
ArmaCMD == 10) NomeArma = "Pinto de Borracha";
    if(
ArmaCMD == 11) NomeArma = "Pinto roxo";
    if(
ArmaCMD == 12) NomeArma = "Vibrador";
    if(
ArmaCMD == 13) NomeArma = "Vibrador de Prata";
    if(
ArmaCMD == 14) NomeArma = "Flor";
    if(
ArmaCMD == 15) NomeArma = "Bengala";
    if(
ArmaCMD == 16) NomeArma = "Granada";
    if(
ArmaCMD == 17) NomeArma = "Bomba de gбs";
    if(
ArmaCMD == 18) NomeArma = "Molotov";
    if(
ArmaCMD == 22) NomeArma = "Pistola 9mm";
    if(
ArmaCMD == 23) NomeArma = "Pistola com silenciador";
    if(
ArmaCMD == 24) NomeArma = "Desert Eagle";
    if(
ArmaCMD == 25) NomeArma = "ShotGun";
    if(
ArmaCMD == 26) NomeArma = "Sawnoff Shotgun";
    if(
ArmaCMD == 27) NomeArma = "Combat Shotgun";
    if(
ArmaCMD == 28) NomeArma = "Micro SMG";
    if(
ArmaCMD == 29) NomeArma = "MP5";
    if(
ArmaCMD == 30) NomeArma = "AK47";
    if(
ArmaCMD == 31) NomeArma = "M4";
    if(
ArmaCMD == 32) NomeArma = "Tec 9";
    if(
ArmaCMD == 33) NomeArma = "Country Rifle";
    if(
ArmaCMD == 34) NomeArma = "Sniper Rifle";
    if(
ArmaCMD == 35) NomeArma = "Bazooca RPG";
    if(
ArmaCMD == 36) NomeArma = "Bazooca Normal";
    if(
ArmaCMD == 37) NomeArma = "Lanзa Chamas";
    if(
ArmaCMD == 38) NomeArma = "Mini Gun";
    if(
ArmaCMD == 39) NomeArma = "C4";
    if(
ArmaCMD == 40) NomeArma = "Detonador";
    if(
ArmaCMD == 41) NomeArma = "Spray";
    if(
ArmaCMD == 42) NomeArma = "Extintor";
    if(
ArmaCMD == 43) NomeArma = "Oculos de visгo noturna";
    if(
ArmaCMD == 45) NomeArma = "Oculos de visгo de calor";
    if(
ArmaCMD == 46) NomeArma = "Paraquedas";
    
GivePlayerWeapon(ID, ArmaCMD, Municao);
    
format(stringdararma, sizeof(stringdararma), "Vocк deu um(a) %s com %d de muniзгo para o jogador.", NomeArma, Municao);
    
SendClientMessage(playerid, -1, stringdararma);
    return 
true;
} 
Reply
#6

Tentei usar a forma de um dos amigos acima por parecer mais simples e coloquei assim lб:

Код:
	if (strcmp("/dararma", cmdtext, true, 10) == 0)
	{
		new OtherPlayer, Arma, Valor;
		GivePlayerWeapon(OtherPlayer, Arma, Valor);
	}
Porйm quando testei: /dararma 0 38 99, nada aconteceu.
Reply
#7

Quote:
Originally Posted by focaximubh
Посмотреть сообщение
pawn Код:
if (strcmp("/teste", cmdtext, true, 10) == 0)
{
new OtherPlayer, Arma, Valor;
if(sscanf(params, "uii", OtherPlayer, Arma, Valor)) SendClientMessage(playerid, 0xFF0000AA, "Use: /dararma [id] [Arma][Muniзгo]");

GivePlayerWeapon(OtherPlayer, Arma, Valor);
return 1;
}
Creio que seja isso
Nгo й isso rs, se quiser saber sobre Strcmp e Sscanf, leia meu tutorial sobre o assunto
Reply
#8

Precisa desse sscanf? Nгo teria uma forma mais simples de fazк-lo?
Reply
#9

Coloque sscanf e ZCMD, e use o CMD que eu fiz, SSCANF E ZCMD sгo melhores.
Reply
#10

Quote:
Originally Posted by vilmar16
Посмотреть сообщение
Precisa desse sscanf? Nгo teria uma forma mais simples de fazк-lo?
/\ falou tudo mano dei atй EDIT no meu post '-'

carai* quer forma mais simples? kkkkkk й sу colocar o sscanf lб em cima simplismente '-' do sscanf para baixo vocк serб feliz o resto da vida coisa linda do samp й o sscanf e vocк chama de complicado tente usar os comandos que lhe enviaram inclusive o meu para ver se funciona '-'
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)