hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.02. 03:24



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: Google [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  [ 6 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Kör eleji kérdés, csík
HozzászólásElküldve: 2013.03.17. 01:17 
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
Helo!
Egy olyan plugint láttam a tegnapi nap folyamán, hogy minden kör elején jön egy kérdés HUD-ban és aki leghamarabb beirja chetbe a helyes választ az kap vmennyi pénz + desit, és nagyon megtetszett és beraknám a szeromra.
Illetve ugye van egy olyan plugin ami egy csikot huz ahonnan lelöttek, és annak egy tovább fejl. verzióját keresem ahol ha meghalsz (vagy spec.-ben vagy) mindenki "csíkját" látod
Válaszokat előre is köszönöm.:)

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Kör eleji kérdés, csík
HozzászólásElküldve: 2013.03.17. 18:21 
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
talán ez:
http://forums.alliedmods.net/showthread.php?t=40321

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

Ők köszönték meg crazy` nek ezt a hozzászólást: kecske (2013.03.18. 16:51)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Kör eleji kérdés, csík
HozzászólásElküldve: 2013.03.18. 16:58 
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
igen köszönöm!
a csikosról nemtudsz valamit?
ez az eredeti:
SMA Forráskód: [ Mindet kijelol ]
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3.  
  4.  
  5. #include <amxmodx>
  6.  
  7. #include <engine>
  8.  
  9. #include <fakemeta>
  10.  
  11. #include <hamsandwich>
  12.  
  13.  
  14.  
  15. #define PLUGIN "Bomb Blast"
  16.  
  17. #define VERSION "0.4"
  18.  
  19. #define AUTHOR "K.K.Lv"
  20.  
  21.  
  22.  
  23. new HamHook:g_BombThink
  24.  
  25.  
  26.  
  27. new g_Bomb
  28.  
  29.  
  30.  
  31. new g_SpriteCircle
  32.  
  33.  
  34.  
  35. new Float:g_fExplodeTime
  36.  
  37. new Float:g_fNextBlastGameTime
  38.  
  39.  
  40.  
  41. new g_pCvarColor
  42.  
  43.  
  44.  
  45. public plugin_precache()
  46.  
  47. {
  48.  
  49. g_SpriteCircle = precache_model( "sprites/shockwave.spr" )
  50.  
  51. }
  52.  
  53.  
  54.  
  55. public plugin_init()
  56.  
  57. {
  58.  
  59. register_plugin( PLUGIN, VERSION, AUTHOR )
  60.  
  61.  
  62.  
  63. g_pCvarColor = register_cvar( "bb_color", "250250250" ) //RRRGGGBBB
  64.  
  65.  
  66.  
  67. if( find_ent_by_class( FM_NULLENT, "func_bomb_target" ) || find_ent_by_class( FM_NULLENT, "info_bomb_target" ) )
  68.  
  69. {
  70.  
  71. g_BombThink = RegisterHam( Ham_Think, "grenade", "Bomb_Think", 1 )
  72.  
  73.  
  74.  
  75. register_event( "HLTV", "Stop", "a", "1=0", "2=0" )
  76.  
  77. register_logevent( "Stop", 2, "1=Round_End" )
  78.  
  79.  
  80.  
  81. register_logevent( "PlantedBomb", 3, "2=Planted_The_Bomb" )
  82.  
  83. }
  84.  
  85. }
  86.  
  87.  
  88.  
  89. public Stop()
  90.  
  91. {
  92.  
  93. g_Bomb = 0
  94.  
  95. DisableHamForward( g_BombThink)
  96.  
  97. }
  98.  
  99.  
  100.  
  101. public PlantedBomb()
  102.  
  103. {
  104.  
  105. new C4 = FM_NULLENT
  106.  
  107. while( ( C4 = find_ent_by_class( C4, "grenade" ) ) )
  108.  
  109. {
  110.  
  111. if ( get_pdata_int( C4, 96 ) & ( 1<<8 ) )
  112.  
  113. {
  114.  
  115. g_Bomb = C4
  116.  
  117. g_fExplodeTime = get_pdata_float( g_Bomb, 100 )
  118.  
  119. EnableHamForward( g_BombThink )
  120.  
  121.  
  122.  
  123. g_fNextBlastGameTime = 0.0
  124.  
  125. break
  126.  
  127. }
  128.  
  129. }
  130.  
  131. }
  132.  
  133.  
  134.  
  135. public Bomb_Think( iEnt )
  136.  
  137. {
  138.  
  139. if ( g_Bomb != iEnt )
  140.  
  141. return
  142.  
  143.  
  144.  
  145. new Float:fGameTime = get_gametime()
  146.  
  147. if( g_fNextBlastGameTime > fGameTime )
  148.  
  149. return
  150.  
  151.  
  152.  
  153. new Float:fTime, iTime, Float:fThinkTime
  154.  
  155.  
  156.  
  157. fTime = g_fExplodeTime - fGameTime
  158.  
  159. iTime = floatround( fTime )
  160.  
  161.  
  162.  
  163. if ( iTime > 13 ) fThinkTime = 1.0
  164.  
  165. else if ( iTime > 7 ) fThinkTime = 0.5
  166.  
  167. else fThinkTime = 0.3
  168.  
  169.  
  170.  
  171. g_fNextBlastGameTime = fGameTime + fThinkTime
  172.  
  173.  
  174.  
  175. create_blast_circle( iEnt )
  176.  
  177. }
  178.  
  179.  
  180.  
  181. public create_blast_circle( iEnt ) {
  182.  
  183. new Float:fOrigin[ 3 ]
  184.  
  185.  
  186.  
  187. pev( iEnt, pev_origin, fOrigin )
  188.  
  189.  
  190.  
  191. new szColor[ 12 ], iColor[ 3 ]
  192.  
  193. get_pcvar_string( g_pCvarColor, szColor, charsmax( szColor ) )
  194.  
  195.  
  196.  
  197. iColor[ 2 ] = str_to_num( szColor[ 6 ] )
  198.  
  199.  
  200.  
  201. szColor[ 6 ] = 0
  202.  
  203. iColor[ 1 ] = str_to_num( szColor[ 3 ] )
  204.  
  205.  
  206.  
  207. szColor[ 3 ] = 0
  208.  
  209. iColor[ 0 ] = str_to_num( szColor[ 0 ] )
  210.  
  211.  
  212.  
  213. engfunc( EngFunc_MessageBegin, MSG_BROADCAST, SVC_TEMPENTITY, fOrigin )
  214.  
  215. write_byte( TE_BEAMCYLINDER )
  216.  
  217. engfunc( EngFunc_WriteCoord, fOrigin[ 0 ] )
  218.  
  219. engfunc( EngFunc_WriteCoord, fOrigin[ 1 ] )
  220.  
  221. engfunc( EngFunc_WriteCoord, fOrigin[ 2 ] )
  222.  
  223. engfunc( EngFunc_WriteCoord, fOrigin[ 0 ] )
  224.  
  225. engfunc( EngFunc_WriteCoord, fOrigin[ 1 ] )
  226.  
  227. engfunc( EngFunc_WriteCoord, fOrigin[ 2 ] + 125 )
  228.  
  229. write_short( g_SpriteCircle )
  230.  
  231. write_byte( 0 )
  232.  
  233. write_byte( 1 )
  234.  
  235. write_byte( 6 )
  236.  
  237. write_byte( 8 )
  238.  
  239. write_byte( 1 )
  240.  
  241. write_byte( iColor[ 0 ] )
  242.  
  243. write_byte( iColor[ 1 ] )
  244.  
  245. write_byte( iColor[ 2 ] )
  246.  
  247. write_byte( 128 )
  248.  
  249. write_byte( 5 )
  250.  
  251. message_end()
  252.  
  253. }
  254.  
  255.  

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Kör eleji kérdés, csík
HozzászólásElküldve: 2013.03.18. 17:02 
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
kék volt? mert ha kék akkor teljesen más pluginról beszélsz. (http://amxmodx.crys.hu/site/?p=pluginz&c=l&f=asdlol123)

_________________
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ás témája: Re: Kör eleji kérdés, csík
HozzászólásElküldve: 2013.03.18. 17:51 
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. #include <amxmisc>
  3. #include <cstrike>
  4.  
  5. new plugin[] = "Quiz"
  6. new version[] = "0.6"
  7. new author[] = "Doombringer"
  8.  
  9. new enabled, use_mode, reward, timelimit, min_display, max_display, display_mode
  10.  
  11. #define MAX_QUESTIONS 200
  12. #define MAX_NUM_OF_CHAR 190
  13.  
  14. //#define MIN_TIME 20.0
  15. //#define MAX_TIME 50.0
  16.  
  17.  
  18. new Questions[MAX_QUESTIONS][MAX_NUM_OF_CHAR]
  19. new Answers[MAX_QUESTIONS][MAX_NUM_OF_CHAR]
  20. new bool:alreadyused[MAX_QUESTIONS]
  21. new num_of_questions
  22.  
  23. new used_question[1][MAX_NUM_OF_CHAR]
  24. new used_answer[1][MAX_NUM_OF_CHAR]
  25. new text[MAX_NUM_OF_CHAR]
  26.  
  27. new answered_questions[32]
  28.  
  29. new quiz_file[62]
  30. new g_MyMsgSync
  31.  
  32. public plugin_init()
  33. {
  34. register_plugin(plugin,version,author)
  35.  
  36. register_clcmd("say","handle_say")
  37. register_clcmd("say_team","handle_say")
  38.  
  39. new config[64]
  40. get_configsdir(config,63)
  41.  
  42. formatex(quiz_file,61,"%s/quiz_file.ini",config)
  43.  
  44. enabled = register_cvar("quiz_enabled","1")
  45. use_mode = register_cvar("quiz_usemode","0")
  46.  
  47. if(is_module_loaded("cstrike") != -1)
  48. reward = register_cvar("quiz_reward","2000")
  49.  
  50. timelimit = register_cvar("quiz_timelimit","120")
  51.  
  52. min_display = register_cvar("quiz_min_display","20")
  53. max_display = register_cvar("quiz_max_display","50")
  54. display_mode = register_cvar("quiz_display_mode","0")
  55.  
  56. register_cvar("amx_quiz_version",version,FCVAR_SERVER)
  57.  
  58. g_MyMsgSync = CreateHudSyncObj()
  59.  
  60. if(!file_exists(quiz_file))
  61. {
  62. new file = fopen(quiz_file,"wt")
  63. fprintf(file, "; Quiz file^n")
  64. fprintf(file, "; Here goes all questions/answers^n")
  65. fprintf(file, "; Questions/Answers goes like ^"what is 1+1?^" ^"2^"^n")
  66. fclose(file)
  67. }
  68.  
  69. load_quiz()
  70.  
  71. pick_question()
  72.  
  73. set_display_time()
  74.  
  75. return PLUGIN_CONTINUE
  76. }
  77.  
  78. public say(id, text_to_say[])
  79. {
  80. //remove_quotes(text_to_say)
  81.  
  82. if(get_pcvar_num(display_mode) == 0)
  83. {
  84. client_print(id, print_chat, "%s", text_to_say)
  85. }
  86. else if(get_pcvar_num(display_mode) == 1)
  87. {
  88. set_hudmessage(random(255), random(255), random(255), -1.0, 0.37, 0, 6.0, 7.0, 0.1, 0.2)
  89. //show_hudmessage(id, "%s", text_to_say)
  90. ShowSyncHudMsg(id, g_MyMsgSync, "%s", text_to_say)
  91. }
  92. else if(get_pcvar_num(display_mode) == 2)
  93. {
  94. client_print(id, print_chat, "%s", text_to_say)
  95.  
  96. set_hudmessage(random(255), random(255), random(255), -1.0, 0.37, 0, 6.0, 7.0, 0.1, 0.2)
  97. ShowSyncHudMsg(id, g_MyMsgSync, "%s", text_to_say)
  98. }
  99.  
  100. return PLUGIN_CONTINUE
  101. }
  102.  
  103.  
  104. public load_quiz()
  105. {
  106. if(get_pcvar_num(enabled) < 1)
  107. return PLUGIN_HANDLED
  108.  
  109. new file = fopen(quiz_file,"rt")
  110.  
  111. if(!file)
  112. {
  113. server_print("[%s, load_quiz()] Error, File not found!",plugin)
  114. return PLUGIN_HANDLED
  115. }
  116.  
  117. new f_question[MAX_NUM_OF_CHAR], f_answer[MAX_NUM_OF_CHAR]
  118.  
  119. new Text[MAX_NUM_OF_CHAR]
  120.  
  121. while(!feof(file) && num_of_questions < MAX_QUESTIONS)
  122. {
  123. fgets(file, Text, MAX_NUM_OF_CHAR-1)
  124.  
  125. if( Text[0] == ';' || equal(Text,"") )
  126. continue;
  127.  
  128. parse(Text, f_question, MAX_NUM_OF_CHAR-1, f_answer, MAX_NUM_OF_CHAR-1)
  129.  
  130. num_of_questions++
  131.  
  132. //trim(f_question)
  133. //trim(f_answer)
  134.  
  135. remove_quotes(f_answer)
  136.  
  137. Questions[num_of_questions] = f_question
  138. Answers[num_of_questions] = f_answer
  139. }
  140.  
  141. fclose(file)
  142.  
  143. if(num_of_questions < 1)
  144. {
  145. server_print("[%s] ERROR! You need more questions, you have %d, you need more then 2",plugin, num_of_questions)
  146. pause("ad")
  147. }
  148.  
  149. server_print("[%s] Successfully loaded %d questions",plugin,num_of_questions)
  150.  
  151. return PLUGIN_HANDLED
  152. }
  153.  
  154. public display_question()
  155. {
  156. new Players[32], playerCount, id
  157.  
  158. formatex(text, MAX_NUM_OF_CHAR-1,"Question: %s", used_question[0])
  159.  
  160. if(get_pcvar_num(use_mode) == 0)
  161. {
  162. get_players(Players, playerCount, "b")
  163.  
  164. for(new i=1;i<playerCount;i++)
  165. {
  166. id = Players[i]
  167.  
  168. say(id,text)
  169. }
  170. }
  171. else if(get_pcvar_num(use_mode) == 1)
  172. {
  173. get_players(Players, playerCount, "a")
  174.  
  175. for(new i=1;i<playerCount;i++)
  176. {
  177. id = Players[i]
  178.  
  179. say(id,text)
  180. }
  181. }
  182. else if(get_pcvar_num(use_mode) == 2)
  183. say(0,text)
  184.  
  185. set_display_time()
  186. }
  187.  
  188. public take_new_question()
  189. {
  190. new Players[32], playerCount, id
  191.  
  192. formatex(text, MAX_NUM_OF_CHAR-1,"[%s] We now passed the time-limit, picking new question...", plugin)
  193.  
  194. if(get_pcvar_num(use_mode) == 0)
  195. {
  196. get_players(Players, playerCount, "b")
  197.  
  198. for(new i=1;i<playerCount;i++)
  199. {
  200. id = Players[i]
  201.  
  202. say(id,text)
  203. }
  204. }
  205. else if(get_pcvar_num(use_mode) == 1)
  206. {
  207. get_players(Players, playerCount, "a")
  208.  
  209. for(new i=1;i<playerCount;i++)
  210. {
  211. id = Players[i]
  212.  
  213. say(id,text)
  214. }
  215. }
  216. else if(get_pcvar_num(use_mode) == 2)
  217. say(0,text)
  218.  
  219. pick_question()
  220. }
  221.  
  222. public set_timelimit()
  223. {
  224. if( (get_pcvar_num(timelimit) < 1) || (get_pcvar_num(enabled) < 1) )
  225. return PLUGIN_CONTINUE
  226.  
  227. set_task(float(get_pcvar_num(timelimit)),"take_new_question", 33523)
  228.  
  229. return PLUGIN_CONTINUE
  230. }
  231.  
  232. stock set_display_time()
  233. {
  234. if(get_pcvar_num(enabled) < 1)
  235. return PLUGIN_CONTINUE
  236.  
  237. set_task(random_float(float(get_pcvar_num(min_display)),float(get_pcvar_num(max_display))),"display_question")
  238.  
  239. return PLUGIN_CONTINUE
  240. }
  241.  
  242. public pick_question()
  243. {
  244. new number = random_num(1,num_of_questions)
  245.  
  246. if(alreadyused[number] == true)
  247. set_task(0.1,"pick_question")
  248.  
  249. //used_question[0] = Questions[number]
  250. //used_answer[0] = Answers[number]
  251.  
  252. copy(used_question[0], MAX_NUM_OF_CHAR-1, Questions[number])
  253. copy(used_answer[0], MAX_NUM_OF_CHAR-1, Answers[number])
  254.  
  255. alreadyused[number] = true
  256.  
  257. set_timelimit()
  258.  
  259. return PLUGIN_HANDLED
  260. }
  261.  
  262. give_reward(id, name[])
  263. {
  264. if(get_pcvar_num(use_mode) == 0)
  265. {
  266. new Players[32], playerCount, player
  267.  
  268. get_players(Players, playerCount, "b")
  269.  
  270. for(new i=1;i<playerCount;i++)
  271. {
  272. player = Players[i]
  273.  
  274. if(get_pcvar_num(display_mode) == 0)
  275. {
  276. formatex(text, MAX_NUM_OF_CHAR-1,"%s answered right on the question: %s",name,used_question[0])
  277. say(player, text)
  278.  
  279. 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")
  280. say(player, text)
  281. }
  282. else if(get_pcvar_num(display_mode) == 1)
  283. {
  284. 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")
  285. say(player, text)
  286. }
  287. }
  288. }
  289. else if(get_pcvar_num(use_mode) == 1)
  290. {
  291. new Players[32], playerCount, player
  292.  
  293. get_players(Players, playerCount, "a")
  294.  
  295. for(new i=1;i<playerCount;i++)
  296. {
  297. player = Players[i]
  298.  
  299. if(get_pcvar_num(display_mode) == 0)
  300. {
  301. formatex(text, MAX_NUM_OF_CHAR-1,"%s answered right on the question: %s",name,used_question[0])
  302. say(player, text)
  303.  
  304. 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")
  305. say(player, text)
  306. }
  307. else if(get_pcvar_num(display_mode) == 1)
  308. {
  309. 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")
  310. say(player, text)
  311. }
  312. }
  313. }
  314. else if(get_pcvar_num(use_mode) == 2)
  315. {
  316. if(get_pcvar_num(display_mode) == 0)
  317. {
  318. formatex(text, MAX_NUM_OF_CHAR-1,"%s answered right on the question: %s",name,used_question[0])
  319. say(0, text)
  320.  
  321. 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")
  322. say(0, text)
  323. }
  324. else if(get_pcvar_num(display_mode) == 1)
  325. {
  326. 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")
  327. say(0, text)
  328. }
  329. }
  330.  
  331. if(is_module_loaded("cstrike") != -1)
  332. {
  333. new R = get_pcvar_num(reward)
  334. formatex(text, MAX_NUM_OF_CHAR-1,"You got %d $ for answering right", R)
  335. say(id, text)
  336.  
  337. cs_set_user_money(id, cs_get_user_money(id) + R)
  338. }
  339.  
  340. return PLUGIN_CONTINUE
  341. }
  342.  
  343. public handle_say(id)
  344. {
  345. if(get_pcvar_num(enabled) < 1)
  346. return PLUGIN_CONTINUE
  347.  
  348. if( (get_pcvar_num(use_mode) == 0) && (is_user_alive(id)) )
  349. return PLUGIN_CONTINUE
  350.  
  351. else if( (get_pcvar_num(use_mode) == 1) && (!is_user_alive(id)) )
  352. return PLUGIN_CONTINUE
  353.  
  354. new Arg[64]
  355.  
  356. read_args(Arg,63)
  357.  
  358. if(contain(Arg, used_answer[0]) != -1)
  359. {
  360. answered_questions[id]++
  361.  
  362. remove_task(33523)
  363.  
  364. new name[32]
  365. get_user_name(id,name,31)
  366.  
  367. give_reward(id, name)
  368. pick_question()
  369. }
  370.  
  371. if(contain(Arg, "/question") != -1)
  372. {
  373. formatex(text, MAX_NUM_OF_CHAR-1,"Question: %s", used_question[0])
  374. say(id, text)
  375. }
  376.  
  377. return PLUGIN_CONTINUE
  378. }

ezt valaki megtudná csinálni úgy hogy a kérdés minden kör elején legyen és ne kelljen /question-t és /answer-t irni?

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Kör eleji kérdés, csík
HozzászólásElküldve: 2013.03.18. 17:54 
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
kecske írta:
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4.  
  5. new plugin[] = "Quiz"
  6. new version[] = "0.6"
  7. new author[] = "Doombringer"
  8.  
  9. new enabled, use_mode, reward, timelimit, min_display, max_display, display_mode
  10.  
  11. #define MAX_QUESTIONS 200
  12. #define MAX_NUM_OF_CHAR 190
  13.  
  14. //#define MIN_TIME 20.0
  15. //#define MAX_TIME 50.0
  16.  
  17.  
  18. new Questions[MAX_QUESTIONS][MAX_NUM_OF_CHAR]
  19. new Answers[MAX_QUESTIONS][MAX_NUM_OF_CHAR]
  20. new bool:alreadyused[MAX_QUESTIONS]
  21. new num_of_questions
  22.  
  23. new used_question[1][MAX_NUM_OF_CHAR]
  24. new used_answer[1][MAX_NUM_OF_CHAR]
  25. new text[MAX_NUM_OF_CHAR]
  26.  
  27. new answered_questions[32]
  28.  
  29. new quiz_file[62]
  30. new g_MyMsgSync
  31.  
  32. public plugin_init()
  33. {
  34. register_plugin(plugin,version,author)
  35.  
  36. register_clcmd("say","handle_say")
  37. register_clcmd("say_team","handle_say")
  38.  
  39. new config[64]
  40. get_configsdir(config,63)
  41.  
  42. formatex(quiz_file,61,"%s/quiz_file.ini",config)
  43.  
  44. enabled = register_cvar("quiz_enabled","1")
  45. use_mode = register_cvar("quiz_usemode","0")
  46.  
  47. if(is_module_loaded("cstrike") != -1)
  48. reward = register_cvar("quiz_reward","2000")
  49.  
  50. timelimit = register_cvar("quiz_timelimit","120")
  51.  
  52. min_display = register_cvar("quiz_min_display","20")
  53. max_display = register_cvar("quiz_max_display","50")
  54. display_mode = register_cvar("quiz_display_mode","0")
  55.  
  56. register_cvar("amx_quiz_version",version,FCVAR_SERVER)
  57.  
  58. g_MyMsgSync = CreateHudSyncObj()
  59.  
  60. if(!file_exists(quiz_file))
  61. {
  62. new file = fopen(quiz_file,"wt")
  63. fprintf(file, "; Quiz file^n")
  64. fprintf(file, "; Here goes all questions/answers^n")
  65. fprintf(file, "; Questions/Answers goes like ^"what is 1+1?^" ^"2^"^n")
  66. fclose(file)
  67. }
  68.  
  69. load_quiz()
  70.  
  71. pick_question()
  72.  
  73. set_display_time()
  74.  
  75. return PLUGIN_CONTINUE
  76. }
  77.  
  78. public say(id, text_to_say[])
  79. {
  80. //remove_quotes(text_to_say)
  81.  
  82. if(get_pcvar_num(display_mode) == 0)
  83. {
  84. client_print(id, print_chat, "%s", text_to_say)
  85. }
  86. else if(get_pcvar_num(display_mode) == 1)
  87. {
  88. set_hudmessage(random(255), random(255), random(255), -1.0, 0.37, 0, 6.0, 7.0, 0.1, 0.2)
  89. //show_hudmessage(id, "%s", text_to_say)
  90. ShowSyncHudMsg(id, g_MyMsgSync, "%s", text_to_say)
  91. }
  92. else if(get_pcvar_num(display_mode) == 2)
  93. {
  94. client_print(id, print_chat, "%s", text_to_say)
  95.  
  96. set_hudmessage(random(255), random(255), random(255), -1.0, 0.37, 0, 6.0, 7.0, 0.1, 0.2)
  97. ShowSyncHudMsg(id, g_MyMsgSync, "%s", text_to_say)
  98. }
  99.  
  100. return PLUGIN_CONTINUE
  101. }
  102.  
  103.  
  104. public load_quiz()
  105. {
  106. if(get_pcvar_num(enabled) < 1)
  107. return PLUGIN_HANDLED
  108.  
  109. new file = fopen(quiz_file,"rt")
  110.  
  111. if(!file)
  112. {
  113. server_print("[%s, load_quiz()] Error, File not found!",plugin)
  114. return PLUGIN_HANDLED
  115. }
  116.  
  117. new f_question[MAX_NUM_OF_CHAR], f_answer[MAX_NUM_OF_CHAR]
  118.  
  119. new Text[MAX_NUM_OF_CHAR]
  120.  
  121. while(!feof(file) && num_of_questions < MAX_QUESTIONS)
  122. {
  123. fgets(file, Text, MAX_NUM_OF_CHAR-1)
  124.  
  125. if( Text[0] == ';' || equal(Text,"") )
  126. continue;
  127.  
  128. parse(Text, f_question, MAX_NUM_OF_CHAR-1, f_answer, MAX_NUM_OF_CHAR-1)
  129.  
  130. num_of_questions++
  131.  
  132. //trim(f_question)
  133. //trim(f_answer)
  134.  
  135. remove_quotes(f_answer)
  136.  
  137. Questions[num_of_questions] = f_question
  138. Answers[num_of_questions] = f_answer
  139. }
  140.  
  141. fclose(file)
  142.  
  143. if(num_of_questions < 1)
  144. {
  145. server_print("[%s] ERROR! You need more questions, you have %d, you need more then 2",plugin, num_of_questions)
  146. pause("ad")
  147. }
  148.  
  149. server_print("[%s] Successfully loaded %d questions",plugin,num_of_questions)
  150.  
  151. return PLUGIN_HANDLED
  152. }
  153.  
  154. public display_question()
  155. {
  156. new Players[32], playerCount, id
  157.  
  158. formatex(text, MAX_NUM_OF_CHAR-1,"Question: %s", used_question[0])
  159.  
  160. if(get_pcvar_num(use_mode) == 0)
  161. {
  162. get_players(Players, playerCount, "b")
  163.  
  164. for(new i=1;i<playerCount;i++)
  165. {
  166. id = Players[i]
  167.  
  168. say(id,text)
  169. }
  170. }
  171. else if(get_pcvar_num(use_mode) == 1)
  172. {
  173. get_players(Players, playerCount, "a")
  174.  
  175. for(new i=1;i<playerCount;i++)
  176. {
  177. id = Players[i]
  178.  
  179. say(id,text)
  180. }
  181. }
  182. else if(get_pcvar_num(use_mode) == 2)
  183. say(0,text)
  184.  
  185. set_display_time()
  186. }
  187.  
  188. public take_new_question()
  189. {
  190. new Players[32], playerCount, id
  191.  
  192. formatex(text, MAX_NUM_OF_CHAR-1,"[%s] We now passed the time-limit, picking new question...", plugin)
  193.  
  194. if(get_pcvar_num(use_mode) == 0)
  195. {
  196. get_players(Players, playerCount, "b")
  197.  
  198. for(new i=1;i<playerCount;i++)
  199. {
  200. id = Players[i]
  201.  
  202. say(id,text)
  203. }
  204. }
  205. else if(get_pcvar_num(use_mode) == 1)
  206. {
  207. get_players(Players, playerCount, "a")
  208.  
  209. for(new i=1;i<playerCount;i++)
  210. {
  211. id = Players[i]
  212.  
  213. say(id,text)
  214. }
  215. }
  216. else if(get_pcvar_num(use_mode) == 2)
  217. say(0,text)
  218.  
  219. pick_question()
  220. }
  221.  
  222. public set_timelimit()
  223. {
  224. if( (get_pcvar_num(timelimit) < 1) || (get_pcvar_num(enabled) < 1) )
  225. return PLUGIN_CONTINUE
  226.  
  227. set_task(float(get_pcvar_num(timelimit)),"take_new_question", 33523)
  228.  
  229. return PLUGIN_CONTINUE
  230. }
  231.  
  232. stock set_display_time()
  233. {
  234. if(get_pcvar_num(enabled) < 1)
  235. return PLUGIN_CONTINUE
  236.  
  237. set_task(random_float(float(get_pcvar_num(min_display)),float(get_pcvar_num(max_display))),"display_question")
  238.  
  239. return PLUGIN_CONTINUE
  240. }
  241.  
  242. public pick_question()
  243. {
  244. new number = random_num(1,num_of_questions)
  245.  
  246. if(alreadyused[number] == true)
  247. set_task(0.1,"pick_question")
  248.  
  249. //used_question[0] = Questions[number]
  250. //used_answer[0] = Answers[number]
  251.  
  252. copy(used_question[0], MAX_NUM_OF_CHAR-1, Questions[number])
  253. copy(used_answer[0], MAX_NUM_OF_CHAR-1, Answers[number])
  254.  
  255. alreadyused[number] = true
  256.  
  257. set_timelimit()
  258.  
  259. return PLUGIN_HANDLED
  260. }
  261.  
  262. give_reward(id, name[])
  263. {
  264. if(get_pcvar_num(use_mode) == 0)
  265. {
  266. new Players[32], playerCount, player
  267.  
  268. get_players(Players, playerCount, "b")
  269.  
  270. for(new i=1;i<playerCount;i++)
  271. {
  272. player = Players[i]
  273.  
  274. if(get_pcvar_num(display_mode) == 0)
  275. {
  276. formatex(text, MAX_NUM_OF_CHAR-1,"%s answered right on the question: %s",name,used_question[0])
  277. say(player, text)
  278.  
  279. 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")
  280. say(player, text)
  281. }
  282. else if(get_pcvar_num(display_mode) == 1)
  283. {
  284. 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")
  285. say(player, text)
  286. }
  287. }
  288. }
  289. else if(get_pcvar_num(use_mode) == 1)
  290. {
  291. new Players[32], playerCount, player
  292.  
  293. get_players(Players, playerCount, "a")
  294.  
  295. for(new i=1;i<playerCount;i++)
  296. {
  297. player = Players[i]
  298.  
  299. if(get_pcvar_num(display_mode) == 0)
  300. {
  301. formatex(text, MAX_NUM_OF_CHAR-1,"%s answered right on the question: %s",name,used_question[0])
  302. say(player, text)
  303.  
  304. 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")
  305. say(player, text)
  306. }
  307. else if(get_pcvar_num(display_mode) == 1)
  308. {
  309. 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")
  310. say(player, text)
  311. }
  312. }
  313. }
  314. else if(get_pcvar_num(use_mode) == 2)
  315. {
  316. if(get_pcvar_num(display_mode) == 0)
  317. {
  318. formatex(text, MAX_NUM_OF_CHAR-1,"%s answered right on the question: %s",name,used_question[0])
  319. say(0, text)
  320.  
  321. 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")
  322. say(0, text)
  323. }
  324. else if(get_pcvar_num(display_mode) == 1)
  325. {
  326. 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")
  327. say(0, text)
  328. }
  329. }
  330.  
  331. if(is_module_loaded("cstrike") != -1)
  332. {
  333. new R = get_pcvar_num(reward)
  334. formatex(text, MAX_NUM_OF_CHAR-1,"You got %d $ for answering right", R)
  335. say(id, text)
  336.  
  337. cs_set_user_money(id, cs_get_user_money(id) + R)
  338. }
  339.  
  340. return PLUGIN_CONTINUE
  341. }
  342.  
  343. public handle_say(id)
  344. {
  345. if(get_pcvar_num(enabled) < 1)
  346. return PLUGIN_CONTINUE
  347.  
  348. if( (get_pcvar_num(use_mode) == 0) && (is_user_alive(id)) )
  349. return PLUGIN_CONTINUE
  350.  
  351. else if( (get_pcvar_num(use_mode) == 1) && (!is_user_alive(id)) )
  352. return PLUGIN_CONTINUE
  353.  
  354. new Arg[64]
  355.  
  356. read_args(Arg,63)
  357.  
  358. if(contain(Arg, used_answer[0]) != -1)
  359. {
  360. answered_questions[id]++
  361.  
  362. remove_task(33523)
  363.  
  364. new name[32]
  365. get_user_name(id,name,31)
  366.  
  367. give_reward(id, name)
  368. pick_question()
  369. }
  370.  
  371. if(contain(Arg, "/question") != -1)
  372. {
  373. formatex(text, MAX_NUM_OF_CHAR-1,"Question: %s", used_question[0])
  374. say(id, text)
  375. }
  376.  
  377. return PLUGIN_CONTINUE
  378. }

ezt valaki megtudná csinálni úgy hogy a kérdés minden kör elején legyen és ne kelljen /question-t és /answer-t irni?

nyiss új témát!

_________________
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  [ 6 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 21 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