[Ajuda] Comando grana!!!
#1

bem tenho moeda segundaria no serve tenho uma duvida a fazer o comando dar grana + id para dar para um teterninado pessoa.. alguem poderia me ajuda!!!

meu comando para grana e... AddReal(playerid,3000); como eu fria um comando em cima disso tipo....


real idplayer + valoremReal

alguem poderia ajudar?? desde ja agradeзo...!!!


By ApolloRJ
Reply
#2

Pega um pagar de algum gm substitui o GivePlayerMoney(...) pelo seu AddReal(...).

pawn Code:
Parem de dar codigos prontos.
Reply
#3

PHP Code:
public OnPlayerCommandText(playeridcmdtext[])
{
    if(
strcmp(cmd"/dargrana"true) == 0)
    {
        
tmp strtok(cmdtext,idx);
        if(!
strlen(tmp)) return SendClientMessage(playerid0xB4B5B7FF,"USO: /dargrana [ID] [dinheiro]" );
        new 
giveplayerid ReturnUser(tmp);
        
tmp strtok(cmdtext,idx);
        if(!
strlen(tmp)) return SendClientMessage(playerid0xB4B5B7FF,"USO: /dargrana [ID] [dinheiro]" );
        new 
grana strval(tmp);
        if(
grana && grana 100000) return SendClientMessage(playerid0xC2A2DAAA," Os valores devem estar entre R$ 1 e R$ 100.000");
        
AddReal(giveplayerid,grana);
    }
    return 
1;

Testa ai. Caso haja erros mande os erros e as linhas referentes a eles.
Reply
#4

pawn Code:
public OnPlayerCommandText( playerid, cmdtext[])
{
new cmd[ 256 ], idx;
cmd = strtok( cmdtext, idx );
   
if( !strcmp( cmd, "/dDinheiro", true ) )
{
   if( !IsPlayerAdmin( playerid ) ) return SendClientMessage( playerid, /*Cor*/, "Sу administradores RCON podem usar este comando!" );
   new tmp1[ 128 ], tmp2[ 256 ], J, A, sStr[ 128 ], sStr2[ 128 ], nJogador[ MAX_PLAYER_NAME ], nAdmin[ MAX_PLAYER_NAME ], Dinheiro;
   tmp1 = strtok( cmdtext, idx );
   tmp2 = strtok( cmdtext, idx );
   if( !strlen(tmp1 ) || !strlen( tmp2 ) ) return SendClientMessage( playerid, /*Cor*/, "Uso correto: /dDinheiro [Jogador][Quantia]." );
   if( strval( tmp2 ) < 1 || strval( tmp2 ) > 999999999 ) return SendClientMessage( playerid, /*Cor*/, "Minimo: 1 | Maximo: 999999999." );
   J = strval( tmp1 );
   A = playerid;
   GetPlayerName( J, nJogador, sizeof( nJogador ) );
   GetPlayerName( A, nAdmin, sizeof( nAdmin ) );
   Dinheiro = strval( tmp2 );
   if(IsPlayerConnected( J ) )
   {
      format( sStr, sizeof( sStr ), "Vocк deu $%d ao jogador %s.", Dinheiro, nJogador);
      format( sStr2, sizeof( sStr2 ), "Vocк recebeu $%d do administrador %s.", Dinheiro, nAdmin);
      SendClientMessage( A, /*COr*/, sStr );
      SendClientMessage( J, /*COr*/, sStr2 );
      AddReal( J, Dinheiro );
   }
   else return SendClientMessage( playerid, /*COr*/, "Jogador nгo conectado." );
   return true;
}
return false;
}
Reply
#5

como colocar isso em um....

dcmd_grana(playerid, params[])
{
#pragma unused params
//aqui.. + como??
return 1;
}

teria como??
Reply
#6

Fiz este comando em base no "fCommands" do DraKiNs e do SlashPT (pois nгo percebo muito de dcmd_...):
pawn Code:
dcmd_grana( playerid, params[] )
{
   #pragma unused params
   new id = strval( iParams[ 1 ] );
   if( !id || !iParams[ 2 ][ 0 ] )
   return SendClientMessage( playerid, /*Cor*/, "Uso correto: /grana [Jogador][Quantia]" );
   AddReal(i, iParams[ 2 ] );
   return true;
}
Reply
#7

nussa deu erros de +....

C:\Users\ApolloRJ\Desktop\GM3.pwn(8609) : error 017: undefined symbol "iParams"
C:\Users\ApolloRJ\Desktop\GM3.pwn(8609) : warning 215: expression has no effect
C:\Users\ApolloRJ\Desktop\GM3.pwn(8609) : error 001: expected token: ";", but found "]"
C:\Users\ApolloRJ\Desktop\GM3.pwn(8609) : error 029: invalid expression, assumed zero
C:\Users\ApolloRJ\Desktop\GM3.pwn(8609) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


4 Errors.

o erro ta nessa linha...
new id = strval( iParams[ 1 ] );
Reply
#8

Como falei, usei em base no include fCommand.
Procure por comandos feitos em dcmd_... e troque as funзхes do comando pelas funзхes que eu e o Shadoww5 demos em cima.
Reply
#9

pawn Code:
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

public OnPlayerCommandText(playerid, cmdtext[])
{
    dcmd(dargrana, 8, cmdtext);
    return 0;
}
 
dcmd_dargrana(playerid, params[])
{
    new
        giveplayerid,
        grana;
    if (sscanf(params, "ud", giveplayerid, amount)) SendClientMessage(playerid, 0xB4B5B7FF, "Usage: /dargrana [playerid] [dinheiro]");
    else if (giveplayerid == INVALID_PLAYER_ID) SendClientMessage(playerid, 0xFF0000AA, " ID INVБLIDO !");
    else if (grana < 1 && grana > 100000)) SendClientMessage(playerid, 0xC2A2DAAA, " Os valores devem estar entre R$ 1 e R$ 100.000");
    else
    {
        GivePlayerMoney(giveplayerid, grana);
    }
    return 1;
}
Reply
#10

Olб ApolloRJ, modifique isto:
pawn Код:
new
   giveplayerid,
   grana;
por isto:
pawn Код:
new
   giveplayerid,
   grana,
   amount;
Reply
#11

Na verdade vocК sу precisa colocar esse codigo ae. Esqueci de retirar a variavel amount:

pawn Код:
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

public OnPlayerCommandText(playerid, cmdtext[])
{
    dcmd(dargrana, 8, cmdtext);
    return 0;
}
 
dcmd_dargrana(playerid, params[])
{
    new
        giveplayerid,
        grana;
    if (sscanf(params, "ud", giveplayerid, grana)) SendClientMessage(playerid, 0xB4B5B7FF, "Usage: /dargrana [playerid] [dinheiro]");
    else if (giveplayerid == INVALID_PLAYER_ID) SendClientMessage(playerid, 0xFF0000AA, " ID INVБLIDO !");
    else if (grana < 1 && grana > 100000)) SendClientMessage(playerid, 0xC2A2DAAA, " Os valores devem estar entre R$ 1 e R$ 100.000");
    else
    {
        GivePlayerMoney(giveplayerid, grana);
    }
    return 1;
}
Reply
#12

eu dei uma estudada aqui e fiz assim.....

#include <Zcmd>
#include <sscanf2>


CMD:grana( playerid, params[] )
{
if (IsPlayerAdmin(playerid))
{
new
toplayerid, // the player we want to give money to
amount; // extracting player's ID and amount from params
if (!sscanf(params, "ui", toplayerid, amount))
{
if (toplayerid != INVALID_PLAYER_ID)
{
new
message[40];
AddReal(toplayerid, amount);
format(message, sizeof(message), "Presente Do Admin $%d Reais", amount);
SendClientMessage(toplayerid, 0x00FF00FF, message);
}
else SendClientMessage(playerid, VERMELHO, "[ERROR:] {FFFFFF}Esse Jogador Nгo Estб Conectado!!");
}
else SendClientMessage(playerid, azulflorecente, "[INFO:] {FFFFFF}Use: /grana <playerid> <QtReais>");
}
else SendClientMessage(playerid, VERMELHO, "[ERROR:] {FFFFFF}Vocк nгo estб logado como Administrador RCON");
return true;
}



agora vem a pergunta X.. como faze um comando .. normal.. sem estar na rcon... tentei modificar esse aee.. n foi nem a pau kkkkk nesse esquema que fiz..... obrigado pela ajuda de ambos aee.. muito obrigado msm...
Reply
#13

pawn Код:
CMD:grana( playerid, params[] )
{
   new
      toplayerid, // the player we want to give money to
      amount; // extracting player's ID and amount from params
   if( !sscanf( params, "ui", toplayerid, amount ) )
   {
      if ( toplayerid != INVALID_PLAYER_ID )
      {
         new
            message[ 40 ];
         AddReal( toplayerid, amount );
         format( message, sizeof( message ), "Presente Do Admin $%d Reais", amount );
         SendClientMessage( toplayerid, 0x00FF00FF, message );
      }
      else SendClientMessage( playerid, VERMELHO, "[ERROR:] {FFFFFF}Esse Jogador Nгo Estб Conectado!!" );
   }
   else SendClientMessage( playerid, azulflorecente, "[INFO:] {FFFFFF}Use: /grana <playerid> <QtReais>" );
   return true;
}
Era sу retirar a funзгo:
pawn Код:
if( IsPlayerAdmin( playerid );
Reply
#14

brigado msm pela ajuda.... vcs sгo os caras hehe......

agora a saideira uahUAhAUA....

public OnPlayerCommandText(playerid, cmdtext[])
{
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//--------------fim-------------------------------------------------------------
return SendClientMessage(playerid, VERMELHO, "[ERROR:] {FFFFFF}Comando Nгo Existe /ajuda Para + Detalhes..");
}
//------------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


pq quando escreve o comando... n diz o q esta escrito na ultima linha ali..... eu tirei do dcmd e pus o zcmd ai fico assim.... tem algo errado ai?? pq.. quando o cara digita algo errado.. n aparece.. isso?? "[ERROR:] {FFFFFF}Comando Nгo Existe /ajuda Para + Detalhes..

to meio perdido.. cada vez que mexo no meu gm.. acho q piora hehe..
Reply
#15

Lembrando, que isso sу se coloca depois do ъltimo return e da ъltima chave do ъltimo comando do OnPlayerCommandText... Coloque:
pawn Код:
return SendClientMessage(playerid, VERMELHO, "[ERROR:] {FFFFFF}Comando Nгo Existe /ajuda Para + Detalhes.."), false;
}
Exemplo de como ficaria:
pawn Код:
public OnPlayerCommandText( playerid, cmdtext[] )
{
   if( !strcmp( cmdtext, "/Comando1", true ) )
   {
      ResetPlayerWeapons( playerid );
      SetPlayerHealth( playerid, 0.0 );
      return true;
   }
   
   if( !strcmp( cmdtext, "/Comando2", true ) )
   {
      ResetPlayerWeapons( playerid );
      SetPlayerHealth( playerid, 100 );
      return true;
   }
   
   return SendClientMessage(playerid, VERMELHO, "[ERROR:] {FFFFFF}Comando Nгo Existe /ajuda Para + Detalhes.."), false;
 }
Reply
#16

pawn Code:
dcmd_dargrana(playerid, params[])
{
   if(sscanf(params, "ud",params[0],params[1]))
   {
      return SendClientMessage(playerid, 0xB4B5B7FF, "Usage /dargrana [playerid] [dinheiro]");
   }
   else if(!IsPlayerConnected(params[0])
   {
      return SendClientMessage(playerid, 0xFF0000AA, " ID INVБLIDO !");
   }
   else if(params[1] < 1 && grana > params[1]))
   {
      return SendClientMessage(playerid, 0xC2A2DAAA, " Os valores devem estar entre R$ 1 e R$ 100.000");
   }
   else
   {
      return GivePlayerMoney(giveplayerid, grana);
   }
   return true;
}
se for zcmd sу mudar para
pawn Code:
CMD:dargrana(playerid,params[])
Reply
#17

