[FilterScript] Sistema de Drogas
#1

Bom, venho disponibilizar um sistema muito util para servidores RPG, ele salva maconha, cocaina e crack, e tambem inclusos os devidos comandos.

Sistema nao precisa ser adaptado pois utiliza o sistema PVar, para funcionar basta criar a pasta Drogas nas scriptfiles e ja era .

pawn Код:
//Sistema de Drogas by Pedro Miranda
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#include <DOF2>

new corda[90];

forward CriarDrogas(playerid);
forward CarregarDrogas(playerid);
forward SalvarDrogas(playerid); // to colocando as funcoes em pt pq da ultima q fiz ingles inventaram que era copia e cola
forward MensagemDelimitada(Float:distancia, playerid, cor, texto[]);

public OnFilterScriptInit()
{
    print("\nSistema de Drogas by Pedro Miranda Iniciado.");
    return 1;
}

public OnFilterScriptExit()
{
    print("\nSistema de Drogas by Pedro Miranda Finalizado.");
    for(new i; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { SalvarDrogas(i); } }
    DOF2_Exit();
    return 1;
}

public OnPlayerConnect(playerid)
{
    format(corda, 36, "Drogas/%s.ini", pNome(playerid));
    if(DOF2_FileExists(corda))
    {
        CarregarDrogas(playerid);
    }
    else
    {
        CriarDrogas(playerid);
        CarregarDrogas(playerid);
    }
    return 1;
}

public OnPlayerDisconnect(playerid)
{
    SalvarDrogas(playerid);
    return 1;
}

CMD:comprarmaconha(playerid, params[])
{
    if(PlayerEstaEmPontoDeDrogas(playerid))
    {
        if(GetPVarInt(playerid, "Maconha") < 5000)
        {
            new quantia;
            if(sscanf(params, "i", quantia)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /ComprarMaconha [Quantia]");
            if(GetPlayerMoney(playerid) < quantia * 5) return SendClientMessage(playerid, 0xFFFFFFAA, "Vocк nгo tem grana suficiente para comprar drogas.");
            GivePlayerMoney(playerid, -quantia * 5);//1 grama = 2 reais
            SetPVarInt(playerid, "Maconha", GetPVarInt(playerid, "Maconha") + quantia);
            format(corda, 49, "Vocк comprou %i gramas de maconha por R$ %i", quantia, quantia*5);
            SendClientMessage(playerid, 0xF6F600AA, corda);
        }
        else return SendClientMessage(playerid, 0xFFFFFFAA, "Vocк atingiu o limite de maconha guarde no esconderijo para poder pegar mais!");
    }
    else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao esta em um ponto de venda de drogas.");
    return 1;
}

CMD:comprarcocaina(playerid, params[])
{
    if(PlayerEstaEmPontoDeDrogas(playerid))
    {
        if(GetPVarInt(playerid, "Cocaina") < 5000)
        {
            new quantia;
            if(sscanf(params, "i", quantia)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /ComprarCocaina [Quantia]");
            if(GetPlayerMoney(playerid) < quantia * 5) return SendClientMessage(playerid, 0xFFFFFFAA, "Vocк nгo tem grana suficiente para comprar drogas.");
            GivePlayerMoney(playerid, -quantia * 5);//1 grama = 2 reais
            SetPVarInt(playerid, "Cocaina", GetPVarInt(playerid, "Cocaina") + quantia);
            format(corda, 49, "Vocк comprou %i gramas de maconha por R$ %i", quantia, quantia*5);
            SendClientMessage(playerid, 0xF6F600AA, corda);
        }
        else return SendClientMessage(playerid, 0xFFFFFFAA, "Vocк atingiu o limite de cocaina, guarde no esconderijo para poder pegar mais!");
    }
    else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao esta em um ponto de venda de drogas.");
    return 1;
}

CMD:comprarcrack(playerid, params[])
{
    if(PlayerEstaEmPontoDeDrogas(playerid))
    {
        if(GetPVarInt(playerid, "Crack") < 5000)
        {
            new quantia;
            if(sscanf(params, "i", quantia)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /ComparCrack [Quantia]");
            if(GetPlayerMoney(playerid) < quantia * 5) return SendClientMessage(playerid, 0xFFFFFFAA, "Vocк nгo tem grana suficiente para comprar drogas.");
            GivePlayerMoney(playerid, -quantia * 5);//1 grama = 2 reais
            SetPVarInt(playerid, "Crack", GetPVarInt(playerid, "Crack") + quantia);
            format(corda, 49, "Vocк comprou %i gramas de crack por R$ %i", quantia, quantia*5);
            SendClientMessage(playerid, 0xF6F600AA, corda);
        }
        else return SendClientMessage(playerid, 0xFFFFFFAA, "Vocк atingiu o limite de crack, guarde no esconderijo para poder pegar mais!");
    }
    else return SendClientMessage(playerid, 0xFFFFFFAA, "Vocк nгo esta em um ponto de venda de drogas.");
    return 1;
}

CMD:escondermaconha(playerid, params[])
{
    if(PlayerEstaEmEsconderijoDeDrogas(playerid))
    {
        if(GetPVarInt(playerid, "SMaconha") > 5000) return SendClientMessage(playerid, 0xFFFFFFAA, "Esconderijo lotado viciado! Agora a solucao e consumir tudo kk.");
        new quantia;
        if(sscanf(params, "i", quantia)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /EsconderMaconha [Quantia]");
        if(quantia > GetPVarInt(playerid, "Maconha")) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem essa maconha toda.");
        SetPVarInt(playerid, "Maconha", GetPVarInt(playerid, "Maconha") - quantia);
        SetPVarInt(playerid, "SMaconha", GetPVarInt(playerid, "SMaconha") + quantia);
        format(corda, 52, "Voce guardou %i gramas de maconha no esconderijo.", quantia);
        SendClientMessage(playerid, 0xF6F600AA, corda);
    }
    else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao esta em um esconderijo de drogas.");
    return 1;
}

CMD:escondercocaina(playerid, params[])
{
    if(PlayerEstaEmEsconderijoDeDrogas(playerid))
    {
        if(GetPVarInt(playerid, "SCocaina") > 5000) return SendClientMessage(playerid, 0xFFFFFFAA, "Esconderijo lotado viciado! Agora a solucao e consumir tudo kk.");
        new quantia;
        if(sscanf(params, "i", quantia)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /EsconderCocaina [Quantia]");
        if(quantia > GetPVarInt(playerid, "Cocaina")) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem essa cocaina toda.");
        SetPVarInt(playerid, "Cocaina", GetPVarInt(playerid, "Cocaina") - quantia);
        SetPVarInt(playerid, "SCocaina", GetPVarInt(playerid, "SCocaina") + quantia);
        format(corda, 52, "Voce guardou %i gramas de cocaina no esconderijo.", quantia);
        SendClientMessage(playerid, 0xF6F600AA, corda);
    }
    else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao esta em um esconderijo de drogas.");
    return 1;
}

CMD:escondercrack(playerid, params[])
{
    if(PlayerEstaEmEsconderijoDeDrogas(playerid))
    {
        if(GetPVarInt(playerid, "SCrack") > 5000) return SendClientMessage(playerid, 0xFFFFFFAA, "Esconderijo lotado viciado! Agora a solucao e consumir tudo kk.");
        new quantia;
        if(sscanf(params, "i", quantia)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /EsconderCrack [Quantia]");
        if(quantia > GetPVarInt(playerid, "Crack")) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem esse crack todo.");
        SetPVarInt(playerid, "Crack", GetPVarInt(playerid, "Crack") - quantia);
        SetPVarInt(playerid, "SCrack", GetPVarInt(playerid, "SCrack") + quantia);
        format(corda, 52, "Voce guardou %i gramas de crack no esconderijo.", quantia);
        SendClientMessage(playerid, 0xF6F600AA, corda);
    }
    else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao esta em um esconderijo de drogas.");
    return 1;
}

CMD:pegarsmaconha(playerid, params[])
{
    if(PlayerEstaEmEsconderijoDeDrogas(playerid))
    {
        new quantia;
        if(sscanf(params, "i", quantia)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /PegarSMaconha [Quantia]");
        if(quantia > GetPVarInt(playerid, "SMaconha")) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem isso tudo.");
        if(GetPVarInt(playerid, "Maconha") > 5000) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce ja esta abarrotado de maconha! Consuma antes de pegar mais.");
        SetPVarInt(playerid, "SMaconha", GetPVarInt(playerid, "SMaconha") - quantia);
        SetPVarInt(playerid, "Maconha", GetPVarInt(playerid, "Maconha") + quantia);
        format(corda, 51, "Voce pegou %i gramas de maconha no esconderijo.", quantia);
        SendClientMessage(playerid, 0xF6F600AA, corda);
    }
    else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao esta em um esconderijo de drogas.");
    return 1;
}

CMD:pegarscocaina(playerid, params[])
{
    if(PlayerEstaEmEsconderijoDeDrogas(playerid))
    {
        new quantia;
        if(sscanf(params, "i", quantia)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /PegarSMaconha [Quantia]");
        if(quantia > GetPVarInt(playerid, "SCocaina")) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem isso tudo.");
        if(GetPVarInt(playerid, "Cocaina") > 5000) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce ja esta abarrotado de maconha! Consuma antes de pegar mais.");
        SetPVarInt(playerid, "SCocaina", GetPVarInt(playerid, "SCocaina") - quantia);
        SetPVarInt(playerid, "Cocaina", GetPVarInt(playerid, "Cocaina") + quantia);
        format(corda, 51, "Voce pegou %i gramas de cocaina no esconderijo.", quantia);
        SendClientMessage(playerid, 0xF6F600AA, corda);
    }
    else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao esta em um esconderijo de drogas.");
    return 1;
}

CMD:pegarscrack(playerid, params[])
{
    if(PlayerEstaEmEsconderijoDeDrogas(playerid))
    {
        new quantia;
        if(sscanf(params, "i", quantia)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /PegarSMaconha [Quantia]");
        if(quantia > GetPVarInt(playerid, "SCrack")) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem isso tudo.");
        if(GetPVarInt(playerid, "Crack") > 5000) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce ja esta abarrotado de maconha! Consuma antes de pegar mais.");
        SetPVarInt(playerid, "SCrack", GetPVarInt(playerid, "SCrack") - quantia);
        SetPVarInt(playerid, "Crack", GetPVarInt(playerid, "Crack") + quantia);
        format(corda, 51, "Voce pegou %i gramas de crack no esconderijo.");
        SendClientMessage(playerid, 0xF6F600AA, corda);
    }
    else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao esta em um esconderijo de drogas.");
    return 1;
}

CMD:usar(playerid, params[])
{
    new droga[8];
    if(sscanf(params, "s[8]", droga)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /Usar [Maconha,Cocaina,Crack]");
    if(strcmp(droga, "maconha", true) == 0)
    {
        if(GetPVarInt(playerid, "Maconha") > 0)
        {
            new Float:colete;
            SetPlayerArmour(playerid, GetPlayerArmour(playerid, colete) + 5);
            SetPVarInt(playerid, "Maconha", GetPVarInt(playerid, "Maconha") - 1);
            format(corda, 40, "%s fumou maconha.", pNome(playerid));
            MensagemDelimitada(10.0, playerid, 0xF6F600AA, corda);
        }
        else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem maconha.");
        return 1;
    }
    if(strcmp(droga, "cocaina", true) == 0)
    {
        if(GetPVarInt(playerid, "Cocaina") > 0)
        {
            new Float:colete;
            SetPlayerArmour(playerid, GetPlayerArmour(playerid, colete) + 5);
            SetPVarInt(playerid, "Cocaina", GetPVarInt(playerid, "Cocaina") - 1);
            format(corda, 42, "%s cheirou cocaina.", pNome(playerid));
            MensagemDelimitada(10.0, playerid, 0xF6F600AA, corda);
        }
        else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem cocaina.");
        return 1;
    }
    if(strcmp(droga, "crack", true) == 0)
    {
        if(GetPVarInt(playerid, "Crack") > 0)
        {
            new Float:colete;
            SetPlayerArmour(playerid, GetPlayerArmour(playerid, colete) + 5);
            SetPVarInt(playerid, "Crack", GetPVarInt(playerid, "Crack") - 1);
            format(corda, 38, "%s fumou crack.", pNome(playerid));
            MensagemDelimitada(10.0, playerid, 0xF6F600AA, corda);
        }
        else return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem crack.");
        return 1;
    }
    return 1;
}

CMD:dar(playerid, params[])
{
    new droga[8];
    if(sscanf(params, "s[8]", droga)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /Dar [Droga]");
    if(strcmp(droga, "maconha", true) == 0)
    {
        new id, quantia;
        if(sscanf(params, "ui", id)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /Dar Maconha [ID][Quantia]");
        new Float:Pos[3];
        GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
        if(!IsPlayerInRangeOfPoint(id, 1.5, Pos[0], Pos[1], Pos[2])) return SendClientMessage(playerid, 0xFFFFFFAA, "Este drogado nao esta perto de voce!");
        if(quantia > GetPVarInt(playerid, "Maconha")) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem toda essa maconha.");
        SetPVarInt(playerid, "Maconha", GetPVarInt(playerid, "Maconha") - quantia);
        format(corda, 83, "%s deu %i gramas de maconha para %s", pNome(playerid), pNome(id));
        MensagemDelimitada(10.0, playerid, 0xFFFFFFAA, corda);
        SetPVarInt(id, "Maconha", GetPVarInt(id, "Maconha") + quantia);
        return 1;
    }
    if(strcmp(droga, "cocaina", true) == 0)
    {
        new id, quantia;
        if(sscanf(params, "ui", id)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /Dar Cocaina [ID][Quantia]");
        new Float:Pos[3];
        GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
        if(!IsPlayerInRangeOfPoint(id, 1.5, Pos[0], Pos[1], Pos[2])) return SendClientMessage(playerid, 0xFFFFFFAA, "Este drogado nao esta perto de voce!");
        if(quantia > GetPVarInt(playerid, "Cocaina")) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem toda essa cocaina.");
        SetPVarInt(playerid, "Cocaina", GetPVarInt(playerid, "Cocaina") - quantia);
        format(corda, 83, "%s deu %i gramas de cocaina para %s", pNome(playerid), pNome(id));
        MensagemDelimitada(10.0, playerid, 0xFFFFFFAA, corda);
        SetPVarInt(id, "Cocaina", GetPVarInt(id, "Cocaina") + quantia);
        return 1;
    }
    if(strcmp(droga, "crack", true) == 0)
    {
        new id, quantia;
        if(sscanf(params, "ui", id)) return SendClientMessage(playerid, 0xFFFFFFAA, "Use /Dar Crack [ID][Quantia]");
        new Float:Pos[3];
        GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
        if(!IsPlayerInRangeOfPoint(id, 1.5, Pos[0], Pos[1], Pos[2])) return SendClientMessage(playerid, 0xFFFFFFAA, "Este drogado nao esta perto de voce!");
        if(quantia > GetPVarInt(playerid, "Crack")) return SendClientMessage(playerid, 0xFFFFFFAA, "Voce nao tem todo esse crack.");
        SetPVarInt(playerid, "Crack", GetPVarInt(playerid, "Crack") - quantia);
        format(corda, 81, "%s deu %i gramas de crack para %s", pNome(playerid), pNome(id));
        MensagemDelimitada(10.0, playerid, 0xFFFFFFAA, corda);
        SetPVarInt(id, "Crack", GetPVarInt(id, "Crack") + quantia);
        return 1;
    }
    return 1;
}

public CriarDrogas(playerid)
{
    format(corda, 36, "Drogas/%s.ini", pNome(playerid));
    DOF2_CreateFile(corda);
    DOF2_SetInt(corda, "Maconha", 0);
    DOF2_SetInt(corda, "Cocaina", 0);
    DOF2_SetInt(corda, "Crack", 0);
    DOF2_SetInt(corda, "SafeMaconha", 0);
    DOF2_SetInt(corda, "SafeCocaina", 0);
    DOF2_SetInt(corda, "SafeCrack", 0);
    DOF2_SaveFile();
    printf("Informaзхes Drogбsticas de %s Criadas ! :D", pNome(playerid));
    return 1;
}

public CarregarDrogas(playerid)
{
    format(corda, 36, "Drogas/%s.ini", pNome(playerid));
    SetPVarInt(playerid, "Maconha", DOF2_GetInt(corda, "Maconha"));
    SetPVarInt(playerid, "Cocaina", DOF2_GetInt(corda, "Cocaina"));
    SetPVarInt(playerid, "Crack", DOF2_GetInt(corda, "Crack"));
    SetPVarInt(playerid, "SMaconha", DOF2_GetInt(corda, "SafeMaconha"));
    SetPVarInt(playerid, "SCocaina", DOF2_GetInt(corda, "SafeCocaina"));
    SetPVarInt(playerid, "SCrack", DOF2_GetInt(corda, "SafeCrack"));
    printf("Informaзхes Drogбsticas de %s Carregadas ! :D", pNome(playerid));
    return 1;
}

public SalvarDrogas(playerid)
{
    format(corda, 36, "Contas/%s.ini", pNome(playerid));
    DOF2_SetInt(corda, "Maconha", GetPVarInt(playerid, "Maconha"));
    DOF2_SetInt(corda, "Cocaina", GetPVarInt(playerid, "Cocaina"));
    DOF2_SetInt(corda, "Crack", GetPVarInt(playerid, "Crack"));
    DOF2_SetInt(corda, "SafeMaconha", GetPVarInt(playerid, "SMaconha"));
    DOF2_SetInt(corda, "SafeCocaina", GetPVarInt(playerid, "SCocaina"));
    DOF2_SetInt(corda, "SafeCrack", GetPVarInt(playerid, "SCrack"));
    printf("Informaзхes Drogбsticas de %s Salvas ! :D", pNome(playerid));
    return 1;
}

public MensagemDelimitada(Float:distancia, playerid, cor, texto[])
{
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(IsPlayerInRangeOfPoint(i, distancia, X, Y, Z))
            {
                SendClientMessage(i, cor, texto);
            }
        }
    }
    return 1;
}

stock PlayerEstaEmPontoDeDrogas(playerid)
{
    if(IsPlayerInRangeOfPoint(playerid, 2.0, 123.456, 123.456, 123.456)) return 1;//troque os 123.456 pelas coordenadas x,y,z do(s) local(is) de venda que quiser
    //Pode colocar mais locais seguindo o modelo acime
    else return 0;
}

stock PlayerEstaEmEsconderijoDeDrogas(playerid)
{
    if(IsPlayerInRangeOfPoint(playerid, 2.0, 128.456, 123.456, 123.456)) return 1;//assim como no de cima troque 123.456 pelas coords X,Y e Z podendo adicionar mais locais
    //pode colocar mais :D
    else return 0;
}

stock pNome(playerid)
{
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, sizeof(Name));
    return Name;
}

//Qualquer BUG Comente no Topico
Download: http://pastebin.com/E0SDewL5

Espero que gostem
Reply
#2

Bom mas acho que seria melhor se o player tivesse que plantar a droga, esperar que ela crescesse e sу depois apanha-la ou encomenda-la e ter que esperar algum tempo atй ela chegar.
Reply
#3

good job!!
Reply
#4

very job? muito trabalho kkk?
Reply
#5

viajou? vc tah veno coisa de mais ai em kkkkk
Reply
#6

edit owna ne man kk
Reply
#7

Parabens perfeito para quando criar gm new.pwn
Reply
#8

Nice... Ja vou usar

+rep for you
Reply
#9

Quote:
Originally Posted by =Marlon_Lorran
good job!!
І .
Reply
#10

Ali no public SalvarDrogas(playerid) nгo tб faltando nada nгo? : )
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)