Guest User

Untitled

a guest
Nov 25th, 2009
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.05 KB | None | 0 0
  1. // This is a comment
  2. // uncomment the line below if you want to write a filterscript
  3.  
  4. #include <a_samp>
  5.  
  6. forward ShowStats(playerid,targetid);
  7. forward OnPlayerUpdate(playerid);
  8. forward Encrypt(string[]);
  9. forward OnPlayerLogin(playerid,const string[]);
  10. forward OnPlayerRegister(playerid, password[]);
  11.  
  12. enum pInfo
  13. {
  14. pPassword[128],
  15. pCash,
  16. pRank,
  17. pAdmin,
  18. };
  19. new PlayerInfo[MAX_PLAYERS][pInfo];
  20.  
  21. new gPlayerLogged[MAX_PLAYERS];
  22. new gPlayerAccount[MAX_PLAYERS];
  23.  
  24. main()
  25. {
  26. print("\n----------------------------------");
  27. print(" Blank Gamemode by your name here");
  28. print("----------------------------------\n");
  29. }
  30.  
  31. public OnGameModeInit()
  32. {
  33. SetGameModeText("Blank Script");
  34. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  35. return 1;
  36. }
  37.  
  38. public OnGameModeExit()
  39. {
  40. return 1;
  41. }
  42.  
  43. public OnPlayerRequestClass(playerid, classid)
  44. {
  45. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  46. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  47. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  48. return 1;
  49. }
  50.  
  51. public OnPlayerConnect(playerid)
  52. {
  53. new playrname[MAX_PLAYER_NAME];
  54. new connect[128];
  55. GetPlayerName(playerid, playrname, sizeof(playrname));
  56. format(connect, sizeof(connect), "%s.ini", playrname);
  57. if(fexist(connect))
  58. {
  59. gPlayerAccount[playerid] = 1;
  60. SendClientMessage(playerid, 0xFFFFFFFF, "You are registered, please login with /login password");
  61. return 1;
  62. }
  63. else
  64. {
  65. gPlayerAccount[playerid] = 0;
  66. SendClientMessage(playerid, 0xFFFFFFFF, "You are new here or not registered, please register with /register password");
  67. }
  68.  
  69. return 1;
  70. }
  71.  
  72. public OnPlayerDisconnect(playerid, reason)
  73. {
  74. OnPlayerUpdate(playerid);
  75. gPlayerLogged[playerid] = 0;
  76. return 1;
  77. }
  78.  
  79. public OnPlayerSpawn(playerid)
  80. {
  81. return 1;
  82. }
  83.  
  84. public OnPlayerDeath(playerid, killerid, reason)
  85. {
  86. return 1;
  87. }
  88.  
  89. public OnVehicleSpawn(vehicleid)
  90. {
  91. return 1;
  92. }
  93.  
  94. public OnVehicleDeath(vehicleid, killerid)
  95. {
  96. return 1;
  97. }
  98.  
  99. public OnPlayerText(playerid, text[])
  100. {
  101. return 1;
  102. }
  103.  
  104. public OnPlayerCommandText(playerid, cmdtext[])
  105. {
  106. new string[256];
  107. new tmp[256];
  108. new cmd[256];
  109. new idx;
  110. new sendername[MAX_PLAYER_NAME];
  111.  
  112. if (strcmp(cmd, "/login", true) == 0 )
  113. {
  114. if(IsPlayerConnected(playerid))
  115. {
  116. new tmppass[64];
  117. if(gPlayerLogged[playerid] == 1)
  118. {
  119. SendClientMessage(playerid, 0xC0C0C0FF, "You are already logged in.");
  120. return 1;
  121. }
  122. tmp = strtok(cmdtext, idx);
  123. if(!strlen(tmp))
  124. {
  125. SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /login [password]");
  126. return 1;
  127. }
  128. strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
  129. Encrypt(tmppass);
  130. OnPlayerLogin(playerid,tmppass);
  131. }
  132. return 1;
  133. }
  134.  
  135. if (strcmp(cmd, "/register", true) == 0 )
  136. {
  137. if(IsPlayerConnected(playerid))
  138. {
  139. if(gPlayerLogged[playerid] == 1)
  140. {
  141. SendClientMessage(playerid, 0xC0C0C0FF, "You are already logged in.");
  142. return 1;
  143. }
  144. GetPlayerName(playerid, sendername, sizeof(sendername));
  145. format(string, sizeof(string), "%s.ini", sendername);
  146. new File: hFile = fopen(string, io_read);
  147. if (hFile)
  148. {
  149. SendClientMessage(playerid, 0xC0C0C0FF, "This username is already registered. Please change your name.;)");
  150. fclose(hFile);
  151. return 1;
  152. }
  153. new tmppass[64];
  154. tmp = strtok(cmdtext, idx);
  155. if(!strlen(tmp))
  156. {
  157. SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /register [password]");
  158. return 1;
  159. }
  160. strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
  161. Encrypt(tmppass);
  162. OnPlayerRegister(playerid,tmppass);
  163. }
  164. return 1;
  165. }
  166.  
  167. if (strcmp(cmd, "/stats", true) == 0)
  168. {
  169. if(IsPlayerConnected(playerid))
  170. {
  171. if (gPlayerLogged[playerid] != 0)
  172. {
  173. ShowStats(playerid,playerid);
  174. }
  175. else
  176. {
  177. SendClientMessage(playerid, 0xC0C0C0FF, "You are not Logged in !");
  178. }
  179. }
  180. return 1;
  181. }
  182. return 0;
  183. }
  184.  
  185. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  186. {
  187. return 1;
  188. }
  189.  
  190. public OnPlayerExitVehicle(playerid, vehicleid)
  191. {
  192. return 1;
  193. }
  194.  
  195. public OnPlayerStateChange(playerid, newstate, oldstate)
  196. {
  197. return 1;
  198. }
  199.  
  200. public OnPlayerEnterCheckpoint(playerid)
  201. {
  202. return 1;
  203. }
  204.  
  205. public OnPlayerLeaveCheckpoint(playerid)
  206. {
  207. return 1;
  208. }
  209.  
  210. public OnPlayerEnterRaceCheckpoint(playerid)
  211. {
  212. return 1;
  213. }
  214.  
  215. public OnPlayerLeaveRaceCheckpoint(playerid)
  216. {
  217. return 1;
  218. }
  219.  
  220. public OnRconCommand(cmd[])
  221. {
  222. return 1;
  223. }
  224.  
  225. public OnPlayerRequestSpawn(playerid)
  226. {
  227. return 1;
  228. }
  229.  
  230. public OnObjectMoved(objectid)
  231. {
  232. return 1;
  233. }
  234.  
  235. public OnPlayerObjectMoved(playerid, objectid)
  236. {
  237. return 1;
  238. }
  239.  
  240. public OnPlayerPickUpPickup(playerid, pickupid)
  241. {
  242. return 1;
  243. }
  244.  
  245. public OnVehicleMod(playerid, vehicleid, componentid)
  246. {
  247. return 1;
  248. }
  249.  
  250. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  251. {
  252. return 1;
  253. }
  254.  
  255. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  256. {
  257. return 1;
  258. }
  259.  
  260. public OnPlayerSelectedMenuRow(playerid, row)
  261. {
  262. return 1;
  263. }
  264.  
  265. public OnPlayerExitedMenu(playerid)
  266. {
  267. return 1;
  268. }
  269.  
  270. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  271. {
  272. return 1;
  273. }
  274.  
  275. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  276. {
  277. return 1;
  278. }
  279.  
  280. public OnRconLoginAttempt(ip[], password[], success)
  281. {
  282. return 1;
  283. }
  284.  
  285. public OnPlayerStreamIn(playerid, forplayerid)
  286. {
  287. return 1;
  288. }
  289.  
  290. public OnPlayerStreamOut(playerid, forplayerid)
  291. {
  292. return 1;
  293. }
  294.  
  295. public OnVehicleStreamIn(vehicleid, forplayerid)
  296. {
  297. return 1;
  298. }
  299.  
  300. public OnVehicleStreamOut(vehicleid, forplayerid)
  301. {
  302. return 1;
  303. }
  304.  
  305. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  306. {
  307. return 1;
  308. }
  309.  
  310. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  311. {
  312. return 1;
  313. }
  314.  
  315. strtok(const string[], &index)
  316. {
  317. new length = strlen(string);
  318. while ((index < length) && (string[index] <= ' '))
  319. {
  320. index++;
  321. }
  322.  
  323. new offset = index;
  324. new result[20];
  325. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  326. {
  327. result[index - offset] = string[index];
  328. index++;
  329. }
  330. result[index - offset] = EOS;
  331. return result;
  332. }
  333.  
  334. public Encrypt(string[])
  335. {
  336. for(new x=0; x < strlen(string); x++)
  337. {
  338. string[x] += (3^x) * (x % 15);
  339. if(string[x] > (0xff))
  340. {
  341. string[x] -= 64;
  342. }
  343. }
  344. return 1;
  345. }
  346.  
  347. public OnPlayerLogin(playerid,const string[])
  348. {
  349. new pname2[MAX_PLAYER_NAME];
  350. new pname3[MAX_PLAYER_NAME];
  351. new string2[64];
  352. new string3[128];
  353. GetPlayerName(playerid, pname2, sizeof(pname2));
  354. format(string2, sizeof(string2), "%s.ini", pname2);
  355. new File: UserFile = fopen(string2, io_read);
  356.  
  357. if (UserFile)
  358. {
  359. new valtmp[128];
  360. fread(UserFile, valtmp);strmid(PlayerInfo[playerid][pPassword], valtmp, 0, strlen(valtmp)-1, 255);
  361.  
  362. if ((strcmp(PlayerInfo[playerid][pPassword], string, true, strlen(valtmp)-1) == 0))
  363. {
  364. new key[128],val[128];
  365. new Data[128];
  366. PlayerInfo[playerid][pCash]=0;
  367. while(fread(UserFile,Data,sizeof(Data)))
  368. { PlayerInfo[playerid][pCash]=0;
  369. key = ini_GetKey(Data);
  370. if( strcmp( key , "Money" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCash] = strval( val ); }
  371. if( strcmp( key , "Rank" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pRank] = strval( val ); }
  372. if( strcmp( key , "AdminLevel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAdmin] = strval( val ); }
  373. GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
  374. }
  375. fclose(UserFile);
  376. gPlayerLogged[playerid] = 1;
  377. gPlayerAccount[playerid] = 1;
  378. GetPlayerName(playerid, pname3, sizeof(pname3));
  379. format(string3, sizeof(string3), "Welcome %s, you have been succesfully logged in!", pname3);
  380. SendClientMessage(playerid, 0xFFFFFFFF,string3);
  381. }
  382. else
  383. {
  384. SendClientMessage(playerid, 0xC0C0C0FF, "Password does not match your name");
  385. fclose(UserFile);
  386. }
  387. }
  388. return 1;
  389. }
  390.  
  391. public OnPlayerRegister(playerid, password[])
  392. {
  393. if(IsPlayerConnected(playerid))
  394. {
  395. new string3[32];
  396. new playername3[MAX_PLAYER_NAME];
  397. GetPlayerName(playerid, playername3, sizeof(playername3));
  398. format(string3, sizeof(string3), "%s.ini", playername3);
  399. new File: hFile = fopen(string3, io_write);
  400. if (hFile)
  401. {
  402. strmid(PlayerInfo[playerid][pPassword], password, 0, strlen(password), 255);
  403. new var[32];
  404. format(var, 32, "%s\n", PlayerInfo[playerid][pPassword]);fwrite(hFile, var);
  405. PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
  406. format(var, 32, "Money=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
  407. format(var, 32, "Rank=%d\n",PlayerInfo[playerid][pRank]);fwrite(hFile, var);
  408. format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
  409. fclose(hFile);
  410. SendClientMessage(playerid, 0xFFFFFFFF, "Account registered, you can login now /login [password]");
  411. }
  412. }
  413. return 1;
  414. }
  415.  
  416. public ShowStats(playerid,targetid)
  417. {
  418. if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
  419. {
  420. new cash = GetPlayerMoney(targetid);
  421. new name[MAX_PLAYER_NAME];
  422. GetPlayerName(targetid, name, sizeof(name));
  423. new Float:px,Float:py,Float:pz;
  424. GetPlayerPos(targetid, px, py, pz);
  425. new coordsstring[256];
  426. SendClientMessage(playerid, 0xFFFFFFFF,"------------------------------------------------");
  427. format(coordsstring, sizeof(coordsstring),"%s",name);
  428. SendClientMessage(playerid, 0xFFFFFFFF,coordsstring);
  429. format(coordsstring, sizeof(coordsstring), "Cash:[$%d] Rank:[%d]",cash,PlayerInfo[playerid][pRank]);
  430. SendClientMessage(playerid, 0xFFFFFFFF,coordsstring);
  431. SendClientMessage(playerid, 0xFFFFFFFF,"------------------------------------------------");
  432. }
  433. }
  434.  
  435. public OnPlayerUpdate(playerid)
  436. {
  437. if(IsPlayerConnected(playerid))
  438. {
  439. if(gPlayerLogged[playerid])
  440. {
  441. new string3[32];
  442. new pname3[MAX_PLAYER_NAME];
  443. GetPlayerName(playerid, pname3, sizeof(pname3));
  444. format(string3, sizeof(string3), "%s.ini", pname3);
  445. new File: pFile = fopen(string3, io_write);
  446. if (pFile)
  447. {
  448. new var[32];
  449. format(var, 32, "%s\n", PlayerInfo[playerid][pPassword]);fwrite(pFile, var);
  450. fclose(pFile);
  451. new File: hFile = fopen(string3, io_append);
  452. PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
  453. format(var, 32, "Money=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
  454. format(var, 32, "Rank=%d\n",PlayerInfo[playerid][pRank]);fwrite(hFile, var);
  455. format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
  456. fclose(hFile);
  457. }
  458. }
  459. }
  460. return 1;
  461. }
  462.  
  463. stock ini_GetKey( line[] )
  464. {
  465. new keyRes[128];
  466. keyRes[0] = 0;
  467. if ( strfind( line , "=" , true ) == -1 ) return keyRes;
  468. strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
  469. return keyRes;
  470. }
  471.  
  472. stock ini_GetValue( line[] )
  473. {
  474. new valRes[128];
  475. valRes[0]=0;
  476. if ( strfind( line , "=" , true ) == -1 ) return valRes;
  477. strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
  478. return valRes;
  479. }
Advertisement
Add Comment
Please, Sign In to add comment