Advertisement
Guest User

zena zmija

a guest
Sep 7th, 2021
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.82 KB | None | 0 0
  1. /*
  2. Global Position System
  3. - Jevtic Lazar -
  4. */
  5.  
  6. #include "a_samp"
  7. #include "a_mysql"
  8. #include "Pawn.CMD"
  9. #include "YSI_Data\y_iterate"
  10. #include "sscanf2"
  11.  
  12. static SQL_DATABASE[7] = "gps_db";
  13. static SQL_USERNAME[5] = "root";
  14. static SQL_PASSWORD[1] = "";
  15. static SQL_HOSTNAME[10] = "localhost";
  16.  
  17. const MAXIMUM_GPS = (30);
  18.  
  19. static SQL;
  20.  
  21. enum GPS_ENUM
  22. {
  23. GPS_SQLID,
  24. GPS_NAME[30],
  25. Float:GPS_POS[3]
  26. }
  27.  
  28. static GPS_DATA[MAXIMUM_GPS][GPS_ENUM];
  29. static Iterator:ITER_GPS<MAXIMUM_GPS>;
  30. static Selected[MAX_PLAYERS];
  31. static bool:GpsActive[MAX_PLAYERS];
  32.  
  33. enum
  34. {
  35. DIALOG_GPS
  36. }
  37.  
  38. forward SQL_MAKE_GPS(ID);
  39. public SQL_MAKE_GPS(ID)
  40. {
  41. static SQL_STRING[512];
  42.  
  43. 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')",
  44. GPS_DATA[ID][GPS_NAME],GPS_DATA[ID][GPS_POS][0],GPS_DATA[ID][GPS_POS][1],GPS_DATA[ID][GPS_POS][2]);
  45.  
  46. mysql_pquery(SQL,SQL_STRING,"SQL_MAKED_GPS","i",ID);
  47.  
  48. return true;
  49. }
  50.  
  51. forward SQL_MAKED_GPS(ID);
  52. public SQL_MAKED_GPS(ID)
  53. {
  54. GPS_DATA[ID][GPS_SQLID] = cache_insert_id();
  55. return true;
  56. }
  57.  
  58. forward SQL_LOAD_GPS();
  59. public SQL_LOAD_GPS()
  60. {
  61. new ROWS,FIELD,ID;
  62. cache_get_data(ROWS,FIELD,SQL);
  63. if(ROWS)
  64. {
  65. for(new i = 0; i < ROWS; i++)
  66. {
  67. ID = Iter_Free(ITER_GPS);
  68.  
  69. GPS_DATA[ID][GPS_SQLID] = cache_get_field_content_int(i,"GPS_SQL_ID");
  70. GPS_DATA[ID][GPS_POS][0] = cache_get_field_content_float(i,"GPS_POS_X");
  71. GPS_DATA[ID][GPS_POS][1] = cache_get_field_content_float(i,"GPS_POS_Y");
  72. GPS_DATA[ID][GPS_POS][2] = cache_get_field_content_float(i,"GPS_POS_Z");
  73.  
  74. cache_get_field_content(i,"GPS_NAME",GPS_DATA[ID][GPS_NAME],SQL,30);
  75.  
  76. Iter_Add(ITER_GPS,ID);
  77. }
  78. }
  79. return true;
  80. }
  81.  
  82. forward SQL_SAVE_GPS(ID);
  83. public SQL_SAVE_GPS(ID)
  84. {
  85. static SQL_STRING[512];
  86.  
  87. 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'",
  88. 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]);
  89.  
  90. mysql_tquery(SQL,SQL_STRING);
  91. return true;
  92. }
  93.  
  94. main () { }
  95.  
  96. public OnGameModeInit()
  97. {
  98. mysql_log(LOG_ERROR | LOG_WARNING);
  99. SQL = mysql_connect(SQL_HOSTNAME,SQL_USERNAME,SQL_DATABASE,SQL_PASSWORD,3306,true,4);
  100. if(mysql_errno(SQL) != 0)
  101. {
  102. print("Spajanje sa bazom je neuspesno.");
  103. }
  104. else
  105. {
  106. print("Spajanje sa bazom je uspesno.");
  107. }
  108. mysql_tquery(SQL,"SELECT * FROM `gps`","SQL_LOAD_GPS");
  109. return true;
  110. }
  111.  
  112. public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[])
  113. {
  114. if(dialogid == DIALOG_GPS)
  115. {
  116. if(!response) return true;
  117. switch(Selected[playerid])
  118. {
  119. case 1:
  120. {
  121. GpsActive[playerid] = true;
  122. SetPlayerCheckpoint(playerid,GPS_DATA[listitem][GPS_POS][0],GPS_DATA[listitem][GPS_POS][1],GPS_DATA[listitem][GPS_POS][2],3.0);
  123. }
  124. }
  125. }
  126. return true;
  127. }
  128.  
  129. public OnPlayerEnterCheckpoint(playerid)
  130. {
  131. if(GpsActive[playerid] == true)
  132. {
  133. GameTextForPlayer(playerid,"~g~~h~Stigao si na oznacenu lokaciju",3000,3);
  134. GpsActive[playerid] = false;
  135. DisablePlayerCheckpoint(playerid);
  136. }
  137. return true;
  138. }
  139.  
  140. CMD:kreirajgps(playerid,const params[])
  141. {
  142. new ID = Iter_Free(ITER_GPS),GPSNAME[30],STRING[64];
  143. if(GPS_DATA[(MAXIMUM_GPS-1)][GPS_SQLID] != 0) return SendClientMessage(playerid,-1,"greska:> Ne mozes vise kreirati,limit je dostignut");
  144. if(sscanf(params,"s[30]",GPSNAME)) return SendClientMessage(playerid,-1,"usage:> /kreirajgps <ime gps-a>");
  145. GetPlayerPos(playerid,GPS_DATA[ID][GPS_POS][0],GPS_DATA[ID][GPS_POS][1],GPS_DATA[ID][GPS_POS][2]);
  146. strmid(GPS_DATA[ID][GPS_NAME],GPSNAME,0,strlen(GPSNAME),30);
  147. SQL_MAKE_GPS(ID);
  148. Iter_Add(ITER_GPS,ID);
  149. format(STRING,sizeof(STRING),"Kreirao si GPS pod imenom: %s",GPSNAME);
  150. SendClientMessage(playerid,-1,STRING);
  151. return true;
  152. }
  153.  
  154. CMD:gps(playerid,const params[])
  155. {
  156. new STRING[256],STRING1[2048];
  157. Selected[playerid] = 1;
  158. foreach(new i : ITER_GPS)
  159. {
  160. if(GPS_DATA[i][GPS_SQLID] != 0)
  161. {
  162. new Float:DISTANCE = GetPlayerDistanceFromPoint(playerid,GPS_DATA[i][GPS_POS][0],GPS_DATA[i][GPS_POS][1],GPS_DATA[i][GPS_POS][2]);
  163. format(STRING,sizeof(STRING),"{626262}GPS ID\t{626262}GPS NAME\t{626262}GPS DISTANCE\n");
  164. strcat(STRING,STRING1);
  165. format(STRING1,sizeof(STRING1),"{626262}(%d)\t{FFFFFF}%s\t{00FF00}%0.2fm\n",i,GPS_DATA[i][GPS_NAME],DISTANCE);
  166. strcat(STRING,STRING1);
  167. ShowPlayerDialog(playerid,DIALOG_GPS,DIALOG_STYLE_TABLIST_HEADERS,"{626262}GLOBAL POSITION SYSTEM",STRING,"{00FF00}X","{FF0000}X");
  168. }
  169. }
  170. return true;
  171. }
  172.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement