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