Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Global Position System
- - Jevtic Lazar -
- */
- #include "a_samp"
- #include "a_mysql"
- #include "Pawn.CMD"
- #include "YSI_Data\y_iterate"
- #include "sscanf2"
- static SQL_DATABASE[7] = "gps_db";
- static SQL_USERNAME[5] = "root";
- static SQL_PASSWORD[1] = "";
- static SQL_HOSTNAME[10] = "localhost";
- const MAXIMUM_GPS = (30);
- static SQL;
- enum GPS_ENUM
- {
- GPS_SQLID,
- GPS_NAME[30],
- Float:GPS_POS[3]
- }
- static GPS_DATA[MAXIMUM_GPS][GPS_ENUM];
- static Iterator:ITER_GPS<MAXIMUM_GPS>;
- static Selected[MAX_PLAYERS];
- static bool:GpsActive[MAX_PLAYERS];
- enum
- {
- DIALOG_GPS
- }
- forward SQL_MAKE_GPS(ID);
- public SQL_MAKE_GPS(ID)
- {
- static SQL_STRING[512];
- mysql_format(SQL,SQL_STRING,sizeof(SQL_STRING),"INSERT INTO `gps` (GPS_NAME,GPS_POS_X,GPS_POS_Y,GPS_POZ_Z) VALUES('%s','%f','%f','%f')",
- GPS_DATA[ID][GPS_NAME],GPS_DATA[ID][GPS_POS][0],GPS_DATA[ID][GPS_POS][1],GPS_DATA[ID][GPS_POS][2]);
- mysql_pquery(SQL,SQL_STRING,"SQL_MAKED_GPS","i",ID);
- return true;
- }
- forward SQL_MAKED_GPS(ID);
- public SQL_MAKED_GPS(ID)
- {
- GPS_DATA[ID][GPS_SQLID] = cache_insert_id();
- return true;
- }
- forward SQL_LOAD_GPS();
- public SQL_LOAD_GPS()
- {
- new ROWS,FIELD,ID;
- cache_get_data(ROWS,FIELD,SQL);
- if(ROWS)
- {
- for(new i = 0; i < ROWS; i++)
- {
- ID = Iter_Free(ITER_GPS);
- GPS_DATA[ID][GPS_SQLID] = cache_get_field_content_int(i,"GPS_SQL_ID");
- GPS_DATA[ID][GPS_POS][0] = cache_get_field_content_float(i,"GPS_POS_X");
- GPS_DATA[ID][GPS_POS][1] = cache_get_field_content_float(i,"GPS_POS_Y");
- GPS_DATA[ID][GPS_POS][2] = cache_get_field_content_float(i,"GPS_POS_Z");
- cache_get_field_content(i,"GPS_NAME",GPS_DATA[ID][GPS_NAME],SQL,30);
- Iter_Add(ITER_GPS,ID);
- }
- }
- return true;
- }
- forward SQL_SAVE_GPS(ID);
- public SQL_SAVE_GPS(ID)
- {
- static SQL_STRING[512];
- mysql_format(SQL,SQL_STRING,sizeof(SQL_STRING),"UPDATE `gps` SET `GPS_NAME` = '%s',`GPS_POS_X` = '%f',`GPS_POS_Y` = '%f',`GPS_POS_Z` = '%f' WHERE `GPS_SQL_ID` = '%d'",
- GPS_DATA[ID][GPS_NAME],GPS_DATA[ID][GPS_POS][0],GPS_DATA[ID][GPS_POS][1],GPS_DATA[ID][GPS_POS][2],GPS_DATA[ID][GPS_SQLID]);
- mysql_tquery(SQL,SQL_STRING);
- return true;
- }
- main () { }
- public OnGameModeInit()
- {
- mysql_log(LOG_ERROR | LOG_WARNING);
- SQL = mysql_connect(SQL_HOSTNAME,SQL_USERNAME,SQL_DATABASE,SQL_PASSWORD,3306,true,4);
- if(mysql_errno(SQL) != 0)
- {
- print("Spajanje sa bazom je neuspesno.");
- }
- else
- {
- print("Spajanje sa bazom je uspesno.");
- }
- mysql_tquery(SQL,"SELECT * FROM `gps`","SQL_LOAD_GPS");
- return true;
- }
- public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_GPS)
- {
- if(!response) return true;
- switch(Selected[playerid])
- {
- case 1:
- {
- GpsActive[playerid] = true;
- SetPlayerCheckpoint(playerid,GPS_DATA[listitem][GPS_POS][0],GPS_DATA[listitem][GPS_POS][1],GPS_DATA[listitem][GPS_POS][2],3.0);
- }
- }
- }
- return true;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- if(GpsActive[playerid] == true)
- {
- GameTextForPlayer(playerid,"~g~~h~Stigao si na oznacenu lokaciju",3000,3);
- GpsActive[playerid] = false;
- DisablePlayerCheckpoint(playerid);
- }
- return true;
- }
- CMD:kreirajgps(playerid,const params[])
- {
- new ID = Iter_Free(ITER_GPS),GPSNAME[30],STRING[64];
- if(GPS_DATA[(MAXIMUM_GPS-1)][GPS_SQLID] != 0) return SendClientMessage(playerid,-1,"greska:> Ne mozes vise kreirati,limit je dostignut");
- if(sscanf(params,"s[30]",GPSNAME)) return SendClientMessage(playerid,-1,"usage:> /kreirajgps <ime gps-a>");
- GetPlayerPos(playerid,GPS_DATA[ID][GPS_POS][0],GPS_DATA[ID][GPS_POS][1],GPS_DATA[ID][GPS_POS][2]);
- strmid(GPS_DATA[ID][GPS_NAME],GPSNAME,0,strlen(GPSNAME),30);
- SQL_MAKE_GPS(ID);
- Iter_Add(ITER_GPS,ID);
- format(STRING,sizeof(STRING),"Kreirao si GPS pod imenom: %s",GPSNAME);
- SendClientMessage(playerid,-1,STRING);
- return true;
- }
- CMD:gps(playerid,const params[])
- {
- new STRING[256],STRING1[2048];
- Selected[playerid] = 1;
- foreach(new i : ITER_GPS)
- {
- if(GPS_DATA[i][GPS_SQLID] != 0)
- {
- new Float:DISTANCE = GetPlayerDistanceFromPoint(playerid,GPS_DATA[i][GPS_POS][0],GPS_DATA[i][GPS_POS][1],GPS_DATA[i][GPS_POS][2]);
- format(STRING,sizeof(STRING),"{626262}GPS ID\t{626262}GPS NAME\t{626262}GPS DISTANCE\n");
- strcat(STRING,STRING1);
- format(STRING1,sizeof(STRING1),"{626262}(%d)\t{FFFFFF}%s\t{00FF00}%0.2fm\n",i,GPS_DATA[i][GPS_NAME],DISTANCE);
- strcat(STRING,STRING1);
- ShowPlayerDialog(playerid,DIALOG_GPS,DIALOG_STYLE_TABLIST_HEADERS,"{626262}GLOBAL POSITION SYSTEM",STRING,"{00FF00}X","{FF0000}X");
- }
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement