Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ////////////////////////////////////////////////////////////
- #include <a_samp>
- #include <sscanf2>
- #include <foreach>
- #include <YSI\y_commands>
- #include <YSI\y_ini>
- /////////////////////////////////////////////////////////
- #define BELA "{FFFFFF}"
- #define ZELENA "{0ed400}"
- #define CRVENA "{F81414}"
- #define ZUTA "{F3FF02}"
- #define SPLAVA "{00C0FF}"
- #define SIVA "{C0C0C0}"
- ////////////////////////////////////////////////////////
- #define SCM SendClientMessage
- #define SPD ShowPlayerDialog
- ////////////////////////////////////////////////////////
- #define KUCE_FILE "Kuce/%d.ini"
- #define IGRAC_FILE "Igraci/%s.ini"
- #define DIALOG_KUCA 321
- #define DIALOG_IKUCA 327
- #define DIALOG_PRINT 350
- #define MAX_KUCA 6000
- ///////////////////////////////////////////////////////
- enum Kuce
- {
- kProveraVlasnika,
- kVlasnik[45],
- kVrsta[35],
- Float:kUlazX,
- Float:kUlazY,
- Float:kUlazZ,
- Float:kIzlazX,
- Float:kIzlazY,
- Float:kIzlazZ,
- kCena,
- kInt,
- kZatvoreno,
- kVW
- };
- new KucaInfo[MAX_KUCA][Kuce];
- new KucaPickup[sizeof(KucaInfo)];
- new Text3D:KucaLabel[sizeof(KucaInfo)];
- ///////////////////////////////////////////////////
- enum pInfo
- {
- pPosedovanjeKuce,
- pProveraSpawna
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- ///////////////////////////////////////////////////
- public OnFilterScriptInit()
- {
- for(new idkuce = 0; idkuce < sizeof(KucaInfo); idkuce++)
- {
- new kFile[50], string[400];
- format(kFile, sizeof(kFile), KUCE_FILE, idkuce);
- if(fexist(kFile))
- {
- INI_ParseFile(kFile, "UcitajKuce", .bExtra = true, .extra = idkuce);
- if(KucaInfo[idkuce][kProveraVlasnika] == 0)
- {
- format(string,sizeof(string),""ZELENA"Kuca na Prodaju!\nVrsta: "BELA"%s\n"ZELENA"Cijena: "BELA"%d\n"ZELENA"Adresa: "BELA"Los Santos %d\n"ZELENA"Za kupovinu /kupikucu",KucaInfo[idkuce][kVrsta],KucaInfo[idkuce][kCena],idkuce);
- KucaLabel[idkuce] = Create3DTextLabel(string ,0x33CCFFAA,KucaInfo[idkuce][kUlazX],KucaInfo[idkuce][kUlazY],KucaInfo[idkuce][kUlazZ],25,0,1);
- KucaPickup[idkuce] = CreatePickup(1273, 1, KucaInfo[idkuce][kUlazX], KucaInfo[idkuce][kUlazY], KucaInfo[idkuce][kUlazZ]);
- }
- }
- }
- DisableInteriorEnterExits();
- return 1;
- }
- ///////////////////////////////////////////////////
- public OnFilterScriptExit()
- {
- for(new k = 0; k <= MAX_KUCA; k++) { SacuvajKucu(k); }
- return 1;
- }
- ///////////////////////////////////////////////////
- public OnPlayerConnect(playerid)
- {
- PlayerInfo[playerid][pProveraSpawna] = 0; PlayerInfo[playerid][pPosedovanjeKuce] = -1;
- new igraci[50]; format(igraci, sizeof(igraci), IGRAC_FILE, ImeIgraca(playerid));
- if(!fexist(igraci))
- {
- MiniRegis(playerid);
- }
- else
- {
- INI_ParseFile(igraci, "UcitavanjeIgraca", .bExtra = true, .extra = playerid);
- }
- return 1;
- }
- ///////////////////////////////////////////////////
- public OnPlayerDisconnect(playerid, reason)
- {
- SacuvajIgraca(playerid);
- return 1;
- }
- ///////////////////////////////////////////////////
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(newkeys == KEY_SECONDARY_ATTACK )
- {
- for(new i; i < MAX_KUCA; i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 3.0, KucaInfo[i][kUlazX], KucaInfo[i][kUlazY], KucaInfo[i][kUlazZ]))
- {
- if(PlayerInfo[playerid][pPosedovanjeKuce] == i || KucaInfo[i][kZatvoreno] == 0)
- {
- SetPlayerVirtualWorld(playerid, KucaInfo[i][kVW]);
- SetPlayerInterior(playerid, KucaInfo[i][kInt]);
- SetPlayerPos(playerid, KucaInfo[i][kIzlazX], KucaInfo[i][kIzlazY], KucaInfo[i][kIzlazZ]);
- }
- else return SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Kuca je zakljucana!");
- }
- if(IsPlayerInRangeOfPoint(playerid, 3.0, KucaInfo[i][kIzlazX], KucaInfo[i][kIzlazY], KucaInfo[i][kIzlazZ]) && GetPlayerVirtualWorld(playerid) == KucaInfo[i][kVW])
- {
- SetPlayerInterior(playerid, 0);
- SetPlayerVirtualWorld(playerid, 0);
- SetPlayerPos(playerid, KucaInfo[i][kUlazX], KucaInfo[i][kUlazY], KucaInfo[i][kUlazZ]);
- return 1;
- }
- }
- }
- return 1;
- }
- ///////////////////////////////////////////////////
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_KUCA)
- {
- if(!response) return 1;
- if(PlayerInfo[playerid][pPosedovanjeKuce] == -1) return SCM(playerid,-1, ""ZELENA"LOB House System | "BELA"Nemate kucu!");
- new i = PlayerInfo[playerid][pPosedovanjeKuce];
- switch(listitem)
- {
- case 0:
- {
- if(!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[i][kIzlazX], KucaInfo[i][kIzlazY], KucaInfo[i][kIzlazZ])) return SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Niste u vasoj kuci!");
- new string[256],kz[4];
- if(KucaInfo[i][kZatvoreno] == 1) kz = "Da";
- else kz = "Ne";
- SCM(playerid,-1,""ZELENA"|---------------------------------------------------------------------------------------------------|");
- format(string,sizeof(string),""SIVA"Vlasnik: %s | Zakljucano: %s ",KucaInfo[i][kVlasnik],kz);
- SCM(playerid,-1,string);
- format(string,sizeof(string),""SIVA"Adresa: Los Santos %d ",i);
- SCM(playerid,-1,string);
- SCM(playerid,-1,""ZELENA"|---------------------------------------------------------------------------------------------------|");
- }
- case 1:
- {
- if(!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[i][kIzlazX], KucaInfo[i][kIzlazY], KucaInfo[i][kIzlazZ])) return SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Niste u vasoj kuci!");
- if(KucaInfo[i][kZatvoreno] == 0) return SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Kuca je vec otkljucana!");
- KucaInfo[i][kZatvoreno] = 0; SacuvajKucu(i);
- SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Kuca je otkljucana!");
- }
- case 2:
- {
- if(!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[i][kIzlazX], KucaInfo[i][kIzlazY], KucaInfo[i][kIzlazZ])) return SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Niste u vasoj kuci!");
- if(KucaInfo[i][kZatvoreno] == 1) return SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Vec je vec zakljucana!");
- KucaInfo[i][kZatvoreno] = 1; SacuvajKucu(i);
- SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Kuca je zakljucana!");
- }
- case 3:
- {
- if(!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[i][kUlazX], KucaInfo[i][kUlazY], KucaInfo[i][kUlazZ])) return SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Niste ispred vase kuce!");
- new string[60]; GivePlayerMoney(playerid,KucaInfo[i][kCena]);
- KucaInfo[i][kProveraVlasnika] = 0;
- KucaInfo[i][kZatvoreno] = 1;
- strmid(KucaInfo[i][kVlasnik], "Niko", 0, strlen("Niko"), 255); PlayerInfo[playerid][pPosedovanjeKuce] = -1;
- SacuvajKucu(i); KuceLP(i); SacuvajIgraca(playerid);
- format(string,sizeof(string),""ZELENA"LOB House System | "BELA"Prodali ste kucu za %d!",KucaInfo[i][kCena]);
- SCM(playerid,-1,string);
- }
- case 4:
- {
- PlayerInfo[playerid][pProveraSpawna] = 1;
- SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Odabrali ste spawn u kuci od sada cete se spawnovati u kuci!");
- }
- }
- }
- //////////////////////////////////////////////////
- return 1;
- }
- ////////////////////////////////////////////////////
- public OnPlayerSpawn(playerid)
- {
- if(PlayerInfo[playerid][pProveraSpawna] == 1 && PlayerInfo[playerid][pPosedovanjeKuce] != -1)
- {
- new i = PlayerInfo[playerid][pPosedovanjeKuce];
- SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0);
- SetPlayerPos(playerid, KucaInfo[i][kUlazX], KucaInfo[i][kUlazY], KucaInfo[i][kUlazZ]);
- }
- return 1;
- }
- ///////////////////////////////////////////////////
- forward UcitajKuce(idkuce, name[], value[]);
- public UcitajKuce(idkuce, name[], value[])
- {
- INI_Int("ProveraVlasnika",KucaInfo[idkuce][kProveraVlasnika]);
- INI_String("Vlasnik",KucaInfo[idkuce][kVlasnik],45);
- INI_String("Vrsta",KucaInfo[idkuce][kVrsta],35);
- INI_Float("UlazX",KucaInfo[idkuce][kUlazX]);
- INI_Float("UlazY",KucaInfo[idkuce][kUlazY]);
- INI_Float("UlazZ",KucaInfo[idkuce][kUlazZ]);
- INI_Float("IzlazX",KucaInfo[idkuce][kIzlazX]);
- INI_Float("IzlazY",KucaInfo[idkuce][kIzlazY]);
- INI_Float("IzlazZ",KucaInfo[idkuce][kIzlazZ]);
- INI_Int("Cena",KucaInfo[idkuce][kCena]);
- INI_Int("Interior",KucaInfo[idkuce][kInt]);
- INI_Int("Zatvoreno",KucaInfo[idkuce][kZatvoreno]);
- INI_Int("VW",KucaInfo[idkuce][kVW]);
- return 1;
- }
- ///////////////////////////////////////////////////
- stock SacuvajKucu(idkuce)
- {
- new kFile[128];
- format(kFile, sizeof(kFile), KUCE_FILE, idkuce);
- new INI:File = INI_Open(kFile);
- INI_WriteInt(File,"ProveraVlasnika",KucaInfo[idkuce][kProveraVlasnika]);
- INI_WriteString(File,"Vlasnik",KucaInfo[idkuce][kVlasnik]);
- INI_WriteString(File,"Vrsta",KucaInfo[idkuce][kVrsta]);
- INI_WriteFloat(File,"UlazX",KucaInfo[idkuce][kUlazX]);
- INI_WriteFloat(File,"UlazY",KucaInfo[idkuce][kUlazY]);
- INI_WriteFloat(File,"UlazZ",KucaInfo[idkuce][kUlazZ]);
- INI_WriteFloat(File,"IzlazX",KucaInfo[idkuce][kIzlazX]);
- INI_WriteFloat(File,"IzlazY",KucaInfo[idkuce][kIzlazY]);
- INI_WriteFloat(File,"IzlazZ",KucaInfo[idkuce][kIzlazZ]);
- INI_WriteInt(File,"Cena",KucaInfo[idkuce][kCena]);
- INI_WriteInt(File,"Interior",KucaInfo[idkuce][kInt]);
- INI_WriteInt(File,"Zatvoreno",KucaInfo[idkuce][kZatvoreno]);
- INI_WriteInt(File,"VW",KucaInfo[idkuce][kVW]);
- INI_Close(File);
- return 1;
- }
- //////////////////////////////////////////////////////
- stock MiniRegis(playerid)
- {
- new igraci[50];
- format(igraci, sizeof(igraci), IGRAC_FILE, ImeIgraca(playerid));
- new INI:File = INI_Open(igraci);
- INI_WriteInt(File,"PosedovanjeKuce",-1);
- INI_WriteInt(File,"ProveraSpawna",0);
- INI_Close(File);
- return 1;
- }
- /////////////////////////////////////////////////////
- forward UcitavanjeIgraca(playerid, name[], value[]);
- public UcitavanjeIgraca(playerid, name[], value[])
- {
- INI_Int("PosedovanjeKuce",PlayerInfo[playerid][pPosedovanjeKuce]);
- INI_Int("ProveraSpawna",PlayerInfo[playerid][pProveraSpawna]);
- return 1;
- }
- /////////////////////////////////////////////////////
- stock SacuvajIgraca(playerid)
- {
- new igraci[50]; format(igraci, sizeof(igraci), IGRAC_FILE, ImeIgraca(playerid));
- new INI:File = INI_Open(igraci);
- INI_WriteInt(File,"PosedovanjeKuce",PlayerInfo[playerid][pPosedovanjeKuce]);
- INI_WriteInt(File,"ProveraSpawna",PlayerInfo[playerid][pProveraSpawna]);
- INI_Close(File);
- return 1;
- }
- /////////////////////////////////////////////////////
- stock KuceLP(idkuce)
- {
- new string[400];
- if(KucaInfo[idkuce][kProveraVlasnika] == 0)
- {
- Delete3DTextLabel(KucaLabel[idkuce]);
- DestroyPickup(KucaPickup[idkuce]);
- format(string,sizeof(string),""ZELENA"Kuca na Prodaju!\nVrsta: "BELA"%s\n"ZELENA"Cijena: "BELA"%d\n"ZELENA"Adresa: "BELA"Los Santos %d\n"ZELENA"Za kupovinu /kupikucu",KucaInfo[idkuce][kVrsta],KucaInfo[idkuce][kCena],idkuce);
- KucaLabel[idkuce] = Create3DTextLabel(string ,0x33CCFFAA,KucaInfo[idkuce][kUlazX],KucaInfo[idkuce][kUlazY],KucaInfo[idkuce][kUlazZ],25,0,1);
- KucaPickup[idkuce] = CreatePickup(1273, 1, KucaInfo[idkuce][kUlazX], KucaInfo[idkuce][kUlazY], KucaInfo[idkuce][kUlazZ]);
- }
- return 1;
- }
- ////////////////////////////////////////////////////
- stock ImeIgraca(playerid)
- {
- new ime[MAX_PLAYER_NAME];
- GetPlayerName(playerid, ime, sizeof(ime));
- return ime;
- }
- ///////////////////////////////////////////////////
- YCMD:kreirajkucu(playerid, params[],help)
- {
- #pragma unused help
- if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Niste autorizirani za koristenje ove komande!");
- new idkuce,vrsta,cena,Float:X,Float:Y,Float:Z,fkuce[80],string[400]; GetPlayerPos(playerid,X,Y,Z);
- if(sscanf(params, "iiii",idkuce,vrsta,cena)) return SCM(playerid,-1,""ZELENA"LOB House System | "BELA"/kreirajkucu [ID] [Vrsta] [Cijena]!");
- if(idkuce >= MAX_KUCA) return SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Dosegli ste maksimum izgradnje kuca!");
- format(fkuce, sizeof(fkuce), KUCE_FILE, idkuce);
- if(fexist(fkuce)) return SCM(playerid,-1,""ZELENA"LOB House System | "BELA"ID te kuce vec postoji!");
- if(vrsta == 0) // MALA KUCA
- {
- KucaInfo[idkuce][kIzlazX] = 223.043991;
- KucaInfo[idkuce][kIzlazY] = 1289.259888;
- KucaInfo[idkuce][kIzlazZ] = 1082.199951;
- KucaInfo[idkuce][kInt] = 1;
- strmid(KucaInfo[idkuce][kVrsta],"Mala Kuca",0,strlen("Mala Kuca"),255);
- }
- else if(vrsta == 1) // SREDNJA KUCA
- {
- KucaInfo[idkuce][kIzlazX] = 225.756989;
- KucaInfo[idkuce][kIzlazY] = 1240.000000;
- KucaInfo[idkuce][kIzlazZ] = 1082.149902;
- KucaInfo[idkuce][kInt] = 2;
- strmid(KucaInfo[idkuce][kVrsta],"Srednja Kuca",0,strlen("Srednja Kuca"),255);
- }
- else if(vrsta == 2) // VELIKA KUCA
- {
- KucaInfo[idkuce][kIzlazX] = 235.508994;
- KucaInfo[idkuce][kIzlazY] = 1189.169897;
- KucaInfo[idkuce][kIzlazZ] = 1080.339966;
- KucaInfo[idkuce][kInt] = 3;
- strmid(KucaInfo[idkuce][kVrsta],"Velika Kuca",0,strlen("Velika Kuca"),255);
- }
- KucaInfo[idkuce][kCena] = cena; KucaInfo[idkuce][kUlazX] = X;
- KucaInfo[idkuce][kUlazY] = Y; KucaInfo[idkuce][kUlazZ] = Z; KucaInfo[idkuce][kProveraVlasnika] = 0;
- KucaInfo[idkuce][kZatvoreno] = 1; KucaInfo[idkuce][kVW] = idkuce;
- strmid(KucaInfo[idkuce][kVlasnik],"Niko",0,strlen("Niko"),255);
- format(string,sizeof(string),""ZELENA"Kuca na Prodaju!\nVrsta: "BELA"%s\n"ZELENA"Cijena: "BELA"%d\n"ZELENA"Adresa: "BELA"Los Santos %d\n"ZELENA"Za kupovinu /kupikucu",KucaInfo[idkuce][kVrsta],KucaInfo[idkuce][kCena],idkuce);
- KucaLabel[idkuce] = Create3DTextLabel(string ,0x33CCFFAA,X,Y,Z,25,0,1);
- KucaPickup[idkuce] = CreatePickup(1273, 1, KucaInfo[idkuce][kUlazX], KucaInfo[idkuce][kUlazY], KucaInfo[idkuce][kUlazZ]);
- SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Kuca je kreirana!"); SacuvajKucu(idkuce);
- return 1;
- }
- ///////////////////////////////////////////////////
- YCMD:kupikucu(playerid, params[], help)
- {
- #pragma unused help
- #pragma unused params
- for(new i; i < sizeof(KucaInfo); i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 3.0, KucaInfo[i][kUlazX], KucaInfo[i][kUlazY], KucaInfo[i][kUlazZ]))
- {
- if(!strcmp(KucaInfo[i][kVlasnik], "Niko", true) && KucaInfo[i][kProveraVlasnika] == 0)
- {
- if(PlayerInfo[playerid][pPosedovanjeKuce] != -1) return SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Vec imate kucu!");
- if(GetPlayerMoney(playerid) < KucaInfo[i][kCena]) return SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Nemate dovoljno novca za kupnju kuce!");
- strmid(KucaInfo[i][kVlasnik], ImeIgraca(playerid), 0, strlen(ImeIgraca(playerid)), 255);
- KucaInfo[i][kProveraVlasnika] = 1; SetPlayerInterior(playerid, KucaInfo[i][kInt]); PlayerInfo[playerid][pPosedovanjeKuce] = i;
- SetPlayerVirtualWorld(playerid, KucaInfo[i][kVW]); SetPlayerPos(playerid, KucaInfo[i][kIzlazX], KucaInfo[i][kIzlazY], KucaInfo[i][kIzlazZ]);
- KucaInfo[i][kZatvoreno] = 0; GivePlayerMoney(playerid, -KucaInfo[i][kCena]); KuceLP(i); SacuvajKucu(i); SacuvajIgraca(playerid);
- SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Kupili ste kucu! Koristite /kuca!");
- return 1;
- }
- else return SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Kuca nije na prodaju!");
- }
- }
- return 1;
- }
- ////////////////////////////////////////////////////
- YCMD:kuca(playerid, params[], help)
- {
- #pragma unused help
- #pragma unused params
- new string[256],i = PlayerInfo[playerid][pPosedovanjeKuce];
- if(i == -1) return SCM(playerid,-1,""CRVENA"HS | "SIVA"Nemate kucu!");
- if(strcmp(KucaInfo[PlayerInfo[playerid][pPosedovanjeKuce]][kVlasnik], ImeIgraca(playerid), true)) return SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Niste vlasnik ove kuce!");
- format(string,sizeof(string),""BELA"Informacije\nOtkljucaj\nZakljucaj\nProdaj kucu\nKuca Spawn");
- SPD(playerid, DIALOG_KUCA, DIALOG_STYLE_LIST, ""ZELENA"LOB House System", string, "Odaberi", "Izlaz");
- return 1;
- }
- ////////////////////////////////////////////////////
- YCMD:izbrisikucu(playerid, params[], help)
- {
- #pragma unused help
- #pragma unused params
- if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Niste autorizirani za koristenje ove komande!");
- new kFile[50],id;
- if(sscanf(params,"i",id)) return SCM(playerid,-1,""ZELENA"LOB House System | "BELA"/izbrisikucu [ID]!");
- format(kFile, sizeof(kFile), KUCE_FILE, id);
- if(fexist(kFile)) { fremove(kFile); Delete3DTextLabel(KucaLabel[id]); DestroyPickup(KucaPickup[id]); }
- else { SCM(playerid,-1,""ZELENA"LOB House System | "BELA"Kuca ne postoji!"); }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment