17.04.2016, 03:32
Olб pessoal, bom comecei a fazer uma base para um sistema de overdose, mas me deu priguiзa de terminar, estou voltando agora para o samp, mas estou meio sem cabeзa, e como disse estou com priguiзa. Vou estar disponibilizando essa base para alguйm poder terminar ou ter a idйia e jб recriar ele melhorado.
Nгo contem Print's pois n tive tempo de tirar.
Segue abaixo o Link do pastebin para poder visualizar o cуdigo.
LINK
OBS: Utilizei um macro do JFS para conversгo de tempo e resolvi nгo remover pois pode ser ъtil. Antes que me esqueзa. Para o FS funcionar й necessбrio a criaзгo de uma pasta chamada FocaOverdose na ScriptFiles.
Nгo contem Print's pois n tive tempo de tirar.
Segue abaixo o Link do pastebin para poder visualizar o cуdigo.
LINK
OBS: Utilizei um macro do JFS para conversгo de tempo e resolvi nгo remover pois pode ser ъtil. Antes que me esqueзa. Para o FS funcionar й necessбrio a criaзгo de uma pasta chamada FocaOverdose na ScriptFiles.
pawn Код:
/*
////////////////////////////////////////////////////////////////////////////////
//
// $$$$$$$$$$ $$$$$$$$$$$$$$$$ $$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$
// $$$ $$$ $$$ $$$ $$$ $$$
// $$$ $$$ $$$ $$$ $$$ $$$
// $$$$$$$$$$ $$$ $$$ $$$ $$$ $$$
// $$$ $$$ $$$ $$$ $$$$$$$$$$$$$$$$$$$
// $$$ $$$ $$$ $$$ $$$ $$$
// $$$ $$$ $$$ $$$ $$$ $$$
// $$$ $$$ $$$ $$$ $$$ $$$
// $$$ $$$ $$$ $$$ $$$ $$$
// $$$ $$$$$$$$$$$$$$$$ $$$$$$$$$$$$$ $$$ $$$
//
////////////////////////////////////////////////////////////////////////////////
FilterScript Criado por: Focaximubh
Skype: lucas5563
*/
#include <a_samp>
#include <sscanf2>
#include <zcmd>
#include <dof2>
#define minutos(%0) (1000 * %0 * 60)
#define horas(%0) (1000 * %0 * 60 * 60)
#define segundos(%0) (1000 * %0)
#define dias(%0) (1000 * %0 * 60 * 60 * 24)
#define semanas(%0) (1000 * %0 * 60 * 60 * 24 * 7)
#define meses(%0) (1000 * %0 * 60 * 60 * 24 * 30)
#define anos(%0) (1000 * %0 * 60 * 60 * 24 * 30 * 12)
//====================[Definiзхes!!]============================================
#define FocaOverdose "FocaOverdose/%s.ini"
enum InfoOverdose
{
Crack,
Maconha,
Cocaina,
UsouCrack,
UsouCocaina,
UsouMaconha,
VicioCrack,
VicioCocaina,
VicioMaconha,
Overdose,
Abstinencia
}
new OverdoseInfo[MAX_PLAYERS][InfoOverdose];
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n----------------------------------");
print(" >>> Iniciando sistema de Overdose <<< ");
print(" >>> Criado por Focaximubh <<< ");
print(" >>> Nao remova os creditos!!! <<< ");
print(" >>> Livre postagem com os devidos creditos!!! <<< ");
print(" >>> 15/04/2016 <<< ");
print("----------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
print("\n----------------------------------");
print(" >>> Sistema de Overdose <<< ");
print(" >>> Ideia para servidores RPG <<< ");
print(" >>> Criado por Focaximubh <<< ");
print(" >>> Nao remova os creditos!!! <<< ");
print(" >>> Livre postagem com os devidos creditos!!! <<< ");
print(" >>> 15/04/2016 <<< ");
print("----------------------------------\n");
}
#endif
public OnGameModeInit()
{
print("\n----------------------------------");
print(" >>> Encerrando sistema de Overdose <<< ");
print(" >>> Criado por Focaximubh <<< ");
print(" >>> Nao remova os creditos!!! <<< ");
print(" >>> Livre postagem com os devidos creditos!!! <<< ");
print(" >>> 15/04/2016 <<< ");
print("----------------------------------\n");
return 1;
}
public OnGameModeExit()
{
DOF2_Exit();
return 1;
}
public OnPlayerConnect(playerid)
{
CarregarCrackudo(playerid);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SalvarCrackudo(playerid);
return 1;
}
public OnPlayerSpawn(playerid)
{
if(OverdoseInfo[playerid][Abstinencia] != 1){
if(OverdoseInfo[playerid][VicioCrack] == 1 || OverdoseInfo[playerid][VicioMaconha] == 1 || OverdoseInfo[playerid][VicioCocaina] == 1){
SetTimerEx("TerAbstinencia", segundos(30), true, "i", playerid);
}
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
TerVicio(playerid);
return 1;
}
//===============================[Stock's]======================================
stock NomeCrakudo(playerid)
{
new Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
return Name;
}
stock SalvarCrackudo(playerid)
{
new Farquivos[50];
format(Farquivos, sizeof(Farquivos), FocaOverdose, NomeCrakudo(playerid));
if(DOF2_FileExists(Farquivos))
{
DOF2_SetInt(Farquivos, "Crack", OverdoseInfo[playerid][Crack]);
DOF2_SetInt(Farquivos, "Maconha", OverdoseInfo[playerid][Maconha]);
DOF2_SetInt(Farquivos, "Cocaina", OverdoseInfo[playerid][Cocaina]);
DOF2_SetInt(Farquivos, "UsouCrack", OverdoseInfo[playerid][UsouCrack]);
DOF2_SetInt(Farquivos, "UsouMaconha", OverdoseInfo[playerid][UsouMaconha]);
DOF2_SetInt(Farquivos, "UsouCocaina", OverdoseInfo[playerid][UsouCocaina]);
DOF2_SetInt(Farquivos, "VicioCrack", OverdoseInfo[playerid][VicioCrack]);
DOF2_SetInt(Farquivos, "VicioMaconha", OverdoseInfo[playerid][VicioMaconha]);
DOF2_SetInt(Farquivos, "VicioCocaina", OverdoseInfo[playerid][VicioCocaina]);
DOF2_SetInt(Farquivos, "Overdose", OverdoseInfo[playerid][Overdose]);
DOF2_SetInt(Farquivos, "Abstinencia", OverdoseInfo[playerid][Abstinencia]);
DOF2_SaveFile();
}
return 1;
}
stock CarregarCrackudo(playerid)
{
new Farquivos[50];
format(Farquivos, sizeof(Farquivos), FocaOverdose, NomeCrakudo(playerid));
if(DOF2_FileExists(Farquivos))
{
OverdoseInfo[playerid][Crack] = DOF2_GetInt(Farquivos, "Crack");
OverdoseInfo[playerid][Maconha] = DOF2_GetInt(Farquivos, "Maconha");
OverdoseInfo[playerid][Cocaina] = DOF2_GetInt(Farquivos, "Cocaina");
OverdoseInfo[playerid][UsouCrack] = DOF2_GetInt(Farquivos, "UsouCrack");
OverdoseInfo[playerid][UsouMaconha] = DOF2_GetInt(Farquivos, "UsoMaconha");
OverdoseInfo[playerid][UsouCocaina] = DOF2_GetInt(Farquivos, "UsouCocaina");
OverdoseInfo[playerid][VicioCrack] = DOF2_GetInt(Farquivos, "VicioCrack");
OverdoseInfo[playerid][VicioMaconha] = DOF2_GetInt(Farquivos, "VicioMaconha");
OverdoseInfo[playerid][VicioCocaina] = DOF2_GetInt(Farquivos, "VicioCocaina");
OverdoseInfo[playerid][Overdose] = DOF2_GetInt(Farquivos, "Overdose");
OverdoseInfo[playerid][Abstinencia] = DOF2_GetInt(Farquivos, "Abstinencia");
}else DOF2_CreateFile(Farquivos);
return 1;
}
stock TerVicio(playerid)
{
if(OverdoseInfo[playerid][UsouCrack] == 5 && OverdoseInfo[playerid][VicioCrack] != 1)
{
SendClientMessage(playerid, -1, "[AVISO] Vocк usou muito Crack e acabou se viciando! <<");
OverdoseInfo[playerid][VicioCrack] = 1;
OverdoseInfo[playerid][UsouCrack] ++;
}
else if(OverdoseInfo[playerid][UsouMaconha] == 5 && OverdoseInfo[playerid][VicioMaconha] != 1)
{
SendClientMessage(playerid, -1, "[AVISO] Vocк usou muita Maconha e acabou se viciando! <<");
OverdoseInfo[playerid][VicioMaconha] = 1;
OverdoseInfo[playerid][UsouMaconha] ++;
}
else if(OverdoseInfo[playerid][UsouCocaina] == 5 && OverdoseInfo[playerid][VicioCocaina] != 1)
{
SendClientMessage(playerid, -1, "[AVISO] Vocк usou muita Cocaina e acabou se viciando! <<");
OverdoseInfo[playerid][VicioCocaina] = 1;
OverdoseInfo[playerid][UsouCocaina] ++;
}
return 1;
}
forward TerAbstinencia(playerid);
public TerAbstinencia(playerid)
{
if(OverdoseInfo[playerid][VicioCrack] == 1)
{
OverdoseInfo[playerid][Abstinencia] = 1;
SendClientMessage(playerid, -1, "[AVISO] Vocк estб sofrendo de abstinencia de Crack! <<");
SetPlayerDrunkLevel(playerid, 6400);
}
else if(OverdoseInfo[playerid][VicioMaconha] == 1)
{
OverdoseInfo[playerid][Abstinencia] = 1;
SendClientMessage(playerid, -1, "[AVISO] Vocк estб sofrendo de abstinencia de Maconha! <<");
SetPlayerDrunkLevel(playerid, 6400);
}
else if(OverdoseInfo[playerid][VicioCocaina] == 1)
{
OverdoseInfo[playerid][Abstinencia] = 1;
SendClientMessage(playerid, -1, "[AVISO] Vocк estб sofrendo de abstinencia de Cocaina! <<");
SetPlayerDrunkLevel(playerid, 6400);
}
return 1;
}
stock TirarAbstinencia(playerid)
{
if(OverdoseInfo[playerid][Abstinencia] == 1)
{
if(OverdoseInfo[playerid][UsouCrack] == 1 || OverdoseInfo[playerid][UsouMaconha] == 1 || OverdoseInfo[playerid][UsouCocaina] == 1)
{
OverdoseInfo[playerid][Abstinencia] = 0;
SetPlayerDrunkLevel(playerid, 0);
SendClientMessage(playerid, -1, "[AVISO] Vocк usou sua droguinha e saiu do estado de abstinencia! <<");
}
}
return 1;
}
//================================[COMANDOS]====================================
CMD:dardroga(playerid, params[])
{
new cmd[32], pid, pquantidade, string[ 164 ];
if(sscanf(params, "us[32]i", pid, cmd,pquantidade))return SendClientMessage(playerid, -1, "[AVISO] Uso >> /dardroga [nick] [droga] [valor] <<");
if(!strcmp(cmd, "crack", true))
{
OverdoseInfo[playerid][Crack] += pquantidade;
format(string,sizeof(string),"Vocк deu %d de Crack para o player %s",pquantidade, NomeCrakudo(pid));
SendClientMessage(playerid, -1, string);
}
if(!strcmp(cmd, "maconha", true))
{
OverdoseInfo[playerid][Maconha] += pquantidade;
format(string,sizeof(string),"Vocк deu %d de Maconha para o player %s",pquantidade, NomeCrakudo(pid));
SendClientMessage(playerid, -1, string);
}
if(!strcmp(cmd, "cocaina", true))
{
OverdoseInfo[playerid][Cocaina] += pquantidade;
format(string,sizeof(string),"Vocк deu %d de Cocaina para o player %s",pquantidade, NomeCrakudo(pid));
SendClientMessage(playerid, -1, string);
}
return 1 ;
}
CMD:usardroga(playerid, params[])
{
new cmd[32];
if(sscanf(params, "s[32]", cmd)) return SendClientMessage(playerid, -1, "[AVISO] Uso >> /usardroga [droga] <<");
if(!strcmp(cmd, "crack", true))
{
if(OverdoseInfo[playerid][Crack] < 1) return SendClientMessage(playerid, -1, "[ATENЗГO] Vocк nгo tem nenhuma grama de Crack! <<");
OverdoseInfo[playerid][Crack] -= 1;
OverdoseInfo[playerid][UsouCrack] += 1;
TirarAbstinencia(playerid);
SendClientMessage(playerid, -1, "Vocк usou Crack e ficou fudidao!!");
}
if(!strcmp(cmd, "maconha", true))
{
if(OverdoseInfo[playerid][Maconha] < 1) return SendClientMessage(playerid, -1, "[ATENЗГO] Vocк nгo tem nenhuma grama de Maconha! <<");
OverdoseInfo[playerid][Maconha] -= 1;
OverdoseInfo[playerid][UsouMaconha] += 1;
TirarAbstinencia(playerid);
SendClientMessage(playerid, -1, "Vocк usou Maconha e ficou brisadao!!");
}
if(!strcmp(cmd, "cocaina", true))
{
if(OverdoseInfo[playerid][Cocaina] < 1) return SendClientMessage(playerid, -1, "[ATENЗГO] Vocк nгo tem nenhuma grama de cocaнna! <<");
OverdoseInfo[playerid][Cocaina] -= 1;
OverdoseInfo[playerid][UsouCocaina] += 1;
TirarAbstinencia(playerid);
SendClientMessage(playerid, -1, "Vocк usou Cocaina e ficou Loucao!!");
}
return 1 ;
}
CMD:minhasdrogas(playerid, params[])
{
new string[ 164 ];
format(string,sizeof(string),"Crack: %d \n Maconha: %d \n Cocaina: %d", OverdoseInfo[playerid][Crack], OverdoseInfo[playerid][Maconha], OverdoseInfo[playerid][Cocaina]);
SendClientMessage(playerid, -1, string);
return 1;
}