HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include <amxmodx>
  4. #include <amxmisc>
  5.  
  6. #define PLUGIN "Snake Game"
  7. #define VERSION "1.1"
  8. #define AUTHOR "BorJomi"
  9.  
  10. const table_x=12
  11. const table_y=10
  12. new table_symbol[3]
  13. new const TOP10_DIR[] = "addons/amxmodx/data/snake"
  14.  
  15. new bool:player_snake_control[33],bool:player_snake_sound[33],player_snake[33][table_x*table_y][2],player_snake_way[33],Float:g_game_time[33],player_snake_lengh[33]
  16. new g_game_start[33],snake_food[33][1][2],bool:onetime_start[33]
  17. new g_connect[33]
  18. new extreme_food[11],extreme_names[11][33],normal_food[11],normal_names[11][33],easy_food[11],easy_names[11][33]
  19.  
  20. enum
  21. {
  22. WAY_LEFT,
  23. WAY_RIGHT,
  24. WAY_UP,
  25. WAY_DOWN
  26. }
  27.  
  28. public plugin_init()
  29. {
  30. register_plugin(PLUGIN, VERSION, AUTHOR)
  31. register_clcmd("say /snake","start_menu_game",ADMIN_ALL)
  32.  
  33. register_clcmd("+snakeleft","snake_left_on",ADMIN_ALL)
  34. register_clcmd("+snakeright","snake_right_on",ADMIN_ALL)
  35. register_clcmd("+snakeup","snake_up_on",ADMIN_ALL)
  36. register_clcmd("+snakedown","snake_down_on",ADMIN_ALL)
  37.  
  38. register_menucmd(register_menuid("Mygame"), 1023, "Mygamemenu");
  39. register_menucmd(register_menuid("optiongame"), 1023, "optionmenu");
  40. register_menucmd(register_menuid("topgame"), 1023, "topmenu");
  41.  
  42. formatex(table_symbol,2,"0")
  43.  
  44. if( !dir_exists(TOP10_DIR) )
  45. mkdir(TOP10_DIR);
  46. }
  47. public plugin_cfg()
  48. {
  49. for (new i = 0 ; i < 10; ++i)
  50. {
  51. extreme_food[i] = 0;
  52. normal_food[i] = 0;
  53. easy_food[i] = 0;
  54. }
  55.  
  56. read_top10("Extreme")
  57. read_top10("Normal")
  58. read_top10("Easy")
  59. }
  60. public client_connect(id)
  61. {
  62. onetime_start[id]=false
  63. player_snake_control[id]=true
  64. player_snake_sound[id]=true
  65. player_snake[id][0][0]=table_x/2 //start x
  66. player_snake[id][0][1]=table_y/2 //start y
  67. player_snake_way[id]=WAY_UP
  68. g_game_time[id]=0.3
  69. player_snake_lengh[id]=0
  70. g_game_start[id]=false
  71. g_connect[id]=true
  72.  
  73. if(task_exists(id+123456))
  74. remove_task(id+123456)
  75. if(task_exists(id+223456))
  76. remove_task(id+223456)
  77. }
  78. public client_disconnect(id)
  79. {
  80. onetime_start[id]=false
  81. player_snake_control[id]=true
  82. player_snake_sound[id]=true
  83. g_connect[id]=false
  84. g_game_start[id]=false
  85. player_snake_way[id]=WAY_UP
  86. g_game_time[id]=0.3
  87. player_snake_lengh[id]=0
  88.  
  89. if(task_exists(id+123456))
  90. remove_task(id+123456)
  91. if(task_exists(id+223456))
  92. remove_task(id+223456)
  93. }
  94. public set_food(id)
  95. {
  96. id=id-223456
  97.  
  98. snake_food[id][0][0]=random_num(0,table_x-1)
  99. snake_food[id][0][1]=random_num(0,table_y-1)
  100.  
  101. set_task(8.0,"set_food",id+223456)
  102. }
  103. public Displaygame(id)
  104. {
  105. id=id-123456
  106.  
  107. if(g_game_start[id])
  108. {
  109. for(new i=(player_snake_lengh[id]-1);i>=1;i--)
  110. {
  111. player_snake[id][i][0]=player_snake[id][i-1][0]
  112. player_snake[id][i][1]=player_snake[id][i-1][1]
  113. }
  114.  
  115. switch(player_snake_way[id])
  116. {
  117. case 0:
  118. {
  119.  
  120. if(player_snake[id][0][0]<=0)
  121. player_snake[id][0][0]=table_x
  122.  
  123. player_snake[id][0][0]=player_snake[id][0][0]-1
  124. }
  125. case 1:
  126. {
  127. if(player_snake[id][0][0]>=table_x-1)
  128. player_snake[id][0][0]=-1
  129.  
  130. player_snake[id][0][0]=player_snake[id][0][0]+1
  131. }
  132. case 2:
  133. {
  134. if(player_snake[id][0][1]<=0)
  135. player_snake[id][0][1]=table_y
  136.  
  137. player_snake[id][0][1]=player_snake[id][0][1]-1
  138. }
  139. case 3:
  140. {
  141. if(player_snake[id][0][1]>=table_y-1)
  142. player_snake[id][0][1]=-1
  143.  
  144. player_snake[id][0][1]=player_snake[id][0][1]+1
  145. }
  146. }
  147.  
  148. for(new i=1;i<player_snake_lengh[id];i++)
  149. {
  150. if(player_snake[id][i][0]==player_snake[id][0][0] && player_snake[id][i][1]==player_snake[id][0][1])
  151. {
  152. client_print(id,print_chat,"[Snake] Vesztettel")
  153.  
  154. switch(g_game_time[id])
  155. {
  156. case 0.1:
  157. Top_update_extreme(id, player_snake_lengh[id]-1)
  158. case 0.2:
  159. Top_update_normal(id, player_snake_lengh[id]-1)
  160. case 0.3:
  161. Top_update_easy(id, player_snake_lengh[id]-1)
  162. }
  163.  
  164. game_finish(id,1)
  165. }
  166. }
  167.  
  168. menu_for_game(id)
  169. set_task(g_game_time[id],"Displaygame",id+123456)
  170. }
  171. }
  172. public debuga(id)
  173. {
  174. for(new i=0;i<player_snake_lengh[id];i++)
  175. {
  176. server_print("x%d=%d y%d=%d",i,player_snake[id][i][0],i,player_snake[id][i][1])
  177. }
  178. }
  179. public gamestart(id)
  180. {
  181. if(!g_game_start[id])
  182. {
  183. g_game_start[id]=true
  184. player_snake_lengh[id]=1
  185.  
  186. player_snake[id][0][0]=table_x/2 //start x
  187. player_snake[id][0][1]=table_y/2 //start y
  188.  
  189. snake_food[id][0][0]=random_num(0,table_x-1)
  190. snake_food[id][0][1]=random_num(0,table_y-1)
  191.  
  192. set_task(g_game_time[id],"Displaygame",id+123456)
  193.  
  194. set_task(8.0,"set_food",id+223456)
  195.  
  196. if(player_snake_control[id])
  197. {
  198. onetime_start[id]=true
  199.  
  200. client_cmd(id,"bind ^"UPARROW^" ^"+snakeup^"")
  201. client_cmd(id,"bind ^"DOWNARROW^" ^"+snakedown^"")
  202. client_cmd(id,"bind ^"LEFTARROW^" ^"+snakeleft^"")
  203. client_cmd(id,"bind ^"RIGHTARROW^" ^"+snakeright^"")
  204. }
  205. }
  206. else
  207. {
  208. client_print(id,print_chat,"[Snake] Mar jatekban vagy")
  209. }
  210. }
  211. public game_finish(id,type)
  212. {
  213. g_game_start[id]=false
  214.  
  215. if(task_exists(id+123456))
  216. remove_task(id+123456)
  217. if(task_exists(id+223456))
  218. remove_task(id+223456)
  219.  
  220. if(player_snake_control[id])
  221. {
  222. client_cmd(id,"bind ^"UPARROW^" ^"+forward^"")
  223. client_cmd(id,"bind ^"DOWNARROW^" ^"+back^"")
  224. client_cmd(id,"bind ^"LEFTARROW^" ^"+left^"")
  225. client_cmd(id,"bind ^"RIGHTARROW^" ^"+right^"")
  226. }
  227.  
  228. if(type)
  229. client_print(id,print_chat,"[Snake] Befejezted a jatekot")
  230. else
  231. client_print(id,print_chat,"[Snake] Jatek ujrainditasa")
  232. }
  233. public menu_for_game(id)
  234. {
  235. new MenuBody[1024], len, keys;
  236. len = format(MenuBody, 1023, "\dSnake Game^n");
  237. if(!player_snake_control[id])
  238. {
  239. len += format(MenuBody[len], 1023-len, "^n\r1. \wLeft")
  240. keys |= (1<<0);
  241.  
  242. len += format(MenuBody[len], 1023-len, "^n\r2. \wRight")
  243. keys |= (1<<1);
  244.  
  245. len += format(MenuBody[len], 1023-len, "^n\r3. \wUp")
  246. keys |= (1<<2);
  247.  
  248. len += format(MenuBody[len], 1023-len, "^n\r4. \wDown")
  249. keys |= (1<<3);
  250.  
  251. len += format(MenuBody[len], 1023-len, "^n^n\r9. \wUjraindittas")
  252. keys |= (1<<8);
  253.  
  254. len += format(MenuBody[len], 1023-len, "^n\r0. \wKilepes^n")
  255. keys |= (1<<9);
  256. }
  257. else
  258. {
  259. len += format(MenuBody[len], 1023-len, "^n\r9. \wUjraindit")
  260. keys |= (1<<8);
  261.  
  262. len += format(MenuBody[len], 1023-len, "^n\r0. \wKilepes^n");
  263. keys |= (1<<9);
  264.  
  265. }
  266. len += format(MenuBody[len], 1023-len, "^n\wTaplalek:\r %d^n^n",player_snake_lengh[id]-1)
  267.  
  268.  
  269. for(new y=0;y<table_y;y++)
  270. {
  271. for(new x=0;x<table_x;x++)
  272. {
  273. new bool:find
  274.  
  275. for(new i=0;i<player_snake_lengh[id];i++)
  276. {
  277. if(player_snake[id][i][0]==x && player_snake[id][i][1]==y)
  278. {
  279. len += format(MenuBody[len], 1023-len, "\w%s",table_symbol)
  280.  
  281. find=true
  282. break
  283. }
  284. }
  285.  
  286.  
  287. switch(player_snake_way[id])
  288. {
  289. case 0:
  290. {
  291. if(snake_food[id][0][0]==player_snake[id][0][0] && snake_food[id][0][1]==player_snake[id][0][1])
  292. {
  293. snake_food[id][0][0]=-1
  294. snake_food[id][0][1]=-1
  295. player_snake_lengh[id]++
  296.  
  297. if(player_snake_sound[id])
  298. client_cmd(id, "spk buttons/blip2");
  299.  
  300. for(new i=(player_snake_lengh[id]-1);i>=1;i--)
  301. {
  302. player_snake[id][i][0]=player_snake[id][i-1][0]
  303. player_snake[id][i][1]=player_snake[id][i-1][1]
  304. }
  305.  
  306. player_snake[id][0][0]=player_snake[id][0][0]-1
  307.  
  308. }
  309. }
  310. case 1:
  311. {
  312. if(snake_food[id][0][0]==player_snake[id][0][0] && snake_food[id][0][1]==player_snake[id][0][1])
  313. {
  314. snake_food[id][0][0]=-1
  315. snake_food[id][0][1]=-1
  316. player_snake_lengh[id]++
  317.  
  318. if(player_snake_sound[id])
  319. client_cmd(id, "spk buttons/blip2");
  320.  
  321. for(new i=(player_snake_lengh[id]-1);i>=1;i--)
  322. {
  323. player_snake[id][i][0]=player_snake[id][i-1][0]
  324. player_snake[id][i][1]=player_snake[id][i-1][1]
  325. }
  326.  
  327. player_snake[id][0][0]=player_snake[id][0][0]+1
  328.  
  329. }
  330. }
  331. case 2:
  332. {
  333. if(snake_food[id][0][0]==player_snake[id][0][0] && snake_food[id][0][1]==player_snake[id][0][1]-1)
  334. {
  335. snake_food[id][0][0]=-1
  336. snake_food[id][0][1]=-1
  337. player_snake_lengh[id]++
  338.  
  339. if(player_snake_sound[id])
  340. client_cmd(id, "spk buttons/blip2");
  341.  
  342. for(new i=(player_snake_lengh[id]-1);i>=1;i--)
  343. {
  344. player_snake[id][i][0]=player_snake[id][i-1][0]
  345. player_snake[id][i][1]=player_snake[id][i-1][1]
  346. }
  347.  
  348. player_snake[id][0][1]=player_snake[id][0][1]-1
  349.  
  350. }
  351. }
  352. case 3:
  353. {
  354. if(snake_food[id][0][0]==player_snake[id][0][0] && snake_food[id][0][1]==player_snake[id][0][1])
  355. {
  356. snake_food[id][0][0]=-1
  357. snake_food[id][0][1]=-1
  358. player_snake_lengh[id]++
  359.  
  360. if(player_snake_sound[id])
  361. client_cmd(id, "spk buttons/blip2");
  362.  
  363. for(new i=(player_snake_lengh[id]-1);i>=1;i--)
  364. {
  365. player_snake[id][i][0]=player_snake[id][i-1][0]
  366. player_snake[id][i][1]=player_snake[id][i-1][1]
  367. }
  368.  
  369. player_snake[id][0][1]=player_snake[id][0][1]+1
  370.  
  371. }
  372. }
  373. }
  374.  
  375.  
  376. if(!find)
  377. {
  378. if(snake_food[id][0][0]==x && snake_food[id][0][1]==y)
  379. {
  380. len += format(MenuBody[len], 1023-len, "\y%s",table_symbol)
  381. }
  382. else
  383. len += format(MenuBody[len], 1023-len, "\r%s",table_symbol)
  384. }
  385.  
  386. if(x==(table_x-1))
  387. len += format(MenuBody[len], 1023-len, "^n")
  388. }
  389. }
  390.  
  391. show_menu(id, keys, MenuBody, -1, "Mygame");
  392.  
  393. }
  394. public Mygamemenu(id, key)
  395. {
  396. switch((key+1))
  397. {
  398. case 1:
  399. {
  400. menu_for_game(id)
  401. if((player_snake_way[id]!=WAY_RIGHT && player_snake_way[id]!=WAY_LEFT)|| player_snake_lengh[id]==1)
  402. change_way(id,WAY_LEFT)
  403. }
  404. case 2:
  405. {
  406. menu_for_game(id)
  407.  
  408. if((player_snake_way[id]!=WAY_LEFT && player_snake_way[id]!=WAY_RIGHT) || player_snake_lengh[id]==1)
  409. change_way(id,WAY_RIGHT)
  410. }
  411. case 3:
  412. {
  413. menu_for_game(id)
  414. if((player_snake_way[id]!=WAY_DOWN && player_snake_way[id]!=WAY_UP)|| player_snake_lengh[id]==1)
  415. change_way(id,WAY_UP)
  416. }
  417. case 4:
  418. {
  419. menu_for_game(id)
  420. if((player_snake_way[id]!=WAY_UP && player_snake_way[id]!=WAY_DOWN) || player_snake_lengh[id]==1)
  421. change_way(id,WAY_DOWN)
  422. }
  423. case 9:
  424. {
  425. game_finish(id,0)
  426. gamestart(id)
  427. }
  428. case 10:
  429. {
  430. game_finish(id,1)
  431. }
  432.  
  433. }
  434. return PLUGIN_HANDLED;
  435. }
  436. public change_way(id,way)
  437. {
  438. player_snake_way[id]=way
  439. }
  440. public snake_left_on(id)
  441. {
  442. if(((player_snake_way[id]!=WAY_RIGHT && player_snake_way[id]!=WAY_LEFT) || player_snake_lengh[id]==1))
  443. change_way(id,WAY_LEFT)
  444. }
  445. public snake_right_on(id)
  446. {
  447. if(((player_snake_way[id]!=WAY_LEFT && player_snake_way[id]!=WAY_RIGHT)|| player_snake_lengh[id]==1))
  448. change_way(id,WAY_RIGHT)
  449. }
  450. public snake_down_on(id)
  451. {
  452. if(((player_snake_way[id]!=WAY_UP && player_snake_way[id]!=WAY_DOWN) || player_snake_lengh[id]==1))
  453. change_way(id,WAY_DOWN)
  454. }
  455. public snake_up_on(id)
  456. {
  457. if(((player_snake_way[id]!=WAY_DOWN && player_snake_way[id]!=WAY_UP) || player_snake_lengh[id]==1))
  458. change_way(id,WAY_UP)
  459. }
  460. public start_menu_game(id)
  461. {
  462. new MenuBody[1024], len, keys;
  463. len = format(MenuBody, 1023, "\dSnake Game by BorJomi^n\rSnake Option's^n^n");
  464.  
  465. new level[20]
  466. get_level_name(g_game_time[id],level,19);
  467.  
  468.  
  469. len += format(MenuBody[len], 1023-len, "^n\r1. \wSzint: \y%s",level)
  470. keys |= (1<<0);
  471.  
  472. len += format(MenuBody[len], 1023-len, "^n\r2. \wHangok: %s",player_snake_sound[id]==true ? "\yOn":"\rOff")
  473. keys |= (1<<1);
  474.  
  475. len += format(MenuBody[len], 1023-len, "^n\r3. \wVezerles: %s",player_snake_control[id]==false ? "\rMenu Keys":"\yBinds UP,DOWN,LEFT,RIGHT")
  476. keys |= (1<<2);
  477.  
  478. if(player_snake_control[id])
  479. {
  480. len += format(MenuBody[len], 1023-len, "^n\r4. \wMentes \ride\w -> \ysnake_game.cfg")
  481. keys |= (1<<3);
  482. }
  483. else
  484. {
  485. len += format(MenuBody[len], 1023-len, "^n\r4. \d A mentes bekerul a snake_game.cfg-be")
  486. }
  487.  
  488. len += format(MenuBody[len], 1023-len, "^n^n\r5. \wTop10 snake jatekos")
  489. keys |= (1<<4);
  490.  
  491. len += format(MenuBody[len], 1023-len, "^n^n\r6. \wInditas")
  492. keys |= (1<<5);
  493.  
  494. len += format(MenuBody[len], 1023-len, "^n^n\r0. \wKilepes^n^n");
  495. keys |= (1<<9);
  496.  
  497. show_menu(id, keys, MenuBody, -1, "optiongame");
  498.  
  499. }
  500. public optionmenu(id, key)
  501. {
  502. switch((key+1))
  503. {
  504. case 1:
  505. {
  506. if(g_game_time[id]==0.3)
  507. g_game_time[id]=0.0
  508.  
  509. g_game_time[id]=g_game_time[id]+0.1
  510.  
  511. start_menu_game(id)
  512. }
  513. case 2:
  514. {
  515. if(player_snake_sound[id])
  516. player_snake_sound[id]=false
  517. else
  518. player_snake_sound[id]=true
  519. start_menu_game(id)
  520. }
  521. case 3:
  522. {
  523. if(player_snake_control[id])
  524. player_snake_control[id]=false
  525. else
  526. player_snake_control[id]=true
  527.  
  528. start_menu_game(id)
  529. }
  530. case 4:
  531. {
  532. client_cmd(id,"writecfg snake_game")
  533. client_print(id,print_chat,"[Snake] A te mentesed ide van mentve.-> ^"snake_game.cfg^"")
  534. start_menu_game(id)
  535. }
  536. case 5:
  537. {
  538. top_game(id)
  539. }
  540. case 6:
  541. {
  542. gamestart(id)
  543. }
  544. }
  545. return PLUGIN_HANDLED;
  546. }
  547. public top_game(id)
  548. {
  549. new MenuBody[1024], len, keys;
  550. len = format(MenuBody, 1023, "\rSnake Tops^n^n");
  551.  
  552. new level[20]
  553. get_level_name(g_game_time[id],level,19);
  554.  
  555.  
  556. len += format(MenuBody[len], 1023-len, "^n\r1. \wNehez")
  557. keys |= (1<<0);
  558.  
  559. len += format(MenuBody[len], 1023-len, "^n\r2. \wNormal")
  560. keys |= (1<<1);
  561.  
  562. len += format(MenuBody[len], 1023-len, "^n\r3. \wKonnyu")
  563. keys |= (1<<2);
  564.  
  565. len += format(MenuBody[len], 1023-len, "^n^n\r0. \wKilepes^n^n");
  566. keys |= (1<<9);
  567.  
  568. show_menu(id, keys, MenuBody, -1, "topgame");
  569.  
  570. }
  571. public topmenu(id, key)
  572. {
  573. switch((key+1))
  574. {
  575. case 1:
  576. {
  577. showtop10(id,extreme_names,extreme_food,"Nehez")
  578. top_game(id)
  579. }
  580. case 2:
  581. {
  582. showtop10(id,normal_names,normal_food,"Normal")
  583. top_game(id)
  584. }
  585. case 3:
  586. {
  587. showtop10(id,easy_names,easy_food,"Konnyu")
  588. top_game(id)
  589. }
  590. }
  591. return PLUGIN_HANDLED;
  592. }
  593. public get_level_name(Float:level, ret_name[], len)
  594. {
  595. new name[21]
  596. switch(level)
  597. {
  598. case 0.1:
  599. name = "Nehez"
  600. case 0.2:
  601. name = "Normal"
  602. case 0.3:
  603. name = "Konnyu"
  604. }
  605. formatex( ret_name, len, name )
  606. }
  607.  
  608.  
  609. public save_top10(level[],names[][],food[])
  610. {
  611. new mapname[33], profile[128]
  612. get_mapname(mapname, 32)
  613. formatex(profile, 127, "%s/%s.cfg", TOP10_DIR, level)
  614.  
  615. if( file_exists(profile) )
  616. {
  617. delete_file(profile)
  618. }
  619.  
  620. new Data[256];
  621. new f = fopen(profile, "at")
  622.  
  623. for(new i = 0; i < 10; i++)
  624. {
  625. formatex(Data, 255, "^"%s^" ^"%d^"^n",names[i],food[i])
  626. fputs(f, Data)
  627. }
  628. fclose(f);
  629. }
  630.  
  631. public read_top10(level[])
  632. {
  633. new mapname[33], profile[128], prodata[256]
  634. get_mapname(mapname, 32)
  635. formatex(profile, 127, "%s/%s.cfg", TOP10_DIR, level)
  636.  
  637. new f = fopen(profile, "rt" )
  638. new i = 0
  639. while( !feof(f) && i < 11)
  640. {
  641. fgets(f, prodata, 255)
  642. new food[4]
  643. if(equali(level,"Nehez"))
  644. {
  645. parse(prodata, extreme_names[i], 31, food, 3)
  646. extreme_food[i]=str_to_num(food)
  647. }
  648. else if(equali(level,"Normal"))
  649. {
  650. parse(prodata, normal_names[i], 31, food, 3)
  651. normal_food[i]=str_to_num(food)
  652. }
  653. else if(equali(level,"Konnyu"))
  654. {
  655. parse(prodata, easy_names[i], 31, food, 3)
  656. easy_food[i]=str_to_num(food)
  657. }
  658. i++;
  659. }
  660. fclose(f)
  661. }
  662. public Top_update_extreme(id, food)
  663. {
  664. new name[32];
  665. get_user_name(id, name, 31);
  666. new bool:Is_in_top10
  667. Is_in_top10 = false
  668.  
  669. for(new i = 0; i < 10; i++)
  670. {
  671. if( equali(extreme_names[i], name) )
  672. {
  673. Is_in_top10 = true
  674. }
  675. }
  676.  
  677. for (new i = 0; i < 10; i++)
  678. {
  679. new tmpfood = extreme_food[i]
  680.  
  681. if( food > extreme_food[i])
  682. {
  683. new pos = i
  684.  
  685. while( !equal(extreme_names[pos], name) && pos < 10 )
  686. {
  687. pos++;
  688. }
  689.  
  690. for (new j = pos; j > i; j--)
  691. {
  692. formatex(extreme_names[j], 31, extreme_names[j-1]);
  693. extreme_food[j] = extreme_food[j-1];
  694. }
  695.  
  696. formatex(extreme_names[i], 31, name);
  697. extreme_food[i] = food
  698.  
  699. save_top10("Extreme",extreme_names,extreme_food)
  700.  
  701. if( Is_in_top10 )
  702. {
  703.  
  704. if( food > tmpfood )
  705. {
  706.  
  707. if( (i + 1) == 1)
  708. {
  709. client_print(0,print_chat,"[Snake] %s gratulalunk,te %d taplalekot ettel",name,food)
  710. }
  711. else
  712. {
  713. client_print(0,print_chat,"[Snake]%s gratulalunk, bekerultel a %d nehez helyre mivel %d taplalekot ettel",name,(i+1),food)
  714. }
  715. }
  716. }
  717. else
  718. {
  719. if( (i + 1) == 1)
  720. {
  721. client_print(0,print_chat,"[Snake] %s gratulalunk,te %d taplalekot ettel",name,food)
  722. }
  723. else
  724. {
  725. client_print(0,print_chat,"[Snake]%s gratulalunk, bekerultel a %d nehez helyre mivel %d taplalekot ettel",name,(i+1),food)
  726. }
  727. }
  728.  
  729. return;
  730. }
  731. }
  732. }
  733. public Top_update_normal(id, food)
  734. {
  735. new name[32];
  736. get_user_name(id, name, 31);
  737. new bool:Is_in_top10
  738. Is_in_top10 = false
  739.  
  740. for(new i = 0; i < 10; i++)
  741. {
  742. if( equali(normal_names[i], name) )
  743. {
  744. Is_in_top10 = true
  745. }
  746. }
  747.  
  748. for (new i = 0; i < 10; i++)
  749. {
  750. new tmpfood = normal_food[i]
  751.  
  752. if( food > normal_food[i])
  753. {
  754. new pos = i
  755.  
  756. while( !equal(normal_names[pos], name) && pos < 10 )
  757. {
  758. pos++;
  759. }
  760.  
  761. for (new j = pos; j > i; j--)
  762. {
  763. formatex(normal_names[j], 31, normal_names[j-1]);
  764. normal_food[j] = normal_food[j-1];
  765. }
  766.  
  767. formatex(normal_names[i], 31, name);
  768. normal_food[i] = food
  769.  
  770. save_top10("Normal",normal_names,normal_food)
  771.  
  772. if( Is_in_top10 )
  773. {
  774. if( food > tmpfood )
  775. {
  776.  
  777. if( (i + 1) == 1)
  778. {
  779. client_print(0,print_chat,"[Snake]%s gratulalunk,te %d taplalekot ettel",name,food)
  780. }
  781. else
  782. {
  783. client_print(0,print_chat,"[Snake] %s gratulalunk, bekerultel a %d normal helyre mivel %d taplalekot ettel",name,(i+1),food)
  784. }
  785. }
  786. }
  787. else
  788. {
  789. if( (i + 1) == 1)
  790. {
  791. client_print(0,print_chat,"[Snake] %s gratulalunk,te %d taplalekot ettel",name,food)
  792. }
  793. else
  794. {
  795. client_print(0,print_chat,"[Snake] %s gratulalunk, bekerultel a %d normal helyre mivel %d taplalekot ettel",name,(i+1),food)
  796. }
  797. }
  798.  
  799. return;
  800. }
  801. }
  802. }
  803. public Top_update_easy(id, food)
  804. {
  805. new name[32];
  806. get_user_name(id, name, 31);
  807. new bool:Is_in_top10
  808. Is_in_top10 = false
  809.  
  810. for(new i = 0; i < 10; i++)
  811. {
  812. if( equali(easy_names[i], name) )
  813. {
  814. Is_in_top10 = true
  815. }
  816. }
  817.  
  818. for (new i = 0; i < 10; i++)
  819. {
  820. new tmpfood = easy_food[i]
  821.  
  822. if( food > easy_food[i])
  823. {
  824. new pos = i
  825.  
  826. while( !equal(easy_names[pos], name) && pos < 10 )
  827. {
  828. pos++;
  829. }
  830.  
  831. for (new j = pos; j > i; j--)
  832. {
  833. formatex(easy_names[j], 31, easy_names[j-1]);
  834. easy_food[j] = easy_food[j-1];
  835. }
  836.  
  837. formatex(easy_names[i], 31, name);
  838. easy_food[i] = food
  839.  
  840. save_top10("Konnyu",easy_names,easy_food)
  841.  
  842. if( Is_in_top10 )
  843. {
  844. if( food > tmpfood )
  845. {
  846.  
  847. if( (i + 1) == 1)
  848. {
  849. client_print(0,print_chat,"[Snake] %s gratulalunk,te %d taplalekot ettel",name,food)
  850. }
  851. else
  852. {
  853. client_print(0,print_chat,"[Snake] %s gratulalunk, bekerultel a %d konnyu helyre mivel %d taplalekot ettel",name,(i+1),food)
  854. }
  855. }
  856. }
  857. else
  858. {
  859. if( (i + 1) == 1)
  860. {
  861. client_print(0,print_chat,"[Snake] %s gratulalunk,te %d taplalekot ettel",name,food)
  862. }
  863. else
  864. {
  865. client_print(0,print_chat,"[Snake] %s gratulalunk, bekerultel a %d konnyu helyre mivel %d taplalekot ettel",name,(i+1),food)
  866. }
  867. }
  868.  
  869. return;
  870. }
  871. }
  872. }
  873. public showtop10(id,names[][],food[],level[])
  874. {
  875. new buffer[2048]
  876.  
  877. new len = formatex(buffer, 2047, "<body bgcolor=#FFFFFF><table width=100%% cellpadding=2 cellspacing=0 border=0>")
  878. len += formatex(buffer[len], 2047-len, "<tr align=center bgcolor=#52697B><th width=5%%> # <th width=35%% align=left> Player <th width=20%%> Food eated")
  879.  
  880. for (new i = 0; i < 10; i++)
  881. {
  882. if(food[i]== 0)
  883. {
  884. len += formatex(buffer[len], 2047-len, "<tr align=center%s><td> %d <td align=left> %s <td> %s", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), "-", "-")
  885. }
  886. else
  887. {
  888. while (containi(names[i], "<") != -1)
  889. replace(names[i], 129, "<", "&lt;")
  890. while (containi(names[i], ">") != -1)
  891. replace(names[i], 129, ">", "&gt;")
  892. len += formatex(buffer[len], 2047-len, "<tr align=center%s><td> %d <td align=left> %s <td> %d", ((i%2)==0) ? "" : " bgcolor=#A4BED6", (i+1), names[i],food[i])
  893. }
  894. }
  895.  
  896. len += formatex(buffer[len], 2047-len, "</table></body>")
  897. len += formatex(buffer[len], 2047-len, "<tr><Center><b>Snake Game jatekot keszitette BorJomi<BR>© 2011")
  898.  
  899. new info[21]
  900. formatex(info,20,"Snake %s Top",level)
  901. show_motd(id, buffer, info)
  902.  
  903. return PLUGIN_HANDLED
  904. }
  905.