Spalvotos žinutės chat’e

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
User avatar
NZT
Flooderis arba specialistas
Posts: 836
Joined: 2011 Aug 18 17:44

Spalvotos žinutės chat’e

Post by NZT »

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}

Ponaslala
Parašęs kelias žinutes
Posts: 6
Joined: 2014 May 21 21:27

Re: Spalvotos žinutės chat’e

Post by Ponaslala »

formatex(szText, charsmax(szText), "bla bla \r[NEW]")
\w - white
\y - yellow
\r - red
\d - transparent (grey)

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests