[DUV]Drogas
#1

Entaum eu to fazendo uns 2 cmds para um gm aqui q eu tenho..

mais eu estou com duvida em fazer o comando /usardroga
bom o cmd /venderdroga estб ai :

pawn Код:
if(strcmp(cmd, "/venderdroga", true) == 0) {
      if(Profissao[playerid] == DAMACV || Profissao[playerid] == DONOCV || Profissao[playerid] == TRAFICANTE || Profissao[playerid] == TRAFICANTE_FARC ||Profissao[playerid] == REI_DA_MAFIA ||Profissao[playerid] == CHEFE_DE_GANGUE || IsPlayerAdmin(playerid)){
        new tmp[256];
        new msg[256];
        new plid, mili;
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)){
          SendClientMessage(playerid, 0xFF0000AA,"/venderdroga [id] [quantidade]");
              return 1;
            }
            plid = strval(tmp);
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp)){
              SendClientMessage(playerid, 0xFF0000AA, "/venderdroga [id] [quantidade]");
            return 1;
            }
            mili = strval(tmp);
            if(mili > 7){
              SendClientMessage(playerid, 0xFF0000AA, "Vocк estб louco? Quer matar o seu cliente? Doses de 1 a 10");
            return 1;
            }
            else if(mili < 1){
              SendClientMessage(playerid, 0xFF0000AA, "Te peguei, bichinho! Querendo enganar o freguкs, nгo? Doses de 1 а 7");
            return 1;
            }else{
              if(!IsPlayerConnected(plid)){
                SendClientMessage(playerid,0xFF0000AA, "O jogador que vocк indicou nгo estб conectado.");
                return 1;
              }
              else{
                if(GetDistanceBetweenPlayers(playerid,plid) > 20){
                        SendClientMessage(playerid,0xFF0000AA, "Chege mais perto para vender o bagulho.");
                      return 1;
                    } else {
                    if(Maconha[plid] == 10){
                        SendClientMessage(playerid,0xFF0000AA, "Vocк quer matar seu cliente?!");
                        return 1;
                        } else {
                        Maconha[plid] = mili;
                        SendClientMessage(playerid,0x00FF00AA, "Ai Mano Valeu Essa й da Boa :D!");
                        format(msg,sizeof(msg),"Ai Doido Fuma esse bagulho (para fumar /usardroga)",mili);
                        SendClientMessage(plid,0xFFFFFFAA,msg);
                        return 1;
                        }
                    }
                }
            }
        } else {
        SendClientMessage(playerid,COLOR_RED,"Vocк nгo tem permissгo para isso!");
        return 1;
        }
    }
mais eu nao tenho muita ideia de como fazer o cmd /usardroga
eu nao sei como comeзar =/

alguem pode me dizer pelo menos como comessar para eu ter uma ideia..
Reply
#2

pawn Код:
if(strcmp(cmdtext, "/usardrogas", true) == 0)
  {
    new Float:Colete;
    GetPlayerArmour(playerid, Colete); // Pega o valor do colete.

    if(Colete > 90) // Verifica o colete.
    {
      SendClientMessage(playerid, 0xFF0000AA, "Vocк nгo pode usar mais drogas"); // Se for maior que 90 ele nгo vai poder usar.
      return 1;
    }
    else // Se o colete nгo for maior que 90
    {
      Maconha[playerid] --;  // Tira 1 maconha.
      SetPlayerArmour(playerid, Colete + 10); // Dб 10 de colete.
    }
    return 1;
  }
Й sу uma base Ai vc pode ir modificando colocando SendClientMessage etc...
Reply
#3

Topo GM:
pawn Код:
new MaconhaDraKoN[MAX_PLAYERS];
Agora os Comandos:

Vender:
pawn Код:
if(strcmp(cmd, "/vdrogas", true) == 0)
    {
        new tmp[128];
        tmp = strtok(cmdtext, idx);
 
        if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Uso: /vdroga [ID-Do-Jogador]");//Caso Digite Errado
 
        MaconhaDraKoN(strval(tmp)++;//Dб Drogas ao Outros Player
        return 1;
    }
Agora Fumar:
pawn Код:
if(strcmp(cmd, "/drogas", true) == 0)
    {
if(MaconhDraKoN[playerid] == 0)//Se a Drogas for -0 nгo da de fumar
{
MaconhaDraKoN[playerid]--;//Comando Tira Drogas
SetPlayerWeather(playerid, 66);
SetPlayerSkin(playerid, 264);
ApplyAnimation(playerid,"SMOKING","M_smklean_loop",4.1,1,1,1,1,1);
SetPlayerDrunkLevel(playerid,50000);
format(string, sizeof(string), " %s estб puxando um baseado, cuidado pois ele estб doidгo! (/usardrogas)", pName);
SendClientMessageToAll(0xFFFF00AA, string);
PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0);//By Ambrosio Amйlio
}else{
SendClientMessage(playerid,COLORAQUI,"Tu Nгo Tem Dorgas");
}
return 1;
}


Aqui Caso Queira um Compactivel com Teu!:
pawn Код:
f(strcmp(cmd, "/usardrogas", true) == 0)
{
if(Maconha[playerid] == 0)//Se a Drogas for -0 nгo da de fumar
{
Maconha[playerid]--;//Comando Tira Drogas
SetPlayerWeather(playerid, 66);
SetPlayerSkin(playerid, 264);
ApplyAnimation(playerid,"SMOKING","M_smklean_loop",4.1,1,1,1,1,1);
SetPlayerDrunkLevel(playerid,50000);
format(string, sizeof(string), " %s estб puxando um baseado, cuidado pois ele estб doidгo! (/usardrogas)", pName);
SendClientMessageToAll(0xFFFF00AA, string);
PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0);//By Ambrosio Amйlio
}else{
SendClientMessage(playerid,COLORAQUI,"Tu Nгo Tem Dorgas");
}
return 1;
}
Reply
#4

Valeu mano brigadaum

drakon eu peguei o q vc mando i editei

muito obrigado cara
Reply
#5

Baixa:

http://forum.sa-mp.com/index.php?topic=177724.0


Vai a trabalhos>NextLifeRP>Log e ve o sistema de drogas.. para alem disso, ve os cmds: /venderdrogas, /usardrogas, etc....


Pode servir de base para muitas duvidas
Reply
#6

Estou com outra duvida sobre o sistema de drogas q eu estou fazendo.
tipo , eu gostaria de saber se da tipo para fazer um comando /aceitardroga
por exemplo : o cara q digitou o cmd /venderdroga pro outro player ai o player precisa aceita a droga si ele quer ou nгo...
tipo quiria saber si da pra fazer isso um cmd /aceitardroga

i alguem ajuda como faze-lo ?
Reply
#7

Aqui..:
pawn Код:
#include <a_samp>
new Dorgas[MAX_PLAYERS];
new Maconha[MAX_PLAYERS];
public OnPlayerCommandText(playerid,cmdtext[]) {
new index, cmd[128];
cmd = strtok(cmdtext, index);

if (!strcmp("/dardrogas",cmd,true,6)) {
new tmp[128];
tmp = strtok(cmdtext, index);
if(!strlen(tmp) || !IsNumeric(tmp)) {
return SendClientMessage(playerid,0xFFFF00AA ,"Use: /dardrogas [playerid]");
}
else {
new id=strval(tmp);
if(!IsPlayerConnected(id)) {
return SendClientMessage(playerid,0xFFFF00AA ,"Player nгo concetado");         }
else {
new name1[MAX_PLAYER_NAME],name2[MAX_PLAYER_NAME],string[100];
GetPlayerName(id, name1, sizeof(name1));
GetPlayerName(playerid, name2, sizeof(name2));
format(string, sizeof(string), "Info Dorgados %s esta tentando comprar maconha de %s.",name1,name2);
SendClientMessageToAll(0xFFFF00AA, string);
SendClientMessage(id,0xFFFF00AA,"Digite '/aceitardorgas' para aceitar....");
Dorgas[playerid]++;
Dorgas[id]++;
}
}
return 1;
}
if (!strcmp("/aceitardorgas",cmd,true,7)) {
new tmp[128];
tmp = strtok(cmdtext, index);
if(!strlen(tmp) || !IsNumeric(tmp)) {
return SendClientMessage(playerid,0xFFFF00AA,"Usage: /aceitardorgas [playerid]");
}else {
new id=strval(tmp);
if(!IsPlayerConnected(id)) { return SendClientMessage(playerid,0xFFFF00AA,"Player nгo conectado");}
if(Dorgas[id]==0) return SendClientMessage(playerid,0xFFFF00AA,"Player nгo te ofereceste drogas");
{
Dorgas[playerid]--;
Dorgas[id]--;
Maconha[playerid]++;
//************** O Que Fazer se Aceitar *****************
new name[MAX_PLAYER_NAME], string[44];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "%s aceitou a droga, MACONHERO.",name);
SendClientMessageToAll(0xFFFF00AA, string);
}
}
return 1;
}
return 0;
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
stock IsNumeric(const string[]) {
new length=strlen(string);
if (length==0) return false;
for (new i = 0; i < length; i++) {
if (
(string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+')
|| (string[i]=='-' && i!=0)                      
|| (string[i]=='+' && i!=0)
) return false;
}
if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
return true;
}
Reply
#8

Quote:
Originally Posted by DraKoNeoN
Aqui..:
pawn Код:
#include <a_samp>
new Dorgas[MAX_PLAYERS];
new Maconha[MAX_PLAYERS];
public OnPlayerCommandText(playerid,cmdtext[]) {
new index, cmd[128];
cmd = strtok(cmdtext, index);

if (!strcmp("/dardrogas",cmd,true,6)) {
new tmp[128];
tmp = strtok(cmdtext, index);
if(!strlen(tmp) || !IsNumeric(tmp)) {
return SendClientMessage(playerid,0xFFFF00AA ,"Use: /dardrogas [playerid]");
}
else {
new id=strval(tmp);
if(!IsPlayerConnected(id)) {
return SendClientMessage(playerid,0xFFFF00AA ,"Player nгo concetado");        }
else {
new name1[MAX_PLAYER_NAME],name2[MAX_PLAYER_NAME],string[100];
GetPlayerName(id, name1, sizeof(name1));
GetPlayerName(playerid, name2, sizeof(name2));
format(string, sizeof(string), "Info Dorgados %s esta tentando comprar maconha de %s.",name1,name2);
SendClientMessageToAll(0xFFFF00AA, string);
SendClientMessage(id,0xFFFF00AA,"Digite '/aceitardorgas' para aceitar....");
Dorgas[playerid]++;
Dorgas[id]++;
}
}
return 1;
}
if (!strcmp("/aceitardorgas",cmd,true,7)) {
new tmp[128];
tmp = strtok(cmdtext, index);
if(!strlen(tmp) || !IsNumeric(tmp)) {
return SendClientMessage(playerid,0xFFFF00AA,"Usage: /aceitardorgas [playerid]");
}else {
new id=strval(tmp);
if(!IsPlayerConnected(id)) { return SendClientMessage(playerid,0xFFFF00AA,"Player nгo conectado");}
if(Dorgas[id]==0) return SendClientMessage(playerid,0xFFFF00AA,"Player nгo te ofereceste drogas");
{
Dorgas[playerid]--;
Dorgas[id]--;
Maconha[playerid]++;
//************** O Que Fazer se Aceitar *****************
new name[MAX_PLAYER_NAME], string[44];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "%s aceitou a droga, MACONHERO.",name);
SendClientMessageToAll(0xFFFF00AA, string);
}
}
return 1;
}
return 0;
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
stock IsNumeric(const string[]) {
new length=strlen(string);
if (length==0) return false;
for (new i = 0; i < length; i++) {
if (
(string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+')
|| (string[i]=='-' && i!=0)                      
|| (string[i]=='+' && i!=0)
) return false;
}
if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
return true;
}
ei amigo tem como eu substituir essi comando /dardroga por = /venderdroga
com essi meu cmd ?

pawn Код:
if(strcmp(cmd, "/venderdroga", true) == 0) {
      if(Profissao[playerid] == DAMACV || Profissao[playerid] == DONOCV || Profissao[playerid] == TRAFICANTE || Profissao[playerid] == TRAFICANTE_FARC ||Profissao[playerid] == REI_DA_MAFIA ||Profissao[playerid] == CHEFE_DE_GANGUE || IsPlayerAdmin(playerid)){
        new tmp[256];
        new msg[256];
        new plid, mili;
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)){
          SendClientMessage(playerid, 0xFF0000AA,"/venderdroga [id] [quantidade]");
              return 1;
            }
            plid = strval(tmp);
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp)){
              SendClientMessage(playerid, 0xFF0000AA, "/venderdroga [id] [quantidade]");
            return 1;
            }
            mili = strval(tmp);
            if(mili > 7){
              SendClientMessage(playerid, 0xFF0000AA, "Vocк estб louco? Quer matar o seu cliente? Doses de 1 a 10");
            return 1;
            }
            else if(mili < 1){
              SendClientMessage(playerid, 0xFF0000AA, "Te peguei, bichinho! Querendo enganar o freguкs, nгo? Doses de 1 а 7");
            return 1;
            }else{
              if(!IsPlayerConnected(plid)){
                SendClientMessage(playerid,0xFF0000AA, "O jogador que vocк indicou nгo estб conectado.");
                return 1;
              }
              else{
                if(GetDistanceBetweenPlayers(playerid,plid) > 20){
                        SendClientMessage(playerid,0xFF0000AA, "Chege mais perto para vender o bagulho.");
                      return 1;
                    } else {
                    if(Maconha[plid] == 10){
                        SendClientMessage(playerid,0xFF0000AA, "Vocк quer matar seu cliente?!");
                        return 1;
                        } else {
                        Maconha[plid] = mili;
                        SendClientMessage(playerid,0x00FF00AA, "Ai Mano Valeu Essa й da Boa :D!");
                        format(msg,sizeof(msg),"Ai Doido Fuma esse bagulho (para fumar /usardroga)",mili);
                        SendClientMessage(plid,0xFFFFFFAA,msg);
                        return 1;
                        }
                    }
                }
            }
        } else {
        SendClientMessage(playerid,COLOR_RED,"Vocк nгo tem permissгo para isso!");
        return 1;
        }
    }
mais precisa retirar alguma coisa para dar certo tem como /
Reply
#9

eu fiz assim:

Em cima do OnGameModeInit eu coloquei:

Код:
#define COLOR_MACONHA 				   0xFFB56AAA

#define COLOR_RED						 0xB00000AA

new Maconha[MAX_PLAYERS];

new Maconha2[MAX_PLAYERS];

new Maconha3[MAX_PLAYERS];

new MOffert[MAX_PLAYERS];
Depois fiz os Comandos:

Код:
	  new playercash;
	playercash = GetPlayerMoney(playerid);

	if (strcmp("/comprarmac", cmdtext, true, 10) == 0){
		if(gTeam[playerid] == gT3){
			if(IsPlayerInRangeOfPoint(playerid, 0.7, -85.6022, -1132.16, 1.20313)){
				if(playercash >= 5000) {
					GivePlayerMoney(playerid, -5000);
					Maconha3[playerid]++;
				}else{
					SendClientMessage(playerid, COLOR_RED, "Erro: Vocк nгo tem R$5000.");
				}
			}else{
				SendClientMessage(playerid, COLOR_RED, "Vocк nгo esta no local serto.");
			}
		}else{
		SendClientMessage(playerid, COLOR_RED, "Vocк nгo й maconheiro!");
		}
	}

	new cmd[256];
	new idx;
	new PlayerName[MAX_PLAYER_NAME+1];
	new PlidName[MAX_PLAYER_NAME+1];
	new plidmsg[256];
	new playeridmsg[256];

	if(strcmp(cmd, "/vendermac", true) == 0) {
	  if(gTeam[playerid] == gT3){
		if(Maconha3[playerid]++){
	 		new tmp[256];
	  	  	new msg[256];
	    	new plid, mili;
	    	tmp = strtok(cmdtext, idx);
	    	if(!strlen(tmp)){
	      	SendClientMessage(playerid, COLOR_RED,"ERRO: /vendermac [id] [quantidade]");
			  	return 1;
				}
				plid = strval(tmp);
 				tmp = strtok(cmdtext, idx);
				if(!strlen(tmp)){
			  	SendClientMessage(playerid, COLOR_RED, "ERRO: /vendermac [id] [quantidade]");
		  		return 1;
				}
				mili = strval(tmp);
				if(mili > 200){
			  	SendClientMessage(playerid, 0xFF0000AA, "Vocк estб louco? Quer matar o seu cliente? No maximo 200 gramas!");
		  		return 1;
				}
				else if(mili < 50){
				  SendClientMessage(playerid, 0xFF0000AA, "Querendo enganar o freguкs? Gramas de 50 a 200.");
		  		return 1;
				}else{
				  if(!IsPlayerConnected(plid)){
			  	  SendClientMessage(playerid,COLOR_RED, "ERRO: Jogador nгo conectado.");
			    	return 1;
			  	 	}
			  	else{
			    	if(GetDistanceBetweenPlayers(playerid,plid) > 10){
							SendClientMessage(playerid,COLOR_RED, "ERRO: Chege mais perto para vender a maconha.");
						  return 1;
						} else {
			    		if(Maconha[plid] == 200){
			    	 		SendClientMessage(playerid,0xFF0000AA, "Seu cliente fica pirado com tudo isso!(para resolver diminua...");
			 					SendClientMessage(playerid,0xFF0000AA, " ...1 grama(199)");
					  		return 1;
							} else {
            	 		GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
					 	 		Maconha[plid] = mili;
								format(playeridmsg,sizeof(playeridmsg),"%s diz: Da melhor!", PlayerName);
								format(plidmsg,sizeof(plidmsg),"%s diz: Esta й de 1Є?", PlidName);
					  		SendClientMessage(playerid,0x00FF00AA, plidmsg);
					  		SendClientMessage(plid,0x00FF00AA, plidmsg);
					  		SendClientMessage(playerid,0x00FF00AA, playeridmsg);
					  		SendClientMessage(plid,0x00FF00AA, playeridmsg);
					  		format(msg,sizeof(msg),"Use /aceitarmac para comprar(isto lhe custara R$7000)",mili);
					  		SendClientMessage(plid,0xFFFFFFAA,msg);
								MOffert[plid]++;
					  		return 1;
							}
						}
					}
				}
			}else{
			SendClientMessage(playerid, COLOR_RED, "Vocк nгo tem maconha para vender!");
			}
		} else {
		SendClientMessage(playerid,COLOR_RED,"Vocк nгo й maconheiro para vender isso!");
		return 1;
		}
	}

	if (!strcmp("/aceitarmac",cmd,true,7)) {
new tmp[128];
new plid;
new index;
tmp = strtok(cmdtext, index);
if(!strlen(tmp) || !IsNumeric(tmp)) {
return SendClientMessage(playerid,0xFFFF00AA,"ERRO: /aceitarmac [playerid]");
}else {
new id=strval(tmp);
if(!IsPlayerConnected(id)) { return SendClientMessage(playerid,COLOR_RED,"ERRO: Player nгo conectado");}
if(MOffert[id]==0) return SendClientMessage(playerid,COLOR_RED,"ERRO: Este jogador nгo te ofereceu maconha!");
{
MOffert[plid]--;
Maconha3[playerid]--;
Maconha2[plid]++;
SendClientMessage(plid, COLOR_MACONHA, "Seu cliente comprou a maconha.");
SendClientMessage(plid, COLOR_MACONHA, "Vocк ganhou: R$7000.");
SendClientMessage(playerid, COLOR_MACONHA, "Vocк comprou a maconha.");
GivePlayerMoney(plid, 7000);
GivePlayerMoney(playerid, -7000);
}
}
return 1;
}
Reply
#10

Corrigam ae pq eu fiz correndo e sem atenзгo =P e ainda n testei

N coloquei em PAWN Code pq n sei
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)