Advertisement
BE-Shomy

Untitled

Mar 24th, 2018
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.10 KB | None | 0 0
  1.  
  2. // Include //
  3.  
  4. #include < a_samp >
  5. #include < YSI\y_ini >
  6. #include < YSI\y_commands >
  7. #include < sscanf2 >
  8.  
  9. // Pragma //
  10.  
  11. // Define //
  12.  
  13. #undef MAX_PLAYERS
  14. #define MAX_PLAYERS 50
  15.  
  16. #define MAX_CLANOVI 15 // Podesite
  17.  
  18. #define MAX_ORGS 30
  19. #define ORG_FILE "/Organizacije/%d.ini"
  20.  
  21. #define SCM SendClientMessage
  22. #define SPD ShowPlayerDialog
  23.  
  24. // Dialozi //
  25.  
  26. #define DIALOG_ORGCREATE 1
  27. #define DIALOG_ORGCREATE2 2
  28. #define DIALOG_ORGCREATE3 3
  29. #define DIALOG_ORGCREATE4 4
  30. #define DIALOG_ORGCREATE5 5
  31. #define DIALOG_ORGCREATE6 6
  32. #define DIALOG_ZONACREATE 7
  33.  
  34. #define DIALOG_ORGINV 8
  35.  
  36. // Enum //
  37.  
  38. enum ORG_INFO {
  39.  
  40. Float:orgPosX,
  41. Float:orgPosY,
  42. Float:orgPosZ,
  43. orgBoja,
  44. zBoja,
  45. orgIme[ 30 ],
  46. orgSkracenica[ 5 ],
  47. orgRank1[ 24 ],
  48. orgRank2[ 24 ],
  49. orgRank3[ 24 ],
  50. orgRank4[ 24 ],
  51. orgRank5[ 24 ],
  52. orgSkin1,
  53. orgSkin2,
  54. orgSkin3,
  55. orgSkin4,
  56. orgSkin5,
  57. Float:zMinX,
  58. Float:zMinY,
  59. Float:zMaxX,
  60. Float:zMaxY,
  61. Float:pPosX,
  62. Float:pPosY,
  63. Float:pPosZ,
  64. Float:intPosX,
  65. Float:intPosY,
  66. Float:intPosZ,
  67. orgZauzeta,
  68. orgClanovi,
  69. orgLider[ MAX_PLAYER_NAME ],
  70. zID,
  71. oID,
  72. pID
  73. }
  74.  
  75. // New //
  76.  
  77. new OrgInfo[ MAX_ORGS ][ ORG_INFO ], Text3D:OrgLabel[ sizeof(OrgInfo) ], Text3D:ZauzimanjeLabel[ sizeof(OrgInfo) ], KreiraOrg[ MAX_PLAYERS ], bool:KreiraZonu[ MAX_PLAYERS ], bool:KreiraPickup[ MAX_PLAYERS ];
  78. new pClan[ MAX_PLAYERS ], pRank[ MAX_PLAYERS ], pLider[ MAX_PLAYERS ]; // Dodati u PlayerInfo
  79. new oPozvan[ MAX_PLAYERS ], ZauzimanjeTimer[ MAX_PLAYERS ], Zauzima[ MAX_PLAYERS ];
  80.  
  81. // Publics //
  82.  
  83. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  84.  
  85. if(dialogid == DIALOG_ORGCREATE && response) {
  86. new ime[ 30 ], i = NextORGID(MAX_ORGS);
  87. if(sscanf(inputtext, "s[30]", ime)) return SPD(playerid, DIALOG_ORGCREATE, DIALOG_STYLE_INPUT, "ORG Kreiranje","Upisite ime organizacije.\nMax 30 slova.","Dalje","Izlaz");
  88. KreiraOrg[ playerid ] = i;
  89. OrgInfo[ i ][ orgIme ] = ime;
  90. SPD(playerid, DIALOG_ORGCREATE2, DIALOG_STYLE_INPUT, "ORG Kreiranje","Upisite skracenicu organizacije.\nPrimer - GSF","Dalje","Izlaz");
  91. }
  92. else if(dialogid == DIALOG_ORGCREATE2 && response) {
  93. new skracenica[ 5 ], i = KreiraOrg[ playerid ];
  94. if(sscanf(inputtext, "s[5]", skracenica)) return SPD(playerid, DIALOG_ORGCREATE2, DIALOG_STYLE_INPUT, "ORG Kreiranje","Upisite skracenicu organizacije.\nPrimer - GSF","Dalje","Izlaz");
  95. OrgInfo[ i ][ orgSkracenica ] = skracenica;
  96. SPD(playerid, DIALOG_ORGCREATE3, DIALOG_STYLE_INPUT, "ORG Kreiranje","Upisite HEX Boju organizacije.\nPrimer: 0xFFFFFFFF","Dalje","Izlaz");
  97. }
  98. else if(dialogid == DIALOG_ORGCREATE3 && response) {
  99. new hex, i = KreiraOrg[ playerid ];
  100. if(sscanf(inputtext, "h", hex)) return SPD(playerid, DIALOG_ORGCREATE3, DIALOG_STYLE_INPUT, "ORG Kreiranje","Upisite HEX Boju organizacije.\nPrimer: 0xFFFFFFFF","Dalje","Izlaz");
  101. OrgInfo[ i ][ orgBoja ] = hex;
  102. SPD(playerid, DIALOG_ORGCREATE4, DIALOG_STYLE_INPUT, "ORG Kreiranje","Upisite imena 5 rankova.\n5. rank je lider.","Dalje","Izlaz");
  103. }
  104. else if(dialogid == DIALOG_ORGCREATE4 && response) {
  105. new r1[ 24 ], r2[ 24 ], r3[ 24 ], r4[ 24 ], r5[ 24 ], i = KreiraOrg[ playerid ];
  106. if(sscanf(inputtext, "s[24] s[24] s[24] s[24] s[24]", r1, r2, r3, r4, r5)) return SPD(playerid, DIALOG_ORGCREATE4, DIALOG_STYLE_INPUT, "ORG Kreiranje","Upisite imena 5 rankova.\n5. rank je lider.","Dalje","Izlaz");
  107. OrgInfo[ i ][ orgRank1 ] = r1; OrgInfo[ i ][ orgRank2 ] = r2; OrgInfo[ i ][ orgRank3 ] = r3; OrgInfo[ i ][ orgRank4 ] = r4; OrgInfo[ i ][ orgRank5 ] = r5;
  108. SPD(playerid, DIALOG_ORGCREATE6, DIALOG_STYLE_INPUT, "ORG Kreiranje", "Upisite IDove 5 skinova.","Dalje","Izlaz");
  109. }
  110. else if(dialogid == DIALOG_ORGCREATE6 && response) {
  111. new s1, s2, s3, s4, s5, i = KreiraOrg[ playerid ];
  112. if(sscanf(inputtext, "ddddd", s1, s2, s3, s4, s5)) return SPD(playerid, DIALOG_ORGCREATE6, DIALOG_STYLE_INPUT, "ORG Kreiranje", "Upisite IDove 5 skinova.","Dalje","Izlaz");
  113. OrgInfo[ i ][ orgSkin1 ] = s1; OrgInfo[ i ][ orgSkin2 ] = s2; OrgInfo[ i ][ orgSkin3 ] = s3; OrgInfo[ i ][ orgSkin4 ] = s4; OrgInfo[ i ][ orgSkin5 ] = s5;
  114. SPD(playerid, DIALOG_ORGCREATE5, DIALOG_STYLE_INPUT, "ORG Kreiranje", "Upisite kordinate enterijera organizacije.","Dalje","Izlaz");
  115. }
  116. else if(dialogid == DIALOG_ORGCREATE5 && response) {
  117. new Float:iX, Float:iY, Float:iZ, i = KreiraOrg[ playerid ];
  118. if(sscanf(inputtext, "fff", iX, iY, iZ)) return SPD(playerid, DIALOG_ORGCREATE5, DIALOG_STYLE_INPUT, "ORG Kreiranje","Upisite kordinate enterijera organizacije.","Dalje","Izlaz");
  119. OrgInfo[ i ][ intPosX ] = iX;
  120. OrgInfo[ i ][ intPosY ] = iY;
  121. OrgInfo[ i ][ intPosZ ] = iZ;
  122. KreiraZonu[ playerid ] = true;
  123. SCM(playerid, -1, "Sada kreirajte zonu.");
  124. SCM(playerid, -1, "Idite do drugog kraja zone i pritisnite dugme Y.");
  125. new Float:X, Float:Y, Float:Z, str[ 35 ];
  126. GetPlayerPos(playerid, X,Y,Z);
  127. OrgInfo[ i ][ zMinX ] = X;
  128. OrgInfo[ i ][ zMinY ] = Y;
  129. OrgInfo[ i ][ oID ] = CreatePickup(1314, 1, X,Y,Z, 0);
  130. format(str, sizeof(str), "[ %s ]", OrgInfo[ i ][ orgIme ]);
  131. OrgLabel[ i ] = Create3DTextLabel(str, OrgInfo[ i ][ orgBoja ], X,Y,Z, 15.0, 0,0);
  132. }
  133. else if(dialogid == DIALOG_ZONACREATE && response) {
  134. new hex;
  135. if(sscanf(inputtext, "h", hex)) return SPD(playerid, DIALOG_ZONACREATE, DIALOG_STYLE_INPUT, "Zona Kreiranje","Upisite HEX Boju zone.","U redu","Izlaz");
  136. GangZoneShowForAll(OrgInfo[ KreiraOrg[ playerid ] ][ zID ], hex);
  137. KreiraPickup[ playerid ] = true;
  138. OrgInfo[ KreiraOrg[ playerid ] ][ zBoja ] = hex;
  139. SCM(playerid, -1, "Sada sacuvajte poziciju pickupa za zauzimanje dugmetom Y.");
  140. }
  141. else if(dialogid == DIALOG_ORGINV) {
  142. if(response) {
  143. new i = oPozvan[ playerid ], pname[ MAX_PLAYER_NAME ];
  144. GetPlayerName(playerid, pname, sizeof(pname));
  145. OrgInfo[ i ][ orgClanovi ]++;
  146. pClan[ playerid ] = i;
  147. SaveOrg(i);
  148. for(new p; p < MAX_PLAYERS; p++) {
  149. if(pClan[ p ] == i) { new str[ 60 ]; format(str, sizeof(str), "Igrac %s je prihvatio poziv i pridruzio se organizaciji.", pname); SCM(p, -1, str); }
  150. }
  151. oPozvan[ playerid ] = 0;
  152. }
  153. else {
  154. new i = oPozvan[ playerid ], pname[ MAX_PLAYER_NAME ];
  155. GetPlayerName(playerid, pname, sizeof(pname));
  156. for(new p; p < MAX_PLAYERS; p++) {
  157. if(pClan[ p ] == i) { new str[ 60 ]; format(str, sizeof(str), "Igrac %s je odbio poziv za organizaciju.", pname); SCM(p, -1, str); }
  158. }
  159. oPozvan[ playerid ] = 0;
  160. }
  161. }
  162. return 1;
  163. }
  164. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
  165.  
  166. if(newkeys == KEY_YES) {
  167. if(KreiraZonu[ playerid ]) {
  168. new i = KreiraOrg[ playerid ], Float:X, Float:Y, Float:Z;
  169. GetPlayerPos(playerid, X,Y,Z);
  170. OrgInfo[ i ][ zMaxX ] = X;
  171. OrgInfo[ i ][ zMaxY ] = Y;
  172. OrgInfo[ i ][ zID ] = GangZoneCreate(OrgInfo[ i ][ zMinX ], OrgInfo[ i ][ zMinY ], X, Y);
  173. SPD(playerid, DIALOG_ZONACREATE, DIALOG_STYLE_INPUT, "Zona Kreiranje","Upisite HEX Boju zone.","U redu","Izlaz");
  174. KreiraZonu[ playerid ] = false;
  175. }
  176. else if(KreiraPickup[ playerid ]) {
  177. new i = KreiraOrg[ playerid ], Float:X, Float:Y, Float:Z;
  178. GetPlayerPos(playerid, X,Y,Z);
  179. OrgInfo[ i ][ pPosX ] = X;
  180. OrgInfo[ i ][ pPosY ] = Y;
  181. OrgInfo[ i ][ pPosZ ] = Z;
  182. OrgInfo[ i ][ pID ] = CreatePickup(1254, 1, X,Y,Z, 0);
  183. new str[ 70 ];
  184. format(str, sizeof(str), "[ %s ]\n{FFFFFF}Da zauzmete, kucajte /zauzmi", OrgInfo[ i ][ orgIme ]);
  185. ZauzimanjeLabel[ i ] = Create3DTextLabel(str, OrgInfo[ i ][ orgBoja ], X,Y,Z, 15.0, 0, 0);
  186. SCM(playerid, -1, "Zavrsili ste kreiranje organizacije.");
  187. OrgInfo[ i ][ orgZauzeta ] = i;
  188. SaveOrg(i);
  189. KreiraOrg[ playerid ] = 0;
  190. KreiraPickup[ playerid ] = false;
  191. }
  192. }
  193. if(newkeys == KEY_SECONDARY_ATTACK) {
  194. for(new i; i < MAX_ORGS; i++) {
  195. if(IsPlayerInRangeOfPoint(playerid, 2.0, OrgInfo[ i ][ orgPosX ], OrgInfo[ i ][ orgPosY ], OrgInfo[ i ][ orgPosZ ])) {
  196. SetPlayerPos(playerid, OrgInfo[ i ][ intPosX ], OrgInfo[ i ][ intPosY ], OrgInfo[ i ][ intPosZ ]);
  197. SetPlayerInterior(playerid, 1);
  198. SetPlayerVirtualWorld(playerid, 1);
  199. }
  200. }
  201. }
  202. return 1;
  203. }
  204. forward ZauzimanjeVreme(playerid);
  205. public ZauzimanjeVreme(playerid) {
  206.  
  207. new i = Zauzima[ playerid ], str[ 70 ];
  208. GangZoneHideForAll(OrgInfo[ i ][ zID ]);
  209. GangZoneShowForAll(OrgInfo[ i ][ zID ], OrgInfo[ i ][ zBoja ]);
  210. format(str, sizeof(str), "[ %s ]\n{FFFFFF}Da zauzmete, kucajte /zauzmi", OrgInfo[ pClan[ playerid ] ][ orgIme ]);
  211. Update3DTextLabelText(ZauzimanjeLabel[ i ], OrgInfo[ i ][ orgBoja ], str);
  212. GivePlayerMoney(playerid, 50000);
  213. ClearAnimations(playerid);
  214. TogglePlayerControllable(playerid, true);
  215. SCM(playerid, -1, "Uspesno ste zauzeli zonu.");
  216. return 1;
  217. }
  218. public OnPlayerDeath(playerid) {
  219.  
  220. if(Zauzima[ playerid ] != 0) { KillTimer(ZauzimanjeTimer[ playerid ]); }
  221. return 1;
  222. }
  223. forward LoadOrg(id, name[], value[]);
  224. public LoadOrg(id, name[], value[]) {
  225.  
  226. INI_String("Ime", OrgInfo[ id ][ orgIme ], 30);
  227. INI_String("Skracenica", OrgInfo[ id ][ orgSkracenica ], 5);
  228. INI_Hex("Boja", OrgInfo[ id ][ orgBoja ]);
  229. INI_Hex("Boja_Zone", OrgInfo[ id ][ zBoja ]);
  230. INI_Int("Clanovi", OrgInfo[ id ][ orgClanovi ]);
  231. INI_String("Lider", OrgInfo[ id ][ orgLider ], 24);
  232. INI_String("Rank_1", OrgInfo[ id ][ orgRank1 ], 24);
  233. INI_String("Rank_2", OrgInfo[ id ][ orgRank2 ], 24);
  234. INI_String("Rank_3", OrgInfo[ id ][ orgRank3 ], 24);
  235. INI_String("Rank_4", OrgInfo[ id ][ orgRank4 ], 24);
  236. INI_String("Rank_5", OrgInfo[ id ][ orgRank5 ], 24);
  237. INI_Int("Skin_Rank_1", OrgInfo[ id ][ orgSkin1 ]);
  238. INI_Int("Skin_Rank_2", OrgInfo[ id ][ orgSkin2 ]);
  239. INI_Int("Skin_Rank_3", OrgInfo[ id ][ orgSkin3 ]);
  240. INI_Int("Skin_Rank_4", OrgInfo[ id ][ orgSkin4 ]);
  241. INI_Int("Skin_Rank_5", OrgInfo[ id ][ orgSkin5 ]);
  242. INI_Float("Lokacija_X", OrgInfo[ id ][ orgPosX ]);
  243. INI_Float("Lokacija_Y", OrgInfo[ id ][ orgPosY ]);
  244. INI_Float("Lokacija_Z", OrgInfo[ id ][ orgPosZ ]);
  245. INI_Float("Interior_X", OrgInfo[ id ][ intPosX ]);
  246. INI_Float("Interior_Y", OrgInfo[ id ][ intPosY ]);
  247. INI_Float("Interior_Z", OrgInfo[ id ][ intPosZ ]);
  248. INI_Float("Zona_Min_X", OrgInfo[ id ][ zMinX ]);
  249. INI_Float("Zona_Min_Y", OrgInfo[ id ][ zMinY ]);
  250. INI_Float("Zona_Max_X", OrgInfo[ id ][ zMaxX ]);
  251. INI_Float("Zona_Max_Y", OrgInfo[ id ][ zMaxY ]);
  252. INI_Float("Zauzimanje_X", OrgInfo[ id ][ pPosX ]);
  253. INI_Float("Zauzimanje_Y", OrgInfo[ id ][ pPosY ]);
  254. INI_Float("Zauzimanje_Z", OrgInfo[ id ][ pPosZ ]);
  255. INI_Int("ORG_Zauzeta", OrgInfo[ id ][ orgZauzeta ]);
  256. return 1;
  257. }
  258. public OnFilterScriptInit() {
  259.  
  260. for(new i; i < MAX_ORGS; i++) {
  261. new jFile[ 50 ], str[ 70 ];
  262. format(jFile, sizeof(jFile), ORG_FILE, i);
  263. if(fexist(jFile)) {
  264. INI_ParseFile(jFile, "LoadOrg", .bExtra = true, .extra = i);
  265. OrgInfo[ i ][ oID ] = CreatePickup(1314, 1, OrgInfo[ i ][ orgPosX ], OrgInfo[ i ][ orgPosY ], OrgInfo[ i ][ orgPosZ ], 0);
  266. format(str, sizeof(str), "[ %s ]", OrgInfo[ i ][ orgIme ]);
  267. OrgLabel[ i ] = Create3DTextLabel(str, OrgInfo[ i ][ orgBoja ], OrgInfo[ i ][ orgPosX ], OrgInfo[ i ][ orgPosY ], OrgInfo[ i ][ orgPosZ ], 15.0, 0,0);
  268. OrgInfo[ i ][ pID ] = CreatePickup(1254, 1, OrgInfo[ i ][ pPosX ], OrgInfo[ i ][ pPosY ], OrgInfo[ i ][ pPosZ ], 0);
  269. format(str, sizeof(str), "[ %s ]\n{FFFFFF}Da zauzmete, kucajte /zauzmi", OrgInfo[ i ][ orgIme ]);
  270. ZauzimanjeLabel[ i ] = Create3DTextLabel(str, OrgInfo[ i ][ orgBoja ], OrgInfo[ i ][ pPosX ], OrgInfo[ i ][ pPosY ], OrgInfo[ i ][ pPosZ ], 15.0, 0, 0);
  271. OrgInfo[ i ][ zID ] = GangZoneCreate(OrgInfo[ i ][ zMinX ], OrgInfo[ i ][ zMinY ], OrgInfo[ i ][ zMaxX ], OrgInfo[ i ][ zMaxY ]);
  272. }
  273. }
  274. return 1;
  275. }
  276. public OnPlayerSpawn(playerid) {
  277.  
  278. for(new i; i < MAX_ORGS; i++) { GangZoneShowForPlayer(playerid, OrgInfo[ i ][ zID ], OrgInfo[ i ][ zBoja ]); }
  279. return 1;
  280. }
  281.  
  282. // Komande //
  283.  
  284. YCMD:makeleader(playerid, params[], help) {
  285.  
  286. #pragma unused help
  287.  
  288. if(!IsPlayerAdmin(playerid)) return SCM(playerid, -1, "Niste ovlasceni.");
  289. new id, oid, str[ 100 ], pname[ MAX_PLAYER_NAME ], pname1[ MAX_PLAYER_NAME ], oFile[ 60 ];
  290. if(sscanf(params, "ud", id, oid)) return SCM(playerid, -1, "/makeleader [ID] [ORG ID]");
  291. format(oFile, sizeof(oFile), ORG_FILE, oid);
  292. if(!fexist(oFile)) return SCM(playerid, -1, "ID te organizacije ne postoji.");
  293. GetPlayerName(playerid, pname, sizeof(pname));
  294. GetPlayerName(id, pname1, sizeof(pname1));
  295. if(oid == 0) {
  296. format(str, sizeof(str), "Admin %s Vam je skinuo lidera.", pname);
  297. SCM(id, -1, str);
  298. format(str, sizeof(str), "Skinuli ste igracu %s lidera.", pname1);
  299. SCM(playerid, -1, str);
  300. pLider[ id ] = 0;
  301. SetPlayerSkin(id, 1);
  302. OrgInfo[ oid ][ orgLider ] = 0;
  303. pClan[ id ] = 0;
  304. }
  305. else {
  306. format(str, sizeof(str), "Admin %s Vam dao lidera organizacije %s.", pname, OrgInfo[ oid ][ orgIme ]);
  307. SCM(id, -1, str);
  308. format(str, sizeof(str), "Dali ste lidera igracu %s.", pname1);
  309. SCM(playerid, -1, str);
  310. pLider[ id ] = oid;
  311. OrgInfo[ oid ][ orgLider ] = pname1;
  312. SetPlayerSkin(playerid, OrgInfo[ oid ][ orgSkin5 ]);
  313. SaveOrg(oid);
  314. pRank[ id ] = 5;
  315. pClan[ id ] = oid;
  316. }
  317. return 1;
  318. }
  319. YCMD:ubaci(playerid, params[], help) {
  320.  
  321. #pragma unused help
  322.  
  323. if(pLider[ playerid ] == 0) return SCM(playerid, -1, "Niste lider ni jedne organizacije.");
  324. new id, pname[ MAX_PLAYER_NAME ], str[ 60 ];
  325. if(sscanf(params, "u", id)) return SCM(playerid, -1, "/ubaci [ID]");
  326. if(pClan[ id ] > 0) return SCM(playerid, -1, "Taj igrac je vec clan neke organizacije.");
  327. if(OrgInfo[ pLider[ playerid ] ][ orgClanovi ] == MAX_CLANOVI) return SCM(playerid, -1, "Dostigli ste maximalan broj clanova.");
  328. GetPlayerName(playerid, pname, sizeof(pname));
  329. SCM(playerid, -1, "Poslali ste poziv za organizaciju.");
  330. format(str, sizeof(str), "Lider %s Vam je poslao poziv da se pridruzite\nOrganizaciji %s.", pname, OrgInfo[ pLider[ playerid ] ][ orgIme ]);
  331. SPD(id, DIALOG_ORGINV, DIALOG_STYLE_MSGBOX, "POZIV", str, "Prihvati","Odbij");
  332. oPozvan[ id ] = pLider[ playerid ];
  333. return 1;
  334. }
  335. YCMD:izbaci(playerid, params[], help) {
  336.  
  337. #pragma unused help
  338.  
  339. if(pLider[ playerid ] == 0) return SCM(playerid, -1, "Niste lider ni jedne organizacije.");
  340. new id;
  341. if(sscanf(params, "u", id)) return SCM(playerid, -1, "/izbaci [ID]");
  342. if(pClan[ id ] != pLider[ playerid ]) return SCM(playerid, -1, "Taj igrac nije clan Vase organizacije.");
  343. SCM(id, -1, "Izbaceni ste iz organizacije.");
  344. SetPlayerSkin(id, 1);
  345. pClan[ id ] = 0;
  346. SCM(playerid, -1, "Izbacili ste igraca iz organizacije.");
  347. OrgInfo[ pLider[ playerid ] ][ orgClanovi ]--;
  348. SaveOrg(pLider[ playerid ]);
  349. return 1;
  350. }
  351. YCMD:dodelirank(playerid, params[], help) {
  352.  
  353. #pragma unused help
  354.  
  355. if(pLider[ playerid ] == 0) return SCM(playerid, -1, "Niste lider ni jedne organizacije.");
  356. new id, rid, str[ 60 ];
  357. if(sscanf(params, "ud", id, rid)) return SCM(playerid, -1, "/dodelirank [ID] [ID Ranka]");
  358. if(rid < 1 || rid > 4) return SCM(playerid, -1, "Rank ID : 1 - 4");
  359. if(pClan[ id ] != pLider[ playerid ]) return SCM(playerid, -1, "Taj igrac nije clan Vase organizacije.");
  360. format(str, sizeof(str), "Lider Vas je unapredio u rank %d.", rid);
  361. SCM(id, -1, str);
  362. SCM(playerid, -1, "Dodelili ste igracu rank.");
  363. pRank[ id ] = rid;
  364. if(rid == 1) { SetPlayerSkin(id, OrgInfo[ pLider[ playerid ] ][ orgSkin1 ]); }
  365. else if(rid == 2) { SetPlayerSkin(id, OrgInfo[ pLider[ playerid ] ][ orgSkin2 ]); }
  366. else if(rid == 3) { SetPlayerSkin(id, OrgInfo[ pLider[ playerid ] ][ orgSkin3 ]); }
  367. else if(rid == 4) { SetPlayerSkin(id, OrgInfo[ pLider[ playerid ] ][ orgSkin4 ]); }
  368. return 1;
  369. }
  370. YCMD:f(playerid, params[], help) {
  371.  
  372. #pragma unused help
  373.  
  374. if(pClan[ playerid ] == 0) return SCM(playerid, -1, "Niste clan ni jedne organizacije.");
  375. new text[ 80 ], str[ 130 ], pname[ MAX_PLAYER_NAME ];
  376. GetPlayerName(playerid, pname, sizeof(pname));
  377. if(sscanf(params, "s[80]", text)) return SCM(playerid, -1, "/f [Text]");
  378. if(pRank[ playerid ] == 1) { format(str, sizeof(str), "%s %s - %s.", OrgInfo[ pClan[ playerid ] ][ orgRank1 ], pname, text); }
  379. else if(pRank[ playerid ] == 2) { format(str, sizeof(str), "%s %s - %s.", OrgInfo[ pClan[ playerid ] ][ orgRank2 ], pname, text); }
  380. else if(pRank[ playerid ] == 3) { format(str, sizeof(str), "%s %s - %s.", OrgInfo[ pClan[ playerid ] ][ orgRank3 ], pname, text); }
  381. else if(pRank[ playerid ] == 4) { format(str, sizeof(str), "%s %s - %s.", OrgInfo[ pClan[ playerid ] ][ orgRank4 ], pname, text); }
  382. else if(pRank[ playerid ] == 5) { format(str, sizeof(str), "%s %s - %s.", OrgInfo[ pClan[ playerid ] ][ orgRank5 ], pname, text); }
  383. for(new i; i < MAX_PLAYERS; i++) {
  384. if(pClan[ i ] == pClan[ playerid ] || pLider[ i ] == pClan[ playerid ]) return SCM(i, -1, str);
  385. }
  386. return 1;
  387. }
  388. YCMD:kreirajorg(playerid, params[], help) {
  389.  
  390. #pragma unused help
  391. #pragma unused params
  392.  
  393. if(!IsPlayerAdmin(playerid)) return SCM(playerid, -1, "Niste ovlasceni.");
  394. SPD(playerid, DIALOG_ORGCREATE, DIALOG_STYLE_INPUT, "ORG Kreiranje","Upisite ime organizacije.\nMax 30 slova.","Dalje","Izlaz");
  395. return 1;
  396. }
  397. YCMD:zauzmi(playerid, params[], help) {
  398.  
  399. #pragma unused help
  400. #pragma unused params
  401.  
  402. if(Zauzima[ playerid ] != 0) return SCM(playerid, -1, "Vec zauzimate.");
  403. for(new i; i < MAX_ORGS; i++) {
  404. if(IsPlayerInRangeOfPoint(playerid, 3.0, OrgInfo[ i ][ pPosX ], OrgInfo[ i ][ pPosY ], OrgInfo[ i ][ pPosZ ])) {
  405. if(pClan[ playerid ] == OrgInfo[ i ][ orgZauzeta ]) return SCM(playerid, -1, "Hoces da zauzmes svoju zonu?");
  406. if(pClan[ playerid ] == 0) return SCM(playerid, -1, "Niste clan ni jedne organizacije.");
  407. ZauzimanjeTimer[ playerid ] = SetTimerEx("ZauzimanjeVreme", 600000, false, "i", playerid);
  408. SCM(playerid, -1, "Krenuli ste da zauzimate, sacekajte 10 minuta.");
  409. ApplyAnimation(playerid, "BOMBER","BOM_Plant_Loop",4.0,1,0,0,1,0);
  410. TogglePlayerControllable(playerid, false);
  411. Zauzima[ playerid ] = i;
  412. for(new o; o < MAX_PLAYERS; o++) {
  413. if(pClan[ o ] == OrgInfo[ i ][ orgZauzeta ] || pLider[ o ] == OrgInfo[ i ][ orgZauzeta ]) { SCM(playerid, -1, "Neko pokusava da vam zauzme zonu !"); }
  414. }
  415. }
  416. }
  417. return 1;
  418. }
  419.  
  420. stock NextORGID(const len) {
  421. new id = (-1);
  422. for( new loop = ( 0 ), provjera = ( -1 ), Data_[ 64 ] = "\0"; loop != len; ++ loop ) {
  423. provjera = ( loop+1 );
  424. format( Data_, ( sizeof Data_ ), ORG_FILE, provjera );
  425. if(!fexist(Data_)) {
  426. id = ( provjera );
  427. break; } }
  428. return ( id );
  429. }
  430. stock SaveOrg(id) {
  431. new oFile[ 60 ];
  432. format(oFile, sizeof(oFile), ORG_FILE, id);
  433. new INI:File = INI_Open(oFile);
  434. INI_WriteString(File, "Ime", OrgInfo[ id ][ orgIme ]);
  435. INI_WriteString(File, "Skracenica", OrgInfo[ id ][ orgSkracenica ]);
  436. INI_WriteHex(File, "Boja", OrgInfo[ id ][ orgBoja ]);
  437. INI_WriteHex(File, "Boja_Zone", OrgInfo[ id ][ zBoja ]);
  438. INI_WriteInt(File, "Clanovi", OrgInfo[ id ][ orgClanovi ]);
  439. INI_WriteString(File, "Lider", OrgInfo[ id ][ orgLider ]);
  440. INI_WriteString(File, "Rank_1", OrgInfo[ id ][ orgRank1 ]);
  441. INI_WriteString(File, "Rank_2", OrgInfo[ id ][ orgRank2 ]);
  442. INI_WriteString(File, "Rank_3", OrgInfo[ id ][ orgRank3 ]);
  443. INI_WriteString(File, "Rank_4", OrgInfo[ id ][ orgRank4 ]);
  444. INI_WriteString(File, "Rank_5", OrgInfo[ id ][ orgRank5 ]);
  445. INI_WriteInt(File, "Skin_Rank_1", OrgInfo[ id ][ orgSkin1 ]);
  446. INI_WriteInt(File, "Skin_Rank_2", OrgInfo[ id ][ orgSkin2 ]);
  447. INI_WriteInt(File, "Skin_Rank_3", OrgInfo[ id ][ orgSkin3 ]);
  448. INI_WriteInt(File, "Skin_Rank_4", OrgInfo[ id ][ orgSkin4 ]);
  449. INI_WriteInt(File, "Skin_Rank_5", OrgInfo[ id ][ orgSkin5 ]);
  450. INI_WriteFloat(File, "Lokacija_X", OrgInfo[ id ][ orgPosX ]);
  451. INI_WriteFloat(File, "Lokacija_Y", OrgInfo[ id ][ orgPosY ]);
  452. INI_WriteFloat(File, "Lokacija_Z", OrgInfo[ id ][ orgPosZ ]);
  453. INI_WriteFloat(File, "Interior_X", OrgInfo[ id ][ intPosX ]);
  454. INI_WriteFloat(File, "Interior_Y", OrgInfo[ id ][ intPosY ]);
  455. INI_WriteFloat(File, "Interior_Z", OrgInfo[ id ][ intPosZ ]);
  456. INI_WriteFloat(File, "Zona_Min_X", OrgInfo[ id ][ zMinX ]);
  457. INI_WriteFloat(File, "Zona_Min_Y", OrgInfo[ id ][ zMinY ]);
  458. INI_WriteFloat(File, "Zona_Max_X", OrgInfo[ id ][ zMaxX ]);
  459. INI_WriteFloat(File, "Zona_Max_Y", OrgInfo[ id ][ zMaxY ]);
  460. INI_WriteFloat(File, "Zauzimanje_X", OrgInfo[ id ][ pPosX ]);
  461. INI_WriteFloat(File, "Zauzimanje_Y", OrgInfo[ id ][ pPosY ]);
  462. INI_WriteFloat(File, "Zauzimanje_Z", OrgInfo[ id ][ pPosZ ]);
  463. INI_WriteInt(File, "ORG_Zauzeta", OrgInfo[ id ][ orgZauzeta ]);
  464. INI_Close(File);
  465. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement