Gps sistem

Započeo ucazapenje1, Mart 26, 2024, 01:39:19 PRE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Napravio sam dinamicni gps sistem nema errora, udjem u server napravim gps /napravigps spawn.npr kada ukucam spawn ne pise spawn nego [1] - i kada kliknem na to stvori mi checkpoint u selu a ne gde sam ja postavio, a u fajlu gps se cuvaju kordinate koje sam postavio kod spawna je l zna neko gde sam pogredio ?

Posaljes kod pa pogledamo?

Sta sve treba da posaljem ili da saljem ceo sistem?

Citat: ucazapenje1 poslato Mart 26, 2024, 10:49:35 PRE PODNE
Sta sve treba da posaljem ili da saljem ceo sistem?
Posalji ceo sistem

enum gpsInfo
{
   gpsIme[128],
   Float:gpsX,
   Float:gpsY,
   Float:gpsZ
};
new GpsInfo[MAX_GPSS][gpsInfo];
new brojgps;
////////////////////////////
    if(tip == 6)
    {
      len = MAX_GPSS;
      for(new loop = (0), check = (-1), Data_[64] = "\0"; loop != len; ++ loop)
      {
         check = (loop+1);
         format(Data_, sizeof(Data_), GPSPATH, check);
         if(!fexist(Data_))
         {
            id = (check);
            break;
         }
      }
    }
//////////////////////////////////
stock SaveGps(id)
{
   new gps_file[64];
   format(gps_file, sizeof(gps_file), GPSPATH, id);
   new INI:File = INI_Open(gps_file);
   INI_WriteString(File, "Ime", GpsInfo[id][gpsIme]);
   INI_WriteFloat(File, "X", GpsInfo[id][gpsX]);
   INI_WriteFloat(File, "Y", GpsInfo[id][gpsY]);
   INI_WriteFloat(File, "Z", GpsInfo[id][gpsZ]);
   INI_Close(File);
}
/////////////////////////////
   for(new i = 0; i < MAX_GPSS; i++)
   {
      new gpsfile[64];
      format(gpsfile, sizeof(gpsfile), GPSPATH, i);
      if(fexist(gpsfile))
      {
         INI_ParseFile(gpsfile, "LoadGpss", .bExtra = true, .extra = i);
         brojgps++;
      }
   }
//////////////////////////
   for(new i = 0; i < MAX_GPSS; i++)
   {
      SaveGps(i);
   }
////////////////////////
CMD:gps(playerid, params[])
{
   if(brojgps < 1) return SCM(playerid, CRVENA, "[SERVER]: {FFFFFF}Lokacije za gps jos nisu napravljene!");
   new string[2048], text[128];
   for(new i = 1; i <= brojgps; i++)
   {
      format(text, sizeof(text), "{32CD32}[{FFFFFF}%d{32CD32}] - {FFFFFF}%s\n", i, GpsInfo[gpsIme]);
      strcat(string, text);
   }
   ShowPlayerDialog(playerid, DIALOG_GPS, DIALOG_STYLE_LIST, "{32CD32}Gps", string, "{32CD32}Izaberi", "{32CD32}Odustani");
   return 1;
}
/////////////////////////////
CMD:napravigps(playerid, params[])
{
   if(PlayerInfo[playerid][pAdmin] < 6) return SCM(playerid, CRVENA, "[SERVER]: {FFFFFF}Niste ovlasceni da koristite ovu komandu!");
   new ime[128], Float:X, Float:Y, Float:Z, i = NewID(3), gpsfile[64];
   if(sscanf(params, "s[128]", ime)) return SCM(playerid, CRVENA, "[SERVER]: {FFFFFF}/napravigps [ime]");
   GetPlayerPos(playerid, X, Y, Z);
   GpsInfo[gpsIme] = ime;
   GpsInfo[gpsX] = X;
   GpsInfo[gpsY] = Y;
   GpsInfo[gpsZ] = Z;
   SaveGps(i);
   SCM(playerid, -1, "{32CD32}[SERVER]: {FFFFFF}Uspesno ste napravili gps lokaciju!");
   format(gpsfile, sizeof(gpsfile), GPSPATH, i);
   INI_ParseFile(gpsfile, "LoadGpss", .bExtra = true, .extra = i);
   brojgps++;
   return 1;
}
/////////////////////////////////////////
       case DIALOG_GPS:
       {
          if(response)
          {
             new id = listitem+1, string[128];
             {
                SetPlayerCheckpoint(playerid, GpsInfo[id][gpsX], GpsInfo[id][gpsY], GpsInfo[id][gpsZ], 5.0);
             }
             format(string, sizeof(string), "{32CD32}[SERVER]: {FFFFFF}Uspesno ste postavili gps lokaciju na mapi!");
             SCM(playerid, -1, string);
          }
       }
///////////////////////////////////
forward LoadGpss(id, name[], value[]);
public LoadGpss(id, name[], value[])
{
   INI_String("Ime", GpsInfo[id][gpsIme], 128);
   INI_Float("X", GpsInfo[id][gpsX]);
   INI_Float("Y", GpsInfo[id][gpsY]);
   INI_Float("Z", GpsInfo[id][gpsZ]);
    return 1;
}
////////////////////////////////////

Citat: ucazapenje1 poslato Mart 26, 2024, 11:16:50 PRE PODNE
enum gpsInfo
{
   gpsIme[128],
   Float:gpsX,
   Float:gpsY,
   Float:gpsZ
};
new GpsInfo[MAX_GPSS][gpsInfo];
new brojgps;
////////////////////////////
    if(tip == 6)
    {
      len = MAX_GPSS;
      for(new loop = (0), check = (-1), Data_[64] = "\0"; loop != len; ++ loop)
      {
         check = (loop+1);
         format(Data_, sizeof(Data_), GPSPATH, check);
         if(!fexist(Data_))
         {
            id = (check);
            break;
         }
      }
    }
//////////////////////////////////
stock SaveGps(id)
{
   new gps_file[64];
   format(gps_file, sizeof(gps_file), GPSPATH, id);
   new INI:File = INI_Open(gps_file);
   INI_WriteString(File, "Ime", GpsInfo[id][gpsIme]);
   INI_WriteFloat(File, "X", GpsInfo[id][gpsX]);
   INI_WriteFloat(File, "Y", GpsInfo[id][gpsY]);
   INI_WriteFloat(File, "Z", GpsInfo[id][gpsZ]);
   INI_Close(File);
}
/////////////////////////////
   for(new i = 0; i < MAX_GPSS; i++)
   {
      new gpsfile[64];
      format(gpsfile, sizeof(gpsfile), GPSPATH, i);
      if(fexist(gpsfile))
      {
         INI_ParseFile(gpsfile, "LoadGpss", .bExtra = true, .extra = i);
         brojgps++;
      }
   }
//////////////////////////
   for(new i = 0; i < MAX_GPSS; i++)
   {
      SaveGps(i);
   }
////////////////////////
CMD:gps(playerid, params[])
{
   if(brojgps < 1) return SCM(playerid, CRVENA, "[SERVER]: {FFFFFF}Lokacije za gps jos nisu napravljene!");
   new string[2048], text[128];
   for(new i = 1; i <= brojgps; i++)
   {
      format(text, sizeof(text), "{32CD32}[{FFFFFF}%d{32CD32}] - {FFFFFF}%s\n", i, GpsInfo[gpsIme]);
      strcat(string, text);
   }
   ShowPlayerDialog(playerid, DIALOG_GPS, DIALOG_STYLE_LIST, "{32CD32}Gps", string, "{32CD32}Izaberi", "{32CD32}Odustani");
   return 1;
}
/////////////////////////////
CMD:napravigps(playerid, params[])
{
   if(PlayerInfo[playerid][pAdmin] < 6) return SCM(playerid, CRVENA, "[SERVER]: {FFFFFF}Niste ovlasceni da koristite ovu komandu!");
   new ime[128], Float:X, Float:Y, Float:Z, i = NewID(3), gpsfile[64];
   if(sscanf(params, "s[128]", ime)) return SCM(playerid, CRVENA, "[SERVER]: {FFFFFF}/napravigps [ime]");
   GetPlayerPos(playerid, X, Y, Z);
   GpsInfo[gpsIme] = ime;
   GpsInfo[gpsX] = X;
   GpsInfo[gpsY] = Y;
   GpsInfo[gpsZ] = Z;
   SaveGps(i);
   SCM(playerid, -1, "{32CD32}[SERVER]: {FFFFFF}Uspesno ste napravili gps lokaciju!");
   format(gpsfile, sizeof(gpsfile), GPSPATH, i);
   INI_ParseFile(gpsfile, "LoadGpss", .bExtra = true, .extra = i);
   brojgps++;
   return 1;
}
/////////////////////////////////////////
       case DIALOG_GPS:
       {
          if(response)
          {
             new id = listitem+1, string[128];
             {
                SetPlayerCheckpoint(playerid, GpsInfo[id][gpsX], GpsInfo[id][gpsY], GpsInfo[id][gpsZ], 5.0);
             }
             format(string, sizeof(string), "{32CD32}[SERVER]: {FFFFFF}Uspesno ste postavili gps lokaciju na mapi!");
             SCM(playerid, -1, string);
          }
       }
///////////////////////////////////
forward LoadGpss(id, name[], value[]);
public LoadGpss(id, name[], value[])
{
   INI_String("Ime", GpsInfo[id][gpsIme], 128);
   INI_Float("X", GpsInfo[id][gpsX]);
   INI_Float("Y", GpsInfo[id][gpsY]);
   INI_Float("Z", GpsInfo[id][gpsZ]);
    return 1;
}
////////////////////////////////////
Prvo kao prvo: prestani gledat tazgeta i samo kopirat sta on radi. Kao drugo:[pawn] if(tip == 6)
    {
      len = MAX_GPSS;
      for(new loop = (0), check = (-1), Data_[64] = "\0"; loop != len; ++ loop)
      {
         check = (loop+1);
         format(Data_, sizeof(Data_), GPSPATH, check);
         if(!fexist(Data_))
         {
            id = (check);
            break;
         }
      }
    }[/pawn]
Ovjde ti je tip 6, a u komandi [pawn]CMD:napravigps(playerid, params[])
{
   if(PlayerInfo[playerid][pAdmin] < 6) return SCM(playerid, CRVENA, "[SERVER]: {FFFFFF}Niste ovlasceni da koristite ovu komandu!");
   new ime[128], Float:X, Float:Y, Float:Z, i = NewID(3), gpsfile[64];[/pawn]. Sta mislis da li to treba tako bit ?

Nekog moram da gledam, ne prepisujem sve kao on nesto menjam on gps sistem nije radio ja sam pokusao sam, hvala ti❤️

Moze na daleko bolji, laksi i lepsi nacin da se napravi ovo.

Pa da naravno, ali za prvi put sto sam probao meni je okej svakako Hvala za misljenje i pomoc



kako da napravim da mi se ugasi checkpoint kad udjem u njega u gps

CitatNe idite uokolo tumačeći kako vam svijet duguje život. Svijet vam ne duguje ništa. On je bio prvi ovdje.

razumem kako da ugasim checkpoint, ali kako da napravim proveru da to bude cp od gpsa

Citat: ucazapenje1 poslato Mart 27, 2024, 14:22:27 POSLE PODNE
razumem kako da ugasim checkpoint, ali kako da napravim proveru da to bude cp od gpsa

new OznacioGPS[MAX_PLAYERS];

pa ovde tipa

SetPlayerCheckpoint(playerid, GpsInfo[id][gpsX], GpsInfo[id][gpsY], GpsInfo[id][gpsZ], 5.0);
OznacioGPS[playerid] = 1;

i onda tamo gde se gasi stavis
OznacioGPS[playerid] = 0;

I onda mozes kod tipa /gpsoff da ubacis ovako.

if(OznacioGPS[playerid] != 1) return SCM(playerid,-1,"Nemas oznacenu lokaciju na mapi");