Dinamicno kreiranje GPS

26. Avg. 2020.
556
pregleda
3
postova
Enis666
4
Shot Caller
26. Avg. 2020.
Problem(error/warning): Imam problem kad kreiram gps na server i sve norm radi ali posle restarta kad idem /gps pise da nema kreiranih gps lokacija https://imgur.com/l1Z4Fpk
Deo skripte:
stock GpsFilePath(i)
{
new pFile;

format(pFile, sizeof(pFile), GPS_PATH, i);
return pFile;
}

stock LoadGpss()
{
for(new i = 0; i < MAX_GPS_LOCATIONS; i++)
{
if(fexist(GpsFilePath(i)))
{
    INI_ParseFile(GpsFilePath(i), "Loadgps_PF", .bExtra = true, .extra = i);
    GpsLocations = (i+1);
}
}

printf("Ukupno kreiranih gps lokacija je > [%d]...", GpsLocations);
return 1;
}

stock SaveGPSLocation(id)
{
new INI:file = INI_Open(GpsFilePath(id));

  INI_WriteBool(file,"Created", gps_Data);
  INI_WriteString(file,"Name",gps_Data);
  INI_WriteFloat(file,"X",gps_Data);
  INI_WriteFloat(file,"Y",gps_Data);
  INI_WriteFloat(file,"Z",gps_Data);
  INI_WriteFloat(file,"A",gps_Data);
  INI_WriteInt(file,"Typ",gps_Data);
  INI_Close(file);
return 1;
}

stock Loadgps_PF(id, name[], value[])
{
INI_Bool("Created", gps_Data);
INI_String("Name", gps_Data,30);
INI_Float("X", gps_Data);
  INI_Float("Y", gps_Data);
  INI_Float("Z", gps_Data);
  INI_Float("A", gps_Data);
  INI_Int("Typ",gps_Data);
  return 1;
}

CMD:creategps(playerid, params[])
{
if(PI < 6) return Error(playerid, "Ne mozes to");

if(GpsLocations >= MAX_GPS_LOCATIONS) {
new bool:freeslot = false;
for(new i = 0; i < GpsLocations; i++) {
if(gps_Data == false) {
freeslot = true;
break;
}
}
if(freeslot == false) return Error(playerid, "Maksimalni broj gps lokacija je vec kreiran!");
}
new string;
format(string, 562, "{327EFF}Dostupne kategorije: \n\n{327EFF}1# "col_white"Beograd\n{327EFF}2# "col_white"Zagreb\n{327EFF}3# "col_white"Sarajevo\n\
{327EFF}4# "col_white"Posao\n{327EFF}5# "col_white"Organizacija\n{327EFF}6# "col_white"Ostalo\n\nUnesite {327EFF}kategorija i ime gps lokacije "col_white"da kreirate novu gps lokaciju:");

SPD(playerid, DIALOG_CREATE_GPS, DIALOG_STYLE_INPUT, COL_BE "Kreiranje gps lokacije:", string, "Dalje", "Prekid");
dialogData = 1;
return 1;
}

CMD:editgps(playerid, params[])
{
if(PI < 6) return Error( playerid, "Nemate ovlastenje za koriscenje ove komande!");

if(GpsLocations <= 0) return Error(playerid, "Nema kreiranih gps lokacija!");
SPD(playerid, DIALOG_EDIT_GPS, DIALOG_STYLE_INPUT,  "Uredivanje gps lokacije:", COL_WHITE "Unesite "COL_YELLOW"ID lokacije (/gpslist)"col_white" da uredite gps lokaciju:", "Dalje", "Prekid");
dialogData = 1;
return 1;
}

CMD:gps(playerid, params[])
{
if(PI > 0) return Error(playerid, "Ne mozes ovde!");
if(Tazovan > 0 || Zavezan > 0 || Tie > 0) return Error(playerid, "Ne mozes to, zavezan/sokiran si!");
if(RentAuto(GetPlayerVehicleID(playerid)) && Rentao == 9999 && GetPlayerState(playerid) == PL_ST_DRIVER) return Error(playerid, "Ne mozes da radis BA!");
SPD(playerid, DIALOG_GPS_TYPS, DIALOG_STYLE_LIST, ""col_white"Port Kategorije", "{327EFF}01: "col_white"BEOGRAD\n{327EFF}02: "col_white"ZAGREB\n{327EFF}03: "col_white"SARAJEVO\n{327EFF}04: "col_white"POSLOVI\n{327EFF}05: "col_white"ORGANIZACIJE\n{327EFF}06: "col_white"OSTALO", "Odaberi", "Ponisti");
new mrk;
    format(mrk, sizeof(mrk), "* %s otvara meni GPS-a.", GetName(playerid));
ProxDetector(30.0, playerid, mrk, PURPLE1,PURPLE2,PURPLE3,PURPLE4,PURPLE5);
return 1;
}

CMD:gpslist(playerid, params[])
{

if(PI < 5) return Error(playerid, "Ne mozes to");

SPD(playerid, DIALOG_GPS_LIST, DIALOG_STYLE_LIST, ""col_white"GPS", "{327EFF}01: "col_white"BEOGRAD\n{327EFF}02: "col_white"ZAGREB\n{327EFF}03: "col_white"SARAJEVO\n{327EFF}04: "col_white"POSLOVI\n{327EFF}05: "col_white"ORGANIZACIJE\n{327EFF}06: "col_white"OSTALO", "Odaberi", "Ponisti");
return 1;
}

stock GetGPSIDFromName(type, id, name[])//Samo za dialog
{
for(new i = 0; i <= MAX_GPS_LOCATIONS; i++)
  {
  new fullname;
format(fullname,sizeof(fullname), "%02d: %s", id, gps_Data);
    if(strcmp(fullname, name, true, strlen(name)) == 0)
    {
    if(gps_Data == type)
    {
        return i;
        }
    }
  }
  return INVALID_PLAYER_ID;
}

stock getGPSTypeFromID(type)
{
new string = "Nepoznato";
switch(type)
{
case 01: string = "Beograd";
case 02: string = "Zagreb";
case 03: string = "Sarajevo";
case 04: string = "Posao";
case 05: string = "Organizacija";
case 06: string = "Ostalo";
}
return string;
}
#define MAX_GPS_LOCATIONS 300
#define GPS_PATH "Emirates/gps/%d.ini"

enum gps_data {
bool:gps_Created,
gps_LocationName,
Float:gps_Pos,
gps_Type
}
new gps_Data,
GpsLocations = 0;

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Vaš odgovor
XACK
3
Hustler
26. Avg. 2020.
Kada kreiras/izmenis gps port moras pozvati sledecu funkciju: SaveGPSLocation(id)
verzija.2
2
Wheel Man
28. Avg. 2020.
Pa kreiraj ih ?  😄

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha