Guest User

Dinamicno kreiranje organizacija by Shomy v0.3

a guest
Apr 11th, 2018
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 33.52 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. // Define //
  9.  
  10. #undef MAX_PLAYERS
  11. #define MAX_PLAYERS 50
  12.  
  13. #define MAX_CLANOVI 15 // Podesite
  14.  
  15. #define MAX_ORGS 30
  16. #define MAX_ORGVEHS 100
  17. #define MAX_ORGGATES 60
  18. #define ORG_FILE "/Organizacije/%d.ini"
  19. #define ORGVEH_FILE "/OrgVozila/%d.ini"
  20. #define ORGGATES_FILE "/OrgKapije/%d.ini"
  21.  
  22. #define SCM SendClientMessage
  23. #define SPD ShowPlayerDialog
  24.  
  25. // Dialozi //
  26.  
  27. enum {
  28.  
  29. DIALOG_ORGCREATE,
  30. DIALOG_ORGCREATE2,
  31. DIALOG_ORGCREATE3,
  32. DIALOG_ORGCREATE4,
  33. DIALOG_ORGCREATE5,
  34. DIALOG_ORGCREATE7,
  35. DIALOG_ORGCREATE6,
  36. DIALOG_ZONACREATE,
  37.  
  38. DIALOG_ORGINV
  39. }
  40.  
  41. // Enum //
  42.  
  43. enum ORG_INFO {
  44.  
  45. Float:orgPosX,
  46. Float:orgPosY,
  47. Float:orgPosZ,
  48. orgBoja,
  49. zBoja,
  50. orgIme[ 30 ],
  51. orgSkracenica[ 5 ],
  52. orgRank1[ 24 ],
  53. orgRank2[ 24 ],
  54. orgRank3[ 24 ],
  55. orgRank4[ 24 ],
  56. orgRank5[ 24 ],
  57. orgSkin1,
  58. orgSkin2,
  59. orgSkin3,
  60. orgSkin4,
  61. orgSkin5,
  62. Float:zMinX,
  63. Float:zMinY,
  64. Float:zMaxX,
  65. Float:zMaxY,
  66. Float:pPosX,
  67. Float:pPosY,
  68. Float:pPosZ,
  69. Float:intPosX,
  70. Float:intPosY,
  71. Float:intPosZ,
  72. orgZauzeta,
  73. orgClanovi,
  74. orgLider[ MAX_PLAYER_NAME ],
  75. orgInt,
  76. orgVW,
  77. zID,
  78. oID,
  79. pID
  80. }
  81. enum ORGVEH_INFO {
  82.  
  83. Float:ovPosX,
  84. Float:ovPosY,
  85. Float:ovPosZ,
  86. Float:ovRotA,
  87. ovBoja1,
  88. ovBoja2,
  89. ovModel,
  90. ovOrgID,
  91. ovID
  92. }
  93. enum ORGGATE_INFO {
  94.  
  95. Float:ogPosX,
  96. Float:ogPosY,
  97. Float:ogPosZ,
  98. Float:ogRotX,
  99. Float:ogRotY,
  100. Float:ogRotZ,
  101. Float:oogPosX,
  102. Float:oogPosY,
  103. Float:oogPosZ,
  104. Float:oogRotX,
  105. Float:oogRotY,
  106. Float:oogRotZ,
  107. ogOrgID,
  108. ogBrzinaZ,
  109. ogVremeZ,
  110. ogObjID,
  111. ogID,
  112. bool:ogOtvorena
  113. }
  114.  
  115. // New //
  116.  
  117. 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 ];
  118. new pClan[ MAX_PLAYERS ], pRank[ MAX_PLAYERS ], pLider[ MAX_PLAYERS ]; // Dodati u PlayerInfo
  119. new oPozvan[ MAX_PLAYERS ], ZauzimanjeTimer[ MAX_PLAYERS ], Zauzima[ MAX_PLAYERS ], KapijaTimer[ MAX_ORGGATES ];
  120. new OrgVehInfo[ MAX_ORGVEHS ][ ORGVEH_INFO ], Text3D:OrgVehLabel[ sizeof(OrgVehInfo) ], OrgGateInfo[ MAX_ORGGATES ][ ORGGATE_INFO ], KreiraKapiju[ MAX_PLAYERS ], bool:KreiraZatvorenu[ MAX_PLAYERS ];
  121.  
  122. // Publics //
  123.  
  124. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  125.  
  126. switch(dialogid) {
  127. case DIALOG_ORGCREATE: {
  128. if(response) {
  129. new ime[ 30 ], i = NextORGID(MAX_ORGS);
  130. if(sscanf(inputtext, "s[30]", ime)) return SPD(playerid, DIALOG_ORGCREATE, DIALOG_STYLE_INPUT, "ORG Kreiranje","Upisite ime organizacije.\nMax 30 slova.","Dalje","Izlaz");
  131. KreiraOrg[ playerid ] = i;
  132. OrgInfo[ i ][ orgIme ] = ime;
  133. SPD(playerid, DIALOG_ORGCREATE2, DIALOG_STYLE_INPUT, "ORG Kreiranje","Upisite skracenicu organizacije.\nPrimer - GSF","Dalje","Izlaz");
  134.  
  135. }
  136. }
  137. case DIALOG_ORGCREATE2: {
  138. if(response) {
  139. new skracenica[ 5 ], i = KreiraOrg[ playerid ];
  140. if(sscanf(inputtext, "s[5]", skracenica)) return SPD(playerid, DIALOG_ORGCREATE2, DIALOG_STYLE_INPUT, "ORG Kreiranje","Upisite skracenicu organizacije.\nPrimer - GSF","Dalje","Izlaz");
  141. OrgInfo[ i ][ orgSkracenica ] = skracenica;
  142. SPD(playerid, DIALOG_ORGCREATE3, DIALOG_STYLE_INPUT, "ORG Kreiranje","Upisite HEX Boju organizacije.\nPrimer: 0xFFFFFFFF","Dalje","Izlaz");
  143. }
  144. }
  145. case DIALOG_ORGCREATE3: {
  146. if(response) {
  147. new hex, i = KreiraOrg[ playerid ];
  148. if(sscanf(inputtext, "h", hex)) return SPD(playerid, DIALOG_ORGCREATE3, DIALOG_STYLE_INPUT, "ORG Kreiranje","Upisite HEX Boju organizacije.\nPrimer: 0xFFFFFFFF","Dalje","Izlaz");
  149. OrgInfo[ i ][ orgBoja ] = hex;
  150. SPD(playerid, DIALOG_ORGCREATE4, DIALOG_STYLE_INPUT, "ORG Kreiranje","Upisite imena 5 rankova.\n5. rank je lider.","Dalje","Izlaz");
  151. }
  152. }
  153. case DIALOG_ORGCREATE4: {
  154. if(response) {
  155. new r1[ 24 ], r2[ 24 ], r3[ 24 ], r4[ 24 ], r5[ 24 ], i = KreiraOrg[ playerid ];
  156. 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");
  157. OrgInfo[ i ][ orgRank1 ] = r1; OrgInfo[ i ][ orgRank2 ] = r2; OrgInfo[ i ][ orgRank3 ] = r3; OrgInfo[ i ][ orgRank4 ] = r4; OrgInfo[ i ][ orgRank5 ] = r5;
  158. SPD(playerid, DIALOG_ORGCREATE6, DIALOG_STYLE_INPUT, "ORG Kreiranje", "Upisite IDove 5 skinova.","Dalje","Izlaz");
  159. }
  160. }
  161. case DIALOG_ORGCREATE6: {
  162. if(response) {
  163. new s1, s2, s3, s4, s5, i = KreiraOrg[ playerid ];
  164. 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");
  165. OrgInfo[ i ][ orgSkin1 ] = s1; OrgInfo[ i ][ orgSkin2 ] = s2; OrgInfo[ i ][ orgSkin3 ] = s3; OrgInfo[ i ][ orgSkin4 ] = s4; OrgInfo[ i ][ orgSkin5 ] = s5;
  166. SPD(playerid, DIALOG_ORGCREATE5, DIALOG_STYLE_INPUT, "ORG Kreiranje", "Upisite kordinate enterijera organizacije.","Dalje","Izlaz");
  167. }
  168. }
  169. case DIALOG_ORGCREATE5: {
  170. if(response) {
  171. new Float:iX, Float:iY, Float:iZ, i = KreiraOrg[ playerid ];
  172. if(sscanf(inputtext, "fff", iX, iY, iZ)) return SPD(playerid, DIALOG_ORGCREATE5, DIALOG_STYLE_INPUT, "ORG Kreiranje","Upisite kordinate enterijera organizacije.","Dalje","Izlaz");
  173. OrgInfo[ i ][ intPosX ] = iX;
  174. OrgInfo[ i ][ intPosY ] = iY;
  175. OrgInfo[ i ][ intPosZ ] = iZ;
  176. SPD(playerid, DIALOG_ORGCREATE7, DIALOG_STYLE_INPUT, "ORG Kreiranje","Upisite ID enterijera pa ID Virtual Worlda.","Dalje","Izlaz");
  177. }
  178. }
  179. case DIALOG_ORGCREATE7: {
  180. if(response) {
  181. new int, vw, i = KreiraOrg[ playerid ];
  182. 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");
  183. OrgInfo[ i ][ orgInt ] = int;
  184. OrgInfo[ i ][ orgVW ] = vw;
  185. KreiraZonu[ playerid ] = true;
  186. SCM(playerid, -1, "Sada kreirajte zonu.");
  187. SCM(playerid, -1, "Idite do drugog kraja zone i pritisnite dugme Y.");
  188. new Float:X, Float:Y, Float:Z, str[ 35 ];
  189. GetPlayerPos(playerid, X,Y,Z);
  190. OrgInfo[ i ][ zMinX ] = X;
  191. OrgInfo[ i ][ zMinY ] = Y;
  192. OrgInfo[ i ][ oID ] = CreatePickup(1314, 1, X,Y,Z, 0);
  193. format(str, sizeof(str), "[ %s ]", OrgInfo[ i ][ orgIme ]);
  194. OrgLabel[ i ] = Create3DTextLabel(str, OrgInfo[ i ][ orgBoja ], X,Y,Z, 15.0, 0,0);
  195. OrgInfo[ i ][ orgPosX ] = X;
  196. OrgInfo[ i ][ orgPosY ] = Y;
  197. OrgInfo[ i ][ orgPosZ ] = Z;
  198. }
  199. }
  200. case DIALOG_ZONACREATE: {
  201. if(response) {
  202. new hex;
  203. if(sscanf(inputtext, "h", hex)) return SPD(playerid, DIALOG_ZONACREATE, DIALOG_STYLE_INPUT, "Zona Kreiranje","Upisite HEX Boju zone.","U redu","Izlaz");
  204. GangZoneShowForAll(OrgInfo[ KreiraOrg[ playerid ] ][ zID ], hex);
  205. KreiraPickup[ playerid ] = true;
  206. OrgInfo[ KreiraOrg[ playerid ] ][ zBoja ] = hex;
  207. SCM(playerid, -1, "Sada sacuvajte poziciju pickupa za zauzimanje dugmetom Y.");
  208. }
  209. }
  210. case DIALOG_ORGINV: {
  211. if(response) {
  212. new i = oPozvan[ playerid ], pname[ MAX_PLAYER_NAME ];
  213. GetPlayerName(playerid, pname, sizeof(pname));
  214. OrgInfo[ i ][ orgClanovi ]++;
  215. pClan[ playerid ] = i;
  216. SaveOrg(i);
  217. for(new p; p < MAX_PLAYERS; p++) {
  218. 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); }
  219. }
  220. oPozvan[ playerid ] = 0;
  221. }
  222. else {
  223. new i = oPozvan[ playerid ], pname[ MAX_PLAYER_NAME ];
  224. GetPlayerName(playerid, pname, sizeof(pname));
  225. for(new p; p < MAX_PLAYERS; p++) {
  226. if(pClan[ p ] == i) { new str[ 60 ]; format(str, sizeof(str), "Igrac %s je odbio poziv za organizaciju.", pname); SCM(p, -1, str); }
  227. }
  228. oPozvan[ playerid ] = 0;
  229. }
  230. }
  231. }
  232. return 1;
  233. }
  234. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
  235.  
  236. if(newkeys == KEY_YES) {
  237. if(KreiraZonu[ playerid ]) {
  238. new i = KreiraOrg[ playerid ], Float:X, Float:Y, Float:Z;
  239. GetPlayerPos(playerid, X,Y,Z);
  240. OrgInfo[ i ][ zMaxX ] = X;
  241. OrgInfo[ i ][ zMaxY ] = Y;
  242. OrgInfo[ i ][ zID ] = GangZoneCreate(OrgInfo[ i ][ zMinX ], OrgInfo[ i ][ zMinY ], X, Y);
  243. SPD(playerid, DIALOG_ZONACREATE, DIALOG_STYLE_INPUT, "Zona Kreiranje","Upisite HEX Boju zone.","U redu","Izlaz");
  244. KreiraZonu[ playerid ] = false;
  245. }
  246. else if(KreiraPickup[ playerid ]) {
  247. new i = KreiraOrg[ playerid ], Float:X, Float:Y, Float:Z;
  248. GetPlayerPos(playerid, X,Y,Z);
  249. OrgInfo[ i ][ pPosX ] = X;
  250. OrgInfo[ i ][ pPosY ] = Y;
  251. OrgInfo[ i ][ pPosZ ] = Z;
  252. OrgInfo[ i ][ pID ] = CreatePickup(1254, 1, X,Y,Z, 0);
  253. new str[ 70 ];
  254. format(str, sizeof(str), "[ %s ]\n{FFFFFF}Da zauzmete, kucajte /zauzmi", OrgInfo[ i ][ orgIme ]);
  255. ZauzimanjeLabel[ i ] = Create3DTextLabel(str, OrgInfo[ i ][ orgBoja ], X,Y,Z, 15.0, 0, 0);
  256. SCM(playerid, -1, "Zavrsili ste kreiranje organizacije.");
  257. OrgInfo[ i ][ orgZauzeta ] = i;
  258. SaveOrg(i);
  259. KreiraOrg[ playerid ] = 0;
  260. KreiraPickup[ playerid ] = false;
  261. }
  262. }
  263. if(newkeys == KEY_SECONDARY_ATTACK) {
  264. for(new i; i < MAX_ORGS; i++) {
  265. if(IsPlayerInRangeOfPoint(playerid, 2.0, OrgInfo[ i ][ orgPosX ], OrgInfo[ i ][ orgPosY ], OrgInfo[ i ][ orgPosZ ])) {
  266. SetPlayerPos(playerid, OrgInfo[ i ][ intPosX ], OrgInfo[ i ][ intPosY ], OrgInfo[ i ][ intPosZ ]);
  267. SetPlayerInterior(playerid, OrgInfo[ i ][ orgInt ]);
  268. SetPlayerVirtualWorld(playerid, OrgInfo[ i ][ orgVW ]);
  269. }
  270. else if(IsPlayerInRangeOfPoint(playerid, 2.0, OrgInfo[ i ][ intPosX ], OrgInfo[ i ][ intPosY ], OrgInfo[ i ][ intPosZ ])) {
  271. SetPlayerPos(playerid, OrgInfo[ i ][ orgPosX ], OrgInfo[ i ][ orgPosY ], OrgInfo[ i ][ orgPosZ ]);
  272. SetPlayerInterior(playerid, 0);
  273. SetPlayerVirtualWorld(playerid, 0);
  274. }
  275. }
  276. }
  277. if(newkeys == KEY_CROUCH) {
  278. for(new i; i < MAX_ORGGATES; i++) {
  279. if(IsPlayerInRangeOfPoint(playerid, 7.0, OrgGateInfo[ i ][ ogPosX ], OrgGateInfo[ i ][ ogPosY ], OrgGateInfo[ i ][ ogPosZ ])) {
  280. if(!OrgGateInfo[ i ][ ogOtvorena ]) {
  281. new str[ 60 ];
  282. MoveObject(OrgGateInfo[ i ][ ogID ], OrgGateInfo[ i ][ oogPosX ], OrgGateInfo[ i ][ oogPosY ], OrgGateInfo[ i ][ oogPosZ ], OrgGateInfo[ i ][ ogBrzinaZ ], OrgGateInfo[ i ][ oogRotX ], OrgGateInfo[ i ][ oogRotY ], OrgGateInfo[ i ][ oogRotZ ]);
  283. KapijaTimer[ i ] = SetTimerEx("CloseGate", OrgGateInfo[ i ][ ogVremeZ ]*1000, false, "i", i);
  284. OrgGateInfo[ i ][ ogOtvorena ] = true;
  285. format(str, sizeof(str), "Otvorili ste kapiju, zatvorice se automatski za %d sekundi.", OrgGateInfo[ i ][ ogVremeZ ]);
  286. SCM(playerid, -1, str);
  287. }
  288. else {
  289. MoveObject(OrgGateInfo[ i ][ ogID ], OrgGateInfo[ i ][ ogPosX ], OrgGateInfo[ i ][ ogPosY ], OrgGateInfo[ i ][ ogPosZ ], OrgGateInfo[ i ][ ogBrzinaZ ], OrgGateInfo[ i ][ ogRotX ], OrgGateInfo[ i ][ ogRotY ], OrgGateInfo[ i ][ ogRotZ ]);
  290. KillTimer(KapijaTimer[ i ]);
  291. OrgGateInfo[ i ][ ogOtvorena ] = false;
  292. SCM(playerid, -1, "Zatvorili ste kapiju.");
  293. }
  294. }
  295. }
  296. }
  297. return 1;
  298. }
  299. forward CloseGate(id); public CloseGate(id) {
  300.  
  301. MoveObject(OrgGateInfo[ id ][ ogID ], OrgGateInfo[ id ][ ogPosX ], OrgGateInfo[ id ][ ogPosY ], OrgGateInfo[ id ][ ogPosZ ], OrgGateInfo[ id ][ ogBrzinaZ ], OrgGateInfo[ id ][ ogRotX ], OrgGateInfo[ id ][ ogRotY ], OrgGateInfo[ id ][ ogRotZ ]);
  302. OrgGateInfo[ id ][ ogOtvorena ] = false;
  303. return 1;
  304. }
  305. forward ZauzimanjeVreme(playerid);
  306. public ZauzimanjeVreme(playerid) {
  307.  
  308. new i = Zauzima[ playerid ], str[ 70 ];
  309. GangZoneHideForAll(OrgInfo[ i ][ zID ]);
  310. GangZoneShowForAll(OrgInfo[ i ][ zID ], OrgInfo[ i ][ zBoja ]);
  311. format(str, sizeof(str), "[ %s ]\n{FFFFFF}Da zauzmete, kucajte /zauzmi", OrgInfo[ pClan[ playerid ] ][ orgIme ]);
  312. Update3DTextLabelText(ZauzimanjeLabel[ i ], OrgInfo[ i ][ orgBoja ], str);
  313. GivePlayerMoney(playerid, 50000);
  314. ClearAnimations(playerid);
  315. TogglePlayerControllable(playerid, true);
  316. SCM(playerid, -1, "Uspesno ste zauzeli zonu.");
  317. return 1;
  318. }
  319. public OnPlayerDeath(playerid) {
  320.  
  321. if(Zauzima[ playerid ] != 0) { KillTimer(ZauzimanjeTimer[ playerid ]); }
  322. return 1;
  323. }
  324. forward LoadOrgGate(id, name[], value[]);
  325. public LoadOrgGate(id, name[], value[]) {
  326.  
  327. INI_Int("ORG_ID", OrgGateInfo[ id ][ ogOrgID ]);
  328. INI_Int("Object_ID", OrgGateInfo[ id ][ ogObjID ]);
  329. INI_Float("Lokacija_X", OrgGateInfo[ id ][ ogPosX ]);
  330. INI_Float("Lokacija_Y", OrgGateInfo[ id ][ ogPosY ]);
  331. INI_Float("Lokacija_Z", OrgGateInfo[ id ][ ogPosZ ]);
  332. INI_Float("Rotacija_X", OrgGateInfo[ id ][ ogRotX ]);
  333. INI_Float("Rotacija_Y", OrgGateInfo[ id ][ ogRotY ]);
  334. INI_Float("Rotacija_Z", OrgGateInfo[ id ][ ogRotZ ]);
  335. INI_Float("Otvorena_X", OrgGateInfo[ id ][ oogPosX ]);
  336. INI_Float("Orvorena_Y", OrgGateInfo[ id ][ oogPosY ]);
  337. INI_Float("Otvorena_Z", OrgGateInfo[ id ][ oogPosZ ]);
  338. INI_Float("Otvorena_RX", OrgGateInfo[ id ][ oogRotX ]);
  339. INI_Float("Otvorena_RY", OrgGateInfo[ id ][ oogRotY ]);
  340. INI_Float("Otvorena_RZ", OrgGateInfo[ id ][ oogRotZ ]);
  341. INI_Int("Vreme_Zatvaranja", OrgGateInfo[ id ][ ogVremeZ ]);
  342. INI_Int("Brzina_Zatvaranja", OrgGateInfo[ id ][ ogBrzinaZ ]);
  343. return 1;
  344. }
  345. forward LoadOrg(id, name[], value[]);
  346. public LoadOrg(id, name[], value[]) {
  347.  
  348. INI_String("Ime", OrgInfo[ id ][ orgIme ], 30);
  349. INI_String("Skracenica", OrgInfo[ id ][ orgSkracenica ], 5);
  350. INI_Int("Interior_ID", OrgInfo[ id ][ orgInt ]);
  351. INI_Int("Virtual_World", OrgInfo[ id ][ orgVW ]);
  352. INI_Hex("Boja", OrgInfo[ id ][ orgBoja ]);
  353. INI_Hex("Boja_Zone", OrgInfo[ id ][ zBoja ]);
  354. INI_Int("Clanovi", OrgInfo[ id ][ orgClanovi ]);
  355. INI_String("Lider", OrgInfo[ id ][ orgLider ], 24);
  356. INI_String("Rank_1", OrgInfo[ id ][ orgRank1 ], 24);
  357. INI_String("Rank_2", OrgInfo[ id ][ orgRank2 ], 24);
  358. INI_String("Rank_3", OrgInfo[ id ][ orgRank3 ], 24);
  359. INI_String("Rank_4", OrgInfo[ id ][ orgRank4 ], 24);
  360. INI_String("Rank_5", OrgInfo[ id ][ orgRank5 ], 24);
  361. INI_Int("Skin_Rank_1", OrgInfo[ id ][ orgSkin1 ]);
  362. INI_Int("Skin_Rank_2", OrgInfo[ id ][ orgSkin2 ]);
  363. INI_Int("Skin_Rank_3", OrgInfo[ id ][ orgSkin3 ]);
  364. INI_Int("Skin_Rank_4", OrgInfo[ id ][ orgSkin4 ]);
  365. INI_Int("Skin_Rank_5", OrgInfo[ id ][ orgSkin5 ]);
  366. INI_Float("Lokacija_X", OrgInfo[ id ][ orgPosX ]);
  367. INI_Float("Lokacija_Y", OrgInfo[ id ][ orgPosY ]);
  368. INI_Float("Lokacija_Z", OrgInfo[ id ][ orgPosZ ]);
  369. INI_Float("Interior_X", OrgInfo[ id ][ intPosX ]);
  370. INI_Float("Interior_Y", OrgInfo[ id ][ intPosY ]);
  371. INI_Float("Interior_Z", OrgInfo[ id ][ intPosZ ]);
  372. INI_Float("Zona_Min_X", OrgInfo[ id ][ zMinX ]);
  373. INI_Float("Zona_Min_Y", OrgInfo[ id ][ zMinY ]);
  374. INI_Float("Zona_Max_X", OrgInfo[ id ][ zMaxX ]);
  375. INI_Float("Zona_Max_Y", OrgInfo[ id ][ zMaxY ]);
  376. INI_Float("Zauzimanje_X", OrgInfo[ id ][ pPosX ]);
  377. INI_Float("Zauzimanje_Y", OrgInfo[ id ][ pPosY ]);
  378. INI_Float("Zauzimanje_Z", OrgInfo[ id ][ pPosZ ]);
  379. INI_Int("ORG_Zauzeta", OrgInfo[ id ][ orgZauzeta ]);
  380. return 1;
  381. }
  382. forward LoadOrgVeh(id, name[], value[]);
  383. public LoadOrgVeh(id, name[], value[]) {
  384.  
  385. INI_Int("Organizacija_ID", OrgVehInfo[ id ][ ovOrgID ]);
  386. INI_Int("Model", OrgVehInfo[ id ][ ovModel ]);
  387. INI_Float("Lokacija_X", OrgVehInfo[ id ][ ovPosX ]);
  388. INI_Float("Lokacija_Y", OrgVehInfo[ id ][ ovPosY ]);
  389. INI_Float("Lokacija_Z", OrgVehInfo[ id ][ ovPosZ ]);
  390. INI_Float("Rotacija_A", OrgVehInfo[ id ][ ovRotA ]);
  391. INI_Int("Boja_1", OrgVehInfo[ id ][ ovBoja1 ]);
  392. INI_Int("Boja_2", OrgVehInfo[ id ][ ovBoja2 ]);
  393. return 1;
  394. }
  395. public OnFilterScriptInit() {
  396.  
  397. for(new i; i < MAX_ORGS; i++) {
  398. new jFile[ 50 ], str[ 70 ];
  399. format(jFile, sizeof(jFile), ORG_FILE, i);
  400. if(fexist(jFile)) {
  401. INI_ParseFile(jFile, "LoadOrg", .bExtra = true, .extra = i);
  402. OrgInfo[ i ][ oID ] = CreatePickup(1314, 1, OrgInfo[ i ][ orgPosX ], OrgInfo[ i ][ orgPosY ], OrgInfo[ i ][ orgPosZ ], 0);
  403. format(str, sizeof(str), "[ %s ]", OrgInfo[ i ][ orgIme ]);
  404. OrgLabel[ i ] = Create3DTextLabel(str, OrgInfo[ i ][ orgBoja ], OrgInfo[ i ][ orgPosX ], OrgInfo[ i ][ orgPosY ], OrgInfo[ i ][ orgPosZ ], 15.0, 0,0);
  405. OrgInfo[ i ][ pID ] = CreatePickup(1254, 1, OrgInfo[ i ][ pPosX ], OrgInfo[ i ][ pPosY ], OrgInfo[ i ][ pPosZ ], 0);
  406. format(str, sizeof(str), "[ %s ]\n{FFFFFF}Da zauzmete, kucajte /zauzmi", OrgInfo[ i ][ orgIme ]);
  407. ZauzimanjeLabel[ i ] = Create3DTextLabel(str, OrgInfo[ i ][ orgBoja ], OrgInfo[ i ][ pPosX ], OrgInfo[ i ][ pPosY ], OrgInfo[ i ][ pPosZ ], 15.0, 0, 0);
  408. OrgInfo[ i ][ zID ] = GangZoneCreate(OrgInfo[ i ][ zMinX ], OrgInfo[ i ][ zMinY ], OrgInfo[ i ][ zMaxX ], OrgInfo[ i ][ zMaxY ]);
  409. }
  410. }
  411. for(new i; i < MAX_ORGVEHS; i++) {
  412. new jFile[ 50 ], str[ 35 ];
  413. format(jFile, sizeof(jFile), ORGVEH_FILE, i);
  414. if(fexist(jFile)) {
  415. INI_ParseFile(jFile, "LoadOrgVeh", .bExtra = true, .extra = i);
  416. 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);
  417. format(str, sizeof(str), "[ %s ]", OrgInfo[ OrgVehInfo[ i ][ ovOrgID ] ][ orgIme ]);
  418. OrgVehLabel[ i ] = Create3DTextLabel(str, OrgInfo[ OrgVehInfo[ i ][ ovOrgID ] ][ orgBoja ], OrgVehInfo[ i ][ ovPosX ], OrgVehInfo[ i ][ ovPosY ], OrgVehInfo[ i ][ ovPosZ ], 15.0, 0, 0);
  419. Attach3DTextLabelToVehicle(OrgVehLabel[ i ], OrgVehInfo[ i ][ ovID ], 0.0, 0.0, 0.0);
  420. }
  421. }
  422. for(new i; i < MAX_ORGGATES; i++) {
  423. new ogFile[ 60 ];
  424. format(ogFile, sizeof(ogFile), ORGGATES_FILE, i);
  425. if(fexist(ogFile)) {
  426. INI_ParseFile(ogFile, "LoadOrgGate", .bExtra = true, .extra = i);
  427. OrgGateInfo[ i ][ ogID ] = CreateObject(OrgGateInfo[ i ][ ogObjID ], OrgGateInfo[ i ][ ogPosX ], OrgGateInfo[ i ][ ogPosY ], OrgGateInfo[ i ][ ogPosZ ], OrgGateInfo[ i ][ ogRotX ], OrgGateInfo[ i ][ ogRotY ], OrgGateInfo[ i ][ ogRotZ ]);
  428. }
  429. }
  430. return 1;
  431. }
  432. public OnPlayerSpawn(playerid) {
  433.  
  434. for(new i; i < MAX_ORGS; i++) { GangZoneShowForPlayer(playerid, OrgInfo[ i ][ zID ], OrgInfo[ i ][ zBoja ]); }
  435. return 1;
  436. }
  437. public OnPlayerStateChange(playerid, newstate, oldstate) {
  438.  
  439. if(newstate == PLAYER_STATE_DRIVER) { if(pClan[ playerid ] != OrgVehInfo[ GetPlayerVehicleID(playerid) ][ ovOrgID ]) { RemovePlayerFromVehicle(playerid); SCM(playerid, -1, "Ne mozete voziti to vozilo."); } }
  440. return 1;
  441. }
  442. public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ) {
  443.  
  444. if(response == EDIT_RESPONSE_FINAL && KreiraKapiju[ playerid ] != 0) {
  445. new i = KreiraKapiju[ playerid ];
  446. if(!KreiraZatvorenu[ playerid ]) {
  447. OrgGateInfo[ i ][ ogPosX ] = fX;
  448. OrgGateInfo[ i ][ ogPosY ] = fY;
  449. OrgGateInfo[ i ][ ogPosZ ] = fZ;
  450. OrgGateInfo[ i ][ ogRotX ] = fRotX;
  451. OrgGateInfo[ i ][ ogRotY ] = fRotY;
  452. OrgGateInfo[ i ][ ogRotZ ] = fRotZ;
  453. DestroyObject(OrgGateInfo[ i ][ ogID ]);
  454. OrgGateInfo[ i ][ ogID ] = CreateObject(OrgGateInfo[ i ][ ogObjID ], fX, fY, fZ, fRotX, fRotY, fRotZ);
  455. EditObject(playerid, OrgGateInfo[ i ][ ogID ]);
  456. SCM(playerid, -1, "Sada sacuvajte pozicije otvorene kapije.");
  457. KreiraZatvorenu[ playerid ] = true;
  458. }
  459. else {
  460. OrgGateInfo[ i ][ oogPosX ] = fX;
  461. OrgGateInfo[ i ][ oogPosY ] = fY;
  462. OrgGateInfo[ i ][ oogPosZ ] = fZ;
  463. OrgGateInfo[ i ][ oogRotX ] = fRotX;
  464. OrgGateInfo[ i ][ oogRotY ] = fRotY;
  465. OrgGateInfo[ i ][ oogRotZ ] = fRotZ;
  466. DestroyObject(OrgGateInfo[ i ][ ogID ]);
  467. OrgGateInfo[ i ][ ogID ] = CreateObject(OrgGateInfo[ i ][ ogObjID ], OrgGateInfo[ i ][ ogPosX ], OrgGateInfo[ i ][ ogPosY ], OrgGateInfo[ i ][ ogPosZ ], OrgGateInfo[ i ][ ogRotX ], OrgGateInfo[ i ][ ogRotY ], OrgGateInfo[ i ][ ogRotZ ]);
  468. SaveOrgGate(i);
  469. KreiraZatvorenu[ playerid ] = false;
  470. KreiraKapiju[ playerid ] = 0;
  471. SCM(playerid, -1, "Uspesno ste zavrsili kreiranje kapije.");
  472. }
  473. }
  474. return 1;
  475. }
  476.  
  477. // Komande //
  478.  
  479. YCMD:kreirajkapiju(playerid, params[], help) {
  480.  
  481. new oid, objid, otime, ospeed, Float:X, Float:Y, Float:Z, i = NextKapijaID(MAX_ORGGATES);
  482. if(!IsPlayerAdmin(playerid)) return SCM(playerid, -1, "Niste ovlasceni.");
  483. if(sscanf(params, "dddd", oid, objid, otime, ospeed)) return SCM(playerid, -1, "/kreirajkapiju [ORG ID] [Object ID] [Vreme zatvaranja] [Brzina zatvaranja]");
  484. if(otime < 1 || otime > 20) return SCM(playerid, -1, "Vreme zatvaranja kapije ne moze biti manje od 1 ili vece od 20.");
  485. if(ospeed < 1 || ospeed > 10) return SCM(playerid, -1, "Brzina zatvaranja kapije ne moze biti manje od 1 ili vece od 10.");
  486. GetPlayerPos(playerid, X,Y,Z);
  487. OrgGateInfo[ i ][ ogID ] = CreateObject(objid, X, Y, Z, 0.0, 0.0, 0.0);
  488. EditObject(playerid, OrgGateInfo[ i ][ ogID ]);
  489. OrgGateInfo[ i ][ ogObjID ] = objid;
  490. OrgGateInfo[ i ][ ogOrgID ] = oid;
  491. OrgGateInfo[ i ][ ogVremeZ ] = otime;
  492. OrgGateInfo[ i ][ ogBrzinaZ ] = ospeed;
  493. KreiraKapiju[ playerid ] = i;
  494. return 1;
  495. }
  496.  
  497. YCMD:makeleader(playerid, params[], help) {
  498.  
  499. #pragma unused help
  500.  
  501. if(!IsPlayerAdmin(playerid)) return SCM(playerid, -1, "Niste ovlasceni.");
  502. new id, oid, str[ 100 ], pname[ MAX_PLAYER_NAME ], pname1[ MAX_PLAYER_NAME ], oFile[ 60 ];
  503. if(sscanf(params, "ud", id, oid)) return SCM(playerid, -1, "/makeleader [ID] [ORG ID]");
  504. format(oFile, sizeof(oFile), ORG_FILE, oid);
  505. if(!fexist(oFile)) return SCM(playerid, -1, "ID te organizacije ne postoji.");
  506. GetPlayerName(playerid, pname, sizeof(pname));
  507. GetPlayerName(id, pname1, sizeof(pname1));
  508. if(oid == 0) {
  509. format(str, sizeof(str), "Admin %s Vam je skinuo lidera.", pname);
  510. SCM(id, -1, str);
  511. format(str, sizeof(str), "Skinuli ste igracu %s lidera.", pname1);
  512. SCM(playerid, -1, str);
  513. pLider[ id ] = 0;
  514. SetPlayerSkin(id, 1);
  515. OrgInfo[ oid ][ orgLider ] = 0;
  516. pClan[ id ] = 0;
  517. }
  518. else {
  519. format(str, sizeof(str), "Admin %s Vam dao lidera organizacije %s.", pname, OrgInfo[ oid ][ orgIme ]);
  520. SCM(id, -1, str);
  521. format(str, sizeof(str), "Dali ste lidera igracu %s.", pname1);
  522. SCM(playerid, -1, str);
  523. pLider[ id ] = oid;
  524. OrgInfo[ oid ][ orgLider ] = pname1;
  525. SetPlayerSkin(playerid, OrgInfo[ oid ][ orgSkin5 ]);
  526. SaveOrg(oid);
  527. pRank[ id ] = 5;
  528. pClan[ id ] = oid;
  529. }
  530. return 1;
  531. }
  532. YCMD:ubaci(playerid, params[], help) {
  533.  
  534. #pragma unused help
  535.  
  536. if(pLider[ playerid ] == 0) return SCM(playerid, -1, "Niste lider ni jedne organizacije.");
  537. new id, pname[ MAX_PLAYER_NAME ], str[ 115 ];
  538. if(sscanf(params, "u", id)) return SCM(playerid, -1, "/ubaci [ID]");
  539. //if(pClan[ id ] > 0) return SCM(playerid, -1, "Taj igrac je vec clan neke organizacije.");
  540. if(OrgInfo[ pLider[ playerid ] ][ orgClanovi ] == MAX_CLANOVI) return SCM(playerid, -1, "Dostigli ste maximalan broj clanova.");
  541. GetPlayerName(playerid, pname, sizeof(pname));
  542. SCM(playerid, -1, "Poslali ste poziv za organizaciju.");
  543. format(str, sizeof(str), "Lider %s Vam je poslao poziv da se pridruzite\nOrganizaciji %s.", pname, OrgInfo[ pLider[ playerid ] ][ orgIme ]);
  544. SPD(id, DIALOG_ORGINV, DIALOG_STYLE_MSGBOX, "POZIV", str, "Prihvati","Odbij");
  545. oPozvan[ id ] = pLider[ playerid ];
  546. return 1;
  547. }
  548. YCMD:izbaci(playerid, params[], help) {
  549.  
  550. #pragma unused help
  551.  
  552. if(pLider[ playerid ] == 0) return SCM(playerid, -1, "Niste lider ni jedne organizacije.");
  553. new id;
  554. if(sscanf(params, "u", id)) return SCM(playerid, -1, "/izbaci [ID]");
  555. if(pClan[ id ] != pLider[ playerid ]) return SCM(playerid, -1, "Taj igrac nije clan Vase organizacije.");
  556. SCM(id, -1, "Izbaceni ste iz organizacije.");
  557. SetPlayerSkin(id, 1);
  558. pClan[ id ] = 0;
  559. SCM(playerid, -1, "Izbacili ste igraca iz organizacije.");
  560. OrgInfo[ pLider[ playerid ] ][ orgClanovi ]--;
  561. SaveOrg(pLider[ playerid ]);
  562. return 1;
  563. }
  564. YCMD:dodelirank(playerid, params[], help) {
  565.  
  566. #pragma unused help
  567.  
  568. if(pLider[ playerid ] == 0) return SCM(playerid, -1, "Niste lider ni jedne organizacije.");
  569. new id, rid, str[ 60 ];
  570. if(sscanf(params, "ud", id, rid)) return SCM(playerid, -1, "/dodelirank [ID] [ID Ranka]");
  571. if(rid < 1 || rid > 4) return SCM(playerid, -1, "Rank ID : 1 - 4");
  572. if(pClan[ id ] != pLider[ playerid ]) return SCM(playerid, -1, "Taj igrac nije clan Vase organizacije.");
  573. format(str, sizeof(str), "Lider Vas je unapredio u rank %d.", rid);
  574. SCM(id, -1, str);
  575. SCM(playerid, -1, "Dodelili ste igracu rank.");
  576. pRank[ id ] = rid;
  577. if(rid == 1) { SetPlayerSkin(id, OrgInfo[ pLider[ playerid ] ][ orgSkin1 ]); }
  578. else if(rid == 2) { SetPlayerSkin(id, OrgInfo[ pLider[ playerid ] ][ orgSkin2 ]); }
  579. else if(rid == 3) { SetPlayerSkin(id, OrgInfo[ pLider[ playerid ] ][ orgSkin3 ]); }
  580. else if(rid == 4) { SetPlayerSkin(id, OrgInfo[ pLider[ playerid ] ][ orgSkin4 ]); }
  581. return 1;
  582. }
  583. YCMD:f(playerid, params[], help) {
  584.  
  585. #pragma unused help
  586.  
  587. if(pClan[ playerid ] == 0) return SCM(playerid, -1, "Niste clan ni jedne organizacije.");
  588. new text[ 80 ], str[ 130 ], pname[ MAX_PLAYER_NAME ];
  589. GetPlayerName(playerid, pname, sizeof(pname));
  590. if(sscanf(params, "s[80]", text)) return SCM(playerid, -1, "/f [Text]");
  591. for(new i; i < MAX_PLAYERS; i++) {
  592. 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); }
  593. 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); }
  594. 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); }
  595. 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); }
  596. 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); }
  597. }
  598. return 1;
  599. }
  600. YCMD:kreirajorg(playerid, params[], help) {
  601.  
  602. #pragma unused help
  603. #pragma unused params
  604.  
  605. if(!IsPlayerAdmin(playerid)) return SCM(playerid, -1, "Niste ovlasceni.");
  606. SPD(playerid, DIALOG_ORGCREATE, DIALOG_STYLE_INPUT, "ORG Kreiranje","Upisite ime organizacije.\nMax 30 slova.","Dalje","Izlaz");
  607. return 1;
  608. }
  609. YCMD:zauzmi(playerid, params[], help) {
  610.  
  611. #pragma unused help
  612. #pragma unused params
  613.  
  614. if(Zauzima[ playerid ] != 0) return SCM(playerid, -1, "Vec zauzimate.");
  615. for(new i; i < MAX_ORGS; i++) {
  616. if(IsPlayerInRangeOfPoint(playerid, 3.0, OrgInfo[ i ][ pPosX ], OrgInfo[ i ][ pPosY ], OrgInfo[ i ][ pPosZ ])) {
  617. if(pClan[ playerid ] == OrgInfo[ i ][ orgZauzeta ]) return SCM(playerid, -1, "Hoces da zauzmes svoju zonu?");
  618. if(pClan[ playerid ] == 0) return SCM(playerid, -1, "Niste clan ni jedne organizacije.");
  619. ZauzimanjeTimer[ playerid ] = SetTimerEx("ZauzimanjeVreme", 5000, false, "i", playerid);
  620. SCM(playerid, -1, "Krenuli ste da zauzimate, sacekajte 10 minuta.");
  621. ApplyAnimation(playerid, "BOMBER","BOM_Plant_Loop",4.0,1,0,0,1,0);
  622. TogglePlayerControllable(playerid, false);
  623. Zauzima[ playerid ] = i;
  624. for(new o; o < MAX_PLAYERS; o++) {
  625. if(pClan[ o ] == OrgInfo[ i ][ orgZauzeta ] || pLider[ o ] == OrgInfo[ i ][ orgZauzeta ]) { SCM(playerid, -1, "Neko pokusava da vam zauzme zonu !"); }
  626. }
  627. }
  628. }
  629. return 1;
  630. }
  631. YCMD:kreirajorgveh(playerid, params[], help) {
  632.  
  633. #pragma unused help
  634.  
  635. if(!IsPlayerAdmin(playerid)) return SCM(playerid, -1, "Niste ovlasceni.");
  636. new oid, vehid, b1, b2, i = NextOrgVehID(MAX_ORGVEHS), Float:X, Float:Y, Float:Z, Float:A, ovFile[ 60 ], str[ 35 ];
  637. if(sscanf(params, "dddd", oid, vehid, b1, b2)) return SCM(playerid, -1, "/kreirajorgveh [ID ORG] [ID Vozila] [Boja 1] [Boja 2]");
  638. format(ovFile, sizeof(ovFile), ORG_FILE, oid);
  639. if(!fexist(ovFile)) return SCM(playerid, -1, "ID te organizacije ne postoji.");
  640. if(vehid < 400 || vehid > 611) return SCM(playerid, -1, "ID Vozila : 400 - 611");
  641. format(str, sizeof(str), "[ %s ]", OrgInfo[ oid ][ orgIme ]);
  642. GetPlayerPos(playerid, X,Y,Z); GetPlayerFacingAngle(playerid, A);
  643. OrgVehInfo[ i ][ ovID ] = CreateVehicle(vehid, X, Y, Z, A, b1, b2, -1);
  644. OrgVehLabel[ i ] = Create3DTextLabel(str, OrgInfo[ oid ][ orgBoja ], X,Y,Z, 15.0, 0, 0);
  645. Attach3DTextLabelToVehicle(OrgVehLabel[ i ], OrgVehInfo[ i ][ ovID ], 0.0, 0.0, 0.0);
  646. OrgVehInfo[ i ][ ovModel ] = vehid;
  647. OrgVehInfo[ i ][ ovBoja1 ] = b1;
  648. OrgVehInfo[ i ][ ovBoja2 ] = b2;
  649. OrgVehInfo[ i ][ ovOrgID ] = oid;
  650. OrgVehInfo[ i ][ ovPosX ] = X;
  651. OrgVehInfo[ i ][ ovPosY ] = Y;
  652. OrgVehInfo[ i ][ ovPosZ ] = Z;
  653. OrgVehInfo[ i ][ ovRotA ] = A;
  654. SaveOrgVeh(i);
  655. PutPlayerInVehicle(playerid, OrgVehInfo[ i ][ ovID ], 0);
  656. return 1;
  657. }
  658.  
  659. stock NextOrgVehID(const len) {
  660. new id = (-1);
  661. for( new loop = ( 0 ), provjera = ( -1 ), Data_[ 64 ] = "\0"; loop != len; ++ loop ) {
  662. provjera = ( loop+1 );
  663. format( Data_, ( sizeof Data_ ), ORGVEH_FILE, provjera );
  664. if(!fexist(Data_)) {
  665. id = ( provjera );
  666. break; } }
  667. return ( id );
  668. }
  669. stock NextORGID(const len) {
  670. new id = (-1);
  671. for( new loop = ( 0 ), provjera = ( -1 ), Data_[ 64 ] = "\0"; loop != len; ++ loop ) {
  672. provjera = ( loop+1 );
  673. format( Data_, ( sizeof Data_ ), ORG_FILE, provjera );
  674. if(!fexist(Data_)) {
  675. id = ( provjera );
  676. break; } }
  677. return ( id );
  678. }
  679. stock NextKapijaID(const len) {
  680. new id = (-1);
  681. for( new loop = ( 0 ), provjera = ( -1 ), Data_[ 64 ] = "\0"; loop != len; ++ loop ) {
  682. provjera = ( loop+1 );
  683. format( Data_, ( sizeof Data_ ), ORGGATES_FILE, provjera );
  684. if(!fexist(Data_)) {
  685. id = ( provjera );
  686. break; } }
  687. return ( id );
  688. }
  689. stock SaveOrgGate(id) {
  690.  
  691. new ogFile[ 60 ];
  692. format(ogFile, sizeof(ogFile), ORGGATES_FILE, id);
  693. new INI:File = INI_Open(ogFile);
  694. INI_WriteInt(File, "ORG_ID", OrgGateInfo[ id ][ ogOrgID ]);
  695. INI_WriteInt(File, "Object_ID", OrgGateInfo[ id ][ ogObjID ]);
  696. INI_WriteFloat(File, "Lokacija_X", OrgGateInfo[ id ][ ogPosX ]);
  697. INI_WriteFloat(File, "Lokacija_Y", OrgGateInfo[ id ][ ogPosY ]);
  698. INI_WriteFloat(File, "Lokacija_Z", OrgGateInfo[ id ][ ogPosZ ]);
  699. INI_WriteFloat(File, "Rotacija_X", OrgGateInfo[ id ][ ogRotX ]);
  700. INI_WriteFloat(File, "Rotacija_Y", OrgGateInfo[ id ][ ogRotY ]);
  701. INI_WriteFloat(File, "Rotacija_Z", OrgGateInfo[ id ][ ogRotZ ]);
  702. INI_WriteFloat(File, "Otvorena_X", OrgGateInfo[ id ][ oogPosX ]);
  703. INI_WriteFloat(File, "Orvorena_Y", OrgGateInfo[ id ][ oogPosY ]);
  704. INI_WriteFloat(File, "Otvorena_Z", OrgGateInfo[ id ][ oogPosZ ]);
  705. INI_WriteFloat(File, "Otvorena_RX", OrgGateInfo[ id ][ oogRotX ]);
  706. INI_WriteFloat(File, "Otvorena_RY", OrgGateInfo[ id ][ oogRotY ]);
  707. INI_WriteFloat(File, "Otvorena_RZ", OrgGateInfo[ id ][ oogRotZ ]);
  708. INI_WriteInt(File, "Vreme_Zatvaranja", OrgGateInfo[ id ][ ogVremeZ ]);
  709. INI_WriteInt(File, "Brzina_Zatvaranja", OrgGateInfo[ id ][ ogBrzinaZ ]);
  710. INI_Close(File);
  711. }
  712. stock SaveOrgVeh(id) {
  713.  
  714. new ovFile[ 60 ];
  715. format(ovFile, sizeof(ovFile), ORGVEH_FILE, id);
  716. new INI:File = INI_Open(ovFile);
  717. INI_WriteInt(File, "Organizacija_ID", OrgVehInfo[ id ][ ovOrgID ]);
  718. INI_WriteInt(File, "Model", OrgVehInfo[ id ][ ovModel ]);
  719. INI_WriteFloat(File, "Lokacija_X", OrgVehInfo[ id ][ ovPosX ]);
  720. INI_WriteFloat(File, "Lokacija_Y", OrgVehInfo[ id ][ ovPosY ]);
  721. INI_WriteFloat(File, "Lokacija_Z", OrgVehInfo[ id ][ ovPosZ ]);
  722. INI_WriteFloat(File, "Rotacija_A", OrgVehInfo[ id ][ ovRotA ]);
  723. INI_WriteInt(File, "Boja_1", OrgVehInfo[ id ][ ovBoja1 ]);
  724. INI_WriteInt(File, "Boja_2", OrgVehInfo[ id ][ ovBoja2 ]);
  725. INI_Close(File);
  726. }
  727. stock SaveOrg(id) {
  728. new oFile[ 60 ];
  729. format(oFile, sizeof(oFile), ORG_FILE, id);
  730. new INI:File = INI_Open(oFile);
  731. INI_WriteString(File, "Ime", OrgInfo[ id ][ orgIme ]);
  732. INI_WriteString(File, "Skracenica", OrgInfo[ id ][ orgSkracenica ]);
  733. INI_WriteInt(File, "Interior_ID", OrgInfo[ id ][ orgInt ]);
  734. INI_WriteInt(File, "Virtual_World", OrgInfo[ id ][ orgVW ]);
  735. INI_WriteHex(File, "Boja", OrgInfo[ id ][ orgBoja ]);
  736. INI_WriteHex(File, "Boja_Zone", OrgInfo[ id ][ zBoja ]);
  737. INI_WriteInt(File, "Clanovi", OrgInfo[ id ][ orgClanovi ]);
  738. INI_WriteString(File, "Lider", OrgInfo[ id ][ orgLider ]);
  739. INI_WriteString(File, "Rank_1", OrgInfo[ id ][ orgRank1 ]);
  740. INI_WriteString(File, "Rank_2", OrgInfo[ id ][ orgRank2 ]);
  741. INI_WriteString(File, "Rank_3", OrgInfo[ id ][ orgRank3 ]);
  742. INI_WriteString(File, "Rank_4", OrgInfo[ id ][ orgRank4 ]);
  743. INI_WriteString(File, "Rank_5", OrgInfo[ id ][ orgRank5 ]);
  744. INI_WriteInt(File, "Skin_Rank_1", OrgInfo[ id ][ orgSkin1 ]);
  745. INI_WriteInt(File, "Skin_Rank_2", OrgInfo[ id ][ orgSkin2 ]);
  746. INI_WriteInt(File, "Skin_Rank_3", OrgInfo[ id ][ orgSkin3 ]);
  747. INI_WriteInt(File, "Skin_Rank_4", OrgInfo[ id ][ orgSkin4 ]);
  748. INI_WriteInt(File, "Skin_Rank_5", OrgInfo[ id ][ orgSkin5 ]);
  749. INI_WriteFloat(File, "Lokacija_X", OrgInfo[ id ][ orgPosX ]);
  750. INI_WriteFloat(File, "Lokacija_Y", OrgInfo[ id ][ orgPosY ]);
  751. INI_WriteFloat(File, "Lokacija_Z", OrgInfo[ id ][ orgPosZ ]);
  752. INI_WriteFloat(File, "Interior_X", OrgInfo[ id ][ intPosX ]);
  753. INI_WriteFloat(File, "Interior_Y", OrgInfo[ id ][ intPosY ]);
  754. INI_WriteFloat(File, "Interior_Z", OrgInfo[ id ][ intPosZ ]);
  755. INI_WriteFloat(File, "Zona_Min_X", OrgInfo[ id ][ zMinX ]);
  756. INI_WriteFloat(File, "Zona_Min_Y", OrgInfo[ id ][ zMinY ]);
  757. INI_WriteFloat(File, "Zona_Max_X", OrgInfo[ id ][ zMaxX ]);
  758. INI_WriteFloat(File, "Zona_Max_Y", OrgInfo[ id ][ zMaxY ]);
  759. INI_WriteFloat(File, "Zauzimanje_X", OrgInfo[ id ][ pPosX ]);
  760. INI_WriteFloat(File, "Zauzimanje_Y", OrgInfo[ id ][ pPosY ]);
  761. INI_WriteFloat(File, "Zauzimanje_Z", OrgInfo[ id ][ pPosZ ]);
  762. INI_WriteInt(File, "ORG_Zauzeta", OrgInfo[ id ][ orgZauzeta ]);
  763. INI_Close(File);
  764. }
Add Comment
Please, Sign In to add comment