Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ////////////////////////////////////////////////////////
- #include < a_samp >
- #include < sscanf2 >
- #include < zcmd >
- #include < YSI\y_ini >
- ////////////////////////////////////////////////////////
- #define blue "{00C0FF}"
- #define gray "{C0C0C0}"
- ////////////////////////////////////////////////////////
- #define SCM SendClientMessage
- #define SPD ShowPlayerDialog
- ////////////////////////////////////////////////////////
- #define GPS_FILE "GPS/%d.ini"
- #define MAX_GPS_LOCATION 30
- #define DIALOG_LOCATION_NAME 4059
- #define MAX_NAME_LOCATION 128
- #define DIALOG_GPS 5069
- #define DIALOG_GPS_ADMIN 5070
- ////////////////////////////////////////////////////////
- new GPSON[MAX_PLAYERS];
- ////////////////////////////////////////////////////////
- enum GPS {
- gpsName[MAX_NAME_LOCATION],
- Float:gpsX,
- Float:gpsY,
- Float:gpsZ }
- new gpsInfo[MAX_GPS_LOCATION][GPS];
- ////////////////////////////////////////////////////////
- public OnFilterScriptInit() {
- for(new i = 0; i < sizeof(gpsInfo); i++)
- {
- new kFile[50];
- format(kFile, sizeof(kFile), GPS_FILE, i);
- if(fexist(kFile))
- {
- INI_ParseFile(kFile, "LoadGPS", .bExtra = true, .extra = i);
- }
- }
- return (1); }
- ////////////////////////////////////////////////////////
- public OnPlayerConnect(playerid) {
- GPSON[playerid] = 0;
- return (1); }
- ////////////////////////////////////////////////////////
- public OnFilterScriptExit() {
- for(new a = 0; a < sizeof(gpsInfo); a++) { SaveGPS(a); }
- return (1); }
- ////////////////////////////////////////////////////////
- CMD:kreirajgpslokaciju(playerid, params[]) {
- if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,"Morate biti rcon administrator za koristenje ove komande!");
- new id = NextGPS();
- if(id >= MAX_GPS_LOCATION) return SCM(playerid,-1, "Nemozete preci maximalan broj gps lokacija!");
- SPD(playerid,DIALOG_LOCATION_NAME,DIALOG_STYLE_INPUT,"Kreiranje GPS lokacije","Upisi naziv lokacije","Dalje","Odustani");
- SetPVarInt(playerid, "CREATE_LOCATION_ID",id); SetPVarInt(playerid, "CREATE_LOCATION",1);
- return (1); }
- ////////////////////////////////////////////////////////
- CMD:gps(playerid,params[]) {
- new string[1024],string2[256],gpsfile[256];
- for(new i=0;i<MAX_GPS_LOCATION;i++) {
- format(gpsfile,sizeof(gpsfile), "GPS/%i.ini",i);
- if(fexist(gpsfile)) {
- if(i==0) {
- format(string2, sizeof(string2), ""blue"(%d) "gray"Lokacija: %s",i,gpsInfo[i][gpsName]);
- strcat(string, string2); }
- else {
- format(string2, sizeof(string2), "\n"blue"(%d) "gray"Lokacija: %s",i,gpsInfo[i][gpsName]);
- strcat(string, string2); } }
- else break; }
- SPD(playerid, DIALOG_GPS, DIALOG_STYLE_LIST, ""gray"GPS - Sistem", string, "Odaberi", "Odustani");
- return (1); }
- ////////////////////////////////////////////////////////
- CMD:gpsoff(playerid, params[]) {
- if(GPSON[playerid] == 0) return SCM(playerid,-1,""gray"Vas gps je iskljucen od prije!");
- DisablePlayerCheckpoint(playerid); GPSON[playerid] = 0;
- SCM(playerid,-1,""blue"* "gray"GPS uspesno iskljucen!");
- return (1); }
- ////////////////////////////////////////////////////////
- public OnPlayerEnterCheckpoint(playerid) {
- if(GPSON[playerid] == 1) return DisablePlayerCheckpoint(playerid), GPSON[playerid] = 0, SCM(playerid,-1,""blue"*"gray" Stigli ste na odrediste!");
- return (1); }
- ////////////////////////////////////////////////////////
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
- if(dialogid == DIALOG_LOCATION_NAME) {
- new Float: X,Float: Y,Float: Z, ime[MAX_NAME_LOCATION], id = GetPVarInt(playerid, "KREIRA_LOKACIJU_ID");
- if(sscanf(inputtext, "s[128]", ime)) return SPD(playerid,DIALOG_LOCATION_NAME,DIALOG_STYLE_INPUT,"Kreiranje GPS lokacije","Upisi naziv lokacije","Dalje","Odustani");
- GetPlayerPos(playerid, X, Y, Z);
- gpsInfo[id][gpsX] = X; gpsInfo[id][gpsY] = Y; gpsInfo[id][gpsZ] = Z;
- SetString(gpsInfo[id][gpsName], ime); SetPVarInt(playerid, "CREATE_LOCATION",0);
- SaveGPS(id); }
- if(dialogid == DIALOG_GPS) {
- if(!response) return (1);
- for(new i=0;i<MAX_GPS_LOCATION;i++) {
- if(GPSON[playerid] == 1) { SCM(playerid,-1,""gray"Vas GPS je vec aktiviran, morate ga iskljuciti (/gpsoff)"); return(1); }
- if(GPSON[playerid] == 0) {
- if(!IsPlayerAdmin(playerid)) {
- SetPlayerCheckpoint(playerid, gpsInfo[i][gpsX],gpsInfo[i][gpsY],gpsInfo[i][gpsZ], 3.0), GPSON[playerid] = 1;
- new string[128];
- format(string, sizeof(string), ""blue"* "gray"Uspesno ste postavili gps na lokaciju "blue"(%s)",gpsInfo[i][gpsName]); SCM(playerid, -1, string); }
- else if(IsPlayerAdmin(playerid)) {
- SPD(playerid,DIALOG_GPS_ADMIN,DIALOG_STYLE_MSGBOX, ""blue"GPS - Admin",""gray"Vi ste rcon-administrator te se mozete portat preko GPS sistema\nOdaberite da li zelite portanje ili oznacivanje markerom","Teleport","Marker"); } } } }
- if(dialogid == DIALOG_GPS_ADMIN) {
- if(!response) {
- for(new i=0;i<MAX_GPS_LOCATION;i++) {
- SetPlayerCheckpoint(playerid, gpsInfo[i][gpsX],gpsInfo[i][gpsY],gpsInfo[i][gpsZ], 3.0), GPSON[playerid] = 1;
- new string[128];
- format(string, sizeof(string), ""blue"* "gray"Uspesno ste postavili gps na lokaciju "blue"(%s)",gpsInfo[i][gpsName]); SCM(playerid, -1, string);
- return (1); } }
- if(response) {
- for(new i=0;i<MAX_GPS_LOCATION;i++) {
- SetPlayerPos(playerid, gpsInfo[i][gpsX],gpsInfo[i][gpsY],gpsInfo[i][gpsZ]);
- new string[128];
- format(string, sizeof(string), ""blue"* "gray"Uspesno ste se teleportali do lokacije "blue"(%s)",gpsInfo[i][gpsName]); SCM(playerid, -1, string);
- return (1); } } }
- return (1); }
- ////////////////////////////////////////////////////////
- forward LoadGPS(gpsid, name[], value[]);
- public LoadGPS(gpsid, name[], value[]) {
- INI_String("Naziv",gpsInfo[gpsid][gpsName], 128);
- INI_Float("X",gpsInfo[gpsid][gpsX]);
- INI_Float("Y",gpsInfo[gpsid][gpsY]);
- INI_Float("Z",gpsInfo[gpsid][gpsZ]);
- return (1); }
- ////////////////////////////////////////////////////////
- stock SaveGPS(gpsid) {
- new kFile[80];
- format(kFile, sizeof(kFile), GPS_FILE, gpsid);
- new INI:File = INI_Open(kFile);
- INI_WriteString(File,"Naziv",gpsInfo[gpsid][gpsName]);
- INI_WriteFloat(File,"X",gpsInfo[gpsid][gpsX]);
- INI_WriteFloat(File,"Y",gpsInfo[gpsid][gpsY]);
- INI_WriteFloat(File,"Z",gpsInfo[gpsid][gpsZ]);
- INI_Close(File);
- return (1); }
- ////////////////////////////////////////////////////////
- stock SetString(obj[], string[]) return strmid(obj, string, 0, strlen(string), 255);
- ////////////////////////////////////////////////////////
- stock NextGPS() {
- new gpssystem[64];
- for(new f = 0; f<= MAX_GPS_LOCATION; f++)
- {
- format(gpssystem, sizeof(gpssystem), "GPS/%i.ini", f);
- if(!fexist(gpssystem)) return f;
- }
- return (1); }
- ////////////////////////////////////////////////////////
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement