Descriere (adica ce face el mai exact): Plugin pentru mesaje in Chat + Culoare
Serverul impune conditii strict HLDS/REHLDS?: Nu
Ai cautat pluginul?(daca da, precizeaza cum): Da , Ceea ce am gasit imi citeste doar un mesaj
Necesita mod special?: Nu cred
Configuratie server: -
PS : Vreau sa bag in jur de 15 mesaje in mesaje.ini . Dar imi citeste doar 1 singur
- | Afiseaza codul
#include <amxmodx> #include <amxmisc> #include <csx> #define X_POS -1.0 #define Y_POS 0.20 #define HOLD_TIME 12.0 #define NUM_MESSAGES 20 #define STRING_LEN 256 #define charsof(%1) (sizeof(%1)-1) #define time_welcome 15 #define time_admin 17 #define max 2 new Array:g_Values new Array:g_Messages new g_MessagesNum new g_Current new amx_freq_imessage; static const configfile[] = "addons/amxmodx/configs/mesaje.ini" new text_messages[NUM_MESSAGES][STRING_LEN] new hud_messages[NUM_MESSAGES][4][STRING_LEN] new hud_message_colors[NUM_MESSAGES][4][3] new saytext_msgid new num_hudmessages, num_textmessages, cur_hudmessage, cur_textmessage static const forumurl[] = "http://www.Forumultau.ro/" new hostname[64], cvar_hostname public plugin_init() { g_Messages=ArrayCreate(384); g_Values=ArrayCreate(3); register_plugin("Mesaje","0.1","RnL") register_cvar("advertise_hud_len","120.0") register_cvar("advertise_text_len","15.0") register_cvar("advertise_hud_loc","1") saytext_msgid = get_user_msgid("SayText") read_configfile() if(num_hudmessages) set_task(get_cvar_float("advertise_hud_len"),"display_hudmessage",0,"",0,"b") if(num_textmessages) set_task(get_cvar_float("advertise_text_len"),"display_textmessage",0,"",0,"b") register_dictionary("wide_addons.txt") register_srvcmd("amx_imessage", "setMessage") amx_freq_imessage=register_cvar("amx_freq_imessage", "10") new lastinfo[8] get_localinfo("lastinfomsg", lastinfo, 7) g_Current = str_to_num(lastinfo) set_localinfo("lastinfomsg", "") cvar_hostname = get_cvar_pointer("hostname"); set_task(5.0,"showx",0,"",0,"b",0); register_cvar("amx_forum",forumurl); } public infoMessage() { if (g_Current >= g_MessagesNum) g_Current = 0 // No messages, just get out of here if (g_MessagesNum==0) { return; } new values[3]; new Message[384]; ArrayGetString(g_Messages, g_Current, Message, charsof(Message)); ArrayGetArray(g_Values, g_Current, values); new hostname[64]; get_cvar_string("hostname", hostname, 63); replace(Message, 380, "%hostname%", hostname); set_hudmessage(values[0], values[1], values[2], X_POS, Y_POS, 0, 0.5, HOLD_TIME, 2.0, 2.0, -1); show_hudmessage(0, "%s", Message); client_print(0, print_console, "%s", Message); ++g_Current; new Float:freq_im = get_pcvar_float(amx_freq_imessage); if (freq_im > 0.0) set_task(freq_im, "infoMessage", 12345); } public setMessage() { new Message[384]; remove_task(12345) read_argv(1, Message, 380) while (replace(Message, 380, "\n", "^n")) {} new mycol[12] new vals[3]; read_argv(2, mycol, 11) // RRRGGGBBB vals[2] = str_to_num(mycol[6]) mycol[6] = 0 vals[1] = str_to_num(mycol[3]) mycol[3] = 0 vals[0] = str_to_num(mycol[0]) g_MessagesNum++ new Float:freq_im = get_pcvar_float(amx_freq_imessage) ArrayPushString(g_Messages, Message); ArrayPushArray(g_Values, vals); if (freq_im > 0.0) set_task(freq_im, "infoMessage", 12345) return PLUGIN_HANDLED } public plugin_end() { new lastinfo[8] num_to_str(g_Current, lastinfo, 7) set_localinfo("lastinfomsg", lastinfo) } public read_configfile() { new Fsize = file_size(configfile,1) new read[STRING_LEN], trash for(new i=0;i<Fsize;i++) { read_file(configfile,i,read,STRING_LEN - 1,trash) if(containi(read,"Text")==0) { read_file(configfile,i+1,read,STRING_LEN - 1,trash) replace_all(read,STRING_LEN - 1,"[blue]","^x03") replace_all(read,STRING_LEN - 1,"[/blue]","^x01") replace_all(read,STRING_LEN - 1,"[red]","^x03") replace_all(read,STRING_LEN - 1,"[/red]","^x01") replace_all(read,STRING_LEN - 1,"[green]","^x04") replace_all(read,STRING_LEN - 1,"[/green]","^x01") replace_all(read,STRING_LEN - 1,"[Blue]","^x03") replace_all(read,STRING_LEN - 1,"[/Blue]","^x01") replace_all(read,STRING_LEN - 1,"[Red]","^x03") replace_all(read,STRING_LEN - 1,"[/Red]","^x01") replace_all(read,STRING_LEN - 1,"[Green]","^x04") replace_all(read,STRING_LEN - 1,"[/Green]","^x01") format(text_messages[num_textmessages],STRING_LEN - 1,"^x04^x01%s",read) num_textmessages++ } else if(containi(read,"Hud")==0) { read_file(configfile,i+1,read,STRING_LEN - 1,trash) new j = 0, position = 0; while(position < strlen(read) && i<4) { while(contain(read[position]," ")==0) position++ if(containi(read[position],"[blue]")==0) { format(hud_messages[num_hudmessages][j],STRING_LEN - 1,"%s",read[position + 6]) position = containi(read[position],"[/blue]") + 7 + position trash = containi(hud_messages[num_hudmessages][j],"[/blue]") if(trash!=-1) hud_messages[num_hudmessages][j][trash] = 0 else break; hud_message_colors[num_hudmessages][j][0] = 0 hud_message_colors[num_hudmessages][j][1] = 0 hud_message_colors[num_hudmessages][j][2] = 255 } else if(containi(read[position],"[red]")==0) { format(hud_messages[num_hudmessages][j],STRING_LEN - 1,"%s",read[position + 5]) position = containi(read[position],"[/red]") + 6 + position trash = containi(hud_messages[num_hudmessages][j],"[/red]") if(trash!=-1) hud_messages[num_hudmessages][j][trash] = 0 else break; hud_message_colors[num_hudmessages][j][0] = 255 hud_message_colors[num_hudmessages][j][1] = 0 hud_message_colors[num_hudmessages][j][2] = 0 } else if(containi(read[position],"[green]")==0) { format(hud_messages[num_hudmessages][j],STRING_LEN - 1,"%s",read[position + 7]) position = containi(read[position],"[/green]") + 8 + position trash = containi(hud_messages[num_hudmessages][j],"[/green]") if(trash!=-1) hud_messages[num_hudmessages][j][trash] = 0 else break; hud_message_colors[num_hudmessages][j][0] = 0 hud_message_colors[num_hudmessages][j][1] = 255 hud_message_colors[num_hudmessages][j][2] = 0 } else if(containi(read[position],"[Yellow]")==0) { format(hud_messages[num_hudmessages][j],STRING_LEN - 1,"%s",read[position + 8]) position = containi(read[position],"[/Yellow]") + 9 + position trash = containi(hud_messages[num_hudmessages][j],"[/Yellow]") if(trash!=-1) hud_messages[num_hudmessages][j][trash] = 0 else break; hud_message_colors[num_hudmessages][j][0] = 255 hud_message_colors[num_hudmessages][j][1] = 255 hud_message_colors[num_hudmessages][j][2] = 0 } else if(containi(read[position],"[Orange]")==0) { format(hud_messages[num_hudmessages][j],STRING_LEN - 1,"%s",read[position + 8]) position = containi(read[position],"[/Orange]") + 9 + position trash = containi(hud_messages[num_hudmessages][j],"[/Orange]") if(trash!=-1) hud_messages[num_hudmessages][j][trash] = 0 else break; hud_message_colors[num_hudmessages][j][0] = 255 hud_message_colors[num_hudmessages][j][1] = 128 hud_message_colors[num_hudmessages][j][2] = 64 } else if(containi(read[position],"[Pink]")==0) { format(hud_messages[num_hudmessages][j],STRING_LEN - 1,"%s",read[position + 6]) position = containi(read[position],"[/Pink]") + 7 + position trash = containi(hud_messages[num_hudmessages][j],"[/Pink]") if(trash!=-1) hud_messages[num_hudmessages][j][trash] = 0 else break; hud_message_colors[num_hudmessages][j][0] = 255 hud_message_colors[num_hudmessages][j][1] = 0 hud_message_colors[num_hudmessages][j][2] = 128 } else if(containi(read[position],"[Indigo]")==0) { format(hud_messages[num_hudmessages][j],STRING_LEN - 1,"%s",read[position + 8]) position = containi(read[position],"[/Indigo]") + 9 + position trash = containi(hud_messages[num_hudmessages][j],"[/Indigo]") if(trash!=-1) hud_messages[num_hudmessages][j][trash] = 0 else break; hud_message_colors[num_hudmessages][j][0] = 0 hud_message_colors[num_hudmessages][j][1] = 255 hud_message_colors[num_hudmessages][j][2] = 255 } else if(containi(read[position],"[White]")==0) { format(hud_messages[num_hudmessages][j],STRING_LEN - 1,"%s",read[position + 8]) position = containi(read[position],"[/White]") + 9 + position trash = containi(hud_messages[num_hudmessages][j],"[/White]") if(trash!=-1) hud_messages[num_hudmessages][j][trash] = 0 else break; hud_message_colors[num_hudmessages][j][0] = 255 hud_message_colors[num_hudmessages][j][1] = 255 hud_message_colors[num_hudmessages][j][2] = 255 } else if( containi(read[position],"[blue]")==-1 && containi(read[position],"[red]")==-1 && containi(read[position],"[green]")==-1 && containi(read[position],"[Yellow]")==-1 && containi(read[position],"[Orange]")==-1 && containi(read[position],"[Pink]")==-1 && containi(read[position],"[Indigo]")==-1 && containi(read[position],"[White]")==-1 ) { format(hud_messages[num_hudmessages][j],STRING_LEN - 1,"%s",read[position]) hud_message_colors[num_hudmessages][j][0] = 255 hud_message_colors[num_hudmessages][j][1] = 255 hud_message_colors[num_hudmessages][j][2] = 255 position = 129 } else { format(hud_messages[num_hudmessages][j],STRING_LEN - 1,"%s",read[position]) position = containi(read[position],"[") + 9 + position trash = containi(hud_messages[num_hudmessages][j],"[") if(trash!=-1) hud_messages[num_hudmessages][j][trash] = 0 else break; hud_message_colors[num_hudmessages][j][0] = 255 hud_message_colors[num_hudmessages][j][1] = 0 hud_message_colors[num_hudmessages][j][2] = 0 } j++ } format(hud_messages[num_hudmessages][1],STRING_LEN - 1,"^n%s",hud_messages[num_hudmessages][1]) format(hud_messages[num_hudmessages][2],STRING_LEN - 1,"^n^n%s",hud_messages[num_hudmessages][2]) format(hud_messages[num_hudmessages][3],STRING_LEN - 1,"^n^n^n%s",hud_messages[num_hudmessages][3]) num_hudmessages++ } } } public display_hudmessage() { new Float:loc[2] switch(get_cvar_num("advertise_hud_loc")) { case 2: { loc[0] = -1.0 loc[1] = -1.0 } default: { loc[0] = -1.0 loc[1] = 0.2 } } set_hudmessage(hud_message_colors[cur_hudmessage][0][0],hud_message_colors[cur_textmessage][0][1],hud_message_colors[cur_textmessage][0][2],loc[0],loc[1], 0, 6.0, 12.0,0.1,0.2,-1) show_hudmessage(0,hud_messages[cur_hudmessage][0]) if(hud_messages[cur_hudmessage][1][2]!=0) { set_hudmessage(hud_message_colors[cur_hudmessage][1][0],hud_message_colors[cur_textmessage][1][1],hud_message_colors[cur_textmessage][1][2],loc[0],loc[1], 0, 6.0, 12.0,0.1,0.2,-1) show_hudmessage(0,hud_messages[cur_hudmessage][1]) } if(hud_messages[cur_hudmessage][2][4]!=0) { set_hudmessage(hud_message_colors[cur_hudmessage][2][0],hud_message_colors[cur_textmessage][2][1],hud_message_colors[cur_textmessage][2][2],loc[0],loc[1], 0, 6.0, 12.0,0.1,0.2,-1) show_hudmessage(0,hud_messages[cur_hudmessage][2]) } if(hud_messages[cur_hudmessage][3][6]!=0) { set_hudmessage(hud_message_colors[cur_hudmessage][3][0],hud_message_colors[cur_textmessage][3][1],hud_message_colors[cur_textmessage][3][2],loc[0],loc[1], 0, 6.0, 12.0,0.1,0.2,-1) show_hudmessage(0,hud_messages[cur_hudmessage][3]) } cur_hudmessage = (cur_hudmessage + 1 ) % num_hudmessages } public display_textmessage() { new num, players[32], player get_players(players,num,"ch") for(new i=0;i<num;i++) { player = players message_begin(MSG_ONE,saytext_msgid,{0,0,0},player) write_byte(player) write_string(text_messages[cur_textmessage]) message_end() } cur_textmessage = (cur_textmessage + 1 ) % num_textmessages } new welcome_user[max][] = { "scientist/goodtoseeyou", //sound Player connected "scientist/hellothere" //sound Player connected }; new welcome_admin[max][] = { "scientist/greetings", //sound Admin connected "scientist/howyoudoing" //sound Admin connected }; public welcome(id) { static name[32]; new mapname[32]; new izStats[8], izBody[8]; new iRankPos, iRankMax iRankPos = get_user_stats(id, izStats, izBody); iRankMax = get_statsnum() get_user_name(id, name , 31); get_mapname(mapname,31); get_pcvar_string(cvar_hostname, hostname, 63); if(is_user_connected(id) && !is_user_admin(id) && !is_user_bot(id)) { set_hudmessage(20, 200, 110, 0.05, 0.65, 2, 0.02, 6.0, 0.01, 0.1, 2) show_hudmessage(id, "Bine ca ai revenit, %s^nDistractie placuta pe %s !^n%s^nRankul tau curent este: %d din %d jucatori", name, mapname, hostname, iRankPos, iRankMax) new h h = random_num(0,max -1) client_cmd(id,"spk %s",welcome_user[h]) } else if(get_user_flags(id) & ADMIN_KICK && !is_user_bot(id)) { set_hudmessage(20, 200, 110, 0.05, 0.65, 1, 0.02, 6.0, 0.01, 0.1, 2) show_hudmessage(id,"Bine ai venit %s^nEsti Admin..^nFa ordine pe %s !^nRankul tau curent este: %d din %d jucatori", name, hostname, iRankPos, iRankMax) new m m = random_num(0,max -1) client_cmd(id,"spk %s",welcome_admin[m]) } return PLUGIN_CONTINUE } public showx(id) { get_pcvar_string(cvar_hostname, hostname, 63); set_hudmessage(255, 0, 255, -1.0, 0.87, 2, 6.0, 20.0); show_hudmessage(id, "Forumul serverului %s este %s", hostname, forumurl); } public client_disconnect(id) remove_task(id) public client_putinserver(id) set_task(float(time_welcome), "welcome", id)