Advertisement
Maki187

Dinamican Stan Sistem v0.2

Apr 16th, 2012
606
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 25.66 KB | None | 0 0
  1. /* Dinamican Stan Sistem
  2. Credits:
  3. *Maki187 (Marko_Dimitrijevic) - izrada cele FS
  4. **[BUL]Gagi ([BD] Gagi) - prebacivanje u y_ini ( hvala care ) :D
  5. CuervO_NegrO - prema njegovoj komandi napravljena je i ovde za postavljanje stana
  6.  
  7. NESKLANJAJ CREDITSE!!!
  8. |=============[v0.1 - 3.3.2012]============|
  9. Izrada cele FS
  10. Komande: /pstan(rcon) | /astan (rcon) | /edit cenu/level/int/opis | /kupistan | /prodajstan |/stan lock/info/takemoney/putmoney | /shelp
  11. |=============[v0.2 - 07.3.2012]============|
  12. Fixan bug sa uzimanjem/stavljanjem novca u stanove sa istim intom | Fixan bug sa bagovanjem novca u stanu ( - kolicina).
  13. Dodat Level pri kupovini. | Od sad se spawnate u stanu, to mozete da iskljucite opcijom changespawn.
  14. Od sada pri postavljanju stana, postavlja se random INT(namestaj) | Sad mozete IG i da editujete lvl, int(namestaj) i cenu.
  15. Sejvanje sa Dini prebaceno u Y_INI(zasluga gagiju), umesto zasebnih komandi, sad se sve nalazi pod jednom, odnosno /stan lock /stan info ...
  16. */
  17. #define FILTERSCRIPT
  18.  
  19. #include <a_samp>
  20. #include <float>
  21. #include <zcmd>
  22. #include <foreach>
  23. #include <YSI/y_ini>
  24. #include <Streamer>
  25. #include <sscanf2>
  26.  
  27.  
  28. #define ZUTA 0xDABB3EAA
  29. #define BELA 0xFFFFFFAA
  30. #define CRVENA 0xFF0000FF
  31. #define SIVA 0xBFC0C2FF
  32. #define PRESSED(%0) \
  33.     (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  34. #define randomEx(%0,%1)             (random((%1) - (%0)) + (%0)) // za ovo sam saznao od Gagija :D
  35. enum Stanovi
  36. {
  37.     Float:sUlaZx,
  38.     Float:sUlaZy,
  39.     Float:sUlaZz,
  40.     Float:sIzlaZx,
  41.     Float:sIzlaZy,
  42.     Float:sIzlaZz,
  43.     sVlasnik[MAX_PLAYER_NAME],
  44.     sOpis[MAX_PLAYER_NAME],
  45.     sPosedovan,
  46.     sPostavljen,
  47.     sZakljucan,
  48.     sNovac,
  49.     sCena,
  50.     sWorld,
  51.     sPoruka[32],
  52.     sInt,
  53.     sLevel,
  54.     sSpawn
  55. };
  56.  
  57. new StanInfo[500][Stanovi];
  58. new UsoUStan[MAX_PLAYERS]; // provera jel igrac u stanu
  59. new StanPickup[sizeof(StanInfo)]; // pickup od stana
  60. new Text3D:StanLabel[sizeof(StanInfo)]; // 3d text ispred vrata
  61. new imeigraca[MAX_PLAYER_NAME]; // za proveru imena igraca
  62. new randomINT;
  63.  
  64. public OnFilterScriptInit()
  65. {
  66.     print("\n--------------------------------------");
  67.     print(" Dinamican Stan Sistem by: Maki187 (Marko_Dimitrijevic)");
  68.     print(" Dinamican Stan Sistem v0.2");
  69.     print(" Balkan Rising - www.balkan-rising.info");
  70.     print(" Alfa Games - www.alfa-gaming.info");
  71.     print(" -------------[PRIJATELJI]------------");
  72.     print(" Bestbalkandj.com - www.bestbalkandj.com");
  73.     print(" Serbian Warez - www.serbian-warez.in.rs");
  74.     print(" Balkan Undergorund - www.bu-rp.info");
  75.     print(" Egrotusi TDM - www.egrotusi-tdm.game.ba");
  76.     print("--------------------------------------\n");
  77.     new string[828];
  78.     for(new s = 0; s < sizeof(StanInfo); s++)
  79.     {
  80.         new gFile[35];
  81.         format(gFile, 35, "Stanovi2/%d.ini" ,s);
  82.         INI_ParseFile(gFile, "UcitajStanove", .bExtra = true, .extra = s);
  83.         if(StanInfo[s][sPostavljen] == 1)
  84.         {
  85.             if(StanInfo[s][sPosedovan] == 0)
  86.             {
  87.                 format(string,sizeof(string),"{458B00}Na prodaju! \n {458B00}Adresa: {FFFFFF}%d \n {458B00}Cena: {FFFFFF}$%d\n {458B00}Level: {FFFFFF}%d \n {458B00}Opis: {FFFFFF}%s",StanInfo[s][sWorld], StanInfo[s][sCena],StanInfo[s][sLevel], StanInfo[s][sOpis]);
  88.                 StanLabel[s] = Create3DTextLabel(string ,0x00FF00AA,StanInfo[s][sUlaZx], StanInfo[s][sUlaZy], StanInfo[s][sUlaZz],25, 0, 1);
  89.                 StanPickup[s] = CreateDynamicPickup(1273, 1, StanInfo[s][sUlaZx], StanInfo[s][sUlaZy], StanInfo[s][sUlaZz]);
  90.             }
  91.             if(StanInfo[s][sPosedovan] == 1)
  92.             {
  93.                 format(string,sizeof(string)," {458B00}Vlasnik: {FFFFFF}%s \n {458B00}Adresa: {FFFFFF}%d \n {458B00}Opis: {FFFFFF}%s",StanInfo[s][sVlasnik],StanInfo[s][sWorld], StanInfo[s][sOpis]);
  94.                 StanLabel[s] = Create3DTextLabel(string ,0x00FFFFAA,StanInfo[s][sUlaZx], StanInfo[s][sUlaZy], StanInfo[s][sUlaZz],25, 0, 1);
  95.                 StanPickup[s] = CreateDynamicPickup(1273, 1, StanInfo[s][sUlaZx], StanInfo[s][sUlaZy], StanInfo[s][sUlaZz]);
  96.             }
  97.         }
  98.     }
  99.     return 1;
  100. }
  101. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  102. {
  103.     if(PRESSED(KEY_SECONDARY_ATTACK))
  104.     {
  105.         for(new i = 0; i < sizeof(StanInfo); i++)
  106.         {
  107.             if (IsPlayerInRangeOfPoint(playerid, 3,StanInfo[i][sUlaZx], StanInfo[i][sUlaZy], StanInfo[i][sUlaZz]))
  108.             {
  109.                 GetPlayerName(playerid, imeigraca, sizeof(imeigraca));
  110.                 if(StanInfo[i][sZakljucan] == 0|| strcmp(StanInfo[i][sVlasnik], imeigraca, false ) == 0)
  111.                 {
  112.                     SetPlayerInterior(playerid,StanInfo[i][sInt]); SetPlayerVirtualWorld(playerid,StanInfo[i][sWorld]);
  113.                     SetPlayerPos(playerid,StanInfo[i][sIzlaZx],StanInfo[i][sIzlaZy],StanInfo[i][sIzlaZz]);
  114.                     UsoUStan[playerid] = i;
  115.                 }
  116.                 else
  117.                 {
  118.                     GameTextForPlayer(playerid, "~r~Zakljucano", 5000, 1);
  119.                     return 1;
  120.                 }
  121.             }
  122.         }
  123.         if(UsoUStan[playerid] != 501)
  124.         {
  125.             new i = UsoUStan[playerid];
  126.             if(IsPlayerInRangeOfPoint(playerid, 3,StanInfo[i][sIzlaZx], StanInfo[i][sIzlaZy], StanInfo[i][sIzlaZz]))
  127.             {
  128.                 SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid,0);
  129.                 SetPlayerPos(playerid,StanInfo[i][sUlaZx],StanInfo[i][sUlaZy],StanInfo[i][sUlaZz]);
  130.                 UsoUStan[playerid] = 501;
  131.                 return 1;
  132.             }
  133.         }
  134.     }
  135.     return 1;
  136. }
  137. public OnPlayerSpawn(playerid)
  138. {
  139.     for(new i = 0; i < sizeof(StanInfo); i++)
  140.     {
  141.         GetPlayerName(playerid, imeigraca, sizeof(imeigraca));
  142.         if(strcmp(StanInfo[i][sVlasnik], imeigraca, false ) == 0 && StanInfo[i][sSpawn] == 1)
  143.         {
  144.             SetPlayerPos(playerid, StanInfo[i][sUlaZx],StanInfo[i][sUlaZy],StanInfo[i][sUlaZz]);
  145.         }
  146.     }
  147.     return 1;
  148. }
  149. public OnPlayerConnect(playerid)
  150. {
  151.     SendClientMessage(playerid, BELA, "Ovaj server koristi Dinamican Stan Sistem by: Maki187 (Marko_Dimitrijevic)");
  152.     return 1;
  153. }
  154. stock SacuvajStan(idstana)
  155. {
  156.     new dFile[128];
  157.     format(dFile, sizeof(dFile),"Stanovi2/%d.ini",idstana);
  158.     new
  159.     INI:File = INI_Open(dFile);
  160.    
  161.     INI_WriteFloat(File, "Ulaz_X",StanInfo[idstana][sUlaZx]);
  162.     INI_WriteFloat(File, "Ulaz_Y", StanInfo[idstana][sUlaZy]);
  163.     INI_WriteFloat(File, "Ulaz_Z",StanInfo[idstana][sUlaZz]);
  164.     INI_WriteFloat(File, "Izlaz_X", StanInfo[idstana][sIzlaZx]);
  165.     INI_WriteFloat(File, "Izlaz_Y", StanInfo[idstana][sIzlaZy]);
  166.     INI_WriteFloat(File, "Izlaz_Z", StanInfo[idstana][sIzlaZz]);
  167.     INI_WriteString(File, "Vlasnik", StanInfo[idstana][sVlasnik]);
  168.     INI_WriteString(File, "Opis", StanInfo[idstana][sOpis]);
  169.     INI_WriteInt(File, "Posedovan", StanInfo[idstana][sPosedovan]);
  170.     INI_WriteInt(File, "Postavljen", StanInfo[idstana][sPostavljen]);
  171.     INI_WriteInt(File, "Zakljucan", StanInfo[idstana][sZakljucan]);
  172.     INI_WriteInt(File, "Novac", StanInfo[idstana][sNovac]);
  173.     INI_WriteInt(File, "Cena", StanInfo[idstana][sCena]);
  174.     INI_WriteInt(File, "World", StanInfo[idstana][sWorld]);
  175.     INI_WriteString(File, "Poruka", StanInfo[idstana][sPoruka]);
  176.     INI_WriteInt(File, "Int", StanInfo[idstana][sInt]);
  177.     INI_WriteInt(File, "Level", StanInfo[idstana][sLevel]);
  178.     INI_WriteInt(File, "Spawn", StanInfo[idstana][sSpawn]);
  179.  
  180.     INI_Close(File);
  181. }
  182. forward UcitajStanove(idstana, name[], value[]);
  183. public UcitajStanove(idstana, name[], value[])
  184. {
  185.         INI_Float("Ulaz_X",StanInfo[idstana][sUlaZx]);
  186.         INI_Float("Ulaz_Y",StanInfo[idstana][sUlaZy]);
  187.         INI_Float("Ulaz_Z",StanInfo[idstana][sUlaZz]);
  188.         INI_Float("Izlaz_X",StanInfo[idstana][sIzlaZx]);
  189.         INI_Float("Izlaz_Y",StanInfo[idstana][sIzlaZy]);
  190.         INI_Float("Izlaz_Z",StanInfo[idstana][sIzlaZz]);
  191.         INI_String("Vlasnik",StanInfo[idstana][sVlasnik],32);
  192.         INI_String("Opis",StanInfo[idstana][sOpis],32);
  193.         INI_Int("Posedovan",StanInfo[idstana][sPosedovan]);
  194.         INI_Int("Postavljen",StanInfo[idstana][sPostavljen]);
  195.         INI_Int("Zakljucan",StanInfo[idstana][sZakljucan]);
  196.         INI_Int("Novac",StanInfo[idstana][sNovac]);
  197.         INI_Int("Cena",StanInfo[idstana][sCena]);
  198.         INI_Int("World",StanInfo[idstana][sWorld]);
  199.         INI_String("Poruka",StanInfo[idstana][sPoruka],32);
  200.         INI_Int("Int",StanInfo[idstana][sInt]);
  201.         INI_Int("Level",StanInfo[idstana][sLevel]);
  202.         INI_Int("Spawn",StanInfo[idstana][sSpawn]);
  203.         return 1;
  204. }
  205. stock LabelIPickup(idstana)
  206. {
  207.     new string[828];
  208.     if(StanInfo[idstana][sPosedovan] == 0)
  209.     {
  210.         Delete3DTextLabel(StanLabel[idstana]);
  211.         format(string,sizeof(string),"{458B00}Na prodaju! \n {458B00}Adresa: {FFFFFF}%d \n {458B00}Cena: {FFFFFF}$%d\n {458B00}Level: {FFFFFF}%d \n {458B00}Opis: {FFFFFF}%s",StanInfo[idstana][sWorld], StanInfo[idstana][sCena],StanInfo[idstana][sLevel], StanInfo[idstana][sOpis]);
  212.         StanLabel[idstana] = Create3DTextLabel(string ,0x00FF00AA,StanInfo[idstana][sUlaZx], StanInfo[idstana][sUlaZy], StanInfo[idstana][sUlaZz],25, 0, 1);
  213.     }
  214.     if(StanInfo[idstana][sPosedovan] == 1)
  215.     {
  216.         Delete3DTextLabel(StanLabel[idstana]);
  217.         format(string,sizeof(string),"{458B00}Vlasnik: {FFFFFF}%s \n {458B00}Adresa: {FFFFFF}%d \n {458B00}Opis: {FFFFFF}%s",StanInfo[idstana][sVlasnik],StanInfo[idstana][sWorld], StanInfo[idstana][sOpis]);
  218.         StanLabel[idstana] = Create3DTextLabel(string ,0x00FFFFAA,StanInfo[idstana][sUlaZx], StanInfo[idstana][sUlaZy], StanInfo[idstana][sUlaZz],25, 0, 1);
  219.     }
  220.     DestroyDynamicPickup(StanPickup[idstana]);
  221.     StanPickup[idstana] = CreateDynamicPickup(1273, 1, StanInfo[idstana][sUlaZx], StanInfo[idstana][sUlaZy], StanInfo[idstana][sUlaZz]);
  222. }
  223. //======================[CMD]==============================
  224. CMD:stan(playerid, params[]) // glavne komande
  225. {
  226.     new text[48]; new novac;
  227.     if(sscanf(params, "s[48]i",text , novac))
  228.     {
  229.         SendClientMessage(playerid, BELA, "Uputstvo: /stan info | lock | takemoney [kolicina] | putmoney [kolicina]");
  230.         return 1;
  231.     }
  232.     if(strcmp(text,"info",true) == 0) // info o stanu
  233.     {
  234.         for(new i = 0; i < sizeof(StanInfo); i++)
  235.         {
  236.             new string[500];
  237.             if(IsPlayerInRangeOfPoint(playerid, 10,StanInfo[i][sIzlaZx], StanInfo[i][sIzlaZy], StanInfo[i][sIzlaZz]) && strcmp(StanInfo[i][sVlasnik], imeigraca, false ) == 0)
  238.             {
  239.                 SendClientMessage(playerid, ZUTA, "|========================================|");
  240.                 if(StanInfo[i][sZakljucan] == 1)
  241.                 {
  242.                     SendClientMessage(playerid, BELA, "Zakljucan: Da");
  243.                 }
  244.                 if(StanInfo[i][sZakljucan] == 0)
  245.                 {
  246.                     SendClientMessage(playerid, BELA, "Zakljucan: Ne");
  247.                 }
  248.                 format(string, sizeof(string), "Novac u sefu: %d $", StanInfo[i][sNovac]);
  249.                 SendClientMessage(playerid, BELA, string);
  250.                 format(string, sizeof(string), "Vrednost stana: %d $", StanInfo[i][sCena]);
  251.                 SendClientMessage(playerid, BELA, string);
  252.                 SendClientMessage(playerid, ZUTA, "|========================================|");
  253.                 return 1;
  254.             }
  255.         }
  256.         return 1;
  257.     }
  258.     if(strcmp(text,"lock",true) == 0) // zakljucavanje/otkljucavanje stana
  259.     {
  260.         for(new i = 0; i < sizeof(StanInfo); i++)
  261.         {
  262.             if(IsPlayerInRangeOfPoint(playerid, 3,StanInfo[i][sUlaZx], StanInfo[i][sUlaZy], StanInfo[i][sUlaZz]) && UsoUStan[playerid] == 501)
  263.             {
  264.                 GetPlayerName(playerid, imeigraca, sizeof(imeigraca));
  265.                 if(strcmp(StanInfo[i][sVlasnik], imeigraca, false ) == 0)
  266.                 {
  267.                     if(StanInfo[i][sZakljucan] == 1)
  268.                     {
  269.                         GameTextForPlayer(playerid, "~g~Otkljucano", 5000, 6);
  270.                         StanInfo[i][sZakljucan] = 0;
  271.                         return 1;
  272.                     }
  273.                     if(StanInfo[i][sZakljucan] == 0)
  274.                     {
  275.                         GameTextForPlayer(playerid, "~r~Zakljucano", 5000, 6);
  276.                         StanInfo[i][sZakljucan] = 1;
  277.                         return 1;
  278.                     }
  279.                 }
  280.             }
  281.             if(IsPlayerInRangeOfPoint(playerid, 25,StanInfo[i][sIzlaZx], StanInfo[i][sIzlaZy], StanInfo[i][sIzlaZz]))
  282.             {
  283.                 if(IsPlayerInRangeOfPoint(playerid, 3,StanInfo[i][sIzlaZx], StanInfo[i][sIzlaZy], StanInfo[i][sIzlaZz]) && UsoUStan[playerid] != 501)
  284.                 {
  285.                     GetPlayerName(playerid, imeigraca, sizeof(imeigraca));
  286.                     if(strcmp(StanInfo[i][sVlasnik], imeigraca, false ) == 0)
  287.                     {
  288.                         if(StanInfo[i][sZakljucan] == 1)
  289.                         {
  290.                             GameTextForPlayer(playerid, "~g~Otkljucano", 5000, 6);
  291.                             StanInfo[i][sZakljucan] = 0;
  292.                             return 1;
  293.                         }
  294.                         if(StanInfo[i][sZakljucan] == 0)
  295.                         {
  296.                             GameTextForPlayer(playerid, "~r~Zakljucano", 5000, 6);
  297.                             StanInfo[i][sZakljucan] = 1;
  298.                             return 1;
  299.                         }
  300.                     }
  301.                 }
  302.                 else { SendClientMessage(playerid, BELA,"Nisi ispred vrata svog stana!"); return 1; }
  303.             }
  304.         }
  305.         return 1;
  306.     }
  307.     if(strcmp(text,"putmoney",true) == 0) // uzimanje novca iz stana
  308.     {
  309.         new string[128];
  310.         if(novac < 0) { return 1; }
  311.         for(new i = 0; i < sizeof(StanInfo); i++)
  312.         {
  313.             GetPlayerName(playerid, imeigraca, sizeof(imeigraca));
  314.             if(IsPlayerInRangeOfPoint(playerid, 10,StanInfo[i][sIzlaZx], StanInfo[i][sIzlaZy], StanInfo[i][sIzlaZz]) && strcmp(StanInfo[i][sVlasnik], imeigraca, false ) == 0 && GetPlayerVirtualWorld(playerid) == StanInfo[i][sWorld])
  315.             {
  316.                 if(GetPlayerMoney(playerid) >= novac)
  317.                 {
  318.                     StanInfo[i][sNovac] += novac;
  319.                     GivePlayerMoney(playerid,-novac);
  320.                     format(string, sizeof(string), "Stavio si %d $ u sef, pa sad ima: %d", novac, StanInfo[i][sNovac]);
  321.                     SendClientMessage(playerid, ZUTA, string);
  322.                     SacuvajStan(i);
  323.                     return 1;
  324.                 }
  325.                 else { SendClientMessage(playerid,SIVA,"Nemas dovoljno para!"); return 1; }
  326.             }
  327.         }
  328.         return 1;
  329.     }
  330.     if(strcmp(text,"takemoney",true) == 0) // stavljanje novca u stan
  331.     {
  332.         new string[128];
  333.         if(novac < 0) { return 1; }
  334.         for(new i = 0; i < sizeof(StanInfo); i++)
  335.         {
  336.             GetPlayerName(playerid, imeigraca, sizeof(imeigraca));
  337.             if(IsPlayerInRangeOfPoint(playerid, 10,StanInfo[i][sIzlaZx], StanInfo[i][sIzlaZy], StanInfo[i][sIzlaZz]) && strcmp(StanInfo[i][sVlasnik], imeigraca, false ) == 0 && GetPlayerVirtualWorld(playerid) == StanInfo[i][sWorld])
  338.             {
  339.                 if(StanInfo[i][sNovac] >= novac)
  340.                 {
  341.                     StanInfo[i][sNovac] -= novac;
  342.                     GivePlayerMoney(playerid,novac);
  343.                     format(string, sizeof(string), "Uzeo si %d $ iz sefa, ostalo je jos: %d $", novac, StanInfo[i][sNovac]);
  344.                     SendClientMessage(playerid, ZUTA, string);
  345.                     SacuvajStan(i);
  346.                     return 1;
  347.                 }
  348.                 else { SendClientMessage(playerid,SIVA,"Nemas dovoljno para!"); return 1; }
  349.             }
  350.         }
  351.         return 1;
  352.     }
  353.     return 1;
  354. }
  355. CMD:kupistan(playerid, params[]) // kupovina stana
  356. {
  357.     for(new i = 0; i < sizeof(StanInfo); i++)
  358.     {
  359.         GetPlayerName(playerid, imeigraca, sizeof(imeigraca));
  360.         if(strcmp(StanInfo[i][sVlasnik], imeigraca, false ) == 0)
  361.         {
  362.             SendClientMessage(playerid, BELA, "Vec imas stan!");
  363.             return 1;
  364.         }
  365.         if(IsPlayerInRangeOfPoint(playerid, 3,StanInfo[i][sUlaZx], StanInfo[i][sUlaZy], StanInfo[i][sUlaZz]) && StanInfo[i][sPosedovan] == 0)
  366.         {
  367.             if(GetPlayerMoney(playerid) > StanInfo[i][sCena])
  368.             {
  369.                 if(GetPlayerScore(playerid) >= StanInfo[i][sLevel])
  370.                 {
  371.                     strmid(StanInfo[i][sVlasnik], imeigraca, 0, strlen(imeigraca), 255);
  372.                     StanInfo[i][sPosedovan] = 1;
  373.                     GivePlayerMoney(playerid,-StanInfo[i][sCena]);
  374.                     SendClientMessage(playerid, BELA, "Cestitamo na kupovini novog stana, kucajte /shelp da saznate komande!");
  375.                     strmid(StanInfo[i][sVlasnik], imeigraca, 0, strlen(imeigraca), 255);
  376.                     LabelIPickup(i);
  377.                     SacuvajStan(i);
  378.                     return 1;
  379.                 }
  380.                 else { SendClientMessage(playerid, SIVA, "Nisi dovoljno veliki level!"); return 1; }
  381.             }
  382.             else { SendClientMessage(playerid, SIVA, "Nemas dovoljno para!"); return 1; }
  383.         }
  384.     }
  385.     return 1;
  386. }
  387. CMD:prodajstan(playerid, params[]) // prodaja stana
  388. {
  389.     for(new i = 0; i < sizeof(StanInfo); i++)
  390.     {
  391.         GetPlayerName(playerid, imeigraca, sizeof(imeigraca));
  392.         if(IsPlayerInRangeOfPoint(playerid, 3,StanInfo[i][sUlaZx], StanInfo[i][sUlaZy], StanInfo[i][sUlaZz]) && strcmp(StanInfo[i][sVlasnik], imeigraca, false ) == 0)
  393.         {
  394.             strmid(StanInfo[i][sVlasnik], "Drzava", 0, strlen("Drzava"), 255);
  395.             StanInfo[i][sPosedovan] = 0;
  396.             StanInfo[i][sZakljucan] = 1;
  397.             GivePlayerMoney(playerid,StanInfo[i][sCena]);
  398.             SendClientMessage(playerid, BELA, "Uspesno ste prodali stan!");
  399.             LabelIPickup(i);
  400.             SacuvajStan(i);
  401.             return 1;
  402.         }
  403.     }
  404.     return 1;
  405. }
  406. CMD:changespawn(playerid, params[]) // promena spawna
  407. {
  408.     for(new i = 0; i < sizeof(StanInfo); i++)
  409.     {
  410.         GetPlayerName(playerid, imeigraca, sizeof(imeigraca));
  411.         if(strcmp(StanInfo[i][sVlasnik], imeigraca, false ) == 0)
  412.         {
  413.             if(StanInfo[i][sSpawn] == 1)
  414.             {
  415.                 StanInfo[i][sSpawn] = 0;
  416.                 SendClientMessage(playerid, ZUTA, "Vise se neces spawnati ispred stana.");
  417.                 SacuvajStan(i);
  418.                 return 1;
  419.             }
  420.             if(StanInfo[i][sSpawn] == 0)
  421.             {
  422.                 StanInfo[i][sSpawn] = 1;
  423.                 SendClientMessage(playerid, ZUTA, "Od sad ces se spawnati ispred stana!");
  424.                 SacuvajStan(i);
  425.                 return 1;
  426.             }
  427.             return 1;
  428.         }
  429.     }
  430.     return 1;
  431. }
  432. CMD:shelp(playerid, params[]) // prikazuje listu komandi igracu
  433. {
  434.     if(IsPlayerAdmin(playerid))
  435.     {
  436.         SendClientMessage(playerid, BELA, "Admin Komande: /pstan | /astan | /unististan | /sedit");
  437.     }
  438.     SendClientMessage(playerid, BELA, "Komande: /kupistan | /prodajstan | /changespawn | /stan info | lock | putmoney [kolicina] | takemoney [kolicina]");
  439.     return 1;
  440. }
  441. //======================[ADMIN CMD]=============================
  442. CMD:pstan(playerid, params[]) // postavlja stan IG (SAMO RCON)
  443. {
  444.     if(IsPlayerAdmin(playerid))
  445.     {
  446.         new Float:X, Float:Y, Float:Z; new string[828]; new stanid = 0;
  447.         GetPlayerPos(playerid, X,Y,Z);
  448.         for(new s = 0; s < sizeof(StanInfo); s++)
  449.         {
  450.             if(StanInfo[s][sPostavljen] == 1)
  451.             {
  452.                 stanid = s + 1;
  453.             }
  454.         }
  455.         StanInfo[stanid][sUlaZx] = X;
  456.         StanInfo[stanid][sUlaZy] = Y;
  457.         StanInfo[stanid][sUlaZz] = Z;
  458.         StanInfo[stanid][sPosedovan] = 0;
  459.         StanInfo[stanid][sPostavljen] = 1;
  460.         StanInfo[stanid][sZakljucan] = 1;
  461.         StanInfo[stanid][sSpawn] = 1;
  462.         StanInfo[stanid][sWorld] = stanid;
  463.         randomINT = randomEx(1,6); // izbaci random broj 1, 2, 3, 4 i 5
  464.         if(randomINT == 1)
  465.         {
  466.             StanInfo[stanid][sIzlaZx] = 225.756989;
  467.             StanInfo[stanid][sIzlaZy] = 1240.000000;
  468.             StanInfo[stanid][sIzlaZz] = 1082.149902;
  469.             StanInfo[stanid][sInt] = 2;
  470.             StanInfo[stanid][sCena] = 37000;
  471.             StanInfo[stanid][sLevel] = 1;
  472.             SacuvajStan(stanid);
  473.             SendClientMessage(playerid, SIVA, "RANDOM: 1");
  474.         }
  475.         if(randomINT == 2)
  476.         {
  477.             StanInfo[stanid][sIzlaZx] = 260.983978;
  478.             StanInfo[stanid][sIzlaZy] = 1286.549927;
  479.             StanInfo[stanid][sIzlaZz] = 1080.299927;
  480.             StanInfo[stanid][sInt] = 4;
  481.             StanInfo[stanid][sCena] = 38000;
  482.             StanInfo[stanid][sLevel] = 2;
  483.             SacuvajStan(stanid);
  484.             SendClientMessage(playerid, SIVA, "RANDOM: 2");
  485.         }
  486.         if(randomINT == 3)
  487.         {
  488.             StanInfo[stanid][sIzlaZx] = 385.803986;
  489.             StanInfo[stanid][sIzlaZy] = 1471.769897;
  490.             StanInfo[stanid][sIzlaZz] = 1080.209961;
  491.             StanInfo[stanid][sInt] = 15;
  492.             StanInfo[stanid][sCena] = 39000;
  493.             StanInfo[stanid][sLevel] = 3;
  494.             SacuvajStan(stanid);
  495.             SendClientMessage(playerid, SIVA, "RANDOM: 3");
  496.         }
  497.         if(randomINT == 4)
  498.         {
  499.             StanInfo[stanid][sIzlaZx] = -42.4992;
  500.             StanInfo[stanid][sIzlaZy] = 1406.0690;
  501.             StanInfo[stanid][sIzlaZz] = 1084.4297;
  502.             StanInfo[stanid][sInt] = 8;
  503.             StanInfo[stanid][sCena] = 40000;
  504.             StanInfo[stanid][sLevel] = 4;
  505.             SacuvajStan(stanid);
  506.         }
  507.         if(randomINT == 5)
  508.         {
  509.             StanInfo[stanid][sIzlaZx] = 446.5014;
  510.             StanInfo[stanid][sIzlaZy] = 507.0295;
  511.             StanInfo[stanid][sIzlaZz] = 1001.4195;
  512.             StanInfo[stanid][sInt] = 12;
  513.             StanInfo[stanid][sCena] = 41000;
  514.             StanInfo[stanid][sLevel] = 5;
  515.             SacuvajStan(stanid);
  516.         }
  517.         format(string,sizeof(string),"{458B00}Na prodaju! \n {458B00}Adresa: {FFFFFF}%d \n {458B00}Cena: {FFFFFF}$%d\n {458B00}Level: {FFFFFF}%d \n {458B00}Opis: {FFFFFF}%s",StanInfo[stanid][sWorld], StanInfo[stanid][sCena],StanInfo[stanid][sLevel], StanInfo[stanid][sOpis]);
  518.         StanLabel[stanid] = Create3DTextLabel(string ,0x00FF00AA,X,Y,Z,25, 0, 1);
  519.         strmid(StanInfo[stanid][sVlasnik],"Drzava",0,strlen("Drzava"),255);
  520.         strmid(StanInfo[stanid][sOpis], "Stan", 0, strlen("Stan"), 255);
  521.         strmid(StanInfo[stanid][sPoruka],"Na prodaju",0,strlen("Na prodaju"),255);
  522.         StanPickup[stanid] = CreateDynamicPickup(1273, 1, StanInfo[stanid][sUlaZx], StanInfo[stanid][sUlaZy], StanInfo[stanid][sUlaZz]);
  523.         format(string, sizeof(string),"Napravio si stan ID: %d",stanid);
  524.         SendClientMessage(playerid, CRVENA, string);
  525.         LabelIPickup(stanid);
  526.         SacuvajStan(stanid);
  527.         return 1;
  528.     }
  529.     else { SendClientMessage(playerid,SIVA,"Nisi Admin(RCON)!!"); return 1; }
  530. }
  531. CMD:unististan(playerid, params[]) // unistavanje stana (SAMO RCON)
  532. {
  533.     if(IsPlayerAdmin(playerid))
  534.     {
  535.         new stanid;
  536.         if(sscanf(params, "i", stanid))
  537.         {
  538.             SendClientMessage(playerid, BELA, "/unististan [id stana]");
  539.             return 1;
  540.         }
  541.         if(StanInfo[stanid][sPostavljen] == 1)
  542.         {
  543.             new string[500]; new fajl[500];
  544.             StanInfo[stanid][sPostavljen] = 0;
  545.             Delete3DTextLabel(StanLabel[stanid]);
  546.             DestroyDynamicPickup(StanPickup[stanid]);
  547.             SacuvajStan(stanid);
  548.             format(string, sizeof(string),"Unistio si stan id: %d",stanid);
  549.             SendClientMessage(playerid, CRVENA, string);
  550.             format(fajl,sizeof(fajl),"Stanovi2/%d.ini",stanid);
  551.             fremove(fajl);
  552.             return 1;
  553.         }
  554.         else
  555.         {
  556.             SendClientMessage(playerid, SIVA, "Taj stan nepostoji!");
  557.             return 1;
  558.         }
  559.     }
  560.     else { SendClientMessage(playerid,SIVA,"Nisi Admin(RCON)!!"); return 1; }
  561. }
  562. CMD:astan(playerid, params[]) // teleportuje u stan (SAMO RCON)
  563. {
  564.     if(IsPlayerAdmin(playerid))
  565.     {
  566.         new stan;
  567.         if(sscanf(params, "i", stan))
  568.         {
  569.             SendClientMessage(playerid, BELA, "/astan [id stana]");
  570.             return 1;
  571.         }
  572.         SetPlayerInterior(playerid,StanInfo[stan][sInt]);
  573.         SetPlayerVirtualWorld(playerid,StanInfo[stan][sWorld]);
  574.         SetPlayerPos(playerid,StanInfo[stan][sIzlaZx],StanInfo[stan][sIzlaZy],StanInfo[stan][sIzlaZz]);
  575.         UsoUStan[playerid] = stan;
  576.         return 1;
  577.     }
  578.     else { SendClientMessage(playerid,SIVA,"Nisi Admin(RCON)!!"); return 1; }
  579. }
  580. CMD:sedit(playerid, params[]) // editovanje stanova
  581. {
  582.     if(IsPlayerAdmin(playerid))
  583.     {
  584.         new text[48]; new broj;
  585.         if(sscanf(params, "s[48]i",text, broj))
  586.         {
  587.             SendClientMessage(playerid, BELA, "Uputstvo: /stan cena [cena] | level [lvl] | int [1-3]");
  588.             return 1;
  589.         }
  590.         if(strcmp(text,"cena",true) == 0) // editovanje cene
  591.         {
  592.             if(broj < 0) { return 1; }
  593.             for(new i = 0; i < sizeof(StanInfo); i++)
  594.             {
  595.                 new string[128];
  596.                 if(IsPlayerInRangeOfPoint(playerid, 2,StanInfo[i][sUlaZx], StanInfo[i][sUlaZy], StanInfo[i][sUlaZz]))
  597.                 {
  598.                     StanInfo[i][sCena] = broj;
  599.                     format(string, sizeof(string), "Promenio si cenu stana ID: %d u %d $", i, broj);
  600.                     SendClientMessage(playerid, BELA, string);
  601.                     LabelIPickup(i);
  602.                     SacuvajStan(i);
  603.                     return 1;
  604.                 }
  605.             }
  606.             return 1;
  607.         }
  608.         if(strcmp(text,"level",true) == 0) // editovanje levela
  609.         {
  610.             if(broj < 0) { return 1; }
  611.             for(new i = 0; i < sizeof(StanInfo); i++)
  612.             {
  613.                 new string[128];
  614.                 if(IsPlayerInRangeOfPoint(playerid, 2,StanInfo[i][sUlaZx], StanInfo[i][sUlaZy], StanInfo[i][sUlaZz]))
  615.                 {
  616.                     StanInfo[i][sLevel] = broj;
  617.                     format(string, sizeof(string), "Promenio si level stana ID: %d u lvl %d", i, broj);
  618.                     SendClientMessage(playerid, BELA, string);
  619.                     LabelIPickup(i);
  620.                     SacuvajStan(i);
  621.                     return 1;
  622.                 }
  623.             }
  624.             return 1;
  625.         }
  626.         if(strcmp(text,"int",true) == 0) // editovanje inta(namestaja)
  627.         {
  628.             if(broj < 0 || broj > 5) { SendClientMessage(playerid,SIVA,"Int nemoze ispod 0 ili iznad 5 !"); return 1; }
  629.             for(new i = 0; i < sizeof(StanInfo); i++)
  630.             {
  631.                 new string[128];
  632.                 if(IsPlayerInRangeOfPoint(playerid, 2,StanInfo[i][sUlaZx], StanInfo[i][sUlaZy], StanInfo[i][sUlaZz]))
  633.                 {
  634.                     if(broj == 1) // default namestaj
  635.                     {
  636.                         StanInfo[i][sIzlaZx] = 225.756989;
  637.                         StanInfo[i][sIzlaZy] = 1240.000000;
  638.                         StanInfo[i][sIzlaZz] = 1082.149902;
  639.                         StanInfo[i][sInt] = 2;
  640.                         format(string, sizeof(string), "Promenio si int(namestaj) stana ID: %d u %d (ovo je default namestaj)", i, broj);
  641.                         SendClientMessage(playerid, BELA, string);
  642.                         SendClientMessage(playerid,BELA,"Udji u stan kako bi video novi namestaj!");
  643.                         SacuvajStan(i);
  644.                         return 1;
  645.                     }
  646.                     if(broj == 2)
  647.                     {
  648.                         StanInfo[i][sIzlaZx] = 260.983978;
  649.                         StanInfo[i][sIzlaZy] = 1286.549927;
  650.                         StanInfo[i][sIzlaZz] = 1080.299927;
  651.                         StanInfo[i][sInt] = 4;
  652.                         format(string, sizeof(string), "Promenio si int(namestaj) stana ID: %d u %d", i, broj);
  653.                         SendClientMessage(playerid, BELA, string);
  654.                         SendClientMessage(playerid,BELA,"Udji u stan kako bi video novi namestaj!");
  655.                         SacuvajStan(i);
  656.                         return 1;
  657.                     }
  658.                     if(broj == 3)
  659.                     {
  660.                         StanInfo[i][sIzlaZx] = 385.803986;
  661.                         StanInfo[i][sIzlaZy] = 1471.769897;
  662.                         StanInfo[i][sIzlaZz] = 1080.209961;
  663.                         StanInfo[i][sInt] = 15;
  664.                         format(string, sizeof(string), "Promenio si int(namestaj) stana ID: %d u %d", i, broj);
  665.                         SendClientMessage(playerid, BELA, string);
  666.                         SendClientMessage(playerid,BELA,"Udji u stan kako bi video novi namestaj!");
  667.                         SacuvajStan(i);
  668.                         return 1;
  669.                     }
  670.                     if(broj == 4)
  671.                     {
  672.                         StanInfo[i][sIzlaZx] = -42.4992;
  673.                         StanInfo[i][sIzlaZy] = 1406.0690;
  674.                         StanInfo[i][sIzlaZz] = 1084.4297;
  675.                         StanInfo[i][sInt] = 8;
  676.                         format(string, sizeof(string), "Promenio si int(namestaj) stana ID: %d u %d", i, broj);
  677.                         SendClientMessage(playerid, BELA, string);
  678.                         SendClientMessage(playerid,BELA,"Udji u stan kako bi video novi namestaj!");
  679.                         SacuvajStan(i);
  680.                         return 1;
  681.                     }
  682.                     if(broj == 5)
  683.                     {
  684.                         StanInfo[i][sIzlaZx] = 446.5014;
  685.                         StanInfo[i][sIzlaZy] = 507.0295;
  686.                         StanInfo[i][sIzlaZz] = 1001.4195;
  687.                         StanInfo[i][sInt] = 12;
  688.                         format(string, sizeof(string), "Promenio si int(namestaj) stana ID: %d u %d", i, broj);
  689.                         SendClientMessage(playerid, BELA, string);
  690.                         SendClientMessage(playerid,BELA,"Udji u stan kako bi video novi namestaj!");
  691.                         SacuvajStan(i);
  692.                         return 1;
  693.                     }
  694.                 }
  695.             }
  696.             return 1;
  697.         }
  698.     }
  699.     else { SendClientMessage(playerid,SIVA,"Nisi Admin(RCON)!!"); return 1; }
  700.     return 1;
  701. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement