Guest User

portgps sistem

a guest
Feb 4th, 2026
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.11 KB | None | 0 0
  1. // ============================================================================
  2. // PORT & GPS SISTEM SA KATEGORIJAMA + ZAKLJUCAVANJE KATEGORIJA by Sparrow
  3. // Sistem rađen za Ghost Town Roleplay.
  4. //
  5. // NAPOMENA: Ovo je INCLUDE za GAMEMODE (ne filterscript). U svom .pwn gamemodeu
  6. // uradi: #include "PortGPSSistem.pwn" (ili kopiraj sadrzaj) i definisi sve ispod.
  7. // ============================================================================
  8. //
  9. // Potrebno: a_samp, YSI\y_ini, Pawn.CMD (ili zcmd), sscanf2
  10. //
  11. // PRIJE INCLUDE-A OVOG FAJLA u svom gamemodeu definisi sljedece
  12. // (ili prilagodi svoje u ovom fajlu):
  13. //
  14. // #define PORTGPS_SCM SendClientMessage
  15. // #define PORTGPS_AdminLevel(%0) PlayerInfo[%0][pAdmin]
  16. // #define PORTGPS_GMLevel(%0) PlayerInfo[%0][pGM]
  17. // #define PORTGPS_VIPLevel(%0) PlayerInfo[%0][pVIP]
  18. // #define PORTGPS_AdminDuty(%0) AdminDuty[%0]
  19. // #define PORTGPS_GMDuty(%0) GMDuty[%0]
  20. // #define PORTGPS_MinAdminCommands 6
  21. // #define PORTGPS_MinAdminOrgPort 1
  22. // #define PORTGPS_MinVIPOrgPort 3
  23. //
  24. // U OnGameModeInit pozovi: PortGPS_OnInit();
  25. // U OnDialogResponse na pocetku dodaj: if(PortGPS_OnDialogResponse(playerid, dialogid, response, listitem, inputtext)) return 1;
  26. //
  27. // KOMANDE: /port, /gps, /gpsoff, /napraviport, /kreirajport, /zakljucajport, /kreirajgps
  28. // Kategorije: 1=Beograd 2=Sarajevo 3=Zagreb 4=Organizacije 5=Poslovi 6=Ostalo
  29. // ============================================================================
  30.  
  31. #if !defined PORTGPS_SCM
  32. #define PORTGPS_SCM SendClientMessage
  33. #endif
  34. #if !defined PORTGPS_AdminLevel
  35. #define PORTGPS_AdminLevel(%0) PlayerInfo[%0][pAdmin]
  36. #endif
  37. #if !defined PORTGPS_GMLevel
  38. #define PORTGPS_GMLevel(%0) PlayerInfo[%0][pGM]
  39. #endif
  40. #if !defined PORTGPS_VIPLevel
  41. #define PORTGPS_VIPLevel(%0) PlayerInfo[%0][pVIP]
  42. #endif
  43. #if !defined PORTGPS_AdminDuty
  44. #define PORTGPS_AdminDuty(%0) AdminDuty[%0]
  45. #endif
  46. #if !defined PORTGPS_GMDuty
  47. #define PORTGPS_GMDuty(%0) GMDuty[%0]
  48. #endif
  49. #if !defined PORTGPS_MinAdminCommands
  50. #define PORTGPS_MinAdminCommands 6
  51. #endif
  52. #if !defined PORTGPS_MinAdminOrgPort
  53. #define PORTGPS_MinAdminOrgPort 1
  54. #endif
  55. #if !defined PORTGPS_MinVIPOrgPort
  56. #define PORTGPS_MinVIPOrgPort 3
  57. #endif
  58.  
  59. // Dialog ID-ovi (koristi ove ili ih prilagodi na svoje u svom modu)
  60. #define PORTGPS_DIALOG_PORT 6000
  61. #define PORTGPS_DIALOG_PORT1 6001
  62. #define PORTGPS_DIALOG_PORT2 6002
  63. #define PORTGPS_DIALOG_PORT3 6003
  64. #define PORTGPS_DIALOG_PORT4 6004
  65. #define PORTGPS_DIALOG_PORT5 6005
  66. #define PORTGPS_DIALOG_PORT6 6006
  67. #define PORTGPS_DIALOG_GPSSELECT 6007
  68. #define PORTGPS_DIALOG_GPS1 6008
  69. #define PORTGPS_DIALOG_GPS2 6009
  70. #define PORTGPS_DIALOG_GPS3 6010
  71. #define PORTGPS_DIALOG_GPS4 6011
  72. #define PORTGPS_DIALOG_GPS5 6012
  73. #define PORTGPS_DIALOG_GPS6 6013
  74.  
  75. #define PORTGPS_MAX_PORTS 100
  76. #define PORTGPS_PORTPATH "ports/%d.ini"
  77. #define PORTGPS_PORTLOCK_FILE "Server/PortLock.ini"
  78. #define PORTGPS_GPS_FAJL "gps/vasicgps_%i.ini"
  79. #define PORTGPS_MAX_GPS 100
  80.  
  81. enum e_portInfo {
  82. e_portIme[128],
  83. Float:e_portX,
  84. Float:e_portY,
  85. Float:e_portZ,
  86. e_portVrsta
  87. };
  88.  
  89. enum e_GPSSyss {
  90. Float:e_pozicija[3],
  91. e_imelokacije[50],
  92. e_gpsVrsta
  93. };
  94.  
  95. new g_PortInfo[PORTGPS_MAX_PORTS][e_portInfo];
  96. new g_brojportova;
  97. new g_PortListIds[MAX_PLAYERS][PORTGPS_MAX_PORTS];
  98. new bool:g_PortKategorijaZakljucana[7];
  99.  
  100. new g_GPSPodaci[PORTGPS_MAX_GPS][e_GPSSyss];
  101. new g_GPSListIds[MAX_PLAYERS][PORTGPS_MAX_GPS];
  102. new g_gpsonoff[MAX_PLAYERS];
  103. new g_PokazivacGPS[MAX_PLAYERS];
  104.  
  105. static const g_portcat[6][] = {"Beograd", "Sarajevo", "Zagreb", "Organizacije", "Poslovi", "Ostalo"};
  106.  
  107. // ----------------------------------------------------------------------------
  108. forward PortGPS_LoadPorts(id, name[], value[]);
  109. public PortGPS_LoadPorts(id, name[], value[]) {
  110. INI_String("Ime", g_PortInfo[id][e_portIme], 128);
  111. INI_Float("X", g_PortInfo[id][e_portX]);
  112. INI_Float("Y", g_PortInfo[id][e_portY]);
  113. INI_Float("Z", g_PortInfo[id][e_portZ]);
  114. INI_Int("Vrsta", g_PortInfo[id][e_portVrsta]);
  115. if(g_PortInfo[id][e_portVrsta] < 1 || g_PortInfo[id][e_portVrsta] > 6) g_PortInfo[id][e_portVrsta] = 1;
  116. return 1;
  117. }
  118.  
  119. forward PortGPS_LoadPortLock(name[], value[]);
  120. public PortGPS_LoadPortLock(name[], value[]) {
  121. for(new k = 1; k <= 6; k++) {
  122. new key[16]; format(key, sizeof(key), "Kategorija%d", k);
  123. if(strcmp(name, key) == 0) { g_PortKategorijaZakljucana[k] = (strval(value) != 0); return 1; }
  124. }
  125. return 1;
  126. }
  127.  
  128. forward PortGPS_LoadGPS(id, name[], value[]);
  129. public PortGPS_LoadGPS(id, name[], value[]) {
  130. INI_String("ImeLokacije", g_GPSPodaci[id][e_imelokacije], 50);
  131. INI_Float("PosX", g_GPSPodaci[id][e_pozicija][0]);
  132. INI_Float("PosY", g_GPSPodaci[id][e_pozicija][1]);
  133. INI_Float("PosZ", g_GPSPodaci[id][e_pozicija][2]);
  134. INI_Int("Vrsta", g_GPSPodaci[id][e_gpsVrsta]);
  135. if(g_GPSPodaci[id][e_gpsVrsta] < 1 || g_GPSPodaci[id][e_gpsVrsta] > 6) g_GPSPodaci[id][e_gpsVrsta] = 1;
  136. return 1;
  137. }
  138.  
  139. stock PortGPS_NewPort() {
  140. new portid = -1;
  141. for(new loop = 0, port_check = 0, Data_[64]; loop < PORTGPS_MAX_PORTS; loop++) {
  142. port_check = loop + 1;
  143. format(Data_, sizeof(Data_), PORTGPS_PORTPATH, port_check);
  144. if(!fexist(Data_)) { portid = port_check; break; }
  145. }
  146. return portid;
  147. }
  148.  
  149. stock PortGPS_SledeciGPS() {
  150. new id = -1;
  151. for(new loop = 0, provera = 0, Data_[64]; loop < PORTGPS_MAX_GPS; loop++) {
  152. provera = loop + 1;
  153. format(Data_, sizeof(Data_), PORTGPS_GPS_FAJL, provera);
  154. if(!fexist(Data_)) { id = provera; break; }
  155. }
  156. return id;
  157. }
  158.  
  159. stock PortGPS_SavePort(id) {
  160. new port_file[64];
  161. format(port_file, sizeof(port_file), PORTGPS_PORTPATH, id);
  162. new INI:File = INI_Open(port_file);
  163. INI_WriteString(File, "Ime", g_PortInfo[id][e_portIme]);
  164. INI_WriteFloat(File, "X", g_PortInfo[id][e_portX]);
  165. INI_WriteFloat(File, "Y", g_PortInfo[id][e_portY]);
  166. INI_WriteFloat(File, "Z", g_PortInfo[id][e_portZ]);
  167. INI_WriteInt(File, "Vrsta", g_PortInfo[id][e_portVrsta]);
  168. INI_Close(File);
  169. }
  170.  
  171. stock PortGPS_SavePortLock() {
  172. new INI:File = INI_Open(PORTGPS_PORTLOCK_FILE);
  173. new key[16];
  174. for(new k = 1; k <= 6; k++) {
  175. format(key, sizeof(key), "Kategorija%d", k);
  176. INI_WriteInt(File, key, g_PortKategorijaZakljucana[k] ? 1 : 0);
  177. }
  178. INI_Close(File);
  179. }
  180.  
  181. stock PortGPS_SacuvajGPS(id) {
  182. new iFile[60];
  183. format(iFile, sizeof(iFile), PORTGPS_GPS_FAJL, id);
  184. new INI:File = INI_Open(iFile);
  185. INI_WriteString(File, "ImeLokacije", g_GPSPodaci[id][e_imelokacije]);
  186. INI_WriteFloat(File, "PosX", g_GPSPodaci[id][e_pozicija][0]);
  187. INI_WriteFloat(File, "PosY", g_GPSPodaci[id][e_pozicija][1]);
  188. INI_WriteFloat(File, "PosZ", g_GPSPodaci[id][e_pozicija][2]);
  189. INI_WriteInt(File, "Vrsta", g_GPSPodaci[id][e_gpsVrsta]);
  190. INI_Close(File);
  191. }
  192.  
  193. // Pozovi iz OnGameModeInit
  194. stock PortGPS_OnInit() {
  195. for(new i = 0; i < PORTGPS_MAX_PORTS; i++) {
  196. new portfile[64];
  197. format(portfile, sizeof(portfile), PORTGPS_PORTPATH, i);
  198. if(fexist(portfile)) {
  199. INI_ParseFile(portfile, "PortGPS_LoadPorts", .bExtra = true, .extra = i);
  200. g_brojportova++;
  201. }
  202. }
  203. if(fexist(PORTGPS_PORTLOCK_FILE)) INI_ParseFile(PORTGPS_PORTLOCK_FILE, "PortGPS_LoadPortLock");
  204. for(new id = 1; id < PORTGPS_MAX_GPS; id++) {
  205. new filename[32];
  206. format(filename, sizeof(filename), PORTGPS_GPS_FAJL, id);
  207. if(fexist(filename)) INI_ParseFile(filename, "PortGPS_LoadGPS", .bExtra = true, .extra = id);
  208. }
  209. return 1;
  210. }
  211.  
  212. // Pozovi iz OnDialogResponse - vraca 1 ako je dialog obradjen
  213. stock PortGPS_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  214. if(dialogid == PORTGPS_DIALOG_PORT) {
  215. if(!response) return 1;
  216. new vrsta = listitem + 1;
  217. if(g_PortKategorijaZakljucana[vrsta] && PORTGPS_AdminLevel(playerid) < 1 && PORTGPS_GMLevel(playerid) < 1) {
  218. PORTGPS_SCM(playerid, -1, ""col_svetlozelena"[GT:RP] "BELA"Ova kategorija portova je zakljucana.");
  219. return 1;
  220. }
  221. if(vrsta == 4 && PORTGPS_AdminLevel(playerid) < PORTGPS_MinAdminOrgPort && PORTGPS_GMLevel(playerid) < 1 && PORTGPS_VIPLevel(playerid) < PORTGPS_MinVIPOrgPort) {
  222. PORTGPS_SCM(playerid, -1, ""col_svetlozelena"[Server]: {FFFFFF}Niste ovlasceni za port Organizacije!");
  223. return 1;
  224. }
  225. if(vrsta == 5 && PORTGPS_AdminLevel(playerid) < 1 && PORTGPS_GMLevel(playerid) < 1) {
  226. PORTGPS_SCM(playerid, -1, ""col_svetlozelena"[Server]: {FFFFFF}Niste ovlasceni za port Poslovi!");
  227. return 1;
  228. }
  229. new liststr[2048], text[128], broj = 0;
  230. for(new i = 0; i < PORTGPS_MAX_PORTS; i++) {
  231. if(g_PortInfo[i][e_portVrsta] == vrsta && g_PortInfo[i][e_portIme][0] != '\0') {
  232. g_PortListIds[playerid][broj] = i;
  233. format(text, sizeof(text), "%s\n", g_PortInfo[i][e_portIme]);
  234. strcat(liststr, text);
  235. broj++;
  236. }
  237. }
  238. if(broj == 0) {
  239. PORTGPS_SCM(playerid, -1, ""col_svetlozelena"[Server]: {FFFFFF}U ovoj kategoriji nema portova.");
  240. return 1;
  241. }
  242. new cattitle[64];
  243. format(cattitle, sizeof(cattitle), "{DAA520}Port - %s", g_portcat[vrsta-1]);
  244. new dlgid = PORTGPS_DIALOG_PORT1 + (vrsta - 1);
  245. ShowPlayerDialog(playerid, dlgid, DIALOG_STYLE_LIST, cattitle, liststr, "{DAA520}Port", "{DAA520}Odustani");
  246. return 1;
  247. }
  248. if(dialogid >= PORTGPS_DIALOG_PORT1 && dialogid <= PORTGPS_DIALOG_PORT6) {
  249. if(!response) return 1;
  250. new id = g_PortListIds[playerid][listitem], string[128];
  251. if(IsPlayerInAnyVehicle(playerid)) {
  252. SetVehiclePos(GetPlayerVehicleID(playerid), g_PortInfo[id][e_portX], g_PortInfo[id][e_portY], g_PortInfo[id][e_portZ]);
  253. PutPlayerInVehicle(playerid, GetPlayerVehicleID(playerid), 0);
  254. } else {
  255. SetPlayerPos(playerid, g_PortInfo[id][e_portX], g_PortInfo[id][e_portY], g_PortInfo[id][e_portZ]);
  256. }
  257. format(string, sizeof(string), "{DAA520}[Server]: {FFFFFF}Uspesno ste se portovali na lokaciju %s!", g_PortInfo[id][e_portIme]);
  258. PORTGPS_SCM(playerid, -1, string);
  259. return 1;
  260. }
  261. if(dialogid == PORTGPS_DIALOG_GPSSELECT) {
  262. if(!response) return 1;
  263. new vrsta = listitem + 1;
  264. if(vrsta == 5) {
  265. PORTGPS_SCM(playerid, -1, ""col_svetlozelena"(( INFO )) - "BELA"Da vidite listu poslova idite u opstinu.");
  266. return 1;
  267. }
  268. new liststr[2048], text[128], broj = 0;
  269. for(new i = 1; i < PORTGPS_MAX_GPS; i++) {
  270. if(g_GPSPodaci[i][e_gpsVrsta] == vrsta && g_GPSPodaci[i][e_imelokacije][0] != '\0') {
  271. g_GPSListIds[playerid][broj] = i;
  272. format(text, sizeof(text), "%s\n", g_GPSPodaci[i][e_imelokacije]);
  273. strcat(liststr, text);
  274. broj++;
  275. }
  276. }
  277. if(broj == 0) {
  278. PORTGPS_SCM(playerid, -1, ""col_svetlozelena"(( INFO )) - "BELA"U ovoj kategoriji nema GPS lokacija.");
  279. return 1;
  280. }
  281. new gpstitle[64];
  282. format(gpstitle, sizeof(gpstitle), ""col_svetlozelena"GPS - %s", g_portcat[vrsta-1]);
  283. new dlgid = PORTGPS_DIALOG_GPS1 + (vrsta - 1);
  284. ShowPlayerDialog(playerid, dlgid, DIALOG_STYLE_LIST, gpstitle, liststr, "Lociraj", "Odustani");
  285. return 1;
  286. }
  287. if(dialogid >= PORTGPS_DIALOG_GPS1 && dialogid <= PORTGPS_DIALOG_GPS6) {
  288. if(!response) return 1;
  289. new id = g_GPSListIds[playerid][listitem];
  290. g_gpsonoff[playerid] = 1;
  291. SetPlayerCheckpoint(playerid, g_GPSPodaci[id][e_pozicija][0], g_GPSPodaci[id][e_pozicija][1], g_GPSPodaci[id][e_pozicija][2], 3);
  292. g_PokazivacGPS[playerid] = CreateObject(1318, 0, 0, 0, 0.0, 0.0, 0);
  293. PORTGPS_SCM(playerid, -1, ""col_svetlozelena"(( INFO )) - "BELA"Postavili ste lokaciju na GPS. /gpsoff za iskljucivanje.");
  294. return 1;
  295. }
  296. return 0;
  297. }
  298.  
  299. // Komande (prilagodi prefix CMD: ako koristis zcmd)
  300. CMD:port(playerid, params[]) {
  301. if(PORTGPS_AdminLevel(playerid) < 1 && PORTGPS_GMLevel(playerid) < 1) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"[Server]: {FFFFFF}Niste ovlasceni!");
  302. if(g_brojportova < 1) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"[Server]: {FFFFFF}Portovi jos nisu napravljeni!");
  303. ShowPlayerDialog(playerid, PORTGPS_DIALOG_PORT, DIALOG_STYLE_LIST, "{DAA520}Port - Kategorije",
  304. ""BELA"Beograd Lokacije\n"BELA"Sarajevo\n"BELA"Zagreb\n"BELA"Organizacije\n"BELA"Poslovi\n"BELA"Ostalo",
  305. "{DAA520}Izaberi", "{DAA520}Odustani");
  306. return 1;
  307. }
  308.  
  309. CMD:gps(playerid, params[]) {
  310. if(g_gpsonoff[playerid] == 1) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"(( INFO )) - "SZUTA"Imate aktiviranu lokaciju, ugasite /gpsoff");
  311. ShowPlayerDialog(playerid, PORTGPS_DIALOG_GPSSELECT, DIALOG_STYLE_LIST, ""col_svetlozelena"GPS - Kategorije",
  312. ""BELA"Beograd Lokacije\n"BELA"Sarajevo\n"BELA"Zagreb\n"BELA"Organizacije\n"BELA"Poslovi\n"BELA"Ostalo",
  313. "Odaberi", "Odustani");
  314. return 1;
  315. }
  316.  
  317. CMD:gpsoff(playerid, params[]) {
  318. if(g_gpsonoff[playerid] == 0) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"(( INFO )) - "BELA"Nemate aktiviranu lokaciju.");
  319. DisablePlayerCheckpoint(playerid);
  320. DestroyObject(g_PokazivacGPS[playerid]);
  321. g_gpsonoff[playerid] = 0;
  322. GameTextForPlayer(playerid, "~y~GPS ugasen...", 5000, 3);
  323. return 1;
  324. }
  325.  
  326. CMD:napraviport(playerid, params[]) {
  327. if(!PORTGPS_AdminDuty(playerid)) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena" ( Obavjestenje ) "BELA"Morate biti na Admin duznosti!");
  328. if(PORTGPS_AdminLevel(playerid) < PORTGPS_MinAdminCommands) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"( Obavjestenje ) {FFFFFF}Niste ovlasceni!");
  329. new ime[128], Float:Xp, Float:Yp, Float:Zp, i = PortGPS_NewPort(), portfile[64];
  330. if(sscanf(params, "s[128]", ime)) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"( Obavjestenje ): {FFFFFF}/napraviport [ime]");
  331. GetPlayerPos(playerid, Xp, Yp, Zp);
  332. g_PortInfo[i][e_portIme] = ime;
  333. g_PortInfo[i][e_portX] = Xp;
  334. g_PortInfo[i][e_portY] = Yp;
  335. g_PortInfo[i][e_portZ] = Zp;
  336. g_PortInfo[i][e_portVrsta] = 1;
  337. PortGPS_SavePort(i);
  338. new msgport[144];
  339. format(msgport, sizeof(msgport), ""col_svetlozelena"[GT:RP] "BELA"Uspjesno ste kreirali port "col_svetlozelena"%s "BELA"u kategoriju "col_svetlozelena"Beograd"BELA".", ime);
  340. PORTGPS_SCM(playerid, -1, msgport);
  341. format(portfile, sizeof(portfile), PORTGPS_PORTPATH, i);
  342. INI_ParseFile(portfile, "PortGPS_LoadPorts", .bExtra = true, .extra = i);
  343. g_brojportova++;
  344. return 1;
  345. }
  346.  
  347. CMD:kreirajport(playerid, params[]) {
  348. if(!PORTGPS_AdminDuty(playerid)) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena" ( Obavjestenje ) "BELA"Morate biti na Admin duznosti!");
  349. if(PORTGPS_AdminLevel(playerid) < PORTGPS_MinAdminCommands) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"( Obavjestenje ) {FFFFFF}Niste ovlasceni!");
  350. new ime[128], vrsta, Float:Xp, Float:Yp, Float:Zp, i = PortGPS_NewPort(), portfile[64];
  351. if(sscanf(params, "s[128]i", ime, vrsta)) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"( Obavjestenje ): {FFFFFF}/kreirajport [Naziv] [Vrsta: 1-6]");
  352. if(vrsta < 1 || vrsta > 6) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"( Obavjestenje ): {FFFFFF}Vrsta mora biti 1-6.");
  353. if(i == -1) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"( Obavjestenje ): {FFFFFF}Maksimum portova dostignut!");
  354. GetPlayerPos(playerid, Xp, Yp, Zp);
  355. g_PortInfo[i][e_portIme] = ime;
  356. g_PortInfo[i][e_portX] = Xp;
  357. g_PortInfo[i][e_portY] = Yp;
  358. g_PortInfo[i][e_portZ] = Zp;
  359. g_PortInfo[i][e_portVrsta] = vrsta;
  360. PortGPS_SavePort(i);
  361. g_brojportova++;
  362. format(portfile, sizeof(portfile), PORTGPS_PORTPATH, i);
  363. INI_ParseFile(portfile, "PortGPS_LoadPorts", .bExtra = true, .extra = i);
  364. new msgport2[144];
  365. format(msgport2, sizeof(msgport2), ""col_svetlozelena"[GT:RP] "BELA"Uspjesno ste kreirali port "col_svetlozelena"%s "BELA"u kategoriju "col_svetlozelena"%s"BELA".", ime, g_portcat[vrsta-1]);
  366. PORTGPS_SCM(playerid, -1, msgport2);
  367. return 1;
  368. }
  369.  
  370. CMD:zakljucajport(playerid, params[]) {
  371. if(PORTGPS_AdminLevel(playerid) < PORTGPS_MinAdminCommands) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"( Obavjestenje ) "BELA"Niste ovlasceni!");
  372. new k;
  373. if(sscanf(params, "i", k)) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"( Obavjestenje ): "BELA"/zakljucajport [Kategorija 1-6]");
  374. if(k < 1 || k > 6) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"( Obavjestenje ): "BELA"Kategorija mora biti 1-6.");
  375. g_PortKategorijaZakljucana[k] = !g_PortKategorijaZakljucana[k];
  376. PortGPS_SavePortLock();
  377. new msglock[128];
  378. if(g_PortKategorijaZakljucana[k])
  379. format(msglock, sizeof(msglock), ""col_svetlozelena"[GT:RP] "BELA"Kategorija "col_svetlozelena"%s "BELA"je zakljucana.", g_portcat[k-1]);
  380. else
  381. format(msglock, sizeof(msglock), ""col_svetlozelena"[GT:RP] "BELA"Kategorija "col_svetlozelena"%s "BELA"je otkljucana.", g_portcat[k-1]);
  382. PORTGPS_SCM(playerid, -1, msglock);
  383. return 1;
  384. }
  385.  
  386. CMD:kreirajgps(playerid, params[]) {
  387. if(PORTGPS_AdminLevel(playerid) < PORTGPS_MinAdminCommands) return PORTGPS_SCM(playerid, -1, ""BELA"(( INFO )) - "BELA"Niste ovlasceni!");
  388. if(!PORTGPS_AdminDuty(playerid)) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena" ( Obavjestenje ) "BELA"Morate biti na Admin duznosti!");
  389. new id = PortGPS_SledeciGPS(), Float:PozXg, Float:PozYg, Float:PozZg, filename[60], namegps[50], vrsta;
  390. if(id == -1) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"(( INFO )) - "BELA"Maksimum GPS lokacija dostignut!");
  391. format(filename, sizeof(filename), PORTGPS_GPS_FAJL, id);
  392. if(fexist(filename)) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"(( INFO )) - "BELA"ID te GPS lokacije vec postoji!");
  393. if(sscanf(params, "s[50]i", namegps, vrsta)) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"(( INFO )) - "BELA"/kreirajgps [Ime] [Vrsta 1-6]");
  394. if(vrsta == 5) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"(( INFO )) - "BELA"Poslovi se ne mogu stavljati na GPS!");
  395. if(vrsta < 1 || vrsta > 6) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"(( INFO )) - "BELA"Vrsta mora biti 1-6.");
  396. if(strlen(namegps) < 3 || strlen(namegps) > 25) return PORTGPS_SCM(playerid, -1, ""col_svetlozelena"(( INFO )) - "BELA"Ne moze vise od 25 znakova.");
  397. GetPlayerPos(playerid, PozXg, PozYg, PozZg);
  398. g_GPSPodaci[id][e_pozicija][0] = PozXg;
  399. g_GPSPodaci[id][e_pozicija][1] = PozYg;
  400. g_GPSPodaci[id][e_pozicija][2] = PozZg;
  401. strmid(g_GPSPodaci[id][e_imelokacije], namegps, 0, strlen(namegps), 50);
  402. g_GPSPodaci[id][e_gpsVrsta] = vrsta;
  403. PortGPS_SacuvajGPS(id);
  404. new msggps[144];
  405. format(msggps, sizeof(msggps), ""col_svetlozelena"[GT:RP] "BELA"Uspjesno ste kreirali GPS lokaciju "col_svetlozelena"%s "BELA"u kategoriju "col_svetlozelena"%s"BELA".", namegps, g_portcat[vrsta-1]);
  406. PORTGPS_SCM(playerid, -1, msggps);
  407. return 1;
  408. }
Advertisement
Add Comment
Please, Sign In to add comment