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
https://github.com/emmett-whitez/samp-mystique-roleplay/blob/main/gamemodes/core/systems/gps/gps_init.pwn
Hvala bro znaci mi
kako da napravim da mi se ugasi checkpoint kad udjem u njega u gps
Citat: ucazapenje1 poslato Mart 27, 2024, 02:29:08 PRE PODNE
kako da napravim da mi se ugasi checkpoint kad udjem u njega u gps
https://www.open.mp/docs/scripting/functions/SetPlayerCheckpoint
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");
E to brate, hvala na pomoci❤️
radi sve kao podmazano :D