Advertisement
Guest User

Untitled

a guest
Jun 17th, 2017
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.66 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_mysql>
  3. #include <sscanf2>
  4. #include <izcmd>
  5.  
  6. #define FILTERSCRIPT
  7. #define SQL_HOST "localhost" // the ip of your mysql server
  8. #define SQL_USER "root" // the username of your mysql account
  9. #define SQL_PASS "" // the password of your mysql account
  10. #define SQL_DB "kayit" // the database name
  11.  
  12. #define DIALOG_LOGIN 0
  13. #define DIALOG_REGISTER 1
  14. #define DIALOG_REWARD 2
  15. #define DIALOG_STATISTIC 3
  16.  
  17. enum playerinfo
  18. {
  19. pUsername[24],
  20. pPassword[64],
  21. pIP[16],
  22. pMoney,
  23. pAdminLevel,
  24. pDJLevel,
  25. pKills,
  26. pDeaths,
  27. pLogged,
  28. pScore
  29. };
  30.  
  31. new MySQL:dbHandle;
  32. new Invalid[MAX_PLAYERS];
  33. new pInfo[MAX_PLAYERS][playerinfo];
  34.  
  35. stock pName(playerid)
  36. {
  37. new gName[MAX_PLAYER_NAME];
  38. GetPlayerName( playerid, gName, sizeof gName );
  39. return gName;
  40. }
  41.  
  42. stock MySQL_Register(playerid, passwordstring[])
  43. {
  44. new Query[512], IP[16], str1[300];
  45. GetPlayerIp(playerid, IP, sizeof(IP));
  46.  
  47. strcat(Query,"INSERT INTO `PlayerData`(`Username`,`Password`,`pMoney`,`pAdminLevel`,`pDJLevel`,`pKills`,`pDeaths`,`pIP`,`pScore`)");
  48. strcat(Query," VALUES ('%s', SHA1('%s'),0,0,0,0,0,'%s',0)");
  49. mysql_format(dbHandle,Query,sizeof(Query),Query,pName(playerid),passwordstring,IP);
  50. mysql_query(dbHandle,Query,false);
  51.  
  52. format(str1,sizeof(str1),"{FFFFFF}Kayit olduğunuz için teşekkürler.\n{FFFFFF}Başlangıç parası olarak{E24234} $10,000{FFFFFF} hesabınıza yatırıldı.");
  53. ShowPlayerDialog(playerid,DIALOG_REWARD,DIALOG_STYLE_MSGBOX,"{FF0000}Owsla Gaming - {FFFFFF}Giriş",str1,"Play","");
  54.  
  55. pInfo[playerid][pLogged] = 1;
  56. GivePlayerMoney(playerid, 10000);
  57. return 1;
  58. }
  59.  
  60. stock MySQL_Login(playerid)
  61. {
  62. if(IsPlayerConnected(playerid))
  63. {
  64. new Query[512], savestr[50], rows;
  65. mysql_format(dbHandle,Query, sizeof(Query), "SELECT * FROM `PlayerData` WHERE `Username` = '%s'", pName(playerid));
  66. mysql_query(dbHandle,Query);
  67. cache_get_row_count(rows);
  68. if(rows)
  69. {
  70. cache_get_value_name(0, "pMoney", savestr); pInfo[playerid][pMoney] = strval(savestr);
  71. cache_get_value_name(0, "pAdminLevel", savestr); pInfo[playerid][pAdminLevel] = strval(savestr);
  72. cache_get_value_name(0, "pDJLevel", savestr); pInfo[playerid][pDJLevel] = strval(savestr);
  73. cache_get_value_name(0, "pKills", savestr); pInfo[playerid][pKills] = strval(savestr);
  74. cache_get_value_name(0, "pDeaths", savestr); pInfo[playerid][pDeaths] = strval(savestr);
  75. cache_get_value_name(0, "pScore", savestr); pInfo[playerid][pScore] = strval(savestr);
  76.  
  77. ResetPlayerMoney(playerid), GivePlayerMoney(playerid, pInfo[playerid][pMoney]);
  78. SetPlayerScore(playerid, pInfo[playerid][pScore]);
  79. pInfo[playerid][pLogged] = 1;
  80. }
  81. pInfo[playerid][pLogged] = 1;
  82. }
  83. return 1;
  84. }
  85. stock SaveStats(playerid)
  86. {
  87. new Query[256];
  88. mysql_format(dbHandle,Query, sizeof(Query), "UPDATE `PlayerData` SET `pMoney` = '%d', `pAdminLevel` = '%d', `pDJLevel` = '%d' WHERE `Username` = '%s'",
  89. GetPlayerMoney(playerid),
  90. pInfo[playerid][pAdminLevel],
  91. pInfo[playerid][pDJLevel],
  92. pName(playerid));
  93. mysql_query(dbHandle,Query,false);
  94. mysql_format(dbHandle,Query, sizeof(Query), "UPDATE `PlayerData` SET `pKills` = '%d', `pDeaths` = '%d', `pScore` = '%d' WHERE `Username` = '%s'",
  95. pInfo[playerid][pKills],
  96. pInfo[playerid][pDeaths],
  97. GetPlayerScore(playerid),
  98. pName(playerid));
  99. mysql_query(dbHandle,Query,false);
  100. return 1;
  101. }
  102. stock ResetVars(playerid)
  103. {
  104. ResetPlayerMoney(playerid);
  105. SetPlayerScore(playerid, 0);
  106. pInfo[playerid][pMoney] = 0;
  107. pInfo[playerid][pAdminLevel] = 0;
  108. pInfo[playerid][pDJLevel] = 0;
  109. pInfo[playerid][pKills] = 0;
  110. pInfo[playerid][pDeaths] = 0;
  111. pInfo[playerid][pScore] = 0;
  112. pInfo[playerid][pLogged] = 0;
  113. return 1;
  114. }
  115.  
  116. main()
  117. {
  118. new Yil,Ay,Gun,Saat,Dakika,Saniye;
  119. getdate(Yil, Ay, Gun);
  120. gettime(Saat,Dakika,Saniye);
  121.  
  122. printf("» ===============[E][X][C][I][S][I][O][N]=============== «");
  123. printf("» «");
  124. printf("» «");
  125. printf("» By Excision «");
  126. printf("» «");
  127. printf("» ===============[E][X][C][I][S][I][O][N]=============== «");
  128. printf("» =========== Tarih: %d/%d/%d Saat: %d:%d:%d =========== «",Gun, Ay, Yil, Saat, Dakika, Saniye);
  129. }
  130. public OnGameModeInit()
  131. {
  132. mysql_log(ERROR | DEBUG);
  133. new MySQLOpt:options = mysql_init_options();
  134. mysql_set_option(options, AUTO_RECONNECT, false);
  135. mysql_set_option(options, POOL_SIZE, 0);
  136. dbHandle = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS, SQL_DB, options);
  137. if(!mysql_errno(dbHandle))
  138. {
  139. print("[SERVER] MySQL Basarili bi sekilde baglandi");
  140. }
  141. else
  142. {
  143. print("[SERVER]: MySQL Baglantisi basarili degil. Sunucu kapatiliyor.");
  144. SendRconCommand("exit");
  145. }
  146. for(new i = false; i <= 311; i++)
  147. {
  148. AddPlayerClass(i, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  149. }
  150. return 1;
  151. }
  152.  
  153. public OnGameModeExit()
  154. {
  155. mysql_close();
  156. return 1;
  157. }
  158. public OnPlayerRequestSpawn(playerid)
  159. {
  160. if(pInfo[playerid][pLogged] == 0) return 0;
  161. return 1;
  162. }
  163. public OnPlayerRequestClass(playerid, classid)
  164. {
  165. if(!GetPVarInt(playerid,"objetamam"))
  166. {
  167. InterpolateCameraPos(playerid, 1715.780151, 2823.544189, 36.216690, 1471.657958, 2773.792968, 28.092153, 5000);
  168. InterpolateCameraLookAt(playerid, 1720.558837, 2824.614990, 35.208034, 1466.663818, 2773.906494, 28.306930, 5000);
  169. SetPVarInt(playerid,"objetamam",1);
  170. }
  171. SetPlayerPos(playerid, 1451.924438, 2773.822265, 27.432954);
  172. SetPlayerFacingAngle(playerid, 270.432495);
  173. switch(random(5))
  174. {
  175. case 0: ClearAnimations(playerid), SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE1);
  176. case 1: ClearAnimations(playerid), SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE2);
  177. case 2: ClearAnimations(playerid), SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE3);
  178. case 3: ClearAnimations(playerid), SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE4);
  179. case 4: ClearAnimations(playerid), ApplyAnimation(playerid,"DANCING","DNCE_M_B",4.0,1,0,0,0,-1);
  180. }
  181. return 1;
  182. }
  183.  
  184. public OnPlayerConnect(playerid)
  185. {
  186. SetPVarInt(playerid, "objetamam", 0);
  187. SendDeathMessage(-1, playerid, 200);
  188. ResetVars(playerid);
  189. new Query[300], rows, string1[128];
  190. mysql_format(dbHandle,Query, sizeof(Query), "SELECT * FROM `PlayerData` WHERE `Username` = '%e'", pName(playerid));
  191. mysql_query(dbHandle,Query);
  192. cache_get_row_count(rows);
  193. if(rows)
  194. {
  195. format(string1,sizeof(string1),"{00CC00}Welcome back %s\nPlease login to contiune.",pName(playerid));
  196. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FF0000}Owsla Gaming - {FFFFFF}Giriş",string1,"Login","Quit");
  197. }
  198. else if(!rows)
  199. {
  200. format(string1,sizeof(string1),"Welcome %s\nEnter new password and click register to contiune.",pName(playerid));
  201. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FF0000}Owsla Gaming - {FFFFFF}Kayit",string1,"Register","Quit");
  202. }
  203. return 1;
  204. }
  205.  
  206. public OnPlayerDisconnect(playerid, reason)
  207. {
  208. SaveStats(playerid);
  209. return 1;
  210. }
  211.  
  212. public OnPlayerSpawn(playerid)
  213. {
  214. SetPlayerPos(playerid, 0,0,0);
  215. return 1;
  216. }
  217.  
  218. public OnPlayerDeath(playerid, killerid, reason)
  219. {
  220. if(killerid != INVALID_PLAYER_ID)
  221. {
  222. pInfo[playerid][pKills]++;
  223. GivePlayerMoney(killerid, 1000);
  224. SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
  225. }
  226. pInfo[playerid][pDeaths]++;
  227. GivePlayerMoney(playerid, -1000);
  228. switch(reason)
  229. {
  230. case 47: SendDeathMessage(playerid, -1, 47);
  231. case 53: SendDeathMessage(playerid, -1, 53);
  232. case 54: SendDeathMessage(playerid, -1, 54);
  233. default: SendDeathMessage(killerid, playerid, reason);
  234. }
  235. return 1;
  236. }
  237.  
  238. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  239. {
  240. switch(dialogid)
  241. {
  242. case DIALOG_REGISTER:
  243. {
  244. if(response)
  245. {
  246. if(!strlen(inputtext) || strlen(inputtext) > 128)
  247. {
  248. new string1[128];
  249. SendClientMessage(playerid, -1, "[ERROR]: You must insert a password between 1-128 characters!");
  250. format(string1, sizeof(string1), "Welcome %s\nPlease register to contiune.",pName(playerid));
  251. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "{FF0000}Owsla Gaming - {FFFFFF}Kayit", string1, "Register", "Quit");
  252. }
  253. else if(strlen(inputtext) > 0 && strlen(inputtext) < 128)
  254. {
  255. new escpass[100];
  256. mysql_escape_string(inputtext, escpass);
  257. MySQL_Register(playerid, escpass);
  258. }
  259. }
  260. if(!response)
  261. {
  262. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_MSGBOX, "{FF0000}Owsla Gaming - {FFFFFF}Kick", "You must register to play", "Close", "");
  263. Kick(playerid);
  264. }
  265. }
  266. case DIALOG_LOGIN:
  267. {
  268. if(!response)
  269. {
  270. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_MSGBOX, "{FF0000}Owsla Gaming - {FFFFFF}Kick", "You must login to play", "Close", "");
  271. Kick(playerid);
  272. }
  273. if(response)
  274. {
  275. new query[200], rows;
  276. mysql_format(dbHandle, query, sizeof(query), "SELECT `Username` FROM PlayerData WHERE Username = '%s' AND Password = SHA1('%e')", pName(playerid), inputtext);
  277. mysql_query(dbHandle, query);
  278. cache_get_row_count(rows);
  279.  
  280. if(rows) MySQL_Login(playerid);
  281.  
  282. if(!rows)
  283. {
  284. Invalid[playerid]++;
  285. if(Invalid[playerid]==4)
  286. {
  287. Kick(playerid);
  288. }
  289. else
  290. {
  291. new str1[256];
  292. format(str1,sizeof(str1),"{FFFF00}Wrong password!\n\n{00CC00}Welcome back %s\nPlease login to contiune.\n\n{FFFF00}Login chance: %d",pName(playerid),4-Invalid[playerid]);
  293. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FF0000}Owsla Gaming - {FFFFFF}Giriş",str1,"Login","Quit");
  294. }
  295. }
  296. }
  297. }
  298. }
  299. return 1;
  300. }
  301. CMD:changename(playerid, params[])
  302. {
  303. new newname[25], Query[256], rows;
  304. if(sscanf(params,"s[24]",newname)) return SendClientMessage(playerid, -1, "[USAGE]: /changename [newname(max:24 char)]");
  305. if(strlen(newname) > 24) return SendClientMessage(playerid, -1, "[USAGE]: /changename [newname(max:24 char)]");
  306. mysql_format(dbHandle,Query, sizeof(Query), "SELECT * FROM `PlayerData` WHERE `Username` = '%e'", newname);
  307. mysql_query(dbHandle,Query);
  308. cache_get_row_count(rows);
  309. if(rows)
  310. {
  311. SendClientMessage(playerid, -1, "[ERROR]: This name already used! Try another!");
  312. }
  313. else if(!rows)
  314. {
  315. mysql_format(dbHandle,Query, sizeof(Query), "UPDATE `PlayerData` SET `Username` = '%e' WHERE `Username` = '%e'", newname, pName(playerid));
  316. mysql_query(dbHandle,Query,false);
  317.  
  318. new str1[128];
  319. format(str1,sizeof str1, "[INFO]: %s has changed his name become %s", pName(playerid), newname);
  320. SendClientMessageToAll(0xFFFFFFFF, str1);
  321. SetPlayerName(playerid, newname);
  322. }
  323. return 1;
  324. }
  325.  
  326. CMD:changepass(playerid, params[])
  327. {
  328. new newpass[65], Query[256];
  329. if(sscanf(params,"s[64]",newpass)) return SendClientMessage(playerid, -1, "[USAGE]: /changepass [newpass(max:24 64)]");
  330. if(strlen(newpass) > 64) return SendClientMessage(playerid, -1, "[USAGE]: /changepass [newpass(max:64 char)]");
  331. mysql_format(dbHandle, Query, sizeof(Query), "UPDATE `PlayerData` SET `Password` = SHA1('%e') WHERE `Username` = '%s'", newpass, pName(playerid));
  332. mysql_query(dbHandle, Query, false);
  333. return 1;
  334. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement