Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* House SYstem v2.0 creato da S&C AkA Cirs Carandente, Non rimuovere i crediti
- * ~ Ringraziamenti: Cirs Carandente AkA S&C per il [FS]
- * ~ Ringraziamenti: Team SAMP for SAMP :D
- * ~ Ringraziamenti: [DRuG]Slick Per SII include
- * ~ Ringraziamenti: Incognito for stramer INCLUDE
- */
- #include <a_samp>
- #include <SII>
- #include <zcmd>
- #include <sscanf>
- #include <streamer>
- #define MAX_HOUSE 50 // - Massime Case Creabili Aumentare se ne dovete creare di più
- #define H_FILE_PATH "SCHouse/%d.ini"// - Destinazione file Case.
- #define MENUCASA 5001 // - Dialog menù Casa
- #define MENUVENDICASA 5005 // - Dialog menù vendi Casa
- #define DEPOSITASOLDICASA 5006 // - Dialog Deposita Soldi
- #define RITIRASOLDICASA 5007 // - Dialog Ritira Soldi
- #define ROSSO 0xff0000ff
- #define GIALLO 0xffff00ff
- #define BIANCO 0xffffffff
- #define VIOLA 0xff00ffff
- #define VERDE 0x00ff00ff
- #define BLU 0x0000ffff
- #define ARANCIONE 0xff4f00ff
- enum HouseInfo
- {
- Float:X,
- Float:Y,
- Float:Z,
- Float:Xu,
- Float:Yu,
- Float:Zu,
- hText[64],
- hCosto,
- Interior,
- VirtualW,
- Proprietario[24],
- Comprata,
- Chiusa,
- Cassaforte,
- Text3D:DText,
- }
- new hInfo[MAX_HOUSE][HouseInfo];
- new InCasa[MAX_PLAYERS];
- new file[256], stringa[256], PickupID[MAX_HOUSE], MapIconID[MAX_HOUSE];
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" Blank Filterscript by your name here");
- print("--------------------------------------\n");
- LoadHouse();
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- InCasa[playerid] = -1;
- return 1;
- }
- CMD:creacasa(playerid, params[])
- {
- new ID, Costo, Float:Pos[3];
- if(sscanf(params, "dd", ID, Costo))return SendClientMessage(playerid, VERDE, "/creacasa [ID] [COSTO]");
- if(Costo < 0 || Costo > 1000000)return SendClientMessage(playerid, ROSSO, "Costo troppo alto, Minimo 0 Massimo 1000000");
- if(!IsPlayerAdmin(playerid))return 0;
- format(file, sizeof(file), H_FILE_PATH, ID);
- if(INI_Exist(file))return SendClientMessage(playerid, ROSSO, "C'è già una casa creata con questo ID!");
- GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
- INI_Open(file);
- INI_WriteFloat("FloatX", Pos[0]);
- INI_WriteFloat("FloatY", Pos[1]);
- INI_WriteFloat("FloatZ", Pos[2]);
- INI_WriteFloat("FloatXUscita", 235.508994);
- INI_WriteFloat("FloatYUscita", 1189.169897);
- INI_WriteFloat("FloatZUscita", 1080.339966);
- INI_WriteString("Descrizione", "Nuova Casa");
- INI_WriteInt("CostoCasa", Costo);
- INI_WriteInt("Interior", 3);
- INI_WriteInt("VirtualW", ID+999);
- INI_WriteInt("Comprata", 0);
- INI_WriteInt("Chiusa", 0);
- INI_WriteInt("Cassaforte", 0);
- INI_WriteString("Proprietario", "Invendita");
- INI_Save();
- INI_Close();
- hInfo[ID][X] = Pos[0];
- hInfo[ID][Y] = Pos[1];
- hInfo[ID][Z] = Pos[2];
- hInfo[ID][Xu] = 235.508994;
- hInfo[ID][Yu] = 1189.169897;
- hInfo[ID][Zu] = 1080.339966;
- strmid(hInfo[ID][hText], "Casa in vendita", 0, strlen("Casa in vendita"), 999);
- hInfo[ID][hCosto] = Costo;
- hInfo[ID][Interior] = 3;
- hInfo[ID][VirtualW] = ID+999;
- hInfo[ID][Comprata] = 0;
- hInfo[ID][Chiusa] = 0;
- hInfo[ID][Cassaforte] = 0;
- strmid(hInfo[ID][Proprietario], "Invendita", 0, strlen("Invendita"), 999);
- PickupID[ID] = CreatePickup(1273, 24, Pos[0], Pos[1], Pos[2], GetPlayerInterior(playerid));
- new stringatext[128];
- format(stringatext, sizeof(stringatext), "[ID: %d]Casa in Vendita. Costo: $%d.",ID, hInfo[ID][hCosto]);
- hInfo[ID][DText] = Create3DTextLabel(stringatext, VIOLA,Pos[0], Pos[1], Pos[2], 20.0, 0);
- MapIconID[ID] = CreateDynamicMapIcon(Pos[0], Pos[1], Pos[2], 31, 0, 0, 0, playerid, 100.0);
- return 1;
- }
- CMD:gotocasa(playerid, params[])
- {
- new ID;
- if(sscanf(params, "d", ID))return SendClientMessage(playerid, VERDE, "/gotocasa [ID]");
- if(!IsPlayerAdmin(playerid))return 0;
- SetPlayerInterior(playerid, 0);
- SetPlayerVirtualWorld(playerid, 0);
- SetPlayerPos(playerid, hInfo[ID][X], hInfo[ID][Y], hInfo[ID][Z]);
- return 1;
- }
- CMD:sethcosto(playerid, params[])
- {
- new ID, Costo;
- if(sscanf(params, "dd", ID, Costo))return SendClientMessage(playerid, VERDE, "/sethcosto [Id Casa] [Costo]");
- if(!IsPlayerAdmin(playerid))return 0;
- hInfo[ID][hCosto] = Costo;
- format(file, sizeof(file), "Hai impostato alla casa ID %d il costo a $%d", ID, Costo);
- SendClientMessage(playerid, ARANCIONE, file);
- return 1;
- }
- CMD:sethexit(playerid, params[])
- {
- new ID, Float:x, Float:y, Float:z;
- if(sscanf(params, "d", ID))return SendClientMessage(playerid, VERDE, "/sethexit [Id Casa]");
- if(!IsPlayerAdmin(playerid))return 0;
- GetPlayerPos(playerid, x, y, z);
- hInfo[ID][Xu] = x;
- hInfo[ID][Yu] = y;
- hInfo[ID][Zu] = z;
- hInfo[ID][Interior] = GetPlayerInterior(playerid);
- format(file, sizeof(file), "Hai impostato alla casa ID %d l'uscita qui!", ID);
- SendClientMessage(playerid, ARANCIONE, file);
- return 1;
- }
- CMD:sethint(playerid, params[])
- {
- new ID, Int, string[128];
- if(sscanf(params, "dd", ID, Int))return SendClientMessage(playerid, VERDE, "/sethexit [Id Casa] [Interior]");
- if(!IsPlayerAdmin(playerid))return 0;
- if(Int > 0 && Int > 26) return SendClientMessage(playerid, -1, "ID interior da 0 a 26!");
- switch(Int)
- {
- case 0:
- {
- hInfo[ID][Xu] = 235.508994;
- hInfo[ID][Yu] = 1189.169897;
- hInfo[ID][Zu] = 1080.339966;
- hInfo[ID][Interior] = 3;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 1:
- {
- hInfo[ID][Xu] = 225.756989;
- hInfo[ID][Yu] = 1240.000000;
- hInfo[ID][Zu] = 1082.149902;
- hInfo[ID][Interior] = 2;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 2:
- {
- hInfo[ID][Xu] = 223.043991;
- hInfo[ID][Yu] = 1289.259888;
- hInfo[ID][Zu] = 1082.199951;
- hInfo[ID][Interior] = 1;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 3:
- {
- hInfo[ID][Xu] = 225.630997;
- hInfo[ID][Yu] = 1022.479980;
- hInfo[ID][Zu] = 1084.069946;
- hInfo[ID][Interior] = 7;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 4:
- {
- hInfo[ID][Xu] = 295.138977;
- hInfo[ID][Yu] = 1474.469971;
- hInfo[ID][Zu] = 1080.519897;
- hInfo[ID][Interior] = 15;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 5:
- {
- hInfo[ID][Xu] = 328.493988;
- hInfo[ID][Yu] = 1480.589966;
- hInfo[ID][Zu] = 1084.449951;
- hInfo[ID][Interior] = 15;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 6:
- {
- hInfo[ID][Xu] = 385.803986;
- hInfo[ID][Yu] = 1471.769897;
- hInfo[ID][Zu] = 1080.209961;
- hInfo[ID][Interior] = 15;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 7:
- {
- hInfo[ID][Xu] = 375.971985;
- hInfo[ID][Yu] = 1417.269897;
- hInfo[ID][Zu] = 1081.409912;
- hInfo[ID][Interior] = 15;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 8:
- {
- hInfo[ID][Xu] = 490.810974;
- hInfo[ID][Yu] = 1401.489990;
- hInfo[ID][Zu] = 1080.339966;
- hInfo[ID][Interior] = 2;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 9:
- {
- hInfo[ID][Xu] = 447.734985;
- hInfo[ID][Yu] = 1400.439941;
- hInfo[ID][Zu] = 1084.339966;
- hInfo[ID][Interior] = 2;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 10:
- {
- hInfo[ID][Xu] = 227.722992;
- hInfo[ID][Yu] = 1114.389893;
- hInfo[ID][Zu] = 1081.189941;
- hInfo[ID][Interior] = 5;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 11:
- {
- hInfo[ID][Xu] = 260.983978;
- hInfo[ID][Yu] = 1286.549927;
- hInfo[ID][Zu] = 1080.299927;
- hInfo[ID][Interior] = 4;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 12:
- {
- hInfo[ID][Xu] = 221.666992;
- hInfo[ID][Yu] = 1143.389893;
- hInfo[ID][Zu] = 1082.679932;
- hInfo[ID][Interior] = 4;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 13:
- {
- hInfo[ID][Xu] = 27.132700;
- hInfo[ID][Yu] = 1341.149902;
- hInfo[ID][Zu] = 1084.449951;
- hInfo[ID][Interior] = 10;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 14:
- {
- hInfo[ID][Xu] = -262.601990;
- hInfo[ID][Yu] = 1456.619995;
- hInfo[ID][Zu] = 1084.449951;
- hInfo[ID][Interior] = 4;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 15:
- {
- hInfo[ID][Xu] = 22.778299;
- hInfo[ID][Yu] = 1404.959961;
- hInfo[ID][Zu] = 1084.449951;
- hInfo[ID][Interior] = 5;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 16:
- {
- hInfo[ID][Xu] = 140.278000;
- hInfo[ID][Yu] = 1368.979980;
- hInfo[ID][Zu] = 1083.969971;
- hInfo[ID][Interior] = 5;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 17:
- {
- hInfo[ID][Xu] = 234.045990;
- hInfo[ID][Yu] = 1064.879883;
- hInfo[ID][Zu] = 1084.309937;
- hInfo[ID][Interior] = 6;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 18:
- {
- hInfo[ID][Xu] = -68.294098;
- hInfo[ID][Yu] = 1353.469971;
- hInfo[ID][Zu] = 1080.279907;
- hInfo[ID][Interior] = 6;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 19:
- {
- hInfo[ID][Xu] = -285.548981;
- hInfo[ID][Yu] = 1470.979980;
- hInfo[ID][Zu] = 1084.449951;
- hInfo[ID][Interior] = 15;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 20:
- {
- hInfo[ID][Xu] = -42.581997;
- hInfo[ID][Yu] = 1408.109985;
- hInfo[ID][Zu] = 1084.449951;
- hInfo[ID][Interior] = 8;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 21:
- {
- hInfo[ID][Xu] = 83.345093;
- hInfo[ID][Yu] = 1324.439941;
- hInfo[ID][Zu] = 1083.889893;
- hInfo[ID][Interior] = 9;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 22:
- {
- hInfo[ID][Xu] = 260.941986;
- hInfo[ID][Yu] = 1238.509888;
- hInfo[ID][Zu] = 1084.259888;
- hInfo[ID][Interior] = 9;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 23:
- {
- hInfo[ID][Xu] = 260.941986;
- hInfo[ID][Yu] = 1238.509888;
- hInfo[ID][Zu] = 1084.259888;
- hInfo[ID][Interior] = 9;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 24:
- {
- hInfo[ID][Xu] = 244.411987;
- hInfo[ID][Yu] = 305.032990;
- hInfo[ID][Zu] = 999.231995;
- hInfo[ID][Interior] = 1;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 25:
- {
- hInfo[ID][Xu] = 271.884979;
- hInfo[ID][Yu] = 306.631989;
- hInfo[ID][Zu] = 999.325989;
- hInfo[ID][Interior] = 2;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- case 26:
- {
- hInfo[ID][Xu] = 291.282990;
- hInfo[ID][Yu] = 310.031982;
- hInfo[ID][Zu] = 999.154968;
- hInfo[ID][Interior] = 3;
- format(string, sizeof string, "Hai impostato alla casa ID %d l'interior a %d", ID, Int);
- SendClientMessage(playerid, ARANCIONE, string);
- }
- }
- return 1;
- }
- CMD:removehouse(playerid, params[])
- {
- new ID, string[128];
- if(sscanf(params, "d", ID))return SendClientMessage(playerid, VERDE, "/removehouse [Id Casa]");
- if(!IsPlayerAdmin(playerid))return 0;
- format(file, sizeof(file), H_FILE_PATH, ID);
- if(!INI_Exist(file))return SendClientMessage(playerid, ROSSO, "Non c'è una casa con questo ID creata, quindi, non puoi eliminarla");
- INI_Open(file);
- INI_Remove(file);
- INI_Save();
- INI_Close();
- hInfo[ID][X] = 0.0;
- hInfo[ID][Y] = 0.0;
- hInfo[ID][Z] = 0.0;
- hInfo[ID][Interior] = 0;
- hInfo[ID][Cassaforte] = 0;
- DestroyPickup(PickupID[ID]);
- Delete3DTextLabel(hInfo[ID][DText]);
- DestroyDynamicMapIcon(MapIconID[ID]);
- format(string, sizeof(string), "Hai eliminato la casa ID %d", ID);
- SendClientMessage(playerid, BLU, string);
- return 1;
- }
- CMD:vendicasa(playerid, params[])
- {
- new ID, string[128];
- if(sscanf(params, "d", ID))return SendClientMessage(playerid, VERDE, "/vendicasa [Id Casa]");
- if(!IsPlayerAdmin(playerid))return 0;
- format(file, sizeof(file), H_FILE_PATH, ID);
- if(!INI_Exist(file))return SendClientMessage(playerid, ROSSO, "Non c'è una casa con questo ID creata, quindi, non puoi venderla");
- INI_Open(file);
- INI_WriteInt("Comprata", 0);
- INI_WriteString("Proprietario", "Nessuno");
- INI_Save();
- INI_Close();
- hInfo[ID][Comprata] = 0;
- DestroyPickup(PickupID[ID]);
- PickupID[ID] = CreatePickup(1272, 24, hInfo[ID][X], hInfo[ID][Y], hInfo[ID][Z], GetPlayerInterior(playerid));
- Delete3DTextLabel(hInfo[ID][DText]);
- new stringatext[128];
- format(stringatext, sizeof(stringatext), "[ID: %d]Casa in Vendita. Costo: $%d.", ID, hInfo[ID][hCosto]);
- hInfo[ID][DText] = Create3DTextLabel(stringatext,VIOLA, hInfo[ID][X], hInfo[ID][Y], hInfo[ID][Z], 20.0, 0);
- format(string, sizeof(string), "Hai venduto la casa ID %d", ID);
- SendClientMessage(playerid, BLU, string);
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- if(pickupid == PickupID[GetH(playerid)])// Quando il player entra nel pickup delle case.
- {
- if(hInfo[GetH(playerid)][Comprata] == 0)
- {
- format(stringa, sizeof(stringa), "ID: [%d] ~n~ Descrizione: %s~n~~w~Costo Casa: ~g~$%d", GetH(playerid), hInfo[GetH(playerid)][hText], hInfo[GetH(playerid)][hCosto]);
- GameTextForPlayer(playerid, stringa, 3500, 3);
- }
- else if(hInfo[GetH(playerid)][Comprata] == 1)
- {
- format(stringa, sizeof(stringa), "ID: [%d] ~n~~w~Proprietario: ~g~%s", GetH(playerid), hInfo[GetH(playerid)][Proprietario]);
- GameTextForPlayer(playerid, stringa, 3500, 3);
- }
- }
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(newkeys == KEY_SECONDARY_ATTACK)//Entrata Case
- {
- for(new i = 0; i < MAX_HOUSE; i++)
- {
- if(InCasa[playerid] == -1 && IsPlayerInRangeOfPoint(playerid, 1.0, hInfo[i][X], hInfo[i][Y], hInfo[i][Z]))
- {
- if(hInfo[i][Chiusa] == 1)return SendClientMessage(playerid, VERDE, "[INFO:] Casa Chiusa!");
- SetPlayerPos(playerid, hInfo[i][Xu], hInfo[i][Yu], hInfo[i][Zu]);
- SetPlayerInterior(playerid, hInfo[i][Interior]);
- SetPlayerVirtualWorld(playerid, hInfo[i][VirtualW]);
- InCasa[playerid] = i;
- }
- else if(InCasa[playerid] != -1 && IsPlayerInRangeOfPoint(playerid, 2.0, hInfo[InCasa[playerid]][Xu], hInfo[InCasa[playerid]][Yu], hInfo[InCasa[playerid]][Zu]))
- {
- if(GetPlayerVirtualWorld(playerid) == hInfo[i][VirtualW])
- {
- if(hInfo[i][Chiusa] == 1)return SendClientMessage(playerid, VERDE, "[INFO:] Casa Chiusa!");
- SetPlayerPos(playerid, hInfo[i][X], hInfo[i][Y], hInfo[i][Z]);
- SetPlayerInterior(playerid, 0);
- SetPlayerVirtualWorld(playerid, 0);
- InCasa[playerid] = -1;
- }
- }
- }
- }
- if(newkeys == KEY_JUMP)
- {
- if(IsPlayerInRangeOfPoint(playerid, 1.0, hInfo[GetH(playerid)][X], hInfo[GetH(playerid)][Y], hInfo[GetH(playerid)][Z]))
- {
- if(GetPlayerMoney(playerid) < hInfo[GetH(playerid)][hCosto])return SendClientMessage(playerid, ROSSO, "Non hai abbastanza Soldi!");
- if(hInfo[GetH(playerid)][Comprata] == 1)return SendClientMessage(playerid, VERDE, "Questa casa non è in vendita!");
- hInfo[GetH(playerid)][Comprata] = 1;
- GivePlayerMoney(playerid, -hInfo[GetH(playerid)][hCosto]);
- new nome[24];
- GetPlayerName(playerid, nome, sizeof(nome));
- SendClientMessage(playerid, BLU, "Hai comprato questa casa con successo!");
- InCasa[playerid] = GetH(playerid);
- SetPlayerPos(playerid, hInfo[GetH(playerid)][Xu], hInfo[GetH(playerid)][Yu], hInfo[GetH(playerid)][Zu]);
- SetPlayerInterior(playerid, hInfo[GetH(playerid)][Interior]);
- SetPlayerVirtualWorld(playerid, hInfo[GetH(playerid)][VirtualW]);
- DestroyPickup(PickupID[GetH(playerid)]);
- PickupID[GetH(playerid)] = CreatePickup(1272, 24, hInfo[GetH(playerid)][X], hInfo[GetH(playerid)][Y], hInfo[GetH(playerid)][Z], GetPlayerInterior(playerid)); Delete3DTextLabel(hInfo[GetH(playerid)][DText]);
- DestroyDynamicMapIcon(MapIconID[GetH(playerid)]);
- MapIconID[GetH(playerid)] = CreateDynamicMapIcon(hInfo[GetH(playerid)][X], hInfo[GetH(playerid)][Y], hInfo[GetH(playerid)][Z], 32, 0, 0, 0, playerid, 50.0);
- INI_Open(file);
- INI_WriteString("Proprietario", nome);
- hInfo[GetH(playerid)][Proprietario] = nome;
- INI_WriteString("Descrizione", "Casa non in vendita");
- INI_WriteInt("Comprata", 1);
- INI_Save();
- INI_Close();
- Delete3DTextLabel(hInfo[GetH(playerid)][DText]);
- new stringatext[128];
- format(stringatext, sizeof(stringatext), "[ID: %d] Casa non in Vendita. Proprietario: %s.", GetH(playerid), hInfo[GetH(playerid)][Proprietario]);
- hInfo[GetH(playerid)][DText] = Create3DTextLabel(stringatext,VIOLA, hInfo[GetH(playerid)][X], hInfo[GetH(playerid)][Y], hInfo[GetH(playerid)][Z], 20.0, 0);
- }
- }
- if(newkeys == KEY_WALK)
- {
- if(IsPlayerInRangeOfPoint(playerid, 1.0, hInfo[GetH(playerid)][X], hInfo[GetH(playerid)][Y], hInfo[GetH(playerid)][Z]))
- {
- new nome[24];
- GetPlayerName(playerid, nome, sizeof(nome));
- if(strcmp(hInfo[GetH(playerid)][Proprietario], nome) != 0) return SendClientMessage(playerid,0xFF1E00FF,"Questa casa non è tua!");
- if(hInfo[GetH(playerid)][Comprata] == 0)return SendClientMessage(playerid,0xFF1E00FF,"Questa casa non è tua!");
- ShowPlayerDialog(playerid, MENUCASA, DIALOG_STYLE_LIST, "Casa", "Vendi Casa\nChiudi/Apri Casa\nRitira Soldi\nDeposita Soldi", "Seleziona", "Annulla");
- }
- return 1;
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == MENUCASA && response)
- {
- if(!response)return 0;
- switch(listitem)
- {
- case 0:
- {
- new string[128];
- format(string, sizeof(string), "Sei sicuro di voler vendere la tua casa per $%d ?", hInfo[GetH(playerid)][hCosto]/2);
- ShowPlayerDialog(playerid, MENUVENDICASA, DIALOG_STYLE_MSGBOX, "Vendi", string, "Si", "No");
- }
- case 1:
- {
- if(hInfo[GetH(playerid)][Chiusa] == 0)
- {
- hInfo[GetH(playerid)][Chiusa] = 1;
- SendClientMessage(playerid, GIALLO, "[INFO:] Hai chiuso la tua casa");
- SaveHouse();
- }
- else if(hInfo[GetH(playerid)][Chiusa] == 1)
- {
- hInfo[GetH(playerid)][Chiusa] = 0;
- SendClientMessage(playerid, GIALLO, "[INFO:] Hai aperto la tua casa");
- SaveHouse();
- }
- }
- case 2:ShowPlayerDialog(playerid, RITIRASOLDICASA, DIALOG_STYLE_INPUT, "Ritiro", "Scrivi la cifra che vuoi ritirare dalla casa", "Ritira", "Annulla");
- case 3:ShowPlayerDialog(playerid, DEPOSITASOLDICASA, DIALOG_STYLE_INPUT, "Deposito", "Scrivi la cifra che vuoi depositare in casa", "Deposita", "Annulla");
- }
- return 1;
- }
- if(dialogid == MENUVENDICASA && response)
- {
- if(!response)return 0;
- new string[256];
- GivePlayerMoney(playerid, hInfo[GetH(playerid)][hCosto]/2);
- format(string, sizeof(string), "Hai venduto la tua casa per $%d ", hInfo[GetH(playerid)][hCosto]/2);
- SendClientMessage(playerid, BLU, string);
- hInfo[GetH(playerid)][Comprata] = 0;
- DestroyPickup(PickupID[GetH(playerid)]);
- PickupID[GetH(playerid)] = CreatePickup(1273, 24, hInfo[GetH(playerid)][X], hInfo[GetH(playerid)][Y], hInfo[GetH(playerid)][Z], GetPlayerInterior(playerid));
- format(file, sizeof(file), H_FILE_PATH, GetH(playerid));
- INI_Open(file);
- INI_WriteString("Proprietario", "Nessuno");
- INI_WriteInt("Comprata", 0);
- INI_Save();
- INI_Close();
- SaveHouse();
- Delete3DTextLabel(hInfo[GetH(playerid)][DText]);
- new stringatext[128];
- format(stringatext, sizeof(stringatext), "[ID: %d] Casa in Vendita. Costo: %d.", GetH(playerid), hInfo[GetH(playerid)][hCosto]);
- hInfo[GetH(playerid)][DText] = Create3DTextLabel(stringatext, VIOLA, hInfo[GetH(playerid)][X], hInfo[GetH(playerid)][Y], hInfo[GetH(playerid)][Z], 20.0, 0);
- }
- if(dialogid == DEPOSITASOLDICASA && response)
- {
- new string[200];
- if(!response)return 0;
- if(GetPlayerMoney(playerid) < strval(inputtext))return ShowPlayerDialog(playerid, DEPOSITASOLDICASA, DIALOG_STYLE_INPUT, "Deposito", "Non hai tutti questi soldi!\nScrivi la cifra che vuoi depositare in casa", "Deposita", "Annulla");
- hInfo[GetH(playerid)][Cassaforte] = hInfo[GetH(playerid)][Cassaforte]+strval(inputtext);
- format(string, sizeof(string), "Hai depositato %d in casa tua", strval(inputtext));
- SendClientMessage(playerid, BLU, string);
- GivePlayerMoney(playerid, -strval(inputtext));
- }
- if(dialogid == RITIRASOLDICASA && response)
- {
- new string[200];
- if(!response)return 0;
- if(strval(inputtext) > hInfo[GetH(playerid)][Cassaforte])return ShowPlayerDialog(playerid, RITIRASOLDICASA, DIALOG_STYLE_INPUT, "Ritiro", "Non hai tutti questi soldi in casa!\nScrivi la cifra che vuoi ritirare dalla casa", "Ritira", "Annulla");
- if(0 < strval(inputtext))return SendClientMessage(playerid, ROSSO, "Importo invalido!");
- hInfo[GetH(playerid)][Cassaforte] = hInfo[GetH(playerid)][Cassaforte]-strval(inputtext);
- format(string, sizeof(string), "Hai ritirato %d dalla tua casa!", strval(inputtext));
- SendClientMessage(playerid, BLU, string);
- GivePlayerMoney(playerid, strval(inputtext));
- }
- return 1;
- }
- stock GetH(playerid)//Getta l'ID della casa in cui il player è..
- {
- for(new i=0; i<MAX_HOUSE; i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 2.0, hInfo[i][X], hInfo[i][Y], hInfo[i][Z]))
- {
- return i;
- }
- }
- return -230;
- }
- stock SaveHouse()//Carica Le case
- {
- for(new i = 0; i<MAX_HOUSE; i++)
- {
- format(file, sizeof(file), H_FILE_PATH, i);
- if(INI_Exist(file))
- {
- INI_Open(file);
- INI_WriteFloat("FloatX", hInfo[i][X]);
- INI_WriteFloat("FloatY", hInfo[i][Y]);
- INI_WriteFloat("FloatZ", hInfo[i][Z]);
- INI_WriteFloat("FloatXUscita", hInfo[i][Xu]);
- INI_WriteFloat("FloatYUscita", hInfo[i][Yu]);
- INI_WriteFloat("FloatZUscita", hInfo[i][Zu]);
- INI_WriteString("Descrizione", hInfo[i][hText]);
- INI_WriteInt("CostoCasa", hInfo[i][hCosto]);
- INI_WriteInt("Interior", hInfo[i][Interior]);
- INI_WriteInt("VirtualW", hInfo[i][VirtualW]);
- INI_WriteInt("Comprata", hInfo[i][Comprata]);
- INI_WriteInt("Chiusa", hInfo[i][Chiusa]);
- INI_WriteInt("Cassaforte", hInfo[i][Cassaforte]);
- INI_WriteString("Proprietario", hInfo[i][Proprietario]);
- INI_Save();
- INI_Close();
- }
- }
- }
- stock LoadHouse()//Carica Le case
- {
- new Nome[MAX_PLAYER_NAME], Desc[64];
- for(new i = 0; i<MAX_HOUSE; i++)
- {
- for(new a = 0; a<MAX_PLAYERS; a++)
- {
- format(file, sizeof(file), H_FILE_PATH, i);
- if(INI_Exist(file))
- {
- INI_Open(file);
- hInfo[i][X] = INI_ReadFloat("FloatX");
- hInfo[i][Y] = INI_ReadFloat("FloatY");
- hInfo[i][Z] = INI_ReadFloat("FloatZ");
- hInfo[i][Xu] = INI_ReadFloat("FloatXUscita");
- hInfo[i][Yu] = INI_ReadFloat("FloatYUscita");
- hInfo[i][Zu] = INI_ReadFloat("FloatZUscita");
- INI_ReadString(Desc, "Descrizione", 128);
- hInfo[i][hText] = Desc;
- hInfo[i][hCosto] = INI_ReadInt("CostoCasa");
- hInfo[i][Interior] = INI_ReadInt("Interior");
- hInfo[i][VirtualW] = INI_ReadInt("VirtualW");
- hInfo[i][Comprata] = INI_ReadInt("Comprata");
- hInfo[i][Cassaforte] = INI_ReadInt("Cassaforte");
- hInfo[i][Chiusa] = INI_ReadInt("Chiusa");
- INI_ReadString(Nome, "Proprietario", 128);
- hInfo[i][Proprietario] = Nome;
- INI_Close();
- if(hInfo[i][Comprata] == 0)
- {
- PickupID[i] = CreatePickup(1273, 24, hInfo[i][X], hInfo[i][Y], hInfo[i][Z], GetPlayerInterior(i));
- MapIconID[i] = CreateDynamicMapIcon(hInfo[i][X], hInfo[i][Y], hInfo[i][Z], 31, 0, 0, 0, a, 50.0);
- new stringatext[128];
- format(stringatext, sizeof(stringatext), "[ID: %d] Casa in Vendita. Costo: $%d.", i, hInfo[i][hCosto]);
- hInfo[i][DText] = Create3DTextLabel(stringatext,VIOLA, hInfo[i][X], hInfo[i][Y], hInfo[i][Z], 20.0, 0);
- }
- else if(hInfo[i][Comprata] == 1)
- {
- PickupID[i] = CreatePickup(1272, 24, hInfo[i][X], hInfo[i][Y], hInfo[i][Z], GetPlayerInterior(i));
- MapIconID[i] = CreateDynamicMapIcon(hInfo[i][X], hInfo[i][Y], hInfo[i][Z], 32, 0, 0, 0, a, 50.0);
- new stringatext[128];
- format(stringatext, sizeof(stringatext), "[ID: %d] Casa non in Vendita. Proprietario: %s.", i, hInfo[i][Proprietario]);
- hInfo[i][DText] = Create3DTextLabel(stringatext,VIOLA, hInfo[i][X], hInfo[i][Y], hInfo[i][Z], 20.0, 0);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement