TYUI

Register System :)

Jun 10th, 2014
415
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 18.25 KB | None | 0 0
  1. #include <a_samp>
  2. #include <foreach>
  3. #include <YSI\y_commands>
  4. #include <YSI\y_ini>
  5.  
  6. #define COLOR_PURPLE    0xC2A2DAAA
  7. #define COLOR_GREY      0xAFAFAFAA
  8. #define COLOR_FADE      0xC8C8C8C8
  9.  
  10. #define Write "{FFFFFF}"
  11. #define Red "{F81414}"
  12. #define Green "{00FF22}"
  13. #define Lightblue "{00CED1}"
  14. #define Yellow "{F3FF02}"
  15. #define YELLOW 0xDABB3EAA
  16. #define BELA 0xFFFFFFAA
  17. #define RED 0xFF0000FF
  18.  
  19. #define PATH "Ucet/%s.ini"
  20. #define SECONDS(%1) ((%1)*(1000))
  21.  
  22. #define GivePlayerCash(%0,%1) SetPVarInt(%0,"Money",GetPlayerCash(%0)+%1),GivePlayerMoney(%0,%1)
  23. #define ResetPlayerCash(%0) SetPVarInt(%0,"Money",0), ResetPlayerMoney(%0)
  24. #define GetPlayerCash(%0) GetPVarInt(%0,"Money")
  25.  
  26.  
  27. #define DIALOG_REGISTER   1
  28. #define DIALOG_LOGIN      2
  29. #define DIALOG_AGE        3
  30. #define DIALOG_SEX        4
  31. #define DIALOG_TUTORIAL   5
  32.  
  33.  
  34. enum pInfo{
  35. pPass,pCash,pAdmin,pSex,pAge,Float:pPos_x,Float:pPos_y,Float:pPos_z,pTeam,pSkin,pTutorial,
  36. }
  37. new PlayerInfo[MAX_PLAYERS][pInfo];
  38.  
  39. main()
  40. {
  41.     print("+-------------------------------------------+");
  42.     print("|  ***         Register System       ***    |");
  43.     print("|  Code: Mirotelli             [  2014   ]  |");
  44.     print("|  SA-MP Version   0.3z        [Linux/Win]  |");
  45.     print("|  Gamemode Version            [   1.0   ]  |");
  46.     print("+-------------------------------------------+\n");
  47. }
  48.  
  49. new Logged[ MAX_PLAYERS ];
  50.  
  51. public OnPlayerConnect(playerid)
  52. {
  53. Logged[ playerid ] = 0;
  54. new luca0[30];
  55. GetPlayerIp(playerid, luca0, 30);
  56. if(!strcmp(luca0, "255.255.255.255", true)){
  57. Ban(playerid);
  58. }
  59. SetWeather(1);
  60. SetWorldTime(12);
  61. SetPlayerColor(playerid, 0xAFAFAFAA);
  62. if(fexist(UserPath(playerid))){
  63. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  64. new ing[2056],org[126];
  65. strcat(org, "Prihlasenie!\n");
  66. strcat(ing, "{001bff}1. {ffffff}Hráč je povinný sa držat slušneho správania a rešpekovat adminov\n");
  67. strcat(ing, "{001bff}2. {ffffff}Ak najdete chybu na servery alebo drobne chyby tak použite prikaz /bug\n");
  68. strcat(ing, "{001bff}3. {ffffff}Máte povinnost používat vymožeností modu tak,aby ste nemohli byt ukradnutý\n");
  69. strcat(ing, "{001bff}4. {ffffff}Vždy pred odchodom do windowsu alebo použitim ESC tak použite prikaz /afk\n");
  70. strcat(ing, "{001bff}5. {ffffff}Ak ste zbadali na servery cheatera tak ho nahlaste online adminovi /cheat alebo ak nie je online tak prikazom /chranit\n");
  71. strcat(ing, "{001bff}6. {ffffff}Za akokolvek priane scripty do Original hry (Cheaty,Cleo,Mody,..) tak hráč bude potrestaný!!\n");
  72. strcat(ing, "{001bff}7. {ffffff}Je zakazane strielat na SpawnKill alebo ClockSpawn!\n");
  73. strcat(ing, "{001bff}8. {ffffff}Nikdy neprovokujte admina o zlepšenie = každý hrač si musí sám nahrat svoje skore!!\n");
  74. strcat(ing, "{001bff}9. {ffffff}Na servery je zakazané vytravat reklamy na iní server alebo na iní mod!\n");
  75. strcat(ing, " \n");
  76. strcat(ing, "{001bff}!!{ffffff}TIETO PRAVIDLA PLATIA I PRE ADMINISTRATOROV~r~!!");
  77. strcat(ing, " \n");
  78. strcat(ing, "{001bff}Celé pravila a ich aktualizacie najdeš na našom webe www.ewolutions.cz \n");
  79. strcat(ing, "                                                                               \n");
  80. strcat(ing, "{001bff}        !!ZA NEPREČITANIE PRAVIDIEL NEOSPRAVEDLNUJEME!!                \n");
  81. strcat(ing, "                                                                               \n");
  82. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,org,ing,"Login","Quit");
  83. }else{
  84. new ing[2056],org[126];
  85. strcat(org, "Regisracia!\n");
  86. strcat(ing, "{001bff}1. {ffffff}Hráč je povinný sa držat slušneho správania a rešpekovat adminov\n");
  87. strcat(ing, "{001bff}2. {ffffff}Ak najdete chybu na servery alebo drobne chyby tak použite prikaz /bug\n");
  88. strcat(ing, "{001bff}3. {ffffff}Máte povinnost používat vymožeností modu tak,aby ste nemohli byt ukradnutý\n");
  89. strcat(ing, "{001bff}4. {ffffff}Vždy pred odchodom do windowsu alebo použitim ESC tak použite prikaz /afk\n");
  90. strcat(ing, "{001bff}5. {ffffff}Ak ste zbadali na servery cheatera tak ho nahlaste online adminovi /cheat alebo ak nie je online tak prikazom /chranit\n");
  91. strcat(ing, "{001bff}6. {ffffff}Za akokolvek priane scripty do Original hry (Cheaty,Cleo,Mody,..) tak hráč bude potrestaný!!\n");
  92. strcat(ing, "{001bff}7. {ffffff}Je zakazane strielat na SpawnKill alebo ClockSpawn!\n");
  93. strcat(ing, "{001bff}8. {ffffff}Nikdy neprovokujte admina o zlepšenie = každý hrač si musí sám nahrat svoje skore!!\n");
  94. strcat(ing, "{001bff}9. {ffffff}Na servery je zakazané vytravat reklamy na iní server alebo na iní mod!\n");
  95. strcat(ing, " \n");
  96. strcat(ing, "{001bff}!!{ffffff}TIETO PRAVIDLA PLATIA I PRE ADMINISTRATOROV~r~!!");
  97. strcat(ing, " \n");
  98. strcat(ing, "{001bff}Celé pravila a ich aktualizacie najdeš na našom webe www.ewolutions.cz \n");
  99. strcat(ing, "                                                                               \n");
  100. strcat(ing, "{001bff}        !!ZA NEPREČITANIE PRAVIDIEL NEOSPRAVEDLNUJEME!!                \n");
  101. strcat(ing, "                                                                               \n");
  102. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,org,ing,"Register","Quit");
  103. }
  104. return 1;
  105. }
  106.  
  107.  
  108. public OnPlayerRequestClass(playerid, classid)
  109. {
  110.     PlayerPlaySound(playerid, 1097, -1370.2362,-256.3250,14.1440);
  111.     SetPlayerPos(playerid,1103.3688,-827.0107,114.4477);
  112.     SetPlayerFacingAngle(playerid, 60);
  113.     SetPlayerCameraPos(playerid,1099.5803,-822.9796,114.4477);
  114.     SetPlayerCameraLookAt(playerid,1101.4971,-825.1699,114.4477);
  115.     return 1;
  116. }
  117.  
  118. public OnGameModeInit()
  119. {
  120.         AddPlayerClass(293,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // 0
  121.         AddPlayerClass(299,-543.4693,2607.3337,53.5156,270.7141,0,0,0,0,0,0); // 1
  122.         AddPlayerClass(298,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // 2
  123.         AddPlayerClass(297,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // 3
  124.         AddPlayerClass(104,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // Ballas 3 - 4
  125.         AddPlayerClass(103,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // Ballas 2 - 5
  126.         AddPlayerClass(102,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // Ballas 1 - 6
  127.         AddPlayerClass(107,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // Grove 3 - 7
  128.         AddPlayerClass(106,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // Grove 2 - 8
  129.         AddPlayerClass(105,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // Grove 1 - 9
  130.         AddPlayerClass(296,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // 4
  131.         AddPlayerClass(295,-543.4693,2607.3337,53.5156,270.7141,0,0,0,0,0,0); // 5
  132.         AddPlayerClass(294,-543.4693,2607.3337,53.5156,270.7141,0,0,0,0,0,0); // 6
  133.         AddPlayerClass(292,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC 7
  134.         AddPlayerClass(291,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // OG LOC 8
  135.         AddPlayerClass(290,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC 9
  136.         AddPlayerClass(288,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC 10
  137.         AddPlayerClass(287,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // OG LOC 11
  138.         AddPlayerClass(286,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC 12
  139.         AddPlayerClass(285,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC 13
  140.         AddPlayerClass(284,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // OG LOC 14
  141.         AddPlayerClass(283,-543.4693,2607.3337,53.5156,270.7141,0,0,0,0,0,0); // OG LOC 15
  142.         AddPlayerClass(282,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC 16
  143.         AddPlayerClass(281,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // OG LOC 17
  144.         AddPlayerClass(280,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC 18
  145.         AddPlayerClass(279,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC 19
  146.         AddPlayerClass(278,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // OG LOC 20
  147.         AddPlayerClass(276,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC 21
  148.         AddPlayerClass(274,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC 22
  149.         AddPlayerClass(272,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // OG LOC 2
  150.         AddPlayerClass(271,-543.4693,2607.3337,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  151.         AddPlayerClass(270,-543.4693,2607.3337,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  152.         AddPlayerClass(269,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC
  153.         AddPlayerClass(268,-543.4693,2607.3337,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  154.         AddPlayerClass(267,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  155.         AddPlayerClass(266,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  156.         AddPlayerClass(265,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  157.         AddPlayerClass(264,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC
  158.         AddPlayerClass(258,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC
  159.         AddPlayerClass(256,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  160.         AddPlayerClass(255,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  161.         AddPlayerClass(252,-543.4693,2607.3337,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  162.         AddPlayerClass(250,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC
  163.         AddPlayerClass(249,-543.4693,2607.3337,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  164.         AddPlayerClass(248,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC
  165.         AddPlayerClass(247,-543.4693,2607.3337,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  166.         AddPlayerClass(241,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  167.         AddPlayerClass(240,-543.4693,2607.3337,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  168.         AddPlayerClass(233,2119.5608,1233.0441,10.8203,89.3993,0,0,0,0,0,0); // OG LOC
  169.         AddPlayerClass(223,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  170.         AddPlayerClass(221,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC
  171.         AddPlayerClass(217,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  172.         AddPlayerClass(212,-543.4693,2607.3337,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  173.         AddPlayerClass(209,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  174.         AddPlayerClass(205,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  175.         AddPlayerClass(204,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC
  176.         AddPlayerClass(203,-543.4693,2607.3337,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  177.         AddPlayerClass(197,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC
  178.         AddPlayerClass(195,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC
  179.         AddPlayerClass(186,-543.4693,2607.3337,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  180.         AddPlayerClass(185,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  181.         AddPlayerClass(184,-543.7243,2592.7314,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  182.         AddPlayerClass(181,-543.4429,2573.9592,53.5156,270.4008,0,0,0,0,0,0); // OG LOC
  183.         AddPlayerClass(180,-543.4693,2607.3337,53.5156,270.7141,0,0,0,0,0,0); // OG LOC
  184.  
  185.         ShowPlayerMarkers(0);
  186.         ShowNameTags(1);
  187.         DisableInteriorEnterExits();
  188.         EnableStuntBonusForAll(0);
  189.         SetNameTagDrawDistance(10.0);
  190.         // =========== TIMERS ===========
  191.         SetTimer("MoneyUpdate",1000,1);
  192.         SetTimer("SaveAccounts", SECONDS(13), 1);
  193.  
  194.         SetGameModeText("REGISTER SYSTEM");
  195.         AddStaticVehicleEx(522, 1119.0754, -1626.3329, 20.0777, 176.0761, 1, 1, 60000); // Motor kod spawna
  196.         return 1;
  197. }
  198.  
  199. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  200. {
  201. if(dialogid == DIALOG_AGE){
  202. if(!response){
  203. Kick(playerid);}
  204. else
  205. {
  206. if(strlen(inputtext)){
  207. new age = strval(inputtext);
  208. if(age > 25 || age < 16){
  209. ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Roky","Kolko máš rokov???\n{FF0000}(( 13 - 25 ))","Pokračuj","Koniec");
  210. }else{
  211. PlayerInfo[playerid][pAge] = age;
  212. new string[ 64 ];
  213. format(string, sizeof(string), "INFO: Tvoj vek je {3BB9FF}%d.",age);
  214. SendClientMessage(playerid, -1, string);
  215.  
  216. }
  217. }else{
  218. return 0;
  219. }
  220. }
  221. }
  222. if(dialogid == DIALOG_SEX){
  223. if(response){
  224. PlayerInfo[playerid][pSex] = 1;
  225. SendClientMessage(playerid, -1, "INFO: Ty si {3BB9FF}muž.");
  226. SetPlayerSkin(playerid, 60);
  227. PlayerInfo[playerid][pSkin] = 60;
  228. ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Roky","Kolko máš rokov???\n{FF0000}(( 13 - 25 ))","Pokračuj","Koniec");
  229. }else{
  230. PlayerInfo[playerid][pSex] = 2;
  231. SendClientMessage(playerid, -1, "INFO: Ti si {3BB9FF}žena.");
  232. SetPlayerSkin(playerid, 233);
  233. PlayerInfo[playerid][pSkin] = 233;
  234. ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Roky","Kolko máš rokov???\n{FF0000}(( 13 - 25 ))","Pokračuj","Koniec");
  235. }
  236. }
  237.  
  238. switch( dialogid )
  239. {
  240. case DIALOG_REGISTER:
  241. {
  242. if (!response) return Kick(playerid);
  243. if(response)
  244. {
  245. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""Write"Registering...",""Red"You have entered an invalid password.\n"Write"Type your password below to register a new account.","Register","Quit");
  246. new INI:File = INI_Open(UserPath(playerid));
  247. INI_SetTag(File,"data");
  248. INI_WriteInt(File,"Password",udb_hash(inputtext));
  249. INI_WriteInt(File,"Cash",10000);
  250. INI_WriteInt(File,"Admin",0);
  251. INI_WriteInt(File,"Sex",0);
  252. INI_WriteInt(File,"Age",0);
  253. INI_WriteFloat(File,"Pos_x",0);
  254. INI_WriteFloat(File,"Pos_y",0);
  255. INI_WriteFloat(File,"Pos_z",0);
  256. INI_WriteInt(File,"Skin",0);
  257. INI_WriteInt(File,"Team",0);
  258. INI_WriteInt(File,"Tuturial",0);
  259. INI_Close(File);
  260.  
  261. ShowPlayerDialog(playerid, DIALOG_SEX, DIALOG_STYLE_MSGBOX, "Pohlavie","Aké pohlavia ste?","Muž","Žena");
  262.  
  263. }
  264. }
  265. case DIALOG_LOGIN:
  266. {
  267. if ( !response ) return Kick ( playerid );
  268. if( response )
  269. {
  270. if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  271. {
  272. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  273. new tmp2[ 256 ],playername2[ MAX_PLAYER_NAME ];
  274. GetPlayerName(playerid, playername2, sizeof(playername2));
  275. format(tmp2, sizeof(tmp2), "~w~Dobrodosli ~n~~g~%s", playername2);
  276. GameTextForPlayer(playerid, tmp2, 5000, 1);
  277. SetTimerEx("UnsetFirstSpawn", 5000, false, "i", playerid);
  278. GivePlayerCash(playerid, PlayerInfo[playerid][pCash]);
  279. SetSpawnInfo(playerid, PlayerInfo[playerid][pTeam], PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z], 1.0, -1, -1, -1, -1, -1, -1);
  280. SpawnPlayer(playerid);
  281. }
  282. }else{
  283. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""Write"Login",""Red"You have entered an incorrect password.\n"Write"Type your password below to login.","Login","Quit");
  284. }
  285. }
  286. }
  287. return 1;
  288. }
  289.  
  290. public OnPlayerSpawn(playerid){
  291. if(IsPlayerConnected(playerid)){
  292. SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
  293.  
  294. Logged[playerid] = 1;
  295. }
  296. if(PlayerInfo[playerid][pPos_x] == 0 && PlayerInfo[playerid][pPos_y] == 0){
  297. SetPlayerPos(playerid, 1119.4132,-1619.1407,20.5162);
  298. Logged[playerid] = 1;
  299. SpawnPlayer(playerid);
  300. }else{
  301. SetPlayerPos(playerid, PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z]);
  302. Logged[playerid] = 1;
  303. SpawnPlayer(playerid);
  304. }
  305. return 1;
  306. }
  307.  
  308. public OnPlayerStateChange(playerid, newstate, oldstate)
  309. {
  310. return 1;
  311. }
  312.  
  313. public OnPlayerText(playerid, text[])
  314. {
  315. return 1;
  316. }
  317.  
  318. public OnPlayerDisconnect(playerid, reason)
  319. {
  320. SaveAccountStats(playerid);
  321. return 1;
  322. }
  323.  
  324. forward SaveAccountStats(playerid);
  325. public SaveAccountStats(playerid){
  326. if(Logged[playerid] == 1){
  327. new INI:File = INI_Open(UserPath(playerid));
  328. INI_SetTag(File,"data");
  329. PlayerInfo[playerid][pSkin] = GetPlayerSkin(playerid);
  330. PlayerInfo[playerid][pCash] = GetPlayerCash(playerid);
  331. new Float:x,Float:y,Float:z;
  332. GetPlayerPos(playerid,x,y,z);
  333. PlayerInfo[playerid][pPos_x] = x;
  334. PlayerInfo[playerid][pPos_y] = y;
  335. PlayerInfo[playerid][pPos_z] = z;
  336.  
  337. INI_WriteInt(File,"Cash",PlayerInfo[playerid][pCash]);
  338. INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  339. INI_WriteInt(File,"Sex",PlayerInfo[playerid][pSex]);
  340. INI_WriteInt(File,"Age",PlayerInfo[playerid][pAge]);
  341. INI_WriteFloat(File,"Pos_x",PlayerInfo[playerid][pPos_x]);
  342. INI_WriteFloat(File,"Pos_y",PlayerInfo[playerid][pPos_y]);
  343. INI_WriteFloat(File,"Pos_z",PlayerInfo[playerid][pPos_z]);
  344. INI_WriteInt(File,"Skin",PlayerInfo[playerid][pSkin]);
  345. INI_WriteInt(File,"Team",PlayerInfo[playerid][pTeam]);
  346. INI_Close(File);
  347. }
  348. return 1;
  349. }
  350.  
  351. forward SaveAccounts();
  352. public SaveAccounts(){
  353. for(new i = 0; i < MAX_PLAYERS; i++){
  354. if(IsPlayerConnected(i))
  355. {
  356. SaveAccountStats(i);
  357. }
  358. }
  359. }
  360.  
  361. forward LoadUser_data(playerid,name[],value[]);
  362. public LoadUser_data(playerid,name[],value[]){
  363. INI_Int("Password",PlayerInfo[playerid][pPass]);
  364. INI_Int("Cash",PlayerInfo[playerid][pCash]);
  365. INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  366. INI_Int("Sex",PlayerInfo[playerid][pSex]);
  367. INI_Int("Age",PlayerInfo[playerid][pAge]);
  368. INI_Float("Pos_x",PlayerInfo[playerid][pPos_x]);
  369. INI_Float("Pos_y",PlayerInfo[playerid][pPos_y]);
  370. INI_Float("Pos_z",PlayerInfo[playerid][pPos_z]);
  371. INI_Int("Skin",PlayerInfo[playerid][pSkin]);
  372. INI_Int("Team",PlayerInfo[playerid][pTeam]);
  373. return 1;
  374. }
  375.  
  376. forward MoneyUpdate(playerid);
  377. public MoneyUpdate(playerid){
  378. if(GetPlayerCash(playerid) < GetPlayerMoney(playerid)){
  379. foreach(Player, i){
  380. new const old_money = GetPlayerCash(playerid);
  381. ResetPlayerCash(playerid), GivePlayerCash(playerid, old_money);
  382. }
  383. }
  384. return 1;
  385. }
  386.  
  387. // ============ STOCKS ============
  388. stock SendAdminMessage( color, string[] ){
  389. foreach (Player,i){
  390. if( PlayerInfo[i] [pAdmin] > 1 ){
  391. SendClientMessage( i, color, string );
  392. }
  393. }
  394. }
  395.  
  396. stock UserPath(playerid)
  397. {
  398. new string[128],playername[MAX_PLAYER_NAME];
  399. GetPlayerName(playerid,playername,sizeof(playername));
  400. format(string,sizeof(string),PATH,playername);
  401. return string;
  402. }
  403.  
  404. /* Credits to Dracoblue */
  405. stock udb_hash(buf[]) {
  406. new length=strlen(buf);
  407. new s1 = 1;
  408. new s2 = 0;
  409. new n;
  410. for (n=0; n<length; n++){
  411. s1 = (s1 + buf[n]) % 65521;
  412. s2 = (s2 + s1)     % 65521;
  413. }
  414. return (s2 << 16) + s1;
  415. }
  416.  
  417. stock PlayerName(playerid){
  418. new string[24];
  419. GetPlayerName(playerid,string,24);
  420. new str[24];
  421. strmid(str,string,0,strlen(string),24);
  422. for(new i = 0; i < MAX_PLAYER_NAME; i++){
  423. if (str[i] == '_') str[i] = ' ';
  424. }
  425. return str;
  426. }
Advertisement
Add Comment
Please, Sign In to add comment