05.11.2011, 06:17
(
Последний раз редактировалось Jason`; 05.11.2011 в 15:58.
)
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 .
Download: http://pastebin.com/E0SDewL5
Espero que gostem
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
Espero que gostem