Advertisement
Guest User

R/L

a guest
May 3rd, 2012
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.09 KB | None | 0 0
  1. /* _
  2. |_|
  3. _ __ ___ __ _ _ __ _ _ _ ____
  4. | '_ ` _ \ / _` | '__\| | | | |\
  5. | | | | | | (_| | | | | |_| | ----
  6. |_| |_| |_|\__,_|_| |_|_____| ___/
  7. _ _
  8. | | |_|
  9. __| | __ _ __ _ __ _ _ __ ___ __
  10. / _` |/ ||\| '_ \| '__\| | '_ ` _ \ / _ \
  11. |(_| | |___| |_) | | | | | | | | | (_) |
  12. \__,_|\___/| .__/|_| |_|_| |_| |_|\___/
  13. | | dual Filterscript
  14. |_|
  15.  
  16. Das Script darf nur auf www.sa-mp.de und seinen Unterseiten zum
  17. Download angeboten werden (außer mit Erlaubnis von Mario_DePrimo).
  18.  
  19. Es darf weder zum Verkauf angeboten, noch als das eigene Werk
  20. ausgegeben werden.
  21.  
  22. --------------------------------------------------------------
  23.  
  24. Wenn ihr dini Nutzen wollt so erstellt im Scriptfilesordner einen ordner mit den Namen
  25. "Player" !
  26. Bei MySQL müsst ihr nur die zugangsdaten angeben und der rest ersetllt sich von allein
  27.  
  28. */
  29.  
  30. #define saveart 1 //1 MySQL / 2 Dini ((Auswahl ob es Dini sein soll oder MySQL))
  31.  
  32. #if saveart == 1
  33. #define SQL_Host "127.0.0.1" //Host
  34. #define SQL_User "root" //Benutzer
  35. #define SQL_Pass "" //Benutzer-Passwort
  36. #define SQL_DatB "test" //Datenbank
  37. #endif
  38.  
  39. #if saveart == 2
  40. #include <a_samp>
  41. #include <dini>
  42. #include <md5>
  43. #endif
  44.  
  45. #if saveart == 1
  46. #include <a_samp>
  47. #include <a_mysql>
  48. #include <md5>
  49. #endif
  50.  
  51. /*====={Serversachen}=====*/
  52. #define header "Register/Login by Marius_DePrimo" //Dialog Header (überschrift)
  53. /*========================*/
  54.  
  55. /*====={Dialoge}=====*/
  56. #if saveart == 1
  57. #define DIALOG_REGISTER 602
  58. #define DIALOG_LOGIN 603
  59. #endif
  60. #if saveart == 2
  61. #define diaRegister 600
  62. #define diaLogin 601
  63. #endif
  64. /*===================*/
  65.  
  66. /*====={Spieler Enum}=====*/
  67. enum Spieler
  68. {
  69. pName,
  70. sLoggedIn
  71. }
  72. new Player[MAX_PLAYERS][Spieler];
  73. /*========================*/
  74.  
  75. public OnFilterScriptInit()
  76. {
  77. /*=====[Tabellenzeug]=====*/
  78. #if saveart == 1
  79. mysql_connect(SQL_Host,SQL_User,SQL_DatB,SQL_Pass);
  80. if(mysql_ping() == 1)
  81. {
  82. print("<-| [MySQL] Datenbank wurde erfolgreich gefunden! |->");
  83. new sql[1024];
  84. format(sql,sizeof(sql),"CREATE TABLE IF NOT EXISTS `accounts` (`id` int(11) AUTO_INCREMENT, `Name` varchar(255), `Passwort` varchar(255), `Adminlevel` int(11), `Geld` int(11),");
  85. format(sql,sizeof(sql),"%s`Skin` int(11), PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;",sql);
  86. mysql_query(sql);
  87. print("MySQL Tabellen überprüft/erstellt");
  88. }
  89. else
  90. {
  91. print("<-| [MySQL] Datenbank wurde nicht gefunden! |->");
  92. print("<-| [MySQL] Stellen sie ihr Script auf dini um! |->");
  93. print("<-| [MySQL] Server wird Beendet |->");
  94. SendRconCommand("exit");
  95. }
  96. #endif
  97. /*========================*/
  98.  
  99. /*====={SERVER Daten}=====*/
  100. print("-Ø Dual Register/Login system by Marius_DePrimo Ø-");
  101. /*========================*/
  102. return 1;
  103. }
  104.  
  105. public OnFilterScriptExit()
  106. {
  107. mysql_close(1);
  108. return 1;
  109. }
  110.  
  111. public OnPlayerConnect(playerid)
  112. {
  113. /*====={Account Sachen}=====*/
  114. #if saveart == 1
  115. if(Player[playerid][sLoggedIn] == 0)
  116. {
  117. if(mysql_CheckAccount(playerid) == 0)
  118. {
  119. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,header,"Bitte Gib ein Passwort an:","Register","Exit");
  120. }
  121. else if(mysql_CheckAccount(playerid) == 1)
  122. {
  123. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,header,"Bitte gib dein Passwort ein:","Login","Abbrechen");
  124. }
  125. }
  126. #endif
  127. #if saveart == 2
  128. new player[64];
  129. new name[MAX_PLAYER_NAME];
  130. GetPlayerName(playerid,name,sizeof(name));
  131. format(player,sizeof(player),"/Player/%s.ini",name);
  132. if(dini_Exists(player))
  133. {
  134. new string[128];
  135. format(string,sizeof(string),"{FFFFFF}Der Account{FF6E00} %s {FFFFFF}wurde wieder gefunden.\n Gebe nun dein Passwort ein",PlayerName(playerid));
  136. ShowPlayerDialog(playerid,diaLogin,DIALOG_STYLE_INPUT,header,string,"Einloggen","");
  137. }
  138. else
  139. {
  140. new string[128];
  141. format(string,sizeof(string),"{FFFFFF}Der Account{FF6E00} %s {FFFFFF}wurde nicht gefunden.\nBitte geben sie nun ihr Passwort ein",PlayerName(playerid));
  142. ShowPlayerDialog(playerid,diaRegister,DIALOG_STYLE_INPUT,header,string,"Registrieren","");
  143. }
  144. #endif
  145. /*==========================*/
  146. return 1;
  147. }
  148.  
  149. public OnPlayerDisconnect(playerid, reason)
  150. {
  151. /*====={Player Sachen}=====*/
  152. if(Player[playerid][sLoggedIn] == 1)
  153. {
  154. SpeicherSpieler(playerid);
  155. }
  156. Player[playerid][sLoggedIn] = 0;
  157. /*=========================*/
  158. return 1;
  159. }
  160.  
  161. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  162. {
  163. /*=====[Account Sachen]=====*/
  164. #if saveart == 1
  165. switch(dialogid)
  166. {
  167. case DIALOG_REGISTER:
  168. {
  169. if(response)
  170. {
  171. if(strlen(inputtext) == 0)
  172. {
  173. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Das angegebene Passwort war zu Kurz...\nBitte Registrier dich jetzt mit einem Passwort:","Register","Abbrechen");
  174. return 1;
  175. }
  176. else
  177. {
  178. Erstell(playerid, inputtext);
  179. Player[playerid][sLoggedIn] = 1;
  180. SpawnPlayer(playerid);
  181. return 1;
  182. }
  183. }
  184. else
  185. {
  186. Kick(playerid);
  187. }
  188. }
  189. case DIALOG_LOGIN:
  190. {
  191. if(response)
  192. {
  193. if(strlen(inputtext) == 0)
  194. {
  195. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,header,"Das Angegebene Passwort war Falsch.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
  196. return 1;
  197. }
  198. else
  199. {
  200. new SpielerName[MAX_PLAYER_NAME];
  201. GetPlayerName(playerid, SpielerName, MAX_PLAYER_NAME);
  202. if(!strcmp(inputtext, mysql_ReturnPasswort(SpielerName), true))
  203. {
  204. Player[playerid][sLoggedIn] = 1;
  205. LadePlayer(playerid);
  206. SpawnPlayer(playerid);
  207. return 1;
  208. }
  209. else
  210. {
  211. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,header,"Das war das Falsche Passwort.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
  212. return 1;
  213. }
  214. }
  215. }
  216. else
  217. {
  218. Kick(playerid);
  219. }
  220. }
  221. }
  222. #endif
  223. #if saveart == 2
  224. if(dialogid == diaLogin)
  225. {
  226. if(response == 0)
  227. {
  228. ShowPlayerDialog(playerid,diaLogin,DIALOG_STYLE_INPUT,header,"Passwort eingeben:","Einloggen","");
  229. }
  230. if(response == 1)
  231. {
  232. if(!strlen(inputtext))
  233. {
  234. ShowPlayerDialog(playerid,diaLogin,DIALOG_STYLE_INPUT,header,"Passwort eingeben:","Einloggen","");
  235. }
  236. else
  237. {
  238. Lade(playerid,MD5_Hash(inputtext));
  239. }
  240. }
  241. }
  242. if(dialogid == diaRegister)
  243. {
  244. if(response == 0)
  245. {
  246. ShowPlayerDialog(playerid,diaRegister,DIALOG_STYLE_INPUT,header,"Bitte gib dein gewünschtes Passwort ein:","Registrieren","");
  247. }
  248. if(response == 1)
  249. {
  250. if(!strlen(inputtext))
  251. {
  252. ShowPlayerDialog(playerid,diaRegister,DIALOG_STYLE_INPUT,header,"Bitte gib dein gewünschtes Passwort ein:","Registrieren","");
  253. }
  254. else
  255. {
  256. Erstell(playerid,MD5_Hash(inputtext));
  257. }
  258. }
  259. }
  260. #endif
  261. /*==========================*/
  262. return 1;
  263. }
  264.  
  265. stock Erstell(playerid,key[])
  266. {
  267. #if saveart == 1
  268. new query[256],Name[MAX_PLAYER_NAME];
  269. GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  270. mysql_real_escape_string(Name,Name);
  271. mysql_real_escape_string(key,key);
  272. format(query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Passwort`) VALUES ('%s', '%s')", Name, key);
  273. mysql_query(query);
  274. return true;
  275. #endif
  276. #if saveart == 2
  277. new player[64];
  278. new name[MAX_PLAYER_NAME];
  279. GetPlayerName(playerid,name,sizeof(name));
  280. format(player,sizeof(player),"/Player/%s.ini",name);
  281. dini_Create(player);
  282. dini_Set(player,"Passwort",key);
  283. GivePlayerMoney(playerid,5000);
  284. SpawnPlayer(playerid);
  285. SpeicherSpieler(playerid);
  286. return 1;
  287. #endif
  288. }
  289.  
  290. stock Lade(playerid,key[])
  291. {
  292. #if saveart == 1
  293.  
  294. #endif
  295. #if saveart == 2
  296. new player[64];
  297. new name[MAX_PLAYER_NAME];
  298. GetPlayerName(playerid,name,sizeof(name));
  299. format(player,sizeof(player),"/Player/%s.ini",name);
  300. if(!strcmp(key,dini_Get(player,"Passwort"),false))
  301. {
  302. Player[playerid][sLoggedIn] = 1;
  303. LadePlayer(playerid);
  304. return 1;
  305. }
  306. else
  307. {
  308. ShowPlayerDialog(playerid,diaLogin,DIALOG_STYLE_INPUT,header,"Passwort eingeben:","Einloggen","Abbrechen");
  309. return 1;
  310. }
  311. #endif
  312. }
  313.  
  314. stock LadePlayer(playerid)
  315. {
  316. #if saveart == 1
  317. if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
  318. {
  319. GetPlayerName(playerid, Player[playerid][pName], MAX_PLAYER_NAME);
  320. SetPlayerSkin(playerid,mysql_GetInt("accounts", "Skin", "Name", Player[playerid][pName]));
  321. GivePlayerMoney(playerid,mysql_GetInt("accounts", "Geld", "Name", Player[playerid][pName]));
  322. }
  323. #endif
  324. #if saveart == 2
  325. new player[64];
  326. new name[MAX_PLAYER_NAME];
  327. GetPlayerName(playerid,name,sizeof(name));
  328. format(player,sizeof(player),"/Player/%s.ini",name);
  329. SetPlayerSkin(playerid,dini_Int(player,"Skin"));
  330. GivePlayerMoney(playerid,dini_Int(player,"Geld"));
  331. return 1;
  332. #endif
  333. }
  334.  
  335. stock SpeicherSpieler(playerid)
  336. {
  337. #if saveart == 1
  338. if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
  339. {
  340. if(Player[playerid][sLoggedIn] == 1)
  341. {
  342. mysql_SetInt("accounts", "Skin", GetPlayerSkin(playerid), "Name", Player[playerid][pName]);
  343. mysql_SetInt("accounts", "Geld", GetPlayerMoney(playerid), "Name", Player[playerid][pName]);
  344. }
  345. }
  346. #endif
  347. #if saveart == 2
  348. new player[64];
  349. new name[MAX_PLAYER_NAME];
  350. GetPlayerName(playerid,name,sizeof(name));
  351. format(player,sizeof(player),"/Player/%s.ini",name);
  352. dini_IntSet(player,"Skin",GetPlayerSkin(playerid));
  353. dini_IntSet(player,"Geld",GetPlayerMoney(playerid));
  354. return 1;
  355. #endif
  356. }
  357. /*==========================*/
  358.  
  359. /*=====[MySQL]=====*/
  360. stock mysql_CheckAccount(playerid)
  361. {
  362. new Query[128],Name[MAX_PLAYER_NAME],count;
  363. GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  364. mysql_real_escape_string(Name, Name);
  365. format(Query, sizeof(Query), "SELECT * FROM `accounts` WHERE `Name` = '%s'", Name);
  366. mysql_query(Query);
  367. mysql_store_result();
  368. count = mysql_num_rows();
  369. mysql_free_result();
  370. return count;
  371. }
  372.  
  373. stock mysql_ReturnPasswort(Name[])
  374. {
  375. new query[130], Get[130];
  376. mysql_real_escape_string(Name, Name);
  377. format(query, 128, "SELECT `passwort` FROM `accounts` WHERE `Name` = '%s'", Name);
  378. mysql_query(query);
  379. mysql_store_result();
  380. mysql_fetch_row(Get);
  381. mysql_free_result();
  382. return Get;
  383. }
  384.  
  385. stock mysql_GetInt(Table[], Field[], Where[], Is[])
  386. {
  387. new query[128];
  388. mysql_real_escape_string(Table, Table);
  389. mysql_real_escape_string(Field, Field);
  390. mysql_real_escape_string(Where, Where);
  391. mysql_real_escape_string(Is, Is);
  392. format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  393. mysql_query(query);
  394. mysql_store_result();
  395. new sqlint = mysql_fetch_int();
  396. mysql_free_result();
  397. return sqlint;
  398. }
  399.  
  400. stock mysql_GetString(Table[], Field[], Where[], Is[])
  401. {
  402. new query[128], Get[128];
  403. mysql_real_escape_string(Table, Table);
  404. mysql_real_escape_string(Field, Field);
  405. mysql_real_escape_string(Where, Where);
  406. mysql_real_escape_string(Is, Is);
  407. format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  408. mysql_query(query);
  409. mysql_store_result();
  410. mysql_fetch_row(Get);
  411. mysql_free_result();
  412. return Get;
  413. }
  414.  
  415. stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
  416. {
  417. new query[128], Float:sqlfloat;
  418. mysql_real_escape_string(Table, Table);
  419. mysql_real_escape_string(Field, Field);
  420. mysql_real_escape_string(Where, Where);
  421. mysql_real_escape_string(Is, Is);
  422. format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  423. mysql_query(query);
  424. mysql_store_result();
  425. mysql_fetch_float(sqlfloat);
  426. mysql_free_result();
  427. return sqlfloat;
  428. }
  429.  
  430. stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
  431. {
  432. new query[128];
  433. mysql_real_escape_string(Table, Table);
  434. mysql_real_escape_string(Field, Field);
  435. mysql_real_escape_string(Where, Where);
  436. mysql_real_escape_string(Where2, Where2);
  437. format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  438. mysql_query(query);
  439. return true;
  440. }
  441.  
  442. stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
  443. {
  444. new query[128];
  445. mysql_real_escape_string(Table, Table);
  446. mysql_real_escape_string(Field, Field);
  447. mysql_real_escape_string(To, To);
  448. mysql_real_escape_string(Where, Where);
  449. mysql_real_escape_string(Where2, Where2);
  450. format(query, 128, "UPDATE `%s` SET `%s` = '%s' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  451. mysql_query(query);
  452. return true;
  453. }
  454.  
  455. stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
  456. {
  457. new query[128];
  458. mysql_real_escape_string(Table, Table);
  459. mysql_real_escape_string(Field, Field);
  460. mysql_real_escape_string(Where, Where);
  461. mysql_real_escape_string(Where2, Where2);
  462. format(query, 128, "UPDATE `%s` SET `%s` = '%f' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  463. mysql_query(query);
  464. return true;
  465. }
  466. /*=================*/
  467.  
  468. /*====={Stocks}=====*/
  469. //PlayerName
  470. stock PlayerName(playerid)
  471. {
  472. new name[MAX_PLAYER_NAME];
  473. GetPlayerName(playerid,name,sizeof(name));
  474. return name;
  475. }
  476.  
  477. /*==================*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement