#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! |