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