08.06.2016, 03:07
(
Последний раз редактировалось F1N4L; 11.06.2016 в 02:38.
)
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
Код:
#define MAX_PROPS 100
Код:
#define TEMPO_LUCRO 10
*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[])
*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)
*Parвmetros: ID da Propriedade.
*Retorna: 1.
Код:
DeleteProp(ID_Prop)
*Parвmetros: Nome do Dono da Propriedade, ID da Propriedade.
*Retorna: 1.
Код:
BuyProp(Owner_Prop[], ID_Prop)
*Parвmetros: ID da Propriedade.
*Retorna: 1.
Код:
SellProp(ID_Prop)
*Parвmetros: ID da Propriedade.
*Retorna: Preзo de Compra da Propriedade.
Код:
GetPropBuyVal(ID_Prop)
*Parвmetros: ID da Propriedade.
*Retorna: Preзo de Venda da Propriedade.
Код:
GetPropSellVal(ID_Prop)
*Parвmetros: ID da Propriedade.
*Retorna: Lucro da Propriedade.
Код:
GetPropLucreVal(ID_Prop)
*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[])
*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)
*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)
*Parвmetros: Nome da Propriedade.
*Retorna: true = Propriedade existe | false = Propriedade nгo existe.
Код:
bool:PropNameExists(Name_Prop[])
*Parвmetros: ID da Propriedade.
*Retorna: true = Propriedade existe | false = Propriedade nгo existe.
Код:
bool:PropIdExists(ID_Prop)
*Parвmetros: ID da Propriedade.
*Retorna: true = Tem dono | false = Nгo tem dono.
Quote:
|
bool:IsEmptyProp(ID_Prop) |
*Parвmetros: Nгo hб.
*Retorna: 1;
Код:
LoadProps()
Код:
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;
}
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


