Advertisement
Guest User

Untitled

a guest
Mar 28th, 2015
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.04 KB | None | 0 0
  1. //Selfmade by Aerox
  2.  
  3. /*
  4. Payday System []
  5. Makeleader Befehl []
  6. Invite Befehl []
  7. */
  8. native WP_Hash(buffer[], len, const str[]);//Passwort Verschlüsselung
  9. #include <a_samp>
  10. #include <sscanf2>
  11. #include <zcmd>
  12. #include <MYSQL_R39-2>
  13. #include <streamer>
  14.  
  15. //MySQL Daten
  16. #define SQL_HOST "localhost"
  17. #define SQL_DB "samp"
  18. #define SQL_USER "samp"
  19. #define SQL_PASS "hallo"
  20. //MySQL Daten
  21.  
  22. #define SCRIPT_VERSION "v0.1"
  23. #define FORUM_ADRESSE "www.nl-rp.de"
  24. #define TS_IP "195.4.16.1:10021"
  25.  
  26. //FARBEN
  27. #define WHITE 0xFFFFFFAA
  28. #define GREY 0xAFAFAFAA
  29. #define RED 0xFF0000AA
  30. #define YELLOW 0xFFFF00AA
  31. #define LIGHTBLUE 0x33CCFFAA
  32. //HTTML FARBEN
  33. #define CHAT_WHITE "{FFFFFF}"
  34. #define CHAT_GREY "{AFAFAF}"
  35. #define CHAT_RED "{FF0000}"
  36. #define CHAT_YELLOW "{FFFF00}"
  37. #define CHAT_LIGHTBLUE "{33CCFF}"
  38.  
  39. forward OnPlayerDataLoaded(playerid, race_check);
  40. forward OnPlayerRegister(playerid);
  41. forward SetConnect(playerid);
  42.  
  43. //MySQL connection handle
  44. new g_SQL = -1;
  45.  
  46. //News Definierungen
  47. new Text:lbt,
  48. Text:lbb
  49. ;
  50.  
  51. //Spielerdaten
  52. enum E_PLAYERS
  53. {
  54. ID,
  55. Name[MAX_PLAYER_NAME],
  56. Password[129],
  57. Money,
  58. bool:IsLoggedIn,
  59. bool:IsRegistered,
  60. LoginAttempts,
  61. LoginTimer,
  62. RPunkte,
  63. TPayDay,
  64. AllTime
  65. };
  66. new Player[MAX_PLAYERS][E_PLAYERS];
  67.  
  68. new g_MysqlRaceCheck[MAX_PLAYERS];
  69.  
  70. //Dialoge
  71. enum
  72. {
  73. DIALOG_INVALID,
  74. DIALOG_UNUSED,
  75. DIALOG_LOGIN,
  76. DIALOG_REGISTER,
  77. };
  78.  
  79. public OnGameModeInit()
  80. {
  81. g_SQL = mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
  82. SetGameModeText("GermanRP "#SCRIPT_VERSION"");//sversion
  83. return 1;
  84. }
  85.  
  86. public OnGameModeExit()
  87. {
  88. //save all player data before closing connection
  89. for(new p=0; p < MAX_PLAYERS; ++p)
  90. if(IsPlayerConnected(p))
  91. Spielerspeichern(p);
  92.  
  93. mysql_close();
  94. return 1;
  95. }
  96.  
  97. public OnPlayerConnect(playerid)
  98. {
  99. g_MysqlRaceCheck[playerid]++;
  100. //reset player data
  101. for(new E_PLAYERS:e; e < E_PLAYERS; ++e)
  102. Player[playerid][e] = 0;
  103.  
  104. new query[128];
  105. GetPlayerName(playerid, Player[playerid][Name], MAX_PLAYER_NAME);
  106.  
  107. mysql_format(g_SQL, query, sizeof(query), "SELECT * FROM `accounts` WHERE `username` = '%e'", Player[playerid][Name]);
  108. mysql_tquery(g_SQL, query, "OnPlayerDataLoaded", "dd", playerid, g_MysqlRaceCheck[playerid]);
  109. return 1;
  110. }
  111.  
  112. public OnPlayerRequestClass(playerid, classid)
  113. {
  114. SetConnect(playerid);
  115. InterpolateCameraPos(playerid, 2612.188964, -1724.707641, 35.576946, 885.751525, -1180.319091, 119.702941, 13000);
  116. InterpolateCameraLookAt(playerid, 2607.377197, -1724.824340, 34.222969, 890.731201, -1180.758789, 119.801803, 13000);
  117. PlayAudioStreamForPlayer(playerid,"http://vu2013.admin.hostingforfree.de/IntromusikServer.mp3");
  118. TextDrawShowForPlayer(playerid,lbb);//Schwarze BALKEN BEI LOGIN OBEN / UNTEN
  119. TextDrawShowForPlayer(playerid,lbt);//Schwarze BALKEN BEI LOGIN OBEN / UNTEN
  120. return 1;
  121. }
  122.  
  123. public SetConnect(playerid)
  124. {
  125. TogglePlayerSpectating(playerid,1);
  126. return 1;
  127. }
  128.  
  129. public OnPlayerDataLoaded(playerid, race_check)
  130. {
  131. if(race_check != g_MysqlRaceCheck[playerid])
  132. return Kick(playerid);
  133.  
  134.  
  135. new string[128];
  136. if(cache_num_rows() > 0)
  137. {
  138. Spielerladen(playerid);
  139.  
  140. format(string, sizeof(string), CHAT_WHITE "Dieser Account (" CHAT_YELLOW "%s" CHAT_WHITE ") ist bereits registriert. Gebe einfach dein Passwort ein um dich einzuloggen", Player[playerid][Name]);
  141. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", string, "Login", "Abbrechen");
  142. Player[playerid][IsRegistered] = true;
  143. }
  144. else
  145. {
  146. format(string, sizeof(string), CHAT_WHITE "Willkommen " CHAT_YELLOW "%s" CHAT_WHITE ", du kannst dich nun mit einem Passwort registrieren:", Player[playerid][Name]);
  147. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Anmeldung", string, "Registrieren", "Abbrechen");
  148. Player[playerid][IsRegistered] = false;
  149. }
  150. return 1;
  151. }
  152.  
  153. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  154. {
  155. if(dialogid == DIALOG_INVALID || dialogid == DIALOG_UNUSED)
  156. return 1;
  157.  
  158. switch(dialogid)
  159. {
  160. case DIALOG_LOGIN:
  161. {
  162. if(!response)
  163. return Kick(playerid);
  164.  
  165. if(strlen(inputtext) <= 5)
  166. return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login",
  167. CHAT_RED "Dein Passwort muss mindestens 5 Zeichen besitzen!\n" CHAT_WHITE "Gebe dein Passwort in das Feld ein:",
  168. "Login", "Abbrechen");
  169.  
  170. new hashed_pass[129];
  171. WP_Hash(hashed_pass, sizeof(hashed_pass), inputtext);
  172.  
  173. if(strcmp(hashed_pass, Player[playerid][Password]) == 0)
  174. {
  175. ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_MSGBOX, "Login", "Du hast dich erfolgreich eingeloggt.", "Ok", "");
  176. Player[playerid][IsLoggedIn] = true;
  177. SetSpawnInfo(playerid, 0, 0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
  178. SpawnPlayer(playerid);
  179. }
  180. else
  181. {
  182. Player[playerid][LoginAttempts]++;
  183. if(Player[playerid][LoginAttempts] >= 3)
  184. {
  185. ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_MSGBOX, "Login", CHAT_RED "Du hast dein Passwort zu oft Falsch eingegeben(3 x).", "Ok", "");
  186. DelayedKick(playerid);
  187. }
  188. else
  189. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", CHAT_RED "Wrong password!\n" CHAT_WHITE "Gebe dein Passwort in das Feld ein:", "Login", "Abbrechen");
  190. }
  191. }
  192. case DIALOG_REGISTER:
  193. {
  194. if(!response)
  195. return Kick(playerid);
  196.  
  197. if(strlen(inputtext) <= 5)
  198. return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Anmeldung",
  199. CHAT_RED "Dein Passwort muss mindestens 5 Zeichen besitzen!\n" CHAT_WHITE "Gebe dein Passwort in das Feld ein:",
  200. "Registrieren", "Abbrechen");
  201.  
  202. new query[256];
  203. WP_Hash(Player[playerid][Password], 129, inputtext);
  204. mysql_format(g_SQL, query, sizeof(query), "INSERT INTO `accounts` (`username`, `password`) VALUES ('%e', '%s')", Player[playerid][Name], Player[playerid][Password]);
  205. mysql_tquery(g_SQL, query, "OnPlayerRegister", "d", playerid);
  206. }
  207. default:
  208. return 0;
  209. }
  210. return 1;
  211. }
  212.  
  213. public OnPlayerRegister(playerid)
  214. {
  215. Player[playerid][ID] = cache_insert_id();
  216. ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_MSGBOX, "Anmeldung", "Account erfolgreich registriert, du wurdest automatisch eingeloggt.", "Ok", "");
  217. Player[playerid][IsLoggedIn] = true;
  218. Player[playerid][IsRegistered] = true;
  219. SetSpawnInfo(playerid, 0, 0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
  220. SpawnPlayer(playerid);
  221. return 1;
  222. }
  223.  
  224. public OnPlayerSpawn(playerid)
  225. {
  226. TogglePlayerSpectating(playerid,0);//setconnect function
  227. ResetPlayerMoney(playerid);
  228. GivePlayerMoney(playerid, Player[playerid][Money]);
  229. return 1;
  230. }
  231.  
  232. public OnPlayerDisconnect(playerid,reason)
  233. {
  234. g_MysqlRaceCheck[playerid]++;
  235. Spielerspeichern(playerid);
  236. return 1;
  237. }
  238.  
  239. Spielerladen(playerid)
  240. {
  241. Player[playerid][ID] = cache_get_field_content_int(0, "id");
  242. cache_get_field_content(0, "password", Player[playerid][Password], g_SQL, 129);
  243. Player[playerid][Money] = cache_get_field_content_int(0, "money");
  244. Player[playerid][RPunkte] = cache_get_field_content_int(0,"RPunkte");
  245. Player[playerid][TPayDay] = cache_get_field_content_int(0,"TPayDay");
  246. Player[playerid][AllTime] = cache_get_field_content_int(0,"AllTime");
  247. SetTimerEx("OnPlayerPayDay",1000*60,1,"i",playerid);
  248. return 1;
  249. }
  250.  
  251. Spielerspeichern(playerid)
  252. {
  253. if(Player[playerid][IsLoggedIn] == false)
  254. return 0;
  255.  
  256. new query[128];
  257. mysql_format(g_SQL, query, sizeof(query), "UPDATE `accounts` SET `money` = '%d',`RPunkte`='%i',`TPayDay`='%i',`AllTime`='%i' WHERE `id` = '%d'", Player[playerid][Money],Player[playerid][RPunkte],Player[playerid][TPayDay],Player[playerid][AllTime], Player[playerid][ID]);
  258. mysql_tquery(g_SQL, query);
  259. return 1;
  260. }
  261.  
  262. DelayedKick(playerid, time=500)
  263. {
  264. SetTimerEx("_KickPlayerDelayed", time, false, "d", playerid);
  265. return 1;
  266. }
  267.  
  268. forward OnPlayerPayDay(playerid);
  269. public OnPlayerPayDay(playerid)
  270. {
  271. Player[playerid][TPayDay] ++;
  272. Player[playerid][AllTime] ++;
  273. if(Player[playerid][TPayDay] == 60)
  274. {
  275. //PayDay
  276. Player[playerid][RPunkte] ++;
  277. Player[playerid][TPayDay] = 0;
  278. switch(Player[playerid][RPunkte])
  279. {
  280. case 2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100:
  281. {
  282. SetPlayerScore(playerid,Player[playerid][RPunkte] / 2);
  283. }
  284. }
  285. }
  286. return 1;
  287. }
  288.  
  289. forward _KickPlayerDelayed(playerid);
  290. public _KickPlayerDelayed(playerid)
  291. {
  292. Kick(playerid);
  293. return 1;
  294. }
  295.  
  296.  
  297.  
  298. main() {}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement