[Include] Properties System [MySQL]
#1

Properties System v1.5 (FINAL) [MySQL R39-4]
O cуdigo foi TOTALMENTE modificado em comparaзгo ao anterior.
* Removido todas as consultas desnecessбrias diretas ao banco de dados.
* As verificaзхes ocorrem agora atravйs do ID e nгo mais pelo Nome (Apenas o nome da propriedade й verificado pela funзгo bool:PropNameExists(Nome_Prop[])).
* Adicionado sistema de Lucro por Propriedade.

*DEBUG On/Off:
Код:
#define DEBUG_PROP true
*MБXIMO DE PROPRIEDADES:
Код:
#define MAX_PROPS 100
*TEMPO PARA CADA PROPRIEDADE GERAR LUCRO (MINUTOS):
Код:
#define TEMPO_LUCRO 10
*Funзхes:
*Fazer a conexгo do Banco de Dados.
*Parвmetros: Host, User, Database, Password.
*Deve ser introduzido dentro de: OnGameModeInit ou OnFilterScriptInit ou main
*Retorna: 1.
Код:
mysql_prop_connect(const Server_Host[], const Server_User[], const Server_Database[], const Server_Password[])
*Criar uma propriedade.
*Parвmetros: Nome da Propriedade, Preзo de Compra, Preзo de Venda, Lucro Gerado, Nome do Dono da Propriedade, Posiзгo X, Posiзгo Y, Posiзгo Z.
*Retorna: 1.
Код:
CreateProp(Name_Prop[], Price_Buy_Prop, Price_Sell_Prop, Lucre_Prop, Owner_Prop[], Float:PosX_Prop, Float:PosY_Prop, Float:PosZ_Prop)
*Deletar uma propriedade.
*Parвmetros: ID da Propriedade.
*Retorna: 1.
Код:
DeleteProp(ID_Prop)
*Comprar uma Propriedade.
*Parвmetros: Nome do Dono da Propriedade, ID da Propriedade.
*Retorna: 1.
Код:
BuyProp(Owner_Prop[], ID_Prop)
*Vender uma Propriedade.
*Parвmetros: ID da Propriedade.
*Retorna: 1.
Код:
SellProp(ID_Prop)
*Geta o Preзo de Compra da Propriedade.
*Parвmetros: ID da Propriedade.
*Retorna: Preзo de Compra da Propriedade.
Код:
GetPropBuyVal(ID_Prop)
*Geta o Preзo de Venda de uma Propriedade.
*Parвmetros: ID da Propriedade.
*Retorna: Preзo de Venda da Propriedade.
Код:
GetPropSellVal(ID_Prop)
*Geta o Lucro de uma Propriedade.
*Parвmetros: ID da Propriedade.
*Retorna: Lucro da Propriedade.
Код:
GetPropLucreVal(ID_Prop)
*Geta todas as Propriedades de determinado Jogador.
*Parвmetros: ID do player que executou a funзгo, Nome do Dono.
*Retorna: 1 (As propriedades sгo mostradas na tela do playerid que executou a funзгo).
Код:
GetPlayerProps(playerid, Owner_Prop[])
*Verifica se o Jogador estб Prуximo de uma Propriedade.
*Parвmetros: ID do Jogador, ID da Propriedade.
*Retorna: true = Jogador estб prуximo da Propriedade | false = Jogador estб longe da Propriedade.
Код:
bool:IsPlayerInRangeOfProp(playerid, ID_Prop)
*Verifica se o Jogador й o Dono de Determinada Propriedade.
*Parвmetros: Nome do Dono da Propriedade, ID da Propriedade.
*Retorna: true = Jogador й dono da Propriedade | false = Jogador nгo й o dono da Propriedade.
Код:
bool:IsPlayerOwnerProp(Owner_Prop[], ID_Prop)
*Verifica se uma Propriedade Existe (Nome).
*Parвmetros: Nome da Propriedade.
*Retorna: true = Propriedade existe | false = Propriedade nгo existe.
Код:
bool:PropNameExists(Name_Prop[])
*Verifica se uma Propriedade Existe (ID).
*Parвmetros: ID da Propriedade.
*Retorna: true = Propriedade existe | false = Propriedade nгo existe.
Код:
bool:PropIdExists(ID_Prop)
*Verifica se a Propriedade tem um Dono ou Nгo.
*Parвmetros: ID da Propriedade.
*Retorna: true = Tem dono | false = Nгo tem dono.
Quote:
bool:IsEmptyProp(ID_Prop)

*Carrega as Propriedades.
*Parвmetros: Nгo hб.
*Retorna: 1;
Код:
LoadProps()
*Comandos:
Код:
CMD:pcriar(playerid, params[])
{
	new PropNome[20], PropCusto, PropVenda, PropLucro, PropDono[MAX_PLAYER_NAME], Float:PosX_Prop, Float:PosY_Prop, Float:PosZ_Prop;

	if(sscanf(params, "iiis[24]s[20]", PropCusto, PropVenda, PropLucro, PropDono, PropNome)) return SendClientMessage(playerid, -1, "/PCRIAR [&CUSTO] [&VENDA] [&LUCRO] [&DONO (PADRГO: 'N/A')] [&NOME]");

	if(PropNameExists(PropNome) == true) return SendClientMessage(playerid, -1, "O nome desta propriedade jб existe.");
	
	if(PropCusto < 100 || PropCusto > 99999999) return SendClientMessage(playerid, -1, "O custo da propriedade deve ser entre 100-99999999");
	if(PropVenda < 100 || PropVenda > PropCusto) return SendClientMessage(playerid, -1, "O valor de venda da propriedade deve ser no mнnimo 100 e nгo pode passar do valor de custo.");

	GetPlayerPos(playerid, PosX_Prop, PosY_Prop, PosZ_Prop);

	CreateProp(PropNome, PropCusto, PropVenda, PropLucro, PropDono, PosX_Prop, PosY_Prop, PosZ_Prop);

	return 1;
}

CMD:pdeletar(playerid, params[])
{
	if(isnull(params)) return SendClientMessage(playerid, -1, "/PDELETAR [&ID]");

	if(PropIdExists(strval(params)) == false) return SendClientMessage(playerid, -1, "Esta Propriedade nгo existe!");

	DeleteProp(strval(params));
	SendClientMessage(playerid, -1, "Propriedade excluнda com sucesso!");

	return 1;
}

CMD:pcomprar(playerid, params[])
{
	new Nome[MAX_PLAYER_NAME];

	if(isnull(params)) return SendClientMessage(playerid, -1, "/PCOMPRAR [&ID]");

	if(PropIdExists(strval(params)) == false) return SendClientMessage(playerid, -1, "Esta propriedade nгo existe!");
	
	if(IsEmptyProp(strval(params)) == false) return SendClientMessage(playerid, -1, "Esta propriedade nгo pertence a vocк!");

	GetPlayerName(playerid, Nome, sizeof Nome);

	if(IsPlayerOwnerProp(Nome, strval(params)) == true) return SendClientMessage(playerid, -1, "Esta propriedade jб pertence a vocк!");

	if(IsPlayerInRangeOfProp(playerid, strval(params)) == false) return SendClientMessage(playerid, -1, "Vocк precisa estar prуximo da propriedade!");

	if(GetPlayerMoney(playerid) < GetPropBuyVal(strval(params))) return SendClientMessage(playerid, -1, "Vocк nгo tem dinheiro pra comprar esta propriedade!");

	GivePlayerMoney(playerid, -GetPropBuyVal(strval(params)));

	GetPlayerName(playerid, Nome, sizeof Nome);

	BuyProp(Nome, strval(params));

	SendClientMessage(playerid, -1, "Propriedade comprada com sucesso!");

	return 1;
}

CMD:pvender(playerid, params[])
{
	new Nome[MAX_PLAYER_NAME];

	if(isnull(params)) return SendClientMessage(playerid, -1, "/PVENDER [&ID]");
	
	if(PropIdExists(strval(params)) == false) return SendClientMessage(playerid, -1, "Esta propriedade nгo existe.");

	if(IsEmptyProp(strval(params)) == true) return SendClientMessage(playerid, -1, "Esta propriedade nгo pertence a ninguйm!");

	GetPlayerName(playerid, Nome, sizeof Nome);

	if(IsPlayerOwnerProp(Nome, strval(params)) == false) return SendClientMessage(playerid, -1, "Esta propriedade nгo pertence a vocк!");

	SellProp(strval(params));

	GivePlayerMoney(playerid, GetPropSellVal(strval(params)) + GetPropLucreVal(strval(params)));

	SendClientMessage(playerid, -1, "Propriedade vendida com sucesso!");
	
	return 1;
}

CMD:verprops(playerid, params[])
{
	if(isnull(params)) return SendClientMessage(playerid, -1, "/VERPROPS [&DONO]");

	GetPlayerProps(playerid, params);

	return 1;
}

CMD:pegarlucro(playerid, params[])
{
	new Name[MAX_PLAYER_NAME];
	
	if(isnull(params)) return SendClientMessage(playerid, -1, "/PEGARLUCRO [&ID]");

	if(PropIdExists(strval(params)) == false) return SendClientMessage(playerid, -1, "Esta propriedade nгo existe.");

	if(IsEmptyProp(strval(params)) == true) return SendClientMessage(playerid, -1, "Esta propriedade nгo pertence a ninguйm!");

	GetPlayerName(playerid, Name, sizeof Name);
	
	if(IsPlayerOwnerProp(Name, strval(params)) == false) return SendClientMessage(playerid, -1, "Esta propriedade nгo pertence a vocк!");

	if(IsPlayerInRangeOfProp(playerid, strval(params)) == false) return SendClientMessage(playerid, -1, "Vocк precisa estar prуximo da propriedade!");

	GivePlayerMoney(playerid, GetPropLucreVal(strval(params)));

	SendClientMessage(playerid, -1, "Vocк pegou todo o lucro gerado pela Propriedade.");

	return 1;
}
*Download:
Pastebin

*Crйditos:
#include a_samp // By SAMP Team
#include zcmd // By Zeex
#include sscanf2 // By Emmet_
#include a_mysql // By BlueG
zPain pela dica de inserзгo de ID.
zSuYaNw pela lуgica no sistema de Lucros.
Script by F1N4L
Reply


Messages In This Thread
Properties System [MySQL] - by F1N4L - 08.06.2016, 03:07
Re: Properties System [MySQL] - by ZEDD666 - 08.06.2016, 09:20
Re: Properties System [MySQL] - by F1N4L - 08.06.2016, 11:10
Re: Properties System [MySQL] - by zSuYaNw - 08.06.2016, 12:09
Re: Properties System [MySQL] - by F1N4L - 08.06.2016, 12:12
Re: Properties System [MySQL] - by Coringa_Vilao - 08.06.2016, 13:27
Re: Properties System [MySQL] - by F1N4L - 08.06.2016, 13:28
Re: Properties System [MySQL] - by bruxo00 - 08.06.2016, 13:41
Re: Properties System [MySQL] - by F1N4L - 08.06.2016, 13:45
Re: Properties System [MySQL] - by bruxo00 - 08.06.2016, 13:53

Forum Jump:


Users browsing this thread: 1 Guest(s)