Guest User

SFCRRPGdudb.inc

a guest
May 26th, 2014
357
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.46 KB | None | 0 0
  1. /*
  2. * DUDB 2.2
  3. * (c) Copyright 2006 by DracoBlue
  4. *
  5. * @version : 2.2
  6. * @author : DracoBlue (http://dracoblue.net)
  7. * @date : 8th May 2006
  8. * @update : 15nd Feb 2007
  9. * @require : DUtils 1.6
  10. * @require : DINI 1.4
  11. *
  12. * This file is provided as is (no warranties).
  13. *
  14. * Feel free to use it, a little message in
  15. * about box is honouring thing, isn't it?
  16. *
  17. */
  18.  
  19. #if defined _dudb_included
  20. #endinput
  21. #endif
  22.  
  23. #define _dudb_included
  24. #pragma library dutils
  25.  
  26. #include <dutils>
  27. #include <dini>
  28. #define dUser(%1).( udb_User(%1,
  29. #define dUserINT(%1).( udb_UserInt(%1,
  30. #define dUserSet(%1).( udb_UserSet(%1,
  31. #define dUserSetINT(%1).( udb_UserSetInt(%1,
  32. #define dUserSetFLOAT(%1).( udb_UserSetFloat(%1,
  33. #define dUserFLOAT(%1).( udb_UserFloat(%1,
  34.  
  35. stock udb_hash(buf[]) {
  36. new length=strlen(buf);
  37. new s1 = 1;
  38. new s2 = 0;
  39. new n;
  40. for (n=0; n<length; n++)
  41. {
  42. s1 = (s1 + buf[n]) % 65521;
  43. s2 = (s2 + s1) % 65521;
  44. }
  45. return (s2 << 16) + s1;
  46. }
  47.  
  48. stock udb_encode(nickname[]) {
  49. new tmp[MAX_STRING];
  50. set(tmp,nickname);
  51. tmp=strreplace("_","_00",tmp);
  52. tmp=strreplace(";","_01",tmp);
  53. tmp=strreplace("!","_02",tmp);
  54. tmp=strreplace("/","_03",tmp);
  55. tmp=strreplace("\\","_04",tmp);
  56. tmp=strreplace("[","_05",tmp);
  57. tmp=strreplace("]","_06",tmp);
  58. tmp=strreplace("?","_07",tmp);
  59. tmp=strreplace(".","_08",tmp);
  60. tmp=strreplace("*","_09",tmp);
  61. tmp=strreplace("<","_10",tmp);
  62. tmp=strreplace(">","_11",tmp);
  63. tmp=strreplace("{","_12",tmp);
  64. tmp=strreplace("}","_13",tmp);
  65. tmp=strreplace(" ","_14",tmp);
  66. tmp=strreplace("\"","_15",tmp);
  67. tmp=strreplace(":","_16",tmp);
  68. tmp=strreplace("|","_17",tmp);
  69. tmp=strreplace("=","_18",tmp);
  70. return tmp;
  71. }
  72.  
  73. stock udb_decode(nickname[]) {
  74. new tmp[MAX_STRING];
  75. set(tmp,nickname);
  76. tmp=strreplace("_01",";",tmp);
  77. tmp=strreplace("_02","!",tmp);
  78. tmp=strreplace("_03","/",tmp);
  79. tmp=strreplace("_04","\\",tmp);
  80. tmp=strreplace("_05","[",tmp);
  81. tmp=strreplace("_06","]",tmp);
  82. tmp=strreplace("_07","?",tmp);
  83. tmp=strreplace("_08",".",tmp);
  84. tmp=strreplace("_09","*",tmp);
  85. tmp=strreplace("_10","<",tmp);
  86. tmp=strreplace("_11",">",tmp);
  87. tmp=strreplace("_12","{",tmp);
  88. tmp=strreplace("_13","}",tmp);
  89. tmp=strreplace("_14"," ",tmp);
  90. tmp=strreplace("_15","\"",tmp);
  91. tmp=strreplace("_16",":",tmp);
  92. tmp=strreplace("_17","|",tmp);
  93. tmp=strreplace("_18","=",tmp);
  94. tmp=strreplace("_00","_",tmp);
  95. return tmp;
  96. }
  97.  
  98.  
  99. stock udb_Exists(nickname[]) {
  100. new tmp[MAX_STRING];
  101. format(tmp,sizeof(tmp),"/SFCRRPG/%s.dudb.sav",udb_encode(nickname));
  102. return fexist(tmp);
  103. }
  104.  
  105.  
  106. stock udb_Remove(nickname[]) {
  107. new tmp[MAX_STRING];
  108. format(tmp,sizeof(tmp),"/SFCRRPG/%s.dudb.sav",udb_encode(nickname));
  109. return dini_Remove(tmp);
  110. }
  111.  
  112. stock udb_UserSetInt(nickname[],key[],value) {
  113. new fname[MAX_STRING];
  114. format(fname,sizeof(fname),"/SFCRRPG/%s.dudb.sav",udb_encode(nickname));
  115. return dini_IntSet(fname,key,value);
  116. }
  117.  
  118. stock udb_UserSetFloat(nickname[],key[],Float:value) {
  119. new fname[MAX_STRING];
  120. format(fname,sizeof(fname),"/SFCRRPG/%s.dudb.sav",udb_encode(nickname));
  121. return dini_FloatSet(fname,key,value);
  122. }
  123.  
  124. stock udb_UserSet(nickname[],key[],value[]) {
  125. new fname[MAX_STRING];
  126. format(fname,sizeof(fname),"/SFCRRPG/%s.dudb.sav",udb_encode(nickname));
  127. return dini_Set(fname,key,value);
  128. }
  129. stock udb_User(nickname[],key[]) {
  130. new fname[MAX_STRING];
  131. format(fname,sizeof(fname),"/SFCRRPG/%s.dudb.sav",udb_encode(nickname));
  132. format(fname,sizeof(fname),dini_Get(fname,key));
  133. return fname;
  134. }
  135.  
  136. stock Float:udb_UserFloat(nickname[],key[]) {
  137. new fname[MAX_STRING];
  138. format(fname,sizeof(fname),"/SFCRRPG/%s.dudb.sav",udb_encode(nickname));
  139. return dini_Float(fname,key);
  140. }
  141.  
  142. stock udb_UserInt(nickname[],key[]) {
  143. new fname[MAX_STRING];
  144. format(fname,sizeof(fname),"/SFCRRPG/%s.dudb.sav",udb_encode(nickname));
  145. return dini_Int(fname,key);
  146. }
  147.  
  148. stock udb_CheckLogin(nickname[],pwd[]) {
  149. new fname[MAX_STRING];
  150. format(fname,sizeof(fname),"/SFCRRPG/%s.dudb.sav",udb_encode(nickname));
  151. if (udb_UserInt(nickname,"password_hash")==udb_hash(pwd)) return true;
  152. return false;
  153. }
  154.  
  155.  
  156. stock udb_Create(nickname[],pwd[]) {
  157. if (udb_Exists(nickname)) return false;
  158. new fname[MAX_STRING];
  159. format(fname,sizeof(fname),"/SFCRRPG/%s.dudb.sav",udb_encode(nickname));
  160. dini_Create(fname);
  161. udb_UserSetInt(nickname,"password_hash",udb_hash(pwd));
  162. return true;
  163. }
Advertisement
Add Comment
Please, Sign In to add comment