Spalvotos žinutės chat’e
Posted: 2014 May 14 09:25
Padėkite padaryti, kad 158 eilutėje tekstas būtų spalvotas ("KLAUSIMAS: %s"). Su colorchat kažkaip neišeina.
Code: Select all
#include <amxmodx>#include <amxmisc>#include <cstrike> new plugin[] = "Quiz"new version[] = "0.6"new author[] = "Doombringer" new enabled, use_mode, reward, timelimit, min_display, max_display, display_mode #define MAX_QUESTIONS 200#define MAX_NUM_OF_CHAR 190 //#define MIN_TIME 20.0//#define MAX_TIME 50.0 new Questions[MAX_QUESTIONS][MAX_NUM_OF_CHAR]new Answers[MAX_QUESTIONS][MAX_NUM_OF_CHAR]new bool:alreadyused[MAX_QUESTIONS]new num_of_questions new used_question[1][MAX_NUM_OF_CHAR]new used_answer[1][MAX_NUM_OF_CHAR]new text[MAX_NUM_OF_CHAR] new answered_questions[32] new quiz_file[62]new g_MyMsgSync public plugin_init(){ register_plugin(plugin,version,author) register_clcmd("say","handle_say") register_clcmd("say_team","handle_say") new config[64] get_configsdir(config,63) formatex(quiz_file,61,"%s/quiz_file.ini",config) enabled = register_cvar("quiz_enabled","1") use_mode = register_cvar("quiz_usemode","0") if(is_module_loaded("cstrike") != -1) reward = register_cvar("quiz_reward","2000") timelimit = register_cvar("quiz_timelimit","120") min_display = register_cvar("quiz_min_display","20") max_display = register_cvar("quiz_max_display","50") display_mode = register_cvar("quiz_display_mode","0") register_cvar("amx_quiz_version",version,FCVAR_SERVER) g_MyMsgSync = CreateHudSyncObj() if(!file_exists(quiz_file)) { new file = fopen(quiz_file,"wt") fprintf(file, "; Quiz file^n") fprintf(file, "; Here goes all questions/answers^n") fprintf(file, "; Questions/Answers goes like ^"what is 1+1?^" ^"2^"^n") fclose(file) } load_quiz() pick_question() set_display_time() return PLUGIN_CONTINUE} public say(id, text_to_say[]){ //remove_quotes(text_to_say) if(get_pcvar_num(display_mode) == 0) { client_print(id, print_chat, "%s", text_to_say) } else if(get_pcvar_num(display_mode) == 1) { set_hudmessage(random(255), random(255), random(255), -1.0, 0.37, 0, 6.0, 7.0, 0.1, 0.2) //show_hudmessage(id, "%s", text_to_say) ShowSyncHudMsg(id, g_MyMsgSync, "%s", text_to_say) } else if(get_pcvar_num(display_mode) == 2) { client_print(id, print_chat, "%s", text_to_say) set_hudmessage(random(255), random(255), random(255), -1.0, 0.37, 0, 6.0, 7.0, 0.1, 0.2) ShowSyncHudMsg(id, g_MyMsgSync, "%s", text_to_say) } return PLUGIN_CONTINUE} public load_quiz(){ if(get_pcvar_num(enabled) < 1) return PLUGIN_HANDLED new file = fopen(quiz_file,"rt") if(!file) { server_print("[%s, load_quiz()] Error, File not found!",plugin) return PLUGIN_HANDLED } new f_question[MAX_NUM_OF_CHAR], f_answer[MAX_NUM_OF_CHAR] new Text[MAX_NUM_OF_CHAR] while(!feof(file) && num_of_questions < MAX_QUESTIONS) { fgets(file, Text, MAX_NUM_OF_CHAR-1) if( Text[0] == ';' || equal(Text,"") ) continue; parse(Text, f_question, MAX_NUM_OF_CHAR-1, f_answer, MAX_NUM_OF_CHAR-1) num_of_questions++ //trim(f_question) //trim(f_answer) remove_quotes(f_answer) Questions[num_of_questions] = f_question Answers[num_of_questions] = f_answer } fclose(file) if(num_of_questions < 1) { server_print("[%s] ERROR! You need more questions, you have %d, you need more then 2",plugin, num_of_questions) pause("ad") } server_print("[%s] Successfully loaded %d questions",plugin,num_of_questions) return PLUGIN_HANDLED} public display_question(){ new Players[32], playerCount, id formatex(text, MAX_NUM_OF_CHAR-1,"KLAUSIMAS: %s", used_question[0]) if(get_pcvar_num(use_mode) == 0) { get_players(Players, playerCount, "b") for(new i=1;i<playerCount;i++) { id = Players[i] say(id,text) } } else if(get_pcvar_num(use_mode) == 1) { get_players(Players, playerCount, "a") for(new i=1;i<playerCount;i++) { id = Players[i] say(id,text) } } else if(get_pcvar_num(use_mode) == 2) say(0,text) set_display_time()} public take_new_question(){ new Players[32], playerCount, id formatex(text, MAX_NUM_OF_CHAR-1,"[%s] We now passed the time-limit, picking new question...", plugin) if(get_pcvar_num(use_mode) == 0) { get_players(Players, playerCount, "b") for(new i=1;i<playerCount;i++) { id = Players[i] say(id,text) } } else if(get_pcvar_num(use_mode) == 1) { get_players(Players, playerCount, "a") for(new i=1;i<playerCount;i++) { id = Players[i] say(id,text) } } else if(get_pcvar_num(use_mode) == 2) say(0,text) pick_question()} public set_timelimit(){ if( (get_pcvar_num(timelimit) < 1) || (get_pcvar_num(enabled) < 1) ) return PLUGIN_CONTINUE set_task(float(get_pcvar_num(timelimit)),"take_new_question", 33523) return PLUGIN_CONTINUE} stock set_display_time(){ if(get_pcvar_num(enabled) < 1) return PLUGIN_CONTINUE set_task(random_float(float(get_pcvar_num(min_display)),float(get_pcvar_num(max_display))),"display_question") return PLUGIN_CONTINUE} public pick_question(){ new number = random_num(1,num_of_questions) if(alreadyused[number] == true) set_task(0.1,"pick_question") //used_question[0] = Questions[number] //used_answer[0] = Answers[number] copy(used_question[0], MAX_NUM_OF_CHAR-1, Questions[number]) copy(used_answer[0], MAX_NUM_OF_CHAR-1, Answers[number]) alreadyused[number] = true set_timelimit() return PLUGIN_HANDLED} give_reward(id, name[]){ if(get_pcvar_num(use_mode) == 0) { new Players[32], playerCount, player get_players(Players, playerCount, "b") for(new i=1;i<playerCount;i++) { player = Players[i] if(get_pcvar_num(display_mode) == 0) { formatex(text, MAX_NUM_OF_CHAR-1,"%s answered right on the question: %s",name,used_question[0]) say(player, text) 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") say(player, text) } else if(get_pcvar_num(display_mode) == 1) { 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") say(player, text) } } } else if(get_pcvar_num(use_mode) == 1) { new Players[32], playerCount, player get_players(Players, playerCount, "a") for(new i=1;i<playerCount;i++) { player = Players[i] if(get_pcvar_num(display_mode) == 0) { formatex(text, MAX_NUM_OF_CHAR-1,"%s answered right on the question: %s",name,used_question[0]) say(player, text) 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") say(player, text) } else if(get_pcvar_num(display_mode) == 1) { 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") say(player, text) } } } else if(get_pcvar_num(use_mode) == 2) { if(get_pcvar_num(display_mode) == 0) { formatex(text, MAX_NUM_OF_CHAR-1,"%s answered right on the question: %s",name,used_question[0]) say(0, text) 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") say(0, text) } else if(get_pcvar_num(display_mode) == 1) { 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") say(0, text) } } if(is_module_loaded("cstrike") != -1) { new R = get_pcvar_num(reward) formatex(text, MAX_NUM_OF_CHAR-1,"You got %d $ for answering right", R) say(id, text) cs_set_user_money(id, cs_get_user_money(id) + R) } return PLUGIN_CONTINUE} public handle_say(id){ if(get_pcvar_num(enabled) < 1) return PLUGIN_CONTINUE if( (get_pcvar_num(use_mode) == 0) && (is_user_alive(id)) ) return PLUGIN_CONTINUE else if( (get_pcvar_num(use_mode) == 1) && (!is_user_alive(id)) ) return PLUGIN_CONTINUE new Arg[64] read_args(Arg,63) if(contain(Arg, used_answer[0]) != -1) { answered_questions[id]++ remove_task(33523) new name[32] get_user_name(id,name,31) give_reward(id, name) pick_question() } if(contain(Arg, "/question") != -1) { formatex(text, MAX_NUM_OF_CHAR-1,"Question: %s", used_question[0]) say(id, text) } return PLUGIN_CONTINUE}