hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.11. 09:40



Jelenlévő felhasználók

Jelenleg 531 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 530 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 3 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: quiz
HozzászólásElküldve: 2013.03.19. 19:42 
Offline
Beavatott
Avatar

Csatlakozott: 2012.08.03. 01:07
Hozzászólások: 91
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 8 alkalommal
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2.  
  3. #include <amxmisc>
  4.  
  5. #include <cstrike>
  6.  
  7.  
  8.  
  9. new plugin[] = "Quiz"
  10.  
  11. new version[] = "0.6"
  12.  
  13. new author[] = "Doombringer"
  14.  
  15.  
  16.  
  17. new enabled, use_mode, reward, timelimit, min_display, max_display, display_mode
  18.  
  19.  
  20.  
  21. #define MAX_QUESTIONS 200
  22.  
  23. #define MAX_NUM_OF_CHAR 190
  24.  
  25.  
  26.  
  27. //#define MIN_TIME 20.0
  28.  
  29. //#define MAX_TIME 50.0
  30.  
  31.  
  32.  
  33.  
  34.  
  35. new Questions[MAX_QUESTIONS][MAX_NUM_OF_CHAR]
  36.  
  37. new Answers[MAX_QUESTIONS][MAX_NUM_OF_CHAR]
  38.  
  39. new bool:alreadyused[MAX_QUESTIONS]
  40.  
  41. new num_of_questions
  42.  
  43.  
  44.  
  45. new used_question[1][MAX_NUM_OF_CHAR]
  46.  
  47. new used_answer[1][MAX_NUM_OF_CHAR]
  48.  
  49. new text[MAX_NUM_OF_CHAR]
  50.  
  51.  
  52.  
  53. new answered_questions[32]
  54.  
  55.  
  56.  
  57. new quiz_file[62]
  58.  
  59. new g_MyMsgSync
  60.  
  61.  
  62.  
  63. public plugin_init()
  64.  
  65. {
  66.  
  67. register_plugin(plugin,version,author)
  68.  
  69.  
  70.  
  71. register_clcmd("say","handle_say")
  72.  
  73. register_clcmd("say_team","handle_say")
  74.  
  75.  
  76.  
  77. new config[64]
  78.  
  79. get_configsdir(config,63)
  80.  
  81.  
  82.  
  83. formatex(quiz_file,61,"%s/quiz_file.ini",config)
  84.  
  85.  
  86.  
  87. enabled = register_cvar("quiz_enabled","1")
  88.  
  89. use_mode = register_cvar("quiz_usemode","0")
  90.  
  91.  
  92.  
  93. if(is_module_loaded("cstrike") != -1)
  94.  
  95. reward = register_cvar("quiz_reward","2000")
  96.  
  97.  
  98.  
  99. timelimit = register_cvar("quiz_timelimit","120")
  100.  
  101.  
  102.  
  103. min_display = register_cvar("quiz_min_display","20")
  104.  
  105. max_display = register_cvar("quiz_max_display","50")
  106.  
  107. display_mode = register_cvar("quiz_display_mode","0")
  108.  
  109.  
  110.  
  111. register_cvar("amx_quiz_version",version,FCVAR_SERVER)
  112.  
  113.  
  114.  
  115. g_MyMsgSync = CreateHudSyncObj()
  116.  
  117.  
  118.  
  119. if(!file_exists(quiz_file))
  120.  
  121. {
  122.  
  123. new file = fopen(quiz_file,"wt")
  124.  
  125. fprintf(file, "; Quiz file^n")
  126.  
  127. fprintf(file, "; Here goes all questions/answers^n")
  128.  
  129. fprintf(file, "; Questions/Answers goes like ^"what is 1+1?^" ^"2^"^n")
  130.  
  131. fclose(file)
  132.  
  133. }
  134.  
  135.  
  136.  
  137. load_quiz()
  138.  
  139.  
  140.  
  141. pick_question()
  142.  
  143.  
  144.  
  145. set_display_time()
  146.  
  147.  
  148.  
  149. return PLUGIN_CONTINUE
  150.  
  151. }
  152.  
  153.  
  154.  
  155. public say(id, text_to_say[])
  156.  
  157. {
  158.  
  159. //remove_quotes(text_to_say)
  160.  
  161.  
  162.  
  163. if(get_pcvar_num(display_mode) == 0)
  164.  
  165. {
  166.  
  167. client_print(id, print_chat, "%s", text_to_say)
  168.  
  169. }
  170.  
  171. else if(get_pcvar_num(display_mode) == 1)
  172.  
  173. {
  174.  
  175. set_hudmessage(random(255), random(255), random(255), -1.0, 0.37, 0, 6.0, 7.0, 0.1, 0.2)
  176.  
  177. //show_hudmessage(id, "%s", text_to_say)
  178.  
  179. ShowSyncHudMsg(id, g_MyMsgSync, "%s", text_to_say)
  180.  
  181. }
  182.  
  183. else if(get_pcvar_num(display_mode) == 2)
  184.  
  185. {
  186.  
  187. client_print(id, print_chat, "%s", text_to_say)
  188.  
  189.  
  190.  
  191. set_hudmessage(random(255), random(255), random(255), -1.0, 0.37, 0, 6.0, 7.0, 0.1, 0.2)
  192.  
  193. ShowSyncHudMsg(id, g_MyMsgSync, "%s", text_to_say)
  194.  
  195. }
  196.  
  197.  
  198.  
  199. return PLUGIN_CONTINUE
  200.  
  201. }
  202.  
  203.  
  204.  
  205.  
  206.  
  207. public load_quiz()
  208.  
  209. {
  210.  
  211. if(get_pcvar_num(enabled) < 1)
  212.  
  213. return PLUGIN_HANDLED
  214.  
  215.  
  216.  
  217. new file = fopen(quiz_file,"rt")
  218.  
  219.  
  220.  
  221. if(!file)
  222.  
  223. {
  224.  
  225. server_print("[%s, load_quiz()] Error, File not found!",plugin)
  226.  
  227. return PLUGIN_HANDLED
  228.  
  229. }
  230.  
  231.  
  232.  
  233. new f_question[MAX_NUM_OF_CHAR], f_answer[MAX_NUM_OF_CHAR]
  234.  
  235.  
  236.  
  237. new Text[MAX_NUM_OF_CHAR]
  238.  
  239.  
  240.  
  241. while(!feof(file) && num_of_questions < MAX_QUESTIONS)
  242.  
  243. {
  244.  
  245. fgets(file, Text, MAX_NUM_OF_CHAR-1)
  246.  
  247.  
  248.  
  249. if( Text[0] == ';' || equal(Text,"") )
  250.  
  251. continue;
  252.  
  253.  
  254.  
  255. parse(Text, f_question, MAX_NUM_OF_CHAR-1, f_answer, MAX_NUM_OF_CHAR-1)
  256.  
  257.  
  258.  
  259. num_of_questions++
  260.  
  261.  
  262.  
  263. //trim(f_question)
  264.  
  265. //trim(f_answer)
  266.  
  267.  
  268.  
  269. remove_quotes(f_answer)
  270.  
  271.  
  272.  
  273. Questions[num_of_questions] = f_question
  274.  
  275. Answers[num_of_questions] = f_answer
  276.  
  277. }
  278.  
  279.  
  280.  
  281. fclose(file)
  282.  
  283.  
  284.  
  285. if(num_of_questions < 1)
  286.  
  287. {
  288.  
  289. server_print("[%s] ERROR! You need more questions, you have %d, you need more then 2",plugin, num_of_questions)
  290.  
  291. pause("ad")
  292.  
  293. }
  294.  
  295.  
  296.  
  297. server_print("[%s] Successfully loaded %d questions",plugin,num_of_questions)
  298.  
  299.  
  300.  
  301. return PLUGIN_HANDLED
  302.  
  303. }
  304.  
  305.  
  306.  
  307. public display_question()
  308.  
  309. {
  310.  
  311. new Players[32], playerCount, id
  312.  
  313.  
  314.  
  315. formatex(text, MAX_NUM_OF_CHAR-1,"Question: %s", used_question[0])
  316.  
  317.  
  318.  
  319. if(get_pcvar_num(use_mode) == 0)
  320.  
  321. {
  322.  
  323. get_players(Players, playerCount, "b")
  324.  
  325.  
  326.  
  327. for(new i=1;i<playerCount;i++)
  328.  
  329. {
  330.  
  331. id = Players[i]
  332.  
  333.  
  334.  
  335. say(id,text)
  336.  
  337. }
  338.  
  339. }
  340.  
  341. else if(get_pcvar_num(use_mode) == 1)
  342.  
  343. {
  344.  
  345. get_players(Players, playerCount, "a")
  346.  
  347.  
  348.  
  349. for(new i=1;i<playerCount;i++)
  350.  
  351. {
  352.  
  353. id = Players[i]
  354.  
  355.  
  356.  
  357. say(id,text)
  358.  
  359. }
  360.  
  361. }
  362.  
  363. else if(get_pcvar_num(use_mode) == 2)
  364.  
  365. say(0,text)
  366.  
  367.  
  368.  
  369. set_display_time()
  370.  
  371. }
  372.  
  373.  
  374.  
  375. public take_new_question()
  376.  
  377. {
  378.  
  379. new Players[32], playerCount, id
  380.  
  381.  
  382.  
  383. formatex(text, MAX_NUM_OF_CHAR-1,"[%s] We now passed the time-limit, picking new question...", plugin)
  384.  
  385.  
  386.  
  387. if(get_pcvar_num(use_mode) == 0)
  388.  
  389. {
  390.  
  391. get_players(Players, playerCount, "b")
  392.  
  393.  
  394.  
  395. for(new i=1;i<playerCount;i++)
  396.  
  397. {
  398.  
  399. id = Players[i]
  400.  
  401.  
  402.  
  403. say(id,text)
  404.  
  405. }
  406.  
  407. }
  408.  
  409. else if(get_pcvar_num(use_mode) == 1)
  410.  
  411. {
  412.  
  413. get_players(Players, playerCount, "a")
  414.  
  415.  
  416.  
  417. for(new i=1;i<playerCount;i++)
  418.  
  419. {
  420.  
  421. id = Players[i]
  422.  
  423.  
  424.  
  425. say(id,text)
  426.  
  427. }
  428.  
  429. }
  430.  
  431. else if(get_pcvar_num(use_mode) == 2)
  432.  
  433. say(0,text)
  434.  
  435.  
  436.  
  437. pick_question()
  438.  
  439. }
  440.  
  441.  
  442.  
  443. public set_timelimit()
  444.  
  445. {
  446.  
  447. if( (get_pcvar_num(timelimit) < 1) || (get_pcvar_num(enabled) < 1) )
  448.  
  449. return PLUGIN_CONTINUE
  450.  
  451.  
  452.  
  453. set_task(float(get_pcvar_num(timelimit)),"take_new_question", 33523)
  454.  
  455.  
  456.  
  457. return PLUGIN_CONTINUE
  458.  
  459. }
  460.  
  461.  
  462.  
  463. stock set_display_time()
  464.  
  465. {
  466.  
  467. if(get_pcvar_num(enabled) < 1)
  468.  
  469. return PLUGIN_CONTINUE
  470.  
  471.  
  472.  
  473. set_task(random_float(float(get_pcvar_num(min_display)),float(get_pcvar_num(max_display))),"display_question")
  474.  
  475.  
  476.  
  477. return PLUGIN_CONTINUE
  478.  
  479. }
  480.  
  481.  
  482.  
  483. public pick_question()
  484.  
  485. {
  486.  
  487. new number = random_num(1,num_of_questions)
  488.  
  489.  
  490.  
  491. if(alreadyused[number] == true)
  492.  
  493. set_task(0.1,"pick_question")
  494.  
  495.  
  496.  
  497. //used_question[0] = Questions[number]
  498.  
  499. //used_answer[0] = Answers[number]
  500.  
  501.  
  502.  
  503. copy(used_question[0], MAX_NUM_OF_CHAR-1, Questions[number])
  504.  
  505. copy(used_answer[0], MAX_NUM_OF_CHAR-1, Answers[number])
  506.  
  507.  
  508.  
  509. alreadyused[number] = true
  510.  
  511.  
  512.  
  513. set_timelimit()
  514.  
  515.  
  516.  
  517. return PLUGIN_HANDLED
  518.  
  519. }
  520.  
  521.  
  522.  
  523. give_reward(id, name[])
  524.  
  525. {
  526.  
  527. if(get_pcvar_num(use_mode) == 0)
  528.  
  529. {
  530.  
  531. new Players[32], playerCount, player
  532.  
  533.  
  534.  
  535. get_players(Players, playerCount, "b")
  536.  
  537.  
  538.  
  539. for(new i=1;i<playerCount;i++)
  540.  
  541. {
  542.  
  543. player = Players[i]
  544.  
  545.  
  546.  
  547. if(get_pcvar_num(display_mode) == 0)
  548.  
  549. {
  550.  
  551. formatex(text, MAX_NUM_OF_CHAR-1,"%s answered right on the question: %s",name,used_question[0])
  552.  
  553. say(player, text)
  554.  
  555.  
  556.  
  557. formatex(text, MAX_NUM_OF_CHAR-1,"%s has answered right to %d %s now",name,answered_questions[id], answered_questions[id] == 1 ? "question":"questions")
  558.  
  559. say(player, text)
  560.  
  561. }
  562.  
  563. else if(get_pcvar_num(display_mode) == 1)
  564.  
  565. {
  566.  
  567. formatex(text, MAX_NUM_OF_CHAR-1,"%s answered right on the question: %s^n%s has answered right to %d %s now",name,used_question[0],name,answered_questions[id], answered_questions[id] == 1 ? "question":"questions")
  568.  
  569. say(player, text)
  570.  
  571. }
  572.  
  573. }
  574.  
  575. }
  576.  
  577. else if(get_pcvar_num(use_mode) == 1)
  578.  
  579. {
  580.  
  581. new Players[32], playerCount, player
  582.  
  583.  
  584.  
  585. get_players(Players, playerCount, "a")
  586.  
  587.  
  588.  
  589. for(new i=1;i<playerCount;i++)
  590.  
  591. {
  592.  
  593. player = Players[i]
  594.  
  595.  
  596.  
  597. if(get_pcvar_num(display_mode) == 0)
  598.  
  599. {
  600.  
  601. formatex(text, MAX_NUM_OF_CHAR-1,"%s answered right on the question: %s",name,used_question[0])
  602.  
  603. say(player, text)
  604.  
  605.  
  606.  
  607. formatex(text, MAX_NUM_OF_CHAR-1,"%s has answered right to %d %s now",name,answered_questions[id], answered_questions[id] == 1 ? "question":"questions")
  608.  
  609. say(player, text)
  610.  
  611. }
  612.  
  613. else if(get_pcvar_num(display_mode) == 1)
  614.  
  615. {
  616.  
  617. formatex(text, MAX_NUM_OF_CHAR-1,"%s answered right on the question: %s^n%s has answered right to %d %s now",name,used_question[0],name,answered_questions[id], answered_questions[id] == 1 ? "question":"questions")
  618.  
  619. say(player, text)
  620.  
  621. }
  622.  
  623. }
  624.  
  625. }
  626.  
  627. else if(get_pcvar_num(use_mode) == 2)
  628.  
  629. {
  630.  
  631. if(get_pcvar_num(display_mode) == 0)
  632.  
  633. {
  634.  
  635. formatex(text, MAX_NUM_OF_CHAR-1,"%s answered right on the question: %s",name,used_question[0])
  636.  
  637. say(0, text)
  638.  
  639.  
  640.  
  641. formatex(text, MAX_NUM_OF_CHAR-1,"%s has answered right to %d %s now",name,answered_questions[id], answered_questions[id] == 1 ? "question":"questions")
  642.  
  643. say(0, text)
  644.  
  645. }
  646.  
  647. else if(get_pcvar_num(display_mode) == 1)
  648.  
  649. {
  650.  
  651. formatex(text, MAX_NUM_OF_CHAR-1,"%s answered right on the question: %s^n%s has answered right to %d %s now",name,used_question[0],name,answered_questions[id], answered_questions[id] == 1 ? "question":"questions")
  652.  
  653. say(0, text)
  654.  
  655. }
  656.  
  657. }
  658.  
  659.  
  660.  
  661. if(is_module_loaded("cstrike") != -1)
  662.  
  663. {
  664.  
  665. new R = get_pcvar_num(reward)
  666.  
  667. formatex(text, MAX_NUM_OF_CHAR-1,"You got %d $ for answering right", R)
  668.  
  669. say(id, text)
  670.  
  671.  
  672.  
  673. cs_set_user_money(id, cs_get_user_money(id) + R)
  674.  
  675. }
  676.  
  677.  
  678.  
  679. return PLUGIN_CONTINUE
  680.  
  681. }
  682.  
  683.  
  684.  
  685. public handle_say(id)
  686.  
  687. {
  688.  
  689. if(get_pcvar_num(enabled) < 1)
  690.  
  691. return PLUGIN_CONTINUE
  692.  
  693.  
  694.  
  695. if( (get_pcvar_num(use_mode) == 0) && (is_user_alive(id)) )
  696.  
  697. return PLUGIN_CONTINUE
  698.  
  699.  
  700.  
  701. else if( (get_pcvar_num(use_mode) == 1) && (!is_user_alive(id)) )
  702.  
  703. return PLUGIN_CONTINUE
  704.  
  705.  
  706.  
  707. new Arg[64]
  708.  
  709.  
  710.  
  711. read_args(Arg,63)
  712.  
  713.  
  714.  
  715. if(contain(Arg, used_answer[0]) != -1)
  716.  
  717. {
  718.  
  719. answered_questions[id]++
  720.  
  721.  
  722.  
  723. remove_task(33523)
  724.  
  725.  
  726.  
  727. new name[32]
  728.  
  729. get_user_name(id,name,31)
  730.  
  731.  
  732.  
  733. give_reward(id, name)
  734.  
  735. pick_question()
  736.  
  737. }
  738.  
  739.  
  740.  
  741. if(contain(Arg, "/question") != -1)
  742.  
  743. {
  744.  
  745. formatex(text, MAX_NUM_OF_CHAR-1,"Question: %s", used_question[0])
  746.  
  747. say(id, text)
  748.  
  749. }
  750.  
  751.  
  752.  
  753. return PLUGIN_CONTINUE
  754.  
  755. }
  756.  

ezt valaki áttudja irni ugy hogy ne kelljen /question és /answer-t irni és minden kör elején jöjjön a kérdés?
ui:javitva

_________________
Kép


A hozzászólást 1 alkalommal szerkesztették, utoljára kecske 2013.03.20. 06:57-kor.

Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: quiz
HozzászólásElküldve: 2013.03.19. 19:46 
Offline
Őskövület
Avatar

Csatlakozott: 2012.03.22. 18:22
Hozzászólások: 2978
Megköszönt másnak: 115 alkalommal
Megköszönték neki: 368 alkalommal
Evvel most mit kell csinálni? :D

_________________
Blasenkampfwagen

https://discord.gg/uBYnNnZP
GTA:PURSUIT MTA


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: quiz
HozzászólásElküldve: 2013.03.19. 19:47 
Offline
Veterán
Avatar

Csatlakozott: 2012.09.01. 22:19
Hozzászólások: 1697
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 302 alkalommal
ott a kérdés, csak bele írta a sma-ba, kérlek javítsd vagy kuka lesz..

_________________
Valami új kezdete...
Kép
Egyedi pluginok készítése pénzért (Banki átutalás, PayPal) -> Privát üzenet


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 3 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 28 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole