Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //============ Sistema Criar Casa ======================||
- #define MAX_CASAS 600
- enum Casas
- {
- Float:X,
- Float:Y,
- Float:Z,
- Float:Xp,
- Float:Yp,
- Float:Zp,
- Pickup,
- Text3D:TextLabel,
- pInterior
- };
- new pCasa[MAX_PLAYERS][Casas];
- enum Inters
- {
- Float:XI,
- Float:YI,
- Float:ZI,
- Float:AI,
- pID
- };
- new Interiores[][Inters] =
- {
- {2196.84, -1204.36, 1049.02, 94.0010, 6},
- {2259.38, -1135.89, 1050.64, 275.3992, 10},
- {2282.99, -1140.28, 1050.89, 358.4660, 11},
- {2233.69, -1115.26, 1050.88, 358.4660, 5},
- {2218.39, -1076.21, 1050.48, 95.2635, 1},
- {2496.00, -1692.08, 1014.74, 177.8159, 3},
- {2365.25, -1135.58, 1050.88, 359.0367, 8},
- {2317.77, -1026.76, 1050.21, 359.0367, 9},
- {2324.41, -1149.54, 1050.71, 359.0367, 12},
- {1260.6603, -785.4005, 1091.9063, 270.9891, 5},
- {140.28, 1365.92, 1083.85, 9.6901, 5}
- };
- new CasaDentro[MAX_PLAYERS];
- public OnGameModeInit()
- {
- for(new i = 0; i < MAX_CASAS; i++) CarregarCasa(i);
- return 1;
- }
- CMD:criarcasa(playerid, params[])
- {
- new idcasa, str[120], valor, interior, Float:Pos[3], strmsg[150];
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, Vermelho, "Voce nao tem permissao");
- if(sscanf(params, "ddd", idcasa, valor, interior)) return SendClientMessage(playerid, Vermelho, "/criarcasa [Numero] [Valor] [Interior]");
- format(str, 120, "Casas/%d.ini", idcasa);
- if(dini_Exists(str)) return SendClientMessage(playerid, Vermelho, "Esta casa ja existe");
- pCasa[idcasa][pInterior] = interior;
- GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
- pCasa[idcasa][X] = Pos[0];
- pCasa[idcasa][Y] = Pos[1];
- pCasa[idcasa][Z] = Pos[2];
- pCasa[idcasa][Xp] = Interiores[interior][XI];
- pCasa[idcasa][Yp] = Interiores[interior][YI];
- pCasa[idcasa][Zp] = Interiores[interior][ZI];
- dini_Create(str);
- dini_IntSet(str, "DonoCasa", 0);
- dini_IntSet(str, "CasaTrancada", 0);
- dini_IntSet(str, "Valor", valor);
- dini_IntSet(str, "Interior", Interiores[interior][pID]);
- dini_IntSet(str, "MundoVirtual", idcasa);
- dini_FloatSet(str, "CasaX", Pos[0]);
- dini_FloatSet(str, "CasaY", Pos[1]);
- dini_FloatSet(str, "CasaZ", Pos[2]);
- dini_FloatSet(str, "InterX", pCasa[idcasa][Xp]);
- dini_FloatSet(str, "InterY", pCasa[idcasa][Yp]);
- dini_FloatSet(str, "InterZ", pCasa[idcasa][Zp]);
- format(strmsg, 150, "Voce criou a casa %d pelo valor de %d com o interior %d", idcasa, valor, interior);
- SendClientMessage(playerid, -1, strmsg);
- CarregarCasa(idcasa);
- return 1;
- }
- CMD:apagarcasa(playerid, params[])
- {
- new string[120], idcasa;
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, Vermelho, "Voce nao tem permissao");
- if(sscanf(params, "d", idcasa)) return SendClientMessage(playerid, Vermelho, "Use /apagarcasa [IdCasa]");
- format(string, 120, "Casas/%d.ini", idcasa);
- if(!dini_Exists(string)) return SendClientMessage(playerid, Vermelho, "Esta casa nao existe");
- dini_Remove(string);
- DestroyPickup(pCasa[idcasa][Pickup]);
- Delete3DTextLabel(pCasa[idcasa][TextLabel]);
- format(string, 120, "Voce deletou a casa %d", idcasa);
- SendClientMessage(playerid, -1, string);
- return 1;
- }
- CMD:comprarcasa(playerid)
- {
- new string[125], string2[125];
- for(new c = 0; c < MAX_CASAS; c++)
- {
- format(string, 125, "Casas/%d.ini", c);
- if(dini_Exists(string))
- {
- new Float:Pos[3];
- Pos[0] = dini_Float(string, "CasaX");
- Pos[1] = dini_Float(string, "CasaY");
- Pos[2] = dini_Float(string, "CasaZ");
- if(IsPlayerInRangeOfPoint(playerid, 2.0, Pos[0], Pos[1], Pos[2]))
- {
- if(Player[playerid][pChave] > 0) return SendClientMessage(playerid, Vermelho, "Voce ja tem uma casa");
- if(dini_Int(string, "DonoCasa") == 1) return SendClientMessage(playerid, Vermelho, "Esta casa ja tem um dono");
- if(GetPlayerMoney(playerid) < dini_Int(string, "Valor")) return SendClientMessage(playerid, Vermelho, "Voce nao tem dinheiro suficiente");
- dini_IntSet(string, "DonoCasa", 1);
- dini_Set(string, "NomeProprietario", pName(playerid));
- Player[playerid][pChave] = c;
- GivePlayerMoney(playerid, -dini_Int(string, "Valor"));
- format(string2, 125, "Voce comprou a casa numero %d por R$ %d", c, dini_Int(string, "Valor"));
- SendClientMessage(playerid, -1, string2);
- DestroyPickup(pCasa[c][Pickup]);
- Delete3DTextLabel(pCasa[c][TextLabel]);
- CarregarCasa(c);
- }
- }
- }
- return 1;
- }
- CMD:vendercasa(playerid)
- {
- new string[125];
- for(new c = 0; c < MAX_CASAS; c++)
- {
- format(string, 125, "Casas/%d.ini", c);
- if(dini_Exists(string))
- {
- new Float:Pos[3];
- Pos[0] = dini_Float(string, "CasaX");
- Pos[1] = dini_Float(string, "CasaY");
- Pos[2] = dini_Float(string, "CasaZ");
- if(IsPlayerInRangeOfPoint(playerid, 2.0, Pos[0], Pos[1], Pos[2]))
- {
- if(Player[playerid][pChave] == 0) return SendClientMessage(playerid, Vermelho, "Voce nao tem uma casa");
- if(Player[playerid][pChave] != c) return SendClientMessage(playerid, Vermelho, "Esta casa nao e sua");
- new casaid = Player[playerid][pChave];
- dini_IntSet(string, "DonoCasa", 0);
- GivePlayerMoney(playerid, dini_Int(string, "Valor") / 2);
- DestroyPickup(pCasa[casaid][Pickup]);
- Delete3DTextLabel(pCasa[casaid][TextLabel]);
- CarregarCasa(casaid);
- Player[playerid][pChave] = 0;
- SendClientMessage(playerid, -1, "Voce vendeu sua casa, e recebeu metade do valor");
- }
- }
- }
- return 1;
- }
- CMD:entrarcasa(playerid)
- {
- new string[125];
- for(new c = 0; c < MAX_CASAS; c++)
- {
- format(string, 125, "Casas/%d.ini", c);
- if(dini_Exists(string))
- {
- new Float:Pos[3];
- Pos[0] = dini_Float(string, "CasaX");
- Pos[1] = dini_Float(string, "CasaY");
- Pos[2] = dini_Float(string, "CasaZ");
- if(IsPlayerInRangeOfPoint(playerid, 2.0, Pos[0], Pos[1], Pos[2]))
- {
- if(dini_Int(string, "CasaTrancada") == 1) return SendClientMessage(playerid, Vermelho, "Esta casa esta trancada");
- CasaDentro[playerid] = c;
- SetPlayerInterior(playerid, dini_Int(string, "Interior"));
- SetPlayerPos(playerid, dini_Float(string, "InterX"), dini_Float(string, "InterY"), dini_Float(string, "InterZ"));
- SetPlayerVirtualWorld(playerid, dini_Int(string, "MundoVirtual"));
- }
- }
- }
- return 1;
- }
- CMD:saircasa(playerid)
- {
- new string[125];
- format(string, 125, "Casas/%d.ini", CasaDentro[playerid]);
- if(dini_Exists(string))
- {
- new Float:Pos[3];
- Pos[0] = dini_Float(string, "InterX");
- Pos[1] = dini_Float(string, "InterY");
- Pos[2] = dini_Float(string, "InterZ");
- if(IsPlayerInRangeOfPoint(playerid, 2.0, Pos[0], Pos[1], Pos[2]))
- {
- CasaDentro[playerid] = -1;
- SetPlayerInterior(playerid,0);
- SetPlayerPos(playerid, dini_Float(string, "CasaX"), dini_Float(string, "CasaY"), dini_Float(string, "CasaZ"));
- SetPlayerVirtualWorld(playerid, 0);
- }
- }
- return 1;
- }
- CMD:trancarcasa(playerid)
- {
- new string[125];
- for(new c = 0; c < MAX_CASAS; c++)
- {
- format(string, 125, "Casas/%d.ini", c);
- if(dini_Exists(string))
- {
- new Float:Pos[3];
- Pos[0] = dini_Float(string, "CasaX");
- Pos[1] = dini_Float(string, "CasaY");
- Pos[2] = dini_Float(string, "CasaZ");
- if(IsPlayerInRangeOfPoint(playerid, 2.0, Pos[0], Pos[1], Pos[2]))
- {
- if(Player[playerid][pChave] == 0) return SendClientMessage(playerid, Vermelho, "Voce nao tem uma casa");
- if(Player[playerid][pChave] != c) return SendClientMessage(playerid, Vermelho, "Esta casa nao e sua");
- if(dini_Int(string, "CasaTrancada") == 1) return SendClientMessage(playerid, Vermelho, "Esta casa ja esta trancada");
- SendClientMessage(playerid, -1, "Voce trancou a sua casa");
- dini_IntSet(string, "CasaTrancada", 1);
- }
- }
- }
- return 1;
- }
- CMD:destrancarcasa(playerid)
- {
- new string[125];
- for(new c = 0; c < MAX_CASAS; c++)
- {
- format(string, 125, "Casas/%d.ini", c);
- if(dini_Exists(string))
- {
- new Float:Pos[3];
- Pos[0] = dini_Float(string, "CasaX");
- Pos[1] = dini_Float(string, "CasaY");
- Pos[2] = dini_Float(string, "CasaZ");
- if(IsPlayerInRangeOfPoint(playerid, 2.0, Pos[0], Pos[1], Pos[2]))
- {
- if(Player[playerid][pChave] == 0) return SendClientMessage(playerid, Vermelho, "Voce nao tem uma casa");
- if(Player[playerid][pChave] != c) return SendClientMessage(playerid, Vermelho, "Esta casa nao e sua");
- if(dini_Int(string, "CasaTrancada") == 0) return SendClientMessage(playerid, Vermelho, "Esta casa ja esta destrancada");
- SendClientMessage(playerid, -1, "Voce destrancou a sua casa");
- dini_IntSet(string, "CasaTrancada", 0);
- }
- }
- }
- return 1;
- }
- stock CarregarCasa(casaid)
- {
- new str[250], strpasta[50];
- format(strpasta, 50, "Casas/%d.ini", casaid);
- if(dini_Exists(strpasta))
- {
- if(dini_Int(strpasta, "DonoCasa") == 0)
- {
- format(str, 250, "Numero: %d\nValor: %d\nUse /comprarcasa", casaid, dini_Int(strpasta, "Valor"));
- pCasa[casaid][TextLabel] = Create3DTextLabel(str, -1, dini_Float(strpasta, "CasaX"), dini_Float(strpasta, "CasaY"), dini_Float(strpasta, "CasaZ"), 20.0, 0);
- pCasa[casaid][Pickup] = CreatePickup(1273, 1, dini_Float(strpasta, "CasaX"), dini_Float(strpasta, "CasaY"), dini_Float(strpasta, "CasaZ"));
- }
- if(dini_Int(strpasta, "DonoCasa") == 1)
- {
- format(str, 250, "Numero: %d\nProprietario: %s\nUse /entrarcasa", casaid, dini_Get(strpasta, "NomeProprietario"));
- pCasa[casaid][TextLabel] = Create3DTextLabel(str, -1, dini_Float(strpasta, "CasaX"), dini_Float(strpasta, "CasaY"), dini_Float(strpasta, "CasaZ"), 20.0, 0);
- pCasa[casaid][Pickup] = CreatePickup(19522, 1, dini_Float(strpasta, "CasaX"), dini_Float(strpasta, "CasaY"), dini_Float(strpasta, "CasaZ"));
- }
- }
- return 1;
- }
Add Comment
Please, Sign In to add comment