#define DEBUG_PROP true
#define MAX_PROPS 100
#define TEMPO_LUCRO 10
mysql_prop_connect(const Server_Host[], const Server_User[], const Server_Database[], const Server_Password[])
CreateProp(Name_Prop[], Price_Buy_Prop, Price_Sell_Prop, Lucre_Prop, Owner_Prop[], Float:PosX_Prop, Float:PosY_Prop, Float:PosZ_Prop)
DeleteProp(ID_Prop)
BuyProp(Owner_Prop[], ID_Prop)
SellProp(ID_Prop)
GetPropBuyVal(ID_Prop)
GetPropSellVal(ID_Prop)
GetPropLucreVal(ID_Prop)
GetPlayerProps(playerid, Owner_Prop[])
bool:IsPlayerInRangeOfProp(playerid, ID_Prop)
bool:IsPlayerOwnerProp(Owner_Prop[], ID_Prop)
bool:PropNameExists(Name_Prop[])
bool:PropIdExists(ID_Prop)
bool:IsEmptyProp(ID_Prop) |
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; }
Parabйns pela include cara
Vai ter algumas funзхes mais para frente ou versгo etc? |
Muito bom! Vou sу dar uma dica: os nomes das funзхes estгo um bocado mal feitos.
Por exemplo, CheckPropExists fica melhor sу PropExists, porque, se formos a traduzir if(CheckPropExists(blabla)) й "Se VerificarPropriedadeExiste". Jб se for If(PropExists(blabla)) traduzindo jб fica com sentido "Se PropriedadeExiste". Outro, CheckPlayerIsOwnerProp para IsPlayerPropOwner. CheckEmptyProp para IsEmptyProp Sу umas dicas :P |
Eu havia colocado Check (verificar) para funзхes booleanas, pois vai retornar true/false, porйm, o que vc falou faz sentido.
Thx, bruxo00! |