Advertisement
Guest User

Login & Register

a guest
Jun 8th, 2014
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.10 KB | None | 0 0
  1. #include <a_samp>
  2. #include <dini>
  3. #include <Dudb>
  4. #include <ocmd>
  5. #include <sscanf>
  6.  
  7. #define rot 0xAA3333AA
  8.  
  9. #pragma unused ret_memcpy
  10. #pragma unused pInfo
  11. enum Info
  12. {
  13. passwort[128],
  14. skin
  15. }
  16.  
  17. new pInfo[MAX_PLAYERS][Info];
  18. new bool:loggedin[MAX_PLAYERS];
  19. new spieler[MAX_PLAYER_NAME];
  20. main()
  21. {
  22. print("\n----------------------------------");
  23. print(" Blank Gamemode by your name here");
  24. print("----------------------------------\n");
  25. }
  26.  
  27. public OnGameModeInit()
  28. {
  29. // Don't use these lines if it's a filterscript
  30. SetGameModeText("Blank Script");
  31. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  32. return 1;
  33. }
  34.  
  35. public OnGameModeExit()
  36. {
  37. return 1;
  38. }
  39.  
  40. public OnPlayerRequestClass(playerid, classid)
  41. {
  42. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  43. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  44. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  45. return 1;
  46. }
  47.  
  48. public OnPlayerConnect(playerid)
  49. {
  50. new name[128], save[128]; // Dies machen wir um den Namen vom Spieler aufzuschreiben || Hiermit können wir sagen, dass etwas gespeichert werden soll
  51. GetPlayerName(playerid,name,sizeof(name)); // Dies sagt, er soll( vom Spieler, den namen, in der größe name aufschreiben)
  52. format(save,sizeof(save),"/Spieler/%s.ini",name); // Hier wird gechekt, wo der Spieler gespeichert ist, bzw. wo ein Spieler angelegt werden soll.
  53. if(dini_Exists(save)) // Hier wird geprüft, ob die Datei des Spielers schon existiert.
  54. { // Wenn ja, sende einen Text und lade den Skin und das Geld
  55. SendClientMessage(playerid, 0x33CCFFAA, "Willkommen bei SA:MP 0.3 Server");
  56. SendClientMessage(playerid, 0xFFFFFFAA, "Dein Account wurde wiedererkannt.");
  57. SendClientMessage(playerid, 0xFFFFFFAA, "Du kannst dich jetzt einloggen.");
  58. SendClientMessage(playerid, 0xFFFFFFAA, "Benutze dazu /login [passwort].");
  59. GivePlayerMoney(playerid,dini_Int(save,"Geld")); // Hier wird das geld dem Spieler gegeben, was er vorher hatte
  60. SetPlayerSkin(playerid,dini_Int(save,"Skin")); // Hier wird der Skin des Spielers geladen
  61. }
  62. else
  63. {
  64. if(!dini_Exists(save)) // Wenn kein Spieler mit dem Namen existiert
  65. { //Sende einen Text
  66. SendClientMessage(playerid, 0x33CCFFAA, "Willkommen bei SA:MP 0.3 Server");
  67. SendClientMessage(playerid, 0xFFFFFFAA, "Du hast noch keinen Account.");
  68. SendClientMessage(playerid, 0xFFFFFFAA, "Du kannst dich jetzt registrieren.");
  69. SendClientMessage(playerid, 0xFFFFFFAA, "Benutze dazu /register [passwort].");
  70. }
  71. }
  72. return 1;
  73. }
  74.  
  75. public OnPlayerDisconnect(playerid, reason)
  76. {
  77. new Float:x,Float:y,Float:z;
  78. GetPlayerPos(playerid,x,y,z);
  79. new name[128], save[128];// Gleiche
  80. GetPlayerName(playerid,name,sizeof(name)); // wie
  81. format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
  82. if(dini_Exists(save)) // steht
  83. {
  84. dini_IntSet(save,"Geld",GetPlayerMoney(playerid)); // speichert das aktuelle Geld, was der Spieler zum schluss hatte
  85. dini_IntSet(save,"Skin",GetPlayerSkin(playerid));
  86. dini_FloatSet(save,"PosX", x);
  87. dini_FloatSet(save,"PosY", y);
  88. dini_FloatSet(save,"PosZ", z);}
  89. return 1;
  90. }
  91.  
  92.  
  93. public OnPlayerSpawn(playerid)
  94. {
  95. new name[128], save[128];// Gleiche
  96. GetPlayerName(playerid,name,sizeof(name)); // wie
  97. format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
  98. if(loggedin[playerid] == false) //Wenn er nicht eingeloggt ist
  99. {
  100. SendClientMessage(playerid, 0xAA3333AA, "Du musst dich Einloggen bevor du spawnst!");
  101. Kick(playerid); // Kicke den Spieler
  102. }
  103. SetPlayerSkin(playerid,dini_Int(save,"Skin")); //lade und setze den gespeicherten Skin
  104. SetPlayerPos(playerid, dini_Float(save,"PosX"), dini_Float(save,"PosY"), dini_Float(save,"PosZ"));
  105.  
  106. return 1;
  107. }
  108.  
  109. public OnPlayerDeath(playerid, killerid, reason)
  110. {
  111. return 1;
  112. }
  113.  
  114. public OnVehicleSpawn(vehicleid)
  115. {
  116. return 1;
  117. }
  118.  
  119. public OnVehicleDeath(vehicleid, killerid)
  120. {
  121. return 1;
  122. }
  123.  
  124. public OnPlayerText(playerid, text[])
  125. {
  126. return 1;
  127. }
  128.  
  129. public OnPlayerCommandText(playerid, cmdtext[])
  130. {
  131. if(strcmp(strget(cmdtext,0), "/register", true) == 0)
  132. {
  133. new save[40]; // Erstelle einen neuen String "save", wobei 40 Wörter verwendet werden können.
  134. GetPlayerName(playerid,spieler,sizeof(spieler));
  135. format(save, sizeof(save),"Spieler/%s.ini",spieler); //Speicherort
  136. if(!dini_Exists(save)) // wenn der Spieler sich regestriert und es noch keine .ini Datei mit seinem Namen gibt
  137. {
  138. dini_Create(save); // Erstelle eine Neue .ini Datei
  139. dini_IntSet(save,"passwort",udb_hash(strget(cmdtext,1))); // Setze in die .ini Datei(save,"dass passwort", welches er eingegeben hat) || das udb_hash verschlüsselt das Passwort in der .ini. Dazu benötigen wir die oben angegebene Include DUBD.
  140. SendClientMessage(playerid, 0x33AA33AA, "***Dein Account wurde erfolgreich registriert***");
  141. SendClientMessage(playerid, 0x33AA33AA, "***Nutze /login [Passwort] um dich einzuloggen***");
  142. }
  143. else
  144. {
  145. if(dini_Exists(save)) // Wenn beim regestrieren die Datei schon besteht
  146. {
  147. SendClientMessage(playerid, 0xAA3333AA, "Der Account ist bereits registriert");
  148. }
  149. }
  150. return 1;
  151. }
  152. if(strcmp(strget(cmdtext,0), "/login", true) == 0)
  153. {
  154. new save[40], s2[256]; //gleiche wie oben
  155. GetPlayerName(playerid,spieler,sizeof(spieler));
  156. format(save,sizeof(save),"Spieler/%s.ini",spieler);
  157. if(dini_Exists(save)) // wenn Datei existiert
  158. {
  159. s2=dini_Get(save,"passwort"); // lade das Passwort
  160. if(strval(s2)==udb_hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort von der registration übereinstimmt
  161. {
  162. loggedin[playerid] = true; //sage dem Server, dass der Spieler eingeloggt ist.
  163. SendClientMessage(playerid, 0x33CCFFAA, "***Du hast dich erfolgreich eingeloggt***");
  164. SpawnPlayer(playerid);
  165. SetPlayerPos(playerid, dini_Float(save,"PosX"), dini_Float(save,"PosY"), dini_Float(save,"PosZ"));
  166.  
  167. }
  168. else // wenn das passwort nicht stimmt
  169. {
  170. SendClientMessage(playerid, 0xAA3333AA, "Passwort Falsch!");
  171. }
  172. }
  173. }
  174. return 1;
  175. }
  176.  
  177. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  178. {
  179. return 1;
  180. }
  181.  
  182. public OnPlayerExitVehicle(playerid, vehicleid)
  183. {
  184. return 1;
  185. }
  186.  
  187. public OnPlayerStateChange(playerid, newstate, oldstate)
  188. {
  189. return 1;
  190. }
  191.  
  192. public OnPlayerEnterCheckpoint(playerid)
  193. {
  194. return 1;
  195. }
  196.  
  197. public OnPlayerLeaveCheckpoint(playerid)
  198. {
  199. return 1;
  200. }
  201.  
  202. public OnPlayerEnterRaceCheckpoint(playerid)
  203. {
  204. return 1;
  205. }
  206.  
  207. public OnPlayerLeaveRaceCheckpoint(playerid)
  208. {
  209. return 1;
  210. }
  211.  
  212. public OnRconCommand(cmd[])
  213. {
  214. return 1;
  215. }
  216.  
  217. public OnPlayerRequestSpawn(playerid)
  218. {
  219. return 1;
  220. }
  221.  
  222. public OnObjectMoved(objectid)
  223. {
  224. return 1;
  225. }
  226.  
  227. public OnPlayerObjectMoved(playerid, objectid)
  228. {
  229. return 1;
  230. }
  231.  
  232. public OnPlayerPickUpPickup(playerid, pickupid)
  233. {
  234. return 1;
  235. }
  236.  
  237. public OnVehicleMod(playerid, vehicleid, componentid)
  238. {
  239. return 1;
  240. }
  241.  
  242. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  243. {
  244. return 1;
  245. }
  246.  
  247. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  248. {
  249. return 1;
  250. }
  251.  
  252. public OnPlayerSelectedMenuRow(playerid, row)
  253. {
  254. return 1;
  255. }
  256.  
  257. public OnPlayerExitedMenu(playerid)
  258. {
  259. return 1;
  260. }
  261.  
  262. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  263. {
  264. return 1;
  265. }
  266.  
  267. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  268. {
  269. return 1;
  270. }
  271.  
  272. public OnRconLoginAttempt(ip[], password[], success)
  273. {
  274. return 1;
  275. }
  276.  
  277. public OnPlayerUpdate(playerid)
  278. {
  279. return 1;
  280. }
  281.  
  282. public OnPlayerStreamIn(playerid, forplayerid)
  283. {
  284. return 1;
  285. }
  286.  
  287. public OnPlayerStreamOut(playerid, forplayerid)
  288. {
  289. return 1;
  290. }
  291.  
  292. public OnVehicleStreamIn(vehicleid, forplayerid)
  293. {
  294. return 1;
  295. }
  296.  
  297. public OnVehicleStreamOut(vehicleid, forplayerid)
  298. {
  299. return 1;
  300. }
  301.  
  302. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  303. {
  304. return 1;
  305. }
  306.  
  307. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  308. {
  309. return 1;
  310. }
  311. stock strget(strx[], pos, search = ' ') {
  312. new arg, ret[128], idxx;
  313. for (new i = 0; i < strlen(strx); i++) {
  314. if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
  315. arg++;
  316. if (arg == pos + 1){
  317. ret[i-idxx] = EOS;
  318. return ret;
  319. } else if (arg == pos)
  320. idxx= i+1;
  321. }
  322. else if (arg == pos)
  323. ret[i - idxx] = strx[i];
  324. }
  325. return ret;
  326. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement