Advertisement
BE-Shomy

Update

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