Advertisement
Guest User

Update - Shomy

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