Advertisement
Guest User

Untitled

a guest
Apr 30th, 2010
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.82 KB | None | 0 0
  1. #include <a_samp>
  2. #include <dudb>
  3.  
  4. #define COLOR_GRAD1 0xB4B5B7FF
  5. #define COLOR_GRAD2 0xBFC0C2FF
  6. #define COLOR_GRAD3 0xCBCCCEFF
  7. #define COLOR_GRAD4 0xD8D8D8FF
  8. #define COLOR_GRAD5 0xE3E3E3FF
  9. #define COLOR_GRAD6 0xF0F0F0FF
  10. #define COLOR_LIGHTBLUE 0x33CCFFAA
  11. #define COLOR_GREY 0xAFAFAFAA
  12. #define COLOR_PINK 0xFF008096
  13. #define COLOR_BLUE 0x0000FFFF
  14. #define COLOR_GREEN 0x00A80096
  15. #define COLOR_RED 0xFF0000AA
  16. #define COLOR_ORANGE 0xFF800096
  17. #define COLOR_CYAN 0xFF808096
  18. #define COLOR_YELLOW 0xFFFF00AA
  19. #define COLOR_WHITE 0xFFFFFFAA
  20. #define COLOR_FADE1 0xE6E6E6E6
  21. #define COLOR_FADE2 0xC8C8C8C8
  22. #define COLOR_DARKBLUE 0x0000A096
  23. #define COLOR_BLACK 0x00000096
  24. #define COLOR_DARKGOLD 0x80800096
  25. #define COLOR_FADE3 0xAAAAAAAA
  26. #define COLOR_FADE4 0x8C8C8C8C
  27. #define COLOR_FADE5 0x6E6E6E6E
  28. #define COLOR_PURPLE 0xFF00FF96
  29. #define COLOR_BROWN 0x80400096
  30. #define COLOR_DBLUE 0x2641FEAA
  31. #define COLOR_ALLDEPT 0xFF8282AA
  32. #pragma tabsize 0
  33. //register system
  34. new logged[MAX_PLAYERS];
  35. new adminlevel[MAX_PLAYERS];
  36. new money[MAX_PLAYERS];
  37. new playername[MAX_PLAYER_NAME];
  38. new adminname[MAX_PLAYER_NAME];
  39. new score[MAX_PLAYERS];
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49. main()
  50. {
  51.  
  52. }
  53.  
  54. public OnGameModeInit()
  55. {
  56. UsePlayerPedAnims();
  57. return 1;
  58. }
  59.  
  60.  
  61. public OnPlayerRequestClass(playerid, classid)
  62. {
  63. return 1;
  64. }
  65.  
  66. public OnPlayerConnect(playerid)
  67. {
  68. logged[playerid] = 0;
  69. return 1;
  70. }
  71.  
  72. public OnPlayerDisconnect(playerid, reason)
  73. {
  74. GetPlayerName(playerid, playername, sizeof(playername));
  75. money[playerid] = GetPlayerMoney(playerid);
  76. score[playerid] = GetPlayerScore(playerid);
  77. dini_IntSet(udb_encode(playername), "money", money[playerid]);
  78. dini_IntSet(udb_encode(playername), "score", score[playerid]);
  79. dini_IntSet(udb_encode(playername), "adminlevel", adminlevel[playerid]);
  80. logged[playerid] = 0;
  81. return 1;
  82. }
  83.  
  84.  
  85.  
  86.  
  87.  
  88. public OnPlayerSpawn(playerid)
  89. {
  90. if(logged[playerid] == 0)
  91. {
  92. SendClientMessage(playerid, COLOR_RED, "You are not logged in yet! USAGE: /login [password]!");
  93. }
  94. return 1;
  95. }
  96.  
  97. public OnPlayerDeath(playerid, killerid, reason)
  98. {
  99. if(killerid == INVALID_PLAYER_ID) {
  100. SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
  101. } else {
  102. // Valid kill
  103. SendDeathMessage(killerid,playerid,reason);
  104. SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
  105. GivePlayerMoney(playerid, 100);
  106. }
  107. return 1;
  108. }
  109.  
  110.  
  111. public OnPlayerCommandText(playerid, cmdtext[])
  112. {
  113. new string[256];
  114. new cmd[256],tmp[256], tmp2[256];
  115. new idx;
  116. cmd = strtok(cmdtext, idx);
  117. GetPlayerName(playerid, playername, sizeof(playername));
  118. if(strcmp(cmd, "/register", true) == 0)
  119. {
  120. tmp = strtok(cmdtext, idx);
  121. if(!strlen(tmp))
  122. {
  123. SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /register (password)");
  124. }
  125. else
  126. {
  127. if (!dini_Exists(udb_encode(playername)))
  128. {
  129. dini_Create(udb_encode(playername));
  130. dini_IntSet(udb_encode(playername), "password", udb_hash(tmp));
  131. dini_IntSet(udb_encode(playername), "adminlevel", 0);
  132. dini_IntSet(udb_encode(playername), "money", 0);
  133. dini_IntSet(udb_encode(playername), "score", 0);
  134. format(string, sizeof(string), "Account %s has been made! You can now login with the password: %s.", playername, tmp);
  135. SendClientMessage(playerid, COLOR_GREEN, string);
  136. printf("%s has registered",playername);
  137. }
  138. else
  139. {
  140. format(string, sizeof(string), "%s is already registered.", playername,tmp);
  141. SendClientMessage(playerid, COLOR_RED, string);
  142. }
  143. }
  144. return 1;
  145. }
  146.  
  147. if(strcmp(cmd, "/login", true) == 0)
  148. {
  149. tmp = strtok(cmdtext, idx);
  150. if(logged[playerid] == 1)
  151. {
  152. SendClientMessage(playerid, COLOR_RED, "You are already logged in!");
  153. return 1;
  154. }
  155. if(!strlen(tmp)){
  156. SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /login (password)");
  157. }
  158. else
  159. {
  160. if (dini_Exists(udb_encode(playername)))
  161. {
  162. tmp2 = dini_Get(udb_encode(playername), "password");
  163. if (udb_hash(tmp) != strval(tmp2))
  164. {
  165. SendClientMessage(playerid, COLOR_RED, "Wrong password");
  166. }
  167. else
  168. {
  169. logged[playerid] = 1;
  170. money[playerid] = dini_Int(udb_encode(playername), "money");
  171. score[playerid] = dini_Int(udb_encode(playername), "score");
  172. adminlevel[playerid] = dini_Int(udb_encode(playername), "adminlevel");
  173. format(string, sizeof(string), "%s, You are now logged in. Your adminlevel is %d, Your money is %d, and your score is %d.", playername, adminlevel[playerid], money[playerid], score[playerid]);
  174. SendClientMessage(playerid, COLOR_GREEN, string);
  175. GivePlayerMoney(playerid, money[playerid]);
  176. SetPlayerScore(playerid, score[playerid]);
  177. printf("%s has logged in",playername);
  178. return 1;
  179. }
  180. }
  181. else
  182. {
  183. format(string, sizeof(string), "The account %s does not exist yet. Type /register [password] to make an account.", playername);
  184. SendClientMessage(playerid, COLOR_RED, string);
  185. return 1;
  186. }
  187. }
  188. }
  189. if(strcmp(cmd,"/bug",true,4)==0)
  190. {
  191. if(strlen(cmdtext) < 6) return SendClientMessage(playerid,COLOR_RED,"Usage: /bug [details]");
  192. new bug[256];
  193. new name[30];
  194. GetPlayerName(playerid,name,30);
  195. strmid(bug,cmdtext,5,strlen(cmdtext));
  196. format(string,256,"Bug Report - Author: %s - Details: %s",name,bug);
  197. SendClientMessage(playerid,COLOR_GREEN,"Your bug report said:");
  198. SendClientMessage(playerid,COLOR_GREEN,string);
  199. SendClientMessage(playerid,COLOR_GREEN,"Thank you for submitting the bug report and making this gamemode better.");
  200. printf("%s",string);
  201. new File:bugs;
  202. bugs = fopen("bugs.txt",io_append);
  203. format(string,256,"%s\r\n",string);
  204. fwrite(bugs,string);
  205. fclose(bugs);
  206. return 1;
  207. }
  208. if(strcmp(cmdtext,"/kill",true)==0)
  209. {
  210. SetPlayerHealth(playerid, 0);
  211. printf("%s has killed himself",playername);
  212. return 1;
  213. }
  214.  
  215. if(strcmp(cmdtext,"/suicide",true)==0)
  216. {
  217. SetPlayerHealth(playerid, 0);
  218. printf("%s has killed himself",playername);
  219. return 1;
  220. }
  221.  
  222. if(strcmp(cmdtext,"/clearchat",true)==0)
  223. {
  224. SendClientMessage(playerid,COLOR_GREY," ");
  225. SendClientMessage(playerid,COLOR_GREY," ");
  226. SendClientMessage(playerid,COLOR_GREY," ");
  227. SendClientMessage(playerid,COLOR_GREY," ");
  228. SendClientMessage(playerid,COLOR_GREY," ");
  229. SendClientMessage(playerid,COLOR_GREY," ");
  230. SendClientMessage(playerid,COLOR_GREY," ");
  231. SendClientMessage(playerid,COLOR_GREY," ");
  232. SendClientMessage(playerid,COLOR_GREY," ");
  233. SendClientMessage(playerid,COLOR_GREY," ");
  234. return 1;
  235. }
  236.  
  237. if (strcmp(cmd, "/pbanana", true) == 0)
  238. {
  239. if(IsPlayerConnected(playerid))
  240. {
  241. GivePlayerWeapon(playerid, 10, 1);
  242. SendClientMessage(playerid, 0xB013ECFF, "You now have a purple banana! Yummy!");
  243. return 1;
  244. }
  245. }
  246.  
  247. if(strcmp(cmdtext,"/aclearchat",true)==0)
  248. {
  249. if(adminlevel[playerid] == 7)
  250. {
  251. GetPlayerName(playerid, playername, sizeof(playername));
  252. SendClientMessageToAll(COLOR_GREY," ");
  253. SendClientMessageToAll(COLOR_GREY," ");
  254. SendClientMessageToAll(COLOR_GREY," ");
  255. SendClientMessageToAll(COLOR_GREY," ");
  256. SendClientMessageToAll(COLOR_GREY," ");
  257. SendClientMessageToAll(COLOR_GREY," ");
  258. SendClientMessageToAll(COLOR_GREY," ");
  259. SendClientMessageToAll(COLOR_GREY," ");
  260. SendClientMessageToAll(COLOR_GREY," ");
  261. SendClientMessageToAll(COLOR_GREY," ");
  262. format(string,sizeof(string),"Admin %s has cleared the chat", playername);
  263. SendClientMessageToAll(COLOR_GREEN, string);
  264. printf("admin %s has cleared the chat",playername);
  265. }
  266. return 1;
  267. }
  268. if(strcmp(cmd, "/makeadmin", true) == 0)
  269. {
  270. if(adminlevel[playerid] == 7)
  271. {
  272. if(logged[playerid] == 1)
  273. {
  274. tmp = strtok(cmdtext,idx), tmp2 = strtok(cmdtext,idx);
  275. new player1, level;
  276. player1 = strval(tmp);
  277. level = strval(tmp2);
  278. if(!strlen(tmp) && !strlen(tmp2))
  279. {
  280. SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /makeadmin [playerid] [level]");
  281. }
  282. else
  283. {
  284. GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
  285. format(string,sizeof(string),"You have promoted %s to adminlevel %d ", playername, level);
  286. SendClientMessage(playerid, COLOR_GREEN, string);
  287. format(string,sizeof(string),"Administrator %s has promoted %s to adminlevel %d",adminname, playername, level);
  288. SendClientMessageToAll(COLOR_GREEN, string);
  289. printf("%s has promoted %s to adminlevel %d",adminname, playername, level);
  290. adminlevel[playerid] = level;
  291. }
  292. }
  293. }
  294. return 1;
  295. }
  296.  
  297. if ( !strcmp ( cmd, "/changename", true ) )
  298. {
  299. tmp = strtok(cmdtext, idx);
  300. new string3[256];
  301. if(logged[playerid] == 0)
  302. {
  303. SendClientMessage(playerid, COLOR_RED, "SERVER: You Are Not Logged In");
  304. return 1;
  305. }
  306. if(!strlen(tmp))
  307. {
  308. SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /changename [newname]");
  309. return 1;
  310. }
  311. if (!dini_Exists(playername))
  312. {
  313. SendClientMessage(playerid, COLOR_RED, "This name is already in use");
  314. }
  315. else
  316. {
  317. format(string3, sizeof(string3),"%s has changed he's name to %s.", playername,tmp);
  318. SendClientMessageToAll(COLOR_YELLOW, string3);
  319. dini_Remove(udb_encode(playername));
  320. SetPlayerName(playerid, tmp);
  321. GetPlayerName(playerid, playername, sizeof(playername));
  322. dini_Create(udb_encode(playername));
  323. }
  324. return 1;
  325. }
  326.  
  327.  
  328. if( !strcmp ( cmd, "/changepass", true ) )
  329. {
  330. if(logged[playerid] == 0)
  331. {
  332. SendClientMessage(playerid, COLOR_RED, "SERVER: You Are Not Logged In");
  333. return 1;
  334. }
  335. tmp = strtok(cmdtext,idx);
  336. if(!strlen(tmp))
  337. {
  338. SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /changepass [password]");
  339. return 1;
  340. }
  341. if(logged[playerid] == 1)
  342. {
  343. dini_IntSet(udb_encode(playername), "password", udb_hash(tmp));
  344. format(string, sizeof(string), "You have successfully changed your password to %s. Dont forget it!", tmp);
  345. SendClientMessage(playerid, COLOR_GREEN, string);
  346. }
  347. return 1;
  348. }
  349.  
  350. if ( !strcmp ( cmdtext, "/mystats", true ) )
  351. {
  352. SendClientMessage ( playerid, COLOR_LIGHTBLUE, "====*[Playerstats]*====" );
  353. format(string, sizeof(string), "Score: %d", score[playerid]);
  354. SendClientMessage(playerid, COLOR_GREEN, string);
  355. format(string, sizeof(string), "Money: %d dollar", money[playerid]);
  356. SendClientMessage(playerid, COLOR_GREEN, string);
  357. format(string, sizeof(string), "Adminlevel: %d", adminlevel[playerid]);
  358. SendClientMessage(playerid, COLOR_GREEN, string);
  359. return 1;
  360. }
  361. if(strcmp(cmd, "/makemeadmin", true) == 0)
  362. {
  363. if(IsPlayerAdmin(playerid))
  364. {
  365. if(logged[playerid] == 1)
  366. {
  367. if(adminlevel[playerid] >= 0)
  368. {
  369. adminlevel[playerid] = 7;
  370. SendClientMessage(playerid, COLOR_GREEN, "You are now HeadAdmin, Congratulations!");
  371. printf("%s has made himself HeadAdmin",playername);
  372. }
  373. else
  374. {
  375. SendClientMessage(playerid, COLOR_RED, "You are already a Headadmin!");
  376. }
  377. }
  378. else
  379. {
  380. SendClientMessage(playerid, COLOR_RED, "You are not logged in yet, USAGE: /login password");
  381. }
  382. }
  383. else
  384. {
  385. SendClientMessage(playerid, COLOR_RED, "You are not a rcon admin!");
  386. }
  387. return 1;
  388. }
  389. return 0;
  390. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement