Advertisement
Guest User

Untitled

a guest
Mar 21st, 2013
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 28.12 KB | None | 0 0
  1. ////////////////////////////////gReeDy's House System///////////////////////////////
  2. #include  <a_samp>
  3. #include  <sscanf2>
  4. #include  <foreach>
  5. #include  <YSI\y_commands>
  6. #include  <YSI\y_ini>
  7. /////////////////////////////////////////////////////////
  8. //Da bi vam fs radila potrebni su gore ovi includovi
  9. //Da bi vam fs radila morate napraviti u scriptfiles
  10. //folder Igraci i Kuce
  11. //FS je u beta fazi tako da su bugovi moguci
  12. /////////////////////////////////////////////////////////
  13. #define BELA            "{FFFFFF}"
  14. #define ZELENA          "{0ed400}"
  15. #define CRVENA          "{F81414}"
  16. #define ZUTA            "{F3FF02}"
  17. #define SPLAVA          "{00C0FF}"
  18. #define SIVA            "{C0C0C0}"
  19. ////////////////////////////////////////////////////////
  20. #define SCM        SendClientMessage
  21. #define SPD        ShowPlayerDialog
  22. ////////////////////////////////////////////////////////
  23. #define KUCE_FILE    "Kuce/%d.ini"
  24. #define IGRAC_FILE   "Igraci/%s.ini"
  25. #define DIALOG_KUCA  321
  26. #define DIALOG_OKNOVAC 323
  27. #define DIALOG_UKNOVAC 325
  28. #define DIALOG_IKUCA   327
  29. #define DIALOG_KRENT   330
  30. #define MAX_KUCA 1500
  31. ///////////////////////////////////////////////////////
  32. enum Kuce
  33. {
  34.     kProveraVlasnika,
  35.     kVlasnik[45],
  36.     kVrsta[35],
  37.     kIme[60],
  38.     Float:kUlazX,
  39.     Float:kUlazY,
  40.     Float:kUlazZ,
  41.     Float:kIzlazX,
  42.     Float:kIzlazY,
  43.     Float:kIzlazZ,
  44.     kLevel,
  45.     kCena,
  46.     kNovac,
  47.     kInt,
  48.     kZatvoreno,
  49.     kVW,
  50.     kOruzije,
  51.     kMunicija,
  52.     kRent,
  53.     kCenaRenta,
  54.     kZvono
  55. };
  56. new KucaInfo[MAX_KUCA][Kuce];
  57. new KucaPickup[sizeof(KucaInfo)];
  58. new Text3D:KucaLabel[sizeof(KucaInfo)];
  59. ///////////////////////////////////////////////////
  60. enum pInfo
  61. {
  62.     pPosedovanjeKuce,
  63.     pProveraSpawna,
  64.     pRent
  65. }
  66. new PlayerInfo[MAX_PLAYERS][pInfo];
  67. ///////////////////////////////////////////////////
  68. public OnFilterScriptInit()
  69. {
  70.     for(new idkuce = 0; idkuce < sizeof(KucaInfo); idkuce++)
  71.     {
  72.         new kFile[50], string[400];
  73.         format(kFile, sizeof(kFile), KUCE_FILE, idkuce);
  74.         if(fexist(kFile))
  75.         {
  76.             INI_ParseFile(kFile, "UcitajKuce", .bExtra = true, .extra = idkuce);
  77.             if(KucaInfo[idkuce][kProveraVlasnika] == 0)
  78.             {
  79.                 format(string,sizeof(string),""ZELENA"Kukja na prodazba!\nVrsta: "BELA"%s\n"ZELENA"Cena: "BELA"%d\n"ZELENA"Level: "BELA"%d\n"ZELENA"ID Kuce: "BELA"%d\n"ZELENA"Za da ja kupite /kupikukja",KucaInfo[idkuce][kVrsta],KucaInfo[idkuce][kCena],KucaInfo[idkuce][kLevel],idkuce);
  80.                 KucaLabel[idkuce] = Create3DTextLabel(string ,0x33CCFFAA,KucaInfo[idkuce][kUlazX],KucaInfo[idkuce][kUlazY],KucaInfo[idkuce][kUlazZ],25,0,1);
  81.                 KucaPickup[idkuce] = CreatePickup(1273, 1, KucaInfo[idkuce][kUlazX], KucaInfo[idkuce][kUlazY], KucaInfo[idkuce][kUlazZ]);
  82.             }
  83.             else if(KucaInfo[idkuce][kProveraVlasnika] == 1)
  84.             {
  85.                 format(string,sizeof(string),""ZELENA"[ "BELA"%s "ZELENA"]\n"ZELENA"Gazda: "BELA"%s\n"ZELENA"Vrsta: "BELA"%s\n"ZELENA"Level: "BELA"%d\n"ZELENA"Cena: "BELA"%d\n"ZELENA"Rent: "BELA"%d\n"ZELENA"ID Kukja: "BELA"%d\n"ZELENA"'F' za vlez vo kukjata",KucaInfo[idkuce][kIme],KucaInfo[idkuce][kVlasnik],KucaInfo[idkuce][kVrsta],KucaInfo[idkuce][kLevel],KucaInfo[idkuce][kCena],KucaInfo[idkuce][kCenaRenta],idkuce);
  86.                 KucaLabel[idkuce] = Create3DTextLabel(string ,0x33CCFFAA,KucaInfo[idkuce][kUlazX],KucaInfo[idkuce][kUlazY],KucaInfo[idkuce][kUlazZ],25,0,1);
  87.                 KucaPickup[idkuce] = CreatePickup(1239, 1, KucaInfo[idkuce][kUlazX], KucaInfo[idkuce][kUlazY], KucaInfo[idkuce][kUlazZ]);
  88.             }
  89.         }
  90.     }
  91.     DisableInteriorEnterExits(); print("House System by gReeDy.aMx");
  92.     return 1;
  93. }
  94. ///////////////////////////////////////////////////
  95. public OnFilterScriptExit()
  96. {
  97.     for(new k = 0; k <= MAX_KUCA; k++) { SacuvajKucu(k); }
  98.     return 1;
  99. }
  100. ///////////////////////////////////////////////////
  101. public OnPlayerConnect(playerid)
  102. {
  103.     PlayerInfo[playerid][pProveraSpawna] = 0; PlayerInfo[playerid][pPosedovanjeKuce] = -1; PlayerInfo[playerid][pRent] = -1;
  104.     new igraci[50]; format(igraci, sizeof(igraci), IGRAC_FILE, ImeIgraca(playerid));
  105.     if(!fexist(igraci))
  106.     {
  107.         MiniRegis(playerid);
  108.     }
  109.     else
  110.     {
  111.         INI_ParseFile(igraci, "UcitavanjeIgraca", .bExtra = true, .extra = playerid);
  112.         SCM(playerid,-1,"Ucitavanje...");
  113.     }
  114.     return 1;
  115. }
  116. ///////////////////////////////////////////////////
  117. public OnPlayerDisconnect(playerid, reason)
  118. {
  119.     SacuvajIgraca(playerid);
  120.     return 1;
  121. }
  122. ///////////////////////////////////////////////////
  123. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  124. {
  125.     if( newkeys == KEY_SECONDARY_ATTACK )
  126.     {
  127.         for(new i; i < MAX_KUCA; i++)
  128.         {
  129.              if(IsPlayerInRangeOfPoint(playerid, 3.0, KucaInfo[i][kUlazX], KucaInfo[i][kUlazY], KucaInfo[i][kUlazZ]))
  130.              {
  131.                 if(KucaInfo[i][kZatvoreno] == 1) return SCM(playerid,-1,""SPLAVA"[Kukja] "SIVA"Zakluceno!");
  132.                 SetPlayerVirtualWorld(playerid, KucaInfo[i][kVW]);
  133.                 SetPlayerInterior(playerid, KucaInfo[i][kInt]);
  134.                 SetPlayerPos(playerid, KucaInfo[i][kIzlazX], KucaInfo[i][kIzlazY], KucaInfo[i][kIzlazZ]);
  135.                 return 1;
  136.              }
  137.              if(IsPlayerInRangeOfPoint(playerid, 3.0, KucaInfo[i][kIzlazX], KucaInfo[i][kIzlazY], KucaInfo[i][kIzlazZ]) && GetPlayerVirtualWorld(playerid) == KucaInfo[i][kVW])
  138.              {
  139.                 SetPlayerInterior(playerid, 0);
  140.                 SetPlayerVirtualWorld(playerid, 0);
  141.                 SetPlayerPos(playerid, KucaInfo[i][kUlazX], KucaInfo[i][kUlazY], KucaInfo[i][kUlazZ]);
  142.                 return 1;
  143.              }
  144.         }
  145.     }
  146.     return 1;
  147. }
  148. ///////////////////////////////////////////////////
  149. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  150. {
  151.     if(dialogid == DIALOG_KUCA)
  152.     {
  153.     if(!response) return 1;
  154.     if(PlayerInfo[playerid][pPosedovanjeKuce] == -1) return SCM(playerid,-1, ""CRVENA"HS | "SIVA"Nemate kukja!");
  155.     new i = PlayerInfo[playerid][pPosedovanjeKuce];
  156.     switch(listitem)
  157.     {
  158.     case 0:
  159.     {
  160.         new string[256];
  161.         SCM(playerid,-1,""ZELENA"|---------------------------------------------------------------------------------------------------|");
  162.         format(string,sizeof(string),""SIVA"Ime Kukja: %s | Gazda: %s | Level: %d ",KucaInfo[i][kIme],KucaInfo[i][kVlasnik],KucaInfo[i][kLevel]);
  163.         SCM(playerid,-1,string);
  164.         format(string,sizeof(string),""SIVA"Cena: %d | ID: %d | Vrednost: %d | Oruzje: %d | Kursumi: %d",KucaInfo[i][kCena],i,KucaInfo[i][kNovac],KucaInfo[i][kOruzije],KucaInfo[i][kMunicija]);
  165.         SCM(playerid,-1,string);
  166.         SCM(playerid,-1,""ZELENA"|---------------------------------------------------------------------------------------------------|");
  167.     }
  168.     case 1:
  169.     {
  170.         if(KucaInfo[i][kZatvoreno] == 0) return SCM(playerid,-1,"HS | "CRVENA"Vekje e otklucena!");
  171.         KucaInfo[i][kZatvoreno] = 0; SacuvajKucu(i);
  172.         SCM(playerid,-1, ""ZELENA"[HS] "BELA"Kuca otkljucana!");
  173.     }
  174.     case 2:
  175.     {
  176.         if(KucaInfo[i][kZatvoreno] == 1) return SCM(playerid,-1,"HS | "CRVENA"Vekje e zaklucena!");
  177.         KucaInfo[i][kZatvoreno] = 1; SacuvajKucu(i);
  178.         SCM(playerid,-1, ""ZELENA"[HS] "BELA"Kukjata e zaklucena!");
  179.     }
  180.     case 3:
  181.     {
  182.         SPD(playerid,DIALOG_OKNOVAC,DIALOG_STYLE_INPUT, ""ZELENA"Ostavaete pari", ""BELA"Vnesete kolicina na pari kolku sakate da vnesete", "Ostavi", "Izlez");
  183.     }
  184.     case 4:
  185.     {
  186.         SPD(playerid,DIALOG_UKNOVAC,DIALOG_STYLE_INPUT, ""ZELENA"Podignuvanje pari", ""BELA"Vnesete kolicina na pari kolku sakate da zemete", "Zemi", "Izlez");
  187.     }
  188.     case 5:
  189.     {
  190.         if(KucaInfo[i][kOruzije] != -1) return SCM(playerid,-1,""ZUTA"Vekje imate oruzje vo kukjata!");
  191.         if(GetPlayerWeapon(playerid) <= 0) return SCM(playerid,-1,"HS | "ZUTA"Nemas oruzje vo rakata!");
  192.         KucaInfo[i][kOruzije] = GetPlayerWeapon(playerid); KucaInfo[i][kMunicija] = GetPlayerAmmo(playerid);
  193.         SCM(playerid,-1,""ZUTA"Ostavili ste oruzije u kucu!"); SacuvajKucu(i); SetPlayerAmmo(playerid, GetPlayerWeapon(playerid), 0);
  194.     }
  195.     case 6:
  196.     {
  197.         if(KucaInfo[i][kOruzije] == -1) return SCM(playerid,-1,""ZUTA"Nemas oruzje vo kukjata!");
  198.         GivePlayerWeapon(playerid,KucaInfo[i][kOruzije],KucaInfo[i][kMunicija]); KucaInfo[i][kOruzije] = -1; KucaInfo[i][kMunicija] = -1;
  199.         SacuvajKucu(i); SCM(playerid,-1,""ZUTA"Zedovte oruzje od vasata kukja!");
  200.     }
  201.     case 7:
  202.     {
  203.         new string[60]; GivePlayerMoney(playerid,KucaInfo[i][kCena]);
  204.         KucaInfo[i][kProveraVlasnika] = 0; KucaInfo[i][kNovac] = 0; KucaInfo[i][kOruzije] = -1; KucaInfo[i][kMunicija] = 0;
  205.         KucaInfo[i][kZatvoreno] = 1; strmid(KucaInfo[i][kIme],"Default",0,strlen("Default"),255);
  206.         strmid(KucaInfo[i][kVlasnik], "Niko", 0, strlen("Niko"), 255); PlayerInfo[playerid][pPosedovanjeKuce] = -1;
  207.         SacuvajKucu(i); KuceLP(i); SacuvajIgraca(playerid);
  208.         format(string,sizeof(string),""ZUTA"Ja prodadovte vasata kukja za %d!",KucaInfo[i][kCena]);
  209.         SCM(playerid,-1,string);
  210.     }
  211.     case 8:
  212.     {
  213.         SPD(playerid, DIALOG_IKUCA, DIALOG_STYLE_INPUT, ""ZELENA"Kukja Ime", ""BELA"Vnesete go imeto na kukjata", "Promeni", "Izlez");
  214.     }
  215.     case 9:
  216.     {
  217.         PlayerInfo[playerid][pProveraSpawna] = 1;
  218.         SCM(playerid,-1,""ZUTA"Odbravte spawn na vasata kukja, odsega ovde kje se respawnuvate!");
  219.     }
  220.     case 10:
  221.     {
  222.         if(KucaInfo[i][kRent] == 0)
  223.         {
  224.             KucaInfo[i][kRent] = 1;
  225.             SCM(playerid,-1,""ZUTA"Odbravte rent na kukjata!");
  226.         }
  227.         else if(KucaInfo[i][kRent] == 1)
  228.         {
  229.             KucaInfo[i][kRent] = 0;
  230.             SCM(playerid,-1,""ZUTA"Zabranivte rent na vasata kukja!");
  231.         }
  232.     }
  233.     case 11:
  234.     {
  235.         if(KucaInfo[i][kRent] == 0) return SCM(playerid,-1,""ZUTA"Na vasata kukja zabranet e rentot, nemozete da postavuvate cena na rent!");
  236.         SPD(playerid, DIALOG_KRENT, DIALOG_STYLE_INPUT, ""ZELENA"Cena Rent", ""BELA"Vnesete ja novata cena na rent", "Promeni", "Izlez");
  237.     }
  238.     case 12:
  239.     {
  240.         if(KucaInfo[i][kZvono] == 1) return SCM(playerid,-1,""ZUTA"Vekje imate zvonce na vasata kukja!");
  241.         if(GetPlayerMoney(playerid) < 5000) return SCM(playerid,-1,""ZUTA"Nemate dovolno pari!");
  242.         KucaInfo[i][kZvono] = 1; GivePlayerMoney(playerid,-5000); SCM(playerid,-1,""ZUTA"Postavivte zvonce na vasata kukja!");
  243.     }
  244.     }
  245.     }
  246.     ///////////////////////////////////////////////////
  247.     if(dialogid == DIALOG_KRENT)
  248.     {
  249.     if(response)
  250.     {
  251.     new i = PlayerInfo[playerid][pPosedovanjeKuce],cena;
  252.     if(sscanf(inputtext, "i", cena)) return SPD(playerid, DIALOG_KRENT, DIALOG_STYLE_INPUT, ""ZELENA"Cena Rent", ""BELA"Vnesete cena na rent", "Promeni", "Izlez");
  253.     if(cena < 1 || cena > 1000) return SCM(playerid,-1,""ZUTA"Cenata nemoze da bide pomala od 1 ili pogolema od 1000!");
  254.     KucaInfo[i][kCenaRenta] = cena; SacuvajKucu(i); KuceLP(i); SCM(playerid,-1,""ZUTA"Ja promenivte cenata na rentot!");
  255.     }
  256.     }
  257.     ///////////////////////////////////////////////////
  258.     if(dialogid == DIALOG_OKNOVAC)
  259.     {
  260.     if(PlayerInfo[playerid][pPosedovanjeKuce] == -1) return SCM(playerid,-1, ""CRVENA"HS | "SIVA"Nemate kukja!");
  261.     new i = PlayerInfo[playerid][pPosedovanjeKuce];
  262.     if(response)
  263.     {
  264.     new iznos,string[256];
  265.     if(sscanf(inputtext, "i", iznos)) return SPD(playerid,DIALOG_OKNOVAC,DIALOG_STYLE_INPUT, ""ZELENA"Ostavanje pari", ""BELA"Vnesete kolicina kolku pari sakate da ostavite", "Ostavi", "Izlez");
  266.     if(iznos > GetPlayerMoney(playerid)) return SCM(playerid,-1,"Nemate tolku pari!");
  267.     if(iznos < 1 || iznos > 50000) return SCM(playerid,-1,"Iznosot nemoze da bide pomal od 1 ni pogolem od 50000!");
  268.     KucaInfo[i][kNovac] += iznos; GivePlayerMoney(playerid, -iznos); SacuvajKucu(i);
  269.     format(string,sizeof(string),"HS | "ZELENA"Ostavivte vo vasata kukja %d$!",iznos);
  270.     SCM(playerid,-1,string);
  271.     }
  272.     }
  273.     //////////////////////////////////////////////////
  274.     if(dialogid == DIALOG_UKNOVAC)
  275.     {
  276.     if(PlayerInfo[playerid][pPosedovanjeKuce] == -1) return SCM(playerid,-1, ""CRVENA"HS | "SIVA"Nemate kukja!");
  277.     new i = PlayerInfo[playerid][pPosedovanjeKuce];
  278.     if(response)
  279.     {
  280.     new iznos,string[256];
  281.     if(sscanf(inputtext, "i", iznos)) return SPD(playerid,DIALOG_UKNOVAC,DIALOG_STYLE_INPUT, ""ZELENA"Podignuvanje pari", ""BELA"Vnesete kolicina kolku pari sakate da zemete", "Zemi", "Izlez");
  282.     if(iznos > KucaInfo[i][kNovac]) return SCM(playerid,-1,"Nemate tolku pari vo kukjata!");
  283.     if(iznos < 1 || iznos > 50000) return SCM(playerid,-1,"Sumata nemoze da bide pomala od 1 ni pogolema od 50000!");
  284.     KucaInfo[i][kNovac] -= iznos; GivePlayerMoney(playerid, iznos); SacuvajKucu(i);
  285.     format(string,sizeof(string),"HS | "ZELENA"Podignavte od vasata kukja %d$!",iznos);
  286.     SCM(playerid,-1,string);
  287.     }
  288.     }
  289.     //////////////////////////////////////////////////
  290.     if(dialogid == DIALOG_IKUCA)
  291.     {
  292.     if(response)
  293.     {
  294.     if(PlayerInfo[playerid][pPosedovanjeKuce] == -1) return SCM(playerid,-1, "HS | "ZUTA"Nemate kukja!");
  295.     new ime[40],string[80],i = PlayerInfo[playerid][pPosedovanjeKuce];
  296.     if(sscanf(inputtext, "s[40]", ime)) return SPD(playerid, DIALOG_IKUCA, DIALOG_STYLE_INPUT, ""ZELENA"Kukja Ime", ""BELA"Vnesete go novoto ime na kukjata", "Promeni", "Izlez");
  297.     if(strlen(ime) > 40) return SCM(playerid,-1,""CRVENA"Imeto od kukjata nemoze da sodrzi povekje od 40 znakovi!");
  298.     strmid(KucaInfo[i][kIme],ime,0,strlen(ime),255); SacuvajKucu(i); KuceLP(i);
  299.     format(string,sizeof(string),""ZUTA"Vasto ime na kukjata e postaveno na %s!",ime);
  300.     SCM(playerid,-1,string);
  301.     }
  302.     }
  303.     //////////////////////////////////////////////////
  304.     return 1;
  305. }
  306. ////////////////////////////////////////////////////
  307. public OnPlayerSpawn(playerid)
  308. {
  309.     if(PlayerInfo[playerid][pProveraSpawna] == 1 && PlayerInfo[playerid][pPosedovanjeKuce] != -1)
  310.     {
  311.         new i = PlayerInfo[playerid][pPosedovanjeKuce];
  312.         SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0);
  313.         SetPlayerPos(playerid, KucaInfo[i][kUlazX], KucaInfo[i][kUlazY], KucaInfo[i][kUlazZ]);
  314.     }
  315.     if(PlayerInfo[playerid][pProveraSpawna] == 2)
  316.     {
  317.         new i = PlayerInfo[playerid][pRent];
  318.         SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0);
  319.         SetPlayerPos(playerid, KucaInfo[i][kUlazX], KucaInfo[i][kUlazY], KucaInfo[i][kUlazZ]);
  320.     }
  321.     return 1;
  322. }
  323. ///////////////////////////////////////////////////
  324. forward UcitajKuce(idkuce, name[], value[]);
  325. public UcitajKuce(idkuce, name[], value[])
  326. {
  327.     INI_Int("ProveraVlasnika",KucaInfo[idkuce][kProveraVlasnika]);
  328.     INI_String("Vlasnik",KucaInfo[idkuce][kVlasnik],45);
  329.     INI_String("Vrsta",KucaInfo[idkuce][kVrsta],35);
  330.     INI_String("Ime",KucaInfo[idkuce][kIme], 60);
  331.     INI_Float("UlazX",KucaInfo[idkuce][kUlazX]);
  332.     INI_Float("UlazY",KucaInfo[idkuce][kUlazY]);
  333.     INI_Float("UlazZ",KucaInfo[idkuce][kUlazZ]);
  334.     INI_Float("IzlazX",KucaInfo[idkuce][kIzlazX]);
  335.     INI_Float("IzlazY",KucaInfo[idkuce][kIzlazY]);
  336.     INI_Float("IzlazZ",KucaInfo[idkuce][kIzlazZ]);
  337.     INI_Int("Level",KucaInfo[idkuce][kLevel]);
  338.     INI_Int("Cena",KucaInfo[idkuce][kCena]);
  339.     INI_Int("Novac",KucaInfo[idkuce][kNovac]);
  340.     INI_Int("Interior",KucaInfo[idkuce][kInt]);
  341.     INI_Int("Zatvoreno",KucaInfo[idkuce][kZatvoreno]);
  342.     INI_Int("VW",KucaInfo[idkuce][kVW]);
  343.     INI_Int("Oruzije",KucaInfo[idkuce][kOruzije]);
  344.     INI_Int("Municija",KucaInfo[idkuce][kMunicija]);
  345.     INI_Int("Rent",KucaInfo[idkuce][kRent]);
  346.     INI_Int("CenaRenta",KucaInfo[idkuce][kCenaRenta]);
  347.     INI_Int("Zvono",KucaInfo[idkuce][kZvono]);
  348.     return 1;
  349. }
  350. ///////////////////////////////////////////////////
  351. stock SacuvajKucu(idkuce)
  352. {
  353.     new kFile[128];
  354.     format(kFile, sizeof(kFile), KUCE_FILE, idkuce);
  355.     new INI:File = INI_Open(kFile);
  356.     INI_WriteInt(File,"ProveraVlasnika",KucaInfo[idkuce][kProveraVlasnika]);
  357.     INI_WriteString(File,"Vlasnik",KucaInfo[idkuce][kVlasnik]);
  358.     INI_WriteString(File,"Vrsta",KucaInfo[idkuce][kVrsta]);
  359.     INI_WriteString(File,"Ime",KucaInfo[idkuce][kIme]);
  360.     INI_WriteFloat(File,"UlazX",KucaInfo[idkuce][kUlazX]);
  361.     INI_WriteFloat(File,"UlazY",KucaInfo[idkuce][kUlazY]);
  362.     INI_WriteFloat(File,"UlazZ",KucaInfo[idkuce][kUlazZ]);
  363.     INI_WriteFloat(File,"IzlazX",KucaInfo[idkuce][kIzlazX]);
  364.     INI_WriteFloat(File,"IzlazY",KucaInfo[idkuce][kIzlazY]);
  365.     INI_WriteFloat(File,"IzlazZ",KucaInfo[idkuce][kIzlazZ]);
  366.     INI_WriteInt(File,"Level",KucaInfo[idkuce][kLevel]);
  367.     INI_WriteInt(File,"Cena",KucaInfo[idkuce][kCena]);
  368.     INI_WriteInt(File,"Novac",KucaInfo[idkuce][kNovac]);
  369.     INI_WriteInt(File,"Interior",KucaInfo[idkuce][kInt]);
  370.     INI_WriteInt(File,"Zatvoreno",KucaInfo[idkuce][kZatvoreno]);
  371.     INI_WriteInt(File,"VW",KucaInfo[idkuce][kVW]);
  372.     INI_WriteInt(File,"Oruzije",KucaInfo[idkuce][kOruzije]);
  373.     INI_WriteInt(File,"Municija",KucaInfo[idkuce][kMunicija]);
  374.     INI_WriteInt(File,"Rent",KucaInfo[idkuce][kRent]);
  375.     INI_WriteInt(File,"CenaRenta",KucaInfo[idkuce][kCenaRenta]);
  376.     INI_WriteInt(File,"Zvono",KucaInfo[idkuce][kZvono]);
  377.     INI_Close(File);
  378.     return 1;
  379. }
  380. //////////////////////////////////////////////////////
  381. stock MiniRegis(playerid)
  382. {
  383.     new igraci[50]; format(igraci, sizeof(igraci), IGRAC_FILE, ImeIgraca(playerid));
  384.     new INI:File = INI_Open(igraci);
  385.     INI_WriteInt(File,"PosedovanjeKuce",-1);
  386.     INI_WriteInt(File,"ProveraSpawna",0);
  387.     INI_WriteInt(File,"Rent",-1);
  388.     INI_Close(File);
  389.     SCM(playerid,-1,"Registracija uspesna!");
  390.     return 1;
  391. }
  392. /////////////////////////////////////////////////////
  393. forward UcitavanjeIgraca(playerid, name[], value[]);
  394. public UcitavanjeIgraca(playerid, name[], value[])
  395. {
  396.     INI_Int("PosedovanjeKuce",PlayerInfo[playerid][pPosedovanjeKuce]);
  397.     INI_Int("ProveraSpawna",PlayerInfo[playerid][pProveraSpawna]);
  398.     INI_Int("Rent",PlayerInfo[playerid][pRent]);
  399.     return 1;
  400. }
  401. /////////////////////////////////////////////////////
  402. stock SacuvajIgraca(playerid)
  403. {
  404.     new igraci[50]; format(igraci, sizeof(igraci), IGRAC_FILE, ImeIgraca(playerid));
  405.     new INI:File = INI_Open(igraci);
  406.     INI_WriteInt(File,"PosedovanjeKuce",PlayerInfo[playerid][pPosedovanjeKuce]);
  407.     INI_WriteInt(File,"ProveraSpawna",PlayerInfo[playerid][pProveraSpawna]);
  408.     INI_WriteInt(File,"Rent",PlayerInfo[playerid][pRent]);
  409.     INI_Close(File);
  410.     return 1;
  411. }
  412. /////////////////////////////////////////////////////
  413. stock KuceLP(idkuce)
  414. {
  415.     new string[400];
  416.     if(KucaInfo[idkuce][kProveraVlasnika] == 0)
  417.     {
  418.         Delete3DTextLabel(KucaLabel[idkuce]);
  419.         DestroyPickup(KucaPickup[idkuce]);
  420.         format(string,sizeof(string),""ZELENA"Kukja na prodazba!\nVrsta: "BELA"%s\n"ZELENA"Cena: "BELA"%d\n"ZELENA"Level: "BELA"%d\n"ZELENA"ID Kuce: "BELA"%d\n"ZELENA"za da ja kupite /kupikukja",KucaInfo[idkuce][kVrsta],KucaInfo[idkuce][kCena],KucaInfo[idkuce][kLevel],idkuce);
  421.         KucaLabel[idkuce] = Create3DTextLabel(string ,0x33CCFFAA,KucaInfo[idkuce][kUlazX],KucaInfo[idkuce][kUlazY],KucaInfo[idkuce][kUlazZ],25,0,1);
  422.         KucaPickup[idkuce] = CreatePickup(1273, 1, KucaInfo[idkuce][kUlazX], KucaInfo[idkuce][kUlazY], KucaInfo[idkuce][kUlazZ]);
  423.     }
  424.     else if(KucaInfo[idkuce][kProveraVlasnika] == 1)
  425.     {
  426.         Delete3DTextLabel(KucaLabel[idkuce]);
  427.         DestroyPickup(KucaPickup[idkuce]);
  428.         format(string,sizeof(string),""ZELENA"[ "BELA"%s "ZELENA"]\n"ZELENA"Gazda: "BELA"%s\n"ZELENA"Vrsta: "BELA"%s\n"ZELENA"Level: "BELA"%d\n"ZELENA"Cena: "BELA"%d\n"ZELENA"Rent: "BELA"%d\n"ZELENA"ID Kukja: "BELA"%d\n"ZELENA"'F' za vlez vo kukjata",KucaInfo[idkuce][kIme],KucaInfo[idkuce][kVlasnik],KucaInfo[idkuce][kVrsta],KucaInfo[idkuce][kLevel],KucaInfo[idkuce][kCena],KucaInfo[idkuce][kCenaRenta],idkuce);
  429.         KucaLabel[idkuce] = Create3DTextLabel(string ,0x33CCFFAA,KucaInfo[idkuce][kUlazX],KucaInfo[idkuce][kUlazY],KucaInfo[idkuce][kUlazZ],25,0,1);
  430.         KucaPickup[idkuce] = CreatePickup(1239, 1, KucaInfo[idkuce][kUlazX], KucaInfo[idkuce][kUlazY], KucaInfo[idkuce][kUlazZ]);
  431.     }
  432.     return 1;
  433. }
  434. ////////////////////////////////////////////////////
  435. stock ImeIgraca(playerid)
  436. {
  437.     new ime[MAX_PLAYER_NAME];
  438.     GetPlayerName(playerid, ime, sizeof(ime));
  439.     return ime;
  440. }
  441. ///////////////////////////////////////////////////
  442. YCMD:pkukja(playerid, params[],help)
  443. {
  444.     #pragma unused help
  445.     if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,"[HS] "CRVENA"Ne ste ovlasteni da ja koristite ovaa komanda!");
  446.     new idkuce,vrsta,level,cena,Float:X,Float:Y,Float:Z,fkuce[80],string[400]; GetPlayerPos(playerid,X,Y,Z);
  447.     if(sscanf(params, "iiii",idkuce,vrsta,level,cena)) return SCM(playerid,-1,""CRVENA"HS | "SIVA"/kreirajkucu [ID] [Vrsta] [Level] [Cena]");
  448.     if(idkuce >= MAX_KUCA) return SCM(playerid,-1, ""CRVENA"HS | "SIVA"Maximum na kukji e napraveno nemozes da koristis toj ID!");
  449.     format(fkuce, sizeof(fkuce), KUCE_FILE, idkuce);
  450.     if(fexist(fkuce)) return SCM(playerid,-1, "HS | "SPLAVA"ID od taa kukja vekje postoi!");
  451.     if(vrsta == 3) // Mala Kukja
  452.     {
  453.         KucaInfo[idkuce][kIzlazX] = 223.043991;
  454.         KucaInfo[idkuce][kIzlazY] = 1289.259888;
  455.         KucaInfo[idkuce][kIzlazZ] = 1082.199951;
  456.         KucaInfo[idkuce][kInt] = 1;
  457.         strmid(KucaInfo[idkuce][kVrsta],"Mala Kukja",0,strlen("Mala Kukja"),255);
  458.     }
  459.     else if(vrsta == 1) // Sredna Kukja
  460.     {
  461.         KucaInfo[idkuce][kIzlazX] = 225.756989;
  462.         KucaInfo[idkuce][kIzlazY] = 1240.000000;
  463.         KucaInfo[idkuce][kIzlazZ] = 1082.149902;
  464.         KucaInfo[idkuce][kInt] = 2;
  465.         strmid(KucaInfo[idkuce][kVrsta],"Sredna Kukja",0,strlen("Sredna Kukja"),255);
  466.     }
  467.     else if(vrsta == 2) // Golema Kukja
  468.     {
  469.         KucaInfo[idkuce][kIzlazX] = 235.508994;
  470.         KucaInfo[idkuce][kIzlazY] = 1189.169897;
  471.         KucaInfo[idkuce][kIzlazZ] = 1080.339966;
  472.         KucaInfo[idkuce][kInt] = 3;
  473.         strmid(KucaInfo[idkuce][kVrsta],"Golema Kukja",0,strlen("Golema Kukja"),255);
  474.     }
  475.     KucaInfo[idkuce][kCena] = cena; KucaInfo[idkuce][kLevel] = level; KucaInfo[idkuce][kUlazX] = X;
  476.     KucaInfo[idkuce][kUlazY] = Y; KucaInfo[idkuce][kUlazZ] = Z; KucaInfo[idkuce][kProveraVlasnika] = 0;
  477.     KucaInfo[idkuce][kNovac] = 0; KucaInfo[idkuce][kZatvoreno] = 1; KucaInfo[idkuce][kVW] = idkuce; KucaInfo[idkuce][kZvono] = 0;
  478.     KucaInfo[idkuce][kOruzije] = -1; KucaInfo[idkuce][kMunicija] = 0; KucaInfo[idkuce][kRent] = 0; KucaInfo[idkuce][kCenaRenta] = 50;
  479.     strmid(KucaInfo[idkuce][kVlasnik],"Niko",0,strlen("Niko"),255); strmid(KucaInfo[idkuce][kIme],"Default",0,strlen("Default"),255);
  480.     format(string,sizeof(string),""ZELENA"Kukja na prodazba!\nVrsta: "BELA"%s\n"ZELENA"Cena: "BELA"%d\n"ZELENA"Level: "BELA"%d\n"ZELENA"ID Kukja: "BELA"%d\n"ZELENA"za da ja kupite /kupikukja",KucaInfo[idkuce][kVrsta],KucaInfo[idkuce][kCena],KucaInfo[idkuce][kLevel],idkuce);
  481.     KucaLabel[idkuce] = Create3DTextLabel(string ,0x33CCFFAA,X,Y,Z,25,0,1);
  482.     KucaPickup[idkuce] = CreatePickup(1273, 1, KucaInfo[idkuce][kUlazX], KucaInfo[idkuce][kUlazY], KucaInfo[idkuce][kUlazZ]);
  483.     SCM(playerid,-1,""SIVA"Kukjata e uspesno kreirana!"); SacuvajKucu(idkuce);
  484.     return 1;
  485. }
  486. ///////////////////////////////////////////////////
  487. YCMD:kupikukja(playerid, params[], help)
  488. {
  489.     #pragma unused help
  490.     #pragma unused params
  491.     for(new i; i < sizeof(KucaInfo); i++)
  492.     {
  493.     if(IsPlayerInRangeOfPoint(playerid, 3.0, KucaInfo[i][kUlazX], KucaInfo[i][kUlazY], KucaInfo[i][kUlazZ]))
  494.     {
  495.     if(!strcmp(KucaInfo[i][kVlasnik], "Niko", true) && KucaInfo[i][kProveraVlasnika] == 0)
  496.     {
  497.         if(PlayerInfo[playerid][pPosedovanjeKuce] != -1) return SCM(playerid,-1, ""CRVENA"HS | "SIVA"Vekje imate kukja!");
  498.         if(GetPlayerScore(playerid) < KucaInfo[i][kLevel]) return SCM(playerid,-1,"HS | "CRVENA"Nemate dovolno golem level za da ja kupite kukjata!");
  499.         if(GetPlayerMoney(playerid) < KucaInfo[i][kCena]) return SCM(playerid,-1, "HS | "CRVENA"Nemate dovolno pari za da ja kupite kukjata!");
  500.         if(PlayerInfo[playerid][pRent] != -1) return SCM(playerid,-1,"HS | "CRVENA"Rentate kukja, prvo unrentajte ja za da ja kupite ovaa kukja!");
  501.         strmid(KucaInfo[i][kVlasnik], ImeIgraca(playerid), 0, strlen(ImeIgraca(playerid)), 255);
  502.         KucaInfo[i][kProveraVlasnika] = 1; SetPlayerInterior(playerid, KucaInfo[i][kInt]); PlayerInfo[playerid][pPosedovanjeKuce] = i;
  503.         SetPlayerVirtualWorld(playerid, KucaInfo[i][kVW]); SetPlayerPos(playerid, KucaInfo[i][kIzlazX], KucaInfo[i][kIzlazY], KucaInfo[i][kIzlazZ]);
  504.         KucaInfo[i][kZatvoreno] = 0; GivePlayerMoney(playerid, -KucaInfo[i][kCena]); KuceLP(i); SacuvajKucu(i);
  505.         SCM(playerid,-1, ""SPLAVA"MWRPG | "SIVA"Cestitame, ste kupile kukja!");
  506.         SCM(playerid,-1, ""SPLAVA"MWRPG | "SIVA"Za komandite koristete /kuca!");
  507.         SCM(playerid,-1, ""SPLAVA"MWRPG | "SIVA"Za vlez koristete bukva (F) ili Enter!");
  508.         return 1;
  509.     }
  510.     else return SCM(playerid, -1, ""CRVENA"HS | "SIVA"Taa kukja ne se prodava!");
  511.     }
  512.     }
  513.     return 1;
  514. }
  515. ////////////////////////////////////////////////////
  516. YCMD:kukja(playerid, params[], help)
  517. {
  518.     #pragma unused help
  519.     #pragma unused params
  520.     if(PlayerInfo[playerid][pPosedovanjeKuce] == -1) return SCM(playerid,-1,""CRVENA"HS | "SIVA"Nemate kukja!");
  521.     if(strcmp(KucaInfo[PlayerInfo[playerid][pPosedovanjeKuce]][kVlasnik], ImeIgraca(playerid), true)) return SCM(playerid,-1, ""CRVENA"HS | "SIVA"Niste vlasnik te kuce!");
  522.     new string[256];
  523.     format(string,sizeof(string),""BELA"Informacii\nOtkluci\nZakluci\nOstavi pari\nZemi pari\nOstavi gun\nZemi gun\nProdaj kukja\nPromeni Ime\nKukja Spawn\nDozvoli/Zabrani Rent\nCena Rent\nZvonce (5000$)");
  524.     SPD(playerid, DIALOG_KUCA, DIALOG_STYLE_LIST, ""ZELENA"Kukja Opcii", string, "Odberi", "Izlez");
  525.     return 1;
  526. }
  527. ////////////////////////////////////////////////////
  528. YCMD:rentajkukja(playerid, params[], help)
  529. {
  530.     #pragma unused help
  531.     #pragma unused params
  532.     for(new i = 0; i < MAX_KUCA; i++)
  533.     {
  534.     if(IsPlayerInRangeOfPoint(playerid, 3.0, KucaInfo[i][kUlazX], KucaInfo[i][kUlazY], KucaInfo[i][kUlazZ]))
  535.     {
  536.         if(PlayerInfo[playerid][pPosedovanjeKuce] != -1) return SCM(playerid,-1, ""CRVENA"HS | "SIVA"Vekje imate kukja nemozete da rentate druga!");
  537.         if(KucaInfo[i][kRent] == 0) return SCM(playerid,-1,"HS | "ZUTA"Vo ovaa kukja rentot e zabranet!");
  538.         if(GetPlayerMoney(playerid) < KucaInfo[i][kCenaRenta]) return SCM(playerid,-1,"HS | "ZUTA"Nemate dovolno pari za rent!");
  539.         GivePlayerMoney(playerid, KucaInfo[i][kCenaRenta]); KucaInfo[i][kNovac] += KucaInfo[i][kCenaRenta];
  540.         PlayerInfo[playerid][pRent] = i; SetPlayerInterior(playerid, KucaInfo[i][kInt]); SetPlayerVirtualWorld(playerid, KucaInfo[i][kVW]);
  541.         SetPlayerPos(playerid, KucaInfo[i][kIzlazX], KucaInfo[i][kIzlazY], KucaInfo[i][kIzlazZ]); PlayerInfo[playerid][pProveraSpawna] = 2;
  542.         SCM(playerid,-1,""ZUTA"Uspesno ja rentate kukjata!"); SacuvajKucu(i); SacuvajIgraca(playerid);
  543.         return 1;
  544.     }
  545.     }
  546.     return 1;
  547. }
  548. ///////////////////////////////////////////////////
  549. YCMD:zvoni(playerid, params[], help)
  550. {
  551.     #pragma unused params
  552.     #pragma unused help
  553.     for(new i = 0; i < sizeof(KucaInfo); i++)
  554.     {
  555.     if(IsPlayerInRangeOfPoint(playerid, 3.0, KucaInfo[i][kUlazX], KucaInfo[i][kUlazY], KucaInfo[i][kUlazZ]))
  556.     {
  557.         if(KucaInfo[i][kZvono] == 0) return SCM(playerid,-1,""SIVA"Taa kukja nema zvonce!");
  558.         SCM(playerid,-1,""ZUTA"Zvonite na vrata!");
  559.         foreach(Player, k)
  560.         {
  561.         if (IsPlayerInRangeOfPoint(k,3.0,KucaInfo[i][kIzlazX], KucaInfo[i][kIzlazY], KucaInfo[i][kIzlazZ]))
  562.         {
  563.             SCM(k,-1, ""ZUTA"Nekoj zvoni na vasata vrata.");
  564.         }
  565.         }
  566.     }
  567.     }
  568.     return 1;
  569. }
  570. ////////////////////////////////////////////////////
  571. YCMD:unrentaj(playerid, params[], help)
  572. {
  573.     #pragma unused params
  574.     #pragma unused help
  575.     if(PlayerInfo[playerid][pPosedovanjeKuce] != -1) return SCM(playerid,-1, ""CRVENA"HS | "SIVA"Imate kukja nemozete ova!");
  576.     if(PlayerInfo[playerid][pRent] == -1) return SCM(playerid,-1,""ZUTA"Ne rentate kukja!");
  577.     PlayerInfo[playerid][pRent] = -1; SetPlayerHealth(playerid,0); SCM(playerid,-1,""ZUTA"Ja unrentovavte kukjata!");
  578.     return 1;
  579. }
  580. ////////////////////////////////////////////////////
  581. YCMD:izbrisikukja(playerid, params[], help)
  582. {
  583.     #pragma unused help
  584.     #pragma unused params
  585.     if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,"HS | "CRVENA"Ne ste ovlasteni da ja koristete ovaa komanda!");
  586.     new kFile[50],id;
  587.     if(sscanf(params,"i",id)) return SCM(playerid,-1,"HS | "ZUTA"/izbrisikucu [ID]");
  588.     format(kFile, sizeof(kFile), KUCE_FILE, id);
  589.     if(fexist(kFile)){ fremove(kFile); Delete3DTextLabel(KucaLabel[id]); DestroyPickup(KucaPickup[id]); }
  590.     else { SCM(playerid,-1,"Toj ID od kukjata ne postoj!"); }
  591.     return 1;
  592. }
  593. ////////////////////////////////////////////////////
  594. YCMD:portkukja(playerid, params[], help)
  595. {
  596.     #pragma unused help
  597.     #pragma unused params
  598.     if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,"HS | "CRVENA"Ne ste ovlasteni da ja koristite ovaa komanda!");
  599.     new id,kFile[50];
  600.     if(sscanf(params,"i",id)) return SCM(playerid,-1,"HS | "ZUTA"/portkuca [ID]");
  601.     format(kFile, sizeof(kFile), KUCE_FILE, id);
  602.     SetPlayerPos(playerid,KucaInfo[id][kUlazX], KucaInfo[id][kUlazY], KucaInfo[id][kUlazZ]);
  603.     SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid,0);
  604.     return 1;
  605. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement