Advertisement
Guest User

TextDrawGetText in SQLite (c) by Kaliber

a guest
Mar 6th, 2015
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* SA-MP Include GetText-Functions
  2.  *
  3.  * (c) by Kaliber, 2015
  4.  *
  5.  */
  6. #if !defined _samp_included
  7.     #include <a_samp>
  8. #endif
  9. #if defined _samp_getText
  10.     #endinput
  11. #endif
  12. #define _samp_getText
  13. #if !defined MAX_BUFFER
  14.     #define MAX_BUFFER (128)
  15. #endif
  16. #if !defined MAX_TEXT
  17.     #define MAX_TEXT (MAX_BUFFER * 4)
  18. #endif
  19. #define A:: e_T_
  20. #define db_free db_free_result
  21. #define e_T_DATABASE ("TextDraws.db")
  22. #define dbe(%0,%1) format(string,sizeof string,%0,%1),db_free(db_query(A::DB,string))
  23. /*
  24.     native TextDrawGetText(Text:id);
  25.     native PlayerTextDrawGetText(PlayerText:id);
  26. */
  27. #if defined FILTERSCRIPT
  28.     forward A::OnFilterScriptInit();
  29.     forward A::OnFilterScriptExit();
  30. #else
  31.     forward A::OnGameModeInit();
  32.     forward A::OnGameModeExit();
  33. #endif
  34. native Text:A::TextDrawCreate(Float:x, Float:y, text[]) = TextDrawCreate;
  35. native A::TextDrawSetString(Text:text, string[]) = TextDrawSetString;
  36. native A::TextDrawDestroy(Text:text) = TextDrawDestroy;
  37.  
  38. native PlayerText:A::CreatePlayerTextDraw(playerid,Float:x, Float:y, text[]) = CreatePlayerTextDraw;
  39. native A::PlayerTextDrawSetString(playerid, PlayerText:text, string[]) = PlayerTextDrawSetString;
  40. native A::PlayerTextDrawDestroy(playerid, PlayerText:text) = PlayerTextDrawDestroy;
  41.  
  42. static DB:A::DB;
  43.  
  44. stock TextDrawGetText(Text:id) {
  45.     static string[MAX_BUFFER] = "NaN",DBResult:result;
  46.     format(string,MAX_BUFFER,"SELECT `text` FROM `TextDraw` WHERE `flag`='%d' AND `x`='0'",_:id);
  47.     result = db_query(A::DB,string),db_get_field(result,0,string,MAX_BUFFER),db_free(result);
  48.     return string;
  49. }
  50. stock PlayerTextDrawGetText(PlayerText:id) {
  51.     static string[MAX_BUFFER] = "NaN",DBResult:result;
  52.     format(string,MAX_BUFFER,"SELECT `text` FROM `TextDraw` WHERE `flag`='%d' AND `x`='1'",_:id);
  53.     result = db_query(A::DB,string),db_get_field(result,0,string,MAX_BUFFER),db_free(result);
  54.     return string;
  55. }
  56. stock Text:_TextDrawCreate(Float:x, Float:y, text[]) {
  57.     new tmp = _:A::TextDrawCreate(x,y,text),string[MAX_TEXT];
  58.     dbe("INSERT INTO `TextDraw` ('flag','x','text') VALUES ('%d','0','%s')",tmp,text);
  59.     return Text:tmp;
  60. }
  61. #if defined _ALS_TextDrawCreate
  62.     #undef TextDrawCreate
  63. #else
  64.     #define _ALS_TextDrawCreate
  65. #endif
  66. #define TextDrawCreate _TextDrawCreate
  67. stock PlayerText:_CreatePlayerTextDraw(playerid, Float:x, Float:y, text[]) {
  68.     if(!IsPlayerConnected(playerid)) return PlayerText:INVALID_TEXT_DRAW;
  69.     new tmp = _:A::CreatePlayerTextDraw(playerid,x,y,text),string[MAX_TEXT];
  70.     dbe("INSERT INTO `TextDraw` ('flag','x','text') VALUES ('%d','1','%s')",tmp,text);
  71.     return PlayerText:tmp;
  72. }
  73. #if defined _ALS_CreatePlayerTextDraw
  74.     #undef CreatePlayerTextDraw
  75. #else
  76.     #define _ALS_CreatePlayerTextDraw
  77. #endif
  78. #define CreatePlayerTextDraw _CreatePlayerTextDraw
  79. stock _TextDrawSetString(Text:text, tmp[]) {
  80.     static string[MAX_TEXT];
  81.     dbe("UPDATE `TextDraw` SET `text`='%s' WHERE `flag`='%d' AND `x`='0'",tmp,_:text);
  82.     return A::TextDrawSetString(text,tmp);
  83. }
  84. #if defined _ALS_TextDrawSetString
  85.     #undef TextDrawSetString
  86. #else
  87.     #define _ALS_TextDrawSetString
  88. #endif
  89. #define TextDrawSetString _TextDrawSetString
  90. stock _PlayerTextDrawSetString(playerid, PlayerText:text, tmp[]) {
  91.     static string[MAX_TEXT];
  92.     dbe("UPDATE `TextDraw` SET `text`='%s' WHERE `flag`='%d' AND `x`='1'",tmp,_:text);
  93.     return A::PlayerTextDrawSetString(playerid,text,tmp);
  94. }
  95. #if defined _ALS_PlayerTextDrawSetString
  96.     #undef PlayerTextDrawSetString
  97. #else
  98.     #define _ALS_PlayerTextDrawSetString
  99. #endif
  100. #define PlayerTextDrawSetString _PlayerTextDrawSetString
  101. stock _PlayerTextDrawDestroy(playerid, PlayerText:text) {
  102.     static string[MAX_BUFFER];
  103.     dbe("DELETE FROM `TextDraw` WHERE `flag`='%d' AND `x`='1'",_:text);
  104.     return A::PlayerTextDrawDestroy(playerid,text);
  105. }
  106. #if defined _ALS_PlayerTextDrawDestroy
  107.     #undef PlayerTextDrawDestroy
  108. #else
  109.     #define _ALS_PlayerTextDrawDestroy
  110. #endif
  111. #define PlayerTextDrawDestroy _PlayerTextDrawDestroy
  112. stock _TextDrawDestroy(Text:text) {
  113.     static string[MAX_BUFFER];
  114.     dbe("DELETE FROM `TextDraw` WHERE `flag`='%d' AND `x`='0'",_:text);
  115.     return A::TextDrawDestroy(text);
  116. }
  117. #if defined _ALS_TextDrawDestroy
  118.     #undef TextDrawDestroy
  119. #else
  120.     #define _ALS_TextDrawDestroy
  121. #endif
  122. #define TextDrawDestroy _TextDrawDestroy
  123.  
  124. #if defined FILTERSCRIPT
  125.     public OnFilterScriptInit() {
  126.         if(fexist(A::DATABASE)) fremove(A::DATABASE);
  127.         A::DB = db_open(A::DATABASE);
  128.         db_free(db_query(A::DB,"CREATE TABLE IF NOT EXISTS `TextDraw` (`flag`,`x`,`text`)"));
  129.     return CallLocalFunction("e_T_OnFilterScriptInit","");
  130.     }
  131.     #if defined _ALS_OnFilterScriptInit
  132.         #undef OnFilterScriptInit
  133.     #else
  134.         #define _ALS_OnFilterScriptInit
  135.     #endif
  136.     #define OnFilterScriptInit e_T_OnFilterScriptInit
  137.     public OnFilterScriptExit() {
  138.         db_close(A::DB);
  139.         return CallLocalFunction("e_T_OnFilterScriptExit","");
  140.     }
  141.     #if defined _ALS_OnFilterScriptExit
  142.         #undef OnFilterScriptExit
  143.     #else
  144.         #define _ALS_OnFilterScriptExit
  145.     #endif
  146.     #define OnFilterScriptExit e_T_OnFilterScriptExit
  147. #else
  148.     public OnGameModeInit() {
  149.         if(fexist(A::DATABASE)) fremove(A::DATABASE);
  150.         A::DB = db_open(A::DATABASE);
  151.     db_free(db_query(A::DB,"CREATE TABLE IF NOT EXISTS `TextDraw` (`flag`,`x`,`text`)"));
  152.     return CallLocalFunction("e_T_OnGameModeInit","");
  153.     }
  154.     #if defined _ALS_OnGameModeInit
  155.         #undef OnGameModeInit
  156.     #else
  157.         #define _ALS_OnGameModeInit
  158.     #endif
  159.     #define OnGameModeInit e_T_OnGameModeInit
  160.     public OnGameModeExit() {
  161.         db_close(A::DB);
  162.         return CallLocalFunction("e_T_OnGameModeExit","");
  163.     }
  164.     #if defined _ALS_OnGameModeExit
  165.         #undef OnGameModeExit
  166.     #else
  167.         #define _ALS_OnGameModeExit
  168.     #endif
  169.     #define OnGameModeExit e_T_OnGameModeExit
  170. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement