[Tutorial] Sistema de compra e uso de drogas!
#1

Fiz um basico, e dependendo de sua logica, tu irб criar um avanзado!
Usei:
ZMCD
SSCANF
DOF2

Crie a pasta desejada ou se for usar em gamemode coloque no ini do jogador!

PHP код:
#include <a_samp>
#include <sscanf>
#include <DOF2>
#include <ZCMD>
#define PASTA ("PASTA/Jogadores/%s.ini") //escolha sua pasta
#define MOCHILA 1
enum  enum_player{
    
Cocaina,
    
Maconha,
    
Crack
}
new 
Player[MAX_PLAYERS][enum_player]; 
Caso for coloca em GameMode use o GameModeInit() e Exit()
PHP код:
public OnFilterScriptInit()
{
    return 
1;
}
public 
OnFilterScriptExit()
{
    
DOF2_Exit();
    return 
1;

PHP код:
stock NomeJogador(playerid){
    new 
nome[MAX_PLAYER_NAME];
    
GetPlayerName(playeridnomesizeof(nome));
    return 
nome;
}
CarregarJogador(playerid){
    new 
string[128];
    
format(stringsizeof(string), PASTANomeJogador(playerid));
    if(
fexist(string)){
    
Player[playerid][Maconha] = DOF2_GetInt(string"Maconha");
    
Player[playerid][Cocaina] = DOF2_GetInt(string"Cocaina");
    
Player[playerid][Crack] = DOF2_GetInt(string"Crack");
    }
    return 
1
}
SalvarJogador(playerid){
    new 
string[128];
    
format(stringsizeof(string), PASTANomeJogador(playerid));
    
DOF2_SetInt(string,"Maconha"Player[playerid][Maconha]);
    
DOF2_SetInt(string,"Cocaina"Player[playerid][Cocaina]);
    
DOF2_SetInt(string,"Crack"Player[playerid][Crack]);
    return 
1

PHP код:
CMD:comprardrogas(playerid,params[])
{
    new 
cmdquantidade;
    if(
sscanf(params"dd",cmdquantidade)) return SendClientMessage(playerid, -1">> USO : /comprardrogas [[1]maconha,[2]cocaina,[3]crack] [quantidade] ");
    if(
cmd == 0) return SendClientMessage(playerid, -1"[ 1 maconha 2 cocaina 3 crack");
    if(
cmd 3) return SendClientMessage(playerid, -1"[ 1 maconha 2 cocaina 3 crack");
    if(
cmd == 1)
    {
        new 
preco;
        
preco quantidade 10;
        if(
GetPlayerMoney(playerid) < 10) return SendClientMessage(playerid, -1"[ MACONHA CUSTA 10$BRL UNIDADE ]");
        
Player[playerid][Maconha] += quantidade;
        
GivePlayerMoney(playeridpreco);
        new 
str[128];
        
format(strsizeof(str), "[ DROGAS ] Vocк comprou %d de maconha por %d "quantidadepreco);
        
SendClientMessage(playerid, -1str);
        return 
1;
    }
    if(
cmd == 2)
    {
        new 
preco;
        
preco quantidade 20;
        if(
GetPlayerMoney(playerid) < 20) return SendClientMessage(playerid, -1"[ COCAINA CUSTA 20$BRL UNIDADE ]");
        
Player[playerid][Cocaina] += quantidade;
        
GivePlayerMoney(playeridpreco);
        new 
str[128];
        
format(strsizeof(str), "[ DROGAS ] Vocк comprou %d de cocaina por %d "quantidadepreco);
        
SendClientMessage(playerid, -1str);
        return 
1;
    }
    if(
cmd == 3)
    {
        new 
preco;
        
preco quantidade 40;
        if(
GetPlayerMoney(playerid) < 40) return SendClientMessage(playerid, -1"[ CRACK CUSTA 40$BRL UNIDADE ]");
        
Player[playerid][Crack] += quantidade;
        
GivePlayerMoney(playeridpreco);
        new 
str[128];
        
format(strsizeof(str), "[ DROGAS ] Vocк comprou %d de crack por %d "quantidadepreco);
        
SendClientMessage(playerid, -1str);
        return 
1;
    }
    return 
1;
}
CMD:minhamochila(playerid,params[])
{
    
ShowPlayerDialog(playeridMOCHILADIALOG_STYLE_LIST"Maconheiro nem й gente""Maconha\nCocaina\nCrack""Escolher""");
    return 
1;

PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    switch(
dialogid)
    {
        case 
MOCHILA:
        {
            if(
response)
            {
               if(
listitem == 0)
               {
                      if(
Player[playerid][Maconha] == 0) return SendClientMessage(playerid, -1"Vocк nгo possui maconha /comprardrogas");
                      
                      new 
Float:armour;GetPlayerArmour(playeridarmour);
                   if(
armour >= 100) return SendClientMessage(playerid, -1"Seu colete estб 100");
                   if(
Player[playerid][Maconha] < 1) return SendClientMessage(playerid, -1"Sua maconha acabou /comprardrogas");
                   
Player[playerid][Maconha] -= 1;
                   new 
Float:colete 0;
                   
GetPlayerArmour(playeridcolete);
                   
SetPlayerArmour(playerid2.0 colete);
                   
SetPlayerWeather(playerid, -10);
                   
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_SMOKE_CIGGY);
                                   
SetTimerEx("Efeito"100000"i"playerid);
                   new 
str[128];
                   
format(strsizeof(str), "[ DROGAS ] Vocк ainda tem %d de maconha"Player[playerid][Maconha]);
                   
SendClientMessage(playerid, -1str);
               }
               if(
listitem == 1)
               {
                      if(
Player[playerid][Cocaina] == 0) return SendClientMessage(playerid, -1"Vocк nгo possui Cocaina /comprardrogas");
                      
                      new 
Float:armour;GetPlayerArmour(playeridarmour);
                   if(
armour >= 100) return SendClientMessage(playerid, -1"Seu colete estб 100");
                   
Player[playerid][Cocaina] -= 2;
                   new 
Float:colete 0;
                   
GetPlayerArmour(playeridcolete);
                   
SetPlayerArmour(playerid7.0 colete);
                   
SetPlayerWeather(playerid, -10);
                   
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_SMOKE_CIGGY);
                                   
SetTimerEx("Efeito"100000"i"playerid);
                   new 
str[128];
                   
format(strsizeof(str), "[ DROGAS ] Vocк ainda tem %d de Cocaina"Player[playerid][Cocaina]);
                   
SendClientMessage(playerid, -1str);
               }
               if(
listitem == 2)
               {
                      if(
Player[playerid][Crack] == 0) return SendClientMessage(playerid, -1"Vocк nгo possui Crack /comprardrogas");
                      
                      new 
Float:armour;GetPlayerArmour(playeridarmour);
                   if(
armour >= 100) return SendClientMessage(playerid, -1"Seu colete estб 100");
                   
Player[playerid][Crack] -= 3;
                   new 
Float:colete 0;
                   
GetPlayerArmour(playeridcolete);
                   
SetPlayerArmour(playerid10.0 colete);
                   
SetPlayerWeather(playerid, -40);
                   
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_SMOKE_CIGGY);
                                   
SetTimerEx("Efeito"100000"i"playerid);
                   new 
str[128];
                   
format(strsizeof(str), "[ DROGAS ] Vocк ainda tem %d de crack"Player[playerid][Crack]);
                   
SendClientMessage(playerid, -1str);
               }
            }
        }
    }
    return 
1;
}
forward Efeito(playerid);
public 
Efeito(playerid)
{
    
SetPlayerWeather(playerid0);
    
SendClientMessage(playerid, -1"Vocк voltou a conciкncia");

Fs https://pastebin.com/ngmitaRT
Reply
#2

e para adicionar mais drogas?
tenho que criar outra na enum_player?
Reply
#3

Uau Boa mano. +REP
Reply
#4

Isso nгo й um tutorial.

@topic

Mais ficou bom, parabйns
Reply
#5

Quote:
Originally Posted by IlanZ
Посмотреть сообщение
Isso nгo й um tutorial.
vdd, sorry '-'
Reply
#6

Quote:
Originally Posted by SerjaumBerranteiro
Посмотреть сообщение
e para adicionar mais drogas?
tenho que criar outra na enum_player?
sim
inova mais tbm, usa sua logica
Reply
#7

ficaria melhor tbm colocando pra poder compra somente quando acaba-se as drogas da mochila!
Reply
#8

Sistema legal, parabйns, gostei... caso adapte ao seu gamemode recomendo que use Banco de dados para que nгo fique muito cheio de arquivos.

Код:
"Maconheiro nem й gente"
Esse fez Proerd !
Reply
#9

@Jonorusc Cara vocк jб ganhou o meu respeito por estar trazendo varios conteъdos novos no Release Brasileiro,vocк esta trazendo muitos tutoriais que ajudam Pessoas porйm vocк tem que comeзar a pensar em novatos o seus tutoriais й mais para quem sabe o bбsico do pawn,isso й ruim pois se um novato nгo sabe nгo ira entender nada dos seus tutoriais por isso nos prуximos tutoriais seu por favor tente EXPLICAR mais para realmente virar um tutorial bom,nгo leve isso pro lado pessoal й sу uma crнtica pois nesse tutorial vocк sу fez ctr c ctr v e isso nгo ajuda sу faz parecer que vocк pegou de uma GM e pфs aqui no fуrum.


ATENЗГO: Isso й uma crнtica para melhorar o seus tutoriais e deixar mais legнvel e nгo um hate.
Reply
#10

Quote:
Originally Posted by ClaudioF
Посмотреть сообщение
Sistema legal, parabйns, gostei... caso adapte ao seu gamemode recomendo que use Banco de dados para que nгo fique muito cheio de arquivos.

Код:
"Maconheiro nem й gente"
Esse fez Proerd !
sIM PO, FIZ SO UM BASICO PROS CARA, INOVAR
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)