public OnPlayerCommandText(playerid, cmdtext[])
{
if( !strcmp( cmdtext, "/Comando2", true ) )
{
ResetPlayerWeapons( playerid );
SetPlayerHealth( playerid, 100 );
return true;
}
return SendClientMessage(playerid, VERMELHO, "[ERROR:] {FFFFFF}Comando Nгo Existe /ajuda Para + Detalhes.."), false;
}


eu pus assim meu OnPlayerCommandText... pq quando o cara escreve algum comando errado vez de paracer isso... "[ERROR:] {FFFFFF}Comando Nгo Existe /ajuda Para + Detalhes.. aparece isso SERVER: Unknown command.

so falta isso para acertar meu GM alguem sabe pq.. isso e cupa do Zcmd pois depois que eu mudei para Zcmd... e que paro de aparecer a mensagens em portugues... e fica dando SERVER: Unknown command... o que ta errado no meu.. OnPlayerCommandText
Reply
#18

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if( !strcmp( cmdtext, "/Comando2", true ) )
    {
        ResetPlayerWeapons( playerid );
        SetPlayerHealth( playerid, 100 );
        return true;
    }
    else return SendClientMessage(playerid, VERMELHO, "[ERROR:] {FFFFFF}Comando Nгo Existe /ajuda Para + Detalhes.."), false;
}
-----------

Quando for postar allgum codigo de Pawno poe [**pawn] antes do codigo e [/pawn] depois.

OBS: Obviamente, й necessario que sejam retirados os dois asteriscos (*) de antes do codigo, ou ele nгo funcionarб !
Reply
#19

Код:
CMD:dinheiro( playerid,params[])
{
	if ( sscanf( params, "ui", params[ 0 ], params[ 1 ] ) )
	    return SendClientMessage( playerid, -1, "Use: /dinheiro [Id] [Valor] " );

	if ( !IsPlayerConnected( params[ 0 ] ) )
	    return SendClientMessage( playerid, -1, "Jogador Invбlido!" );
		
	if (params[ 1 ] == 0 ) 	    
	    return SendClientMessage( playerid, -1, "Quantia Invбlida!" );
		
	new 
	    Str [ 80 ],
	    p1  [ 24 ],
	    p2  [ 24 ]
	; 
	GetPlayerName( playerid, p1, sizeof p1 ); GetPlayerName( params[ 0 ], p2, sizeof p2 );
		
	format( Str, sizeof Str, "Vocк deu 'R$%d' ao jogador '%s'", params[ 1 ], p2 );
	SendClientMessage( playerid, -1, Str );
	format( Str, sizeof Str, "Vocк recebeu 'R$%d' do jogador '%s'" ,params[ 1 ], p1 );
	SendClientMessage( params[ 0 ], -1, Str );
		
	return AddReal( params[ 0 ],params[ 1 ] );
}
Considerando que vocк estб utilizando ZCMD, vocк NГO DEVE utilizar mais a callback "OnPlayerCommandText". Й "praticamente" ignorada. Em seu lugar, o correto seria "OnPlayerCommandReceived". Contudo, para "indicar" um comando invбlido atravйs de uma mensagem, use "OnPlayerCommandPerformed", exemplo:

Код:
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
	if ( !success )
	    return SendClientMessage( playerid, -1 , "[ERRO]: Comando Nгo Existe /ajuda Para + Detalhes.." ); return true;
}
Reply
#20

Luxurion resolveu meu problema hehe muito obrigado.. a ele e aos outros que me ajudou bastante... + uma vez Obrigado...

By ApolloRJ
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)