Army Ranks > "блок инфы" |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
Army Ranks > "блок инфы" |
TarikYuzkiv
|
9.9.2013, 22:47
Сообщение
|
|
|
Всем доброй ночи. Сегодня немного правил army ranks, убрал сообщения: "Friend Name Healt | Enemy Name".
Так вот, несмотря на это, сообщения все же проскакивает в начале каждого раунда, что немного напрягает (смотреть видео, слева внизу) Прошу знающих людей помочь исправить, заранее спасибо! Исходник Код /* Обещанного три года ждут;) */ #include <amxmodx> #include <amxmisc> #include <colorchat> #include <fun> #include <cstrike> #include <csx> #include <fakemeta> #include <hamsandwich> // #define PLUGIN "Army Ranks" #define VERSION "1.3.1.11" #define AUTHOR "Arctic" #pragma tabsize 0 #define ADM_MENU ADMIN_LEVEL_A // menu access flag // enum _:PlData { gId,gExp,gLevel,gTempKey }; new UserData[33][PlData]; new gMessage[256]; new g_MsgHud,MaxPlayers,levelUp[33],gSayText,gStatusText new bool:restr_blocked; new const gRankNames[][] = { "I_LOAD", "I_0","I_1","I_2","I_3","I_4","I_5","I_6","I_7","I_8","I_9","I_10","I_11","I_12","I_13","I_14", "I_15","I_16","I_17","I_18","I_19","I_20" }; new const gLevels[] = { 0,15,30,60,100,180,350,750,999,1500,2200,2800,3200,3900,4500,5000,5500,6000 ,7000,8000,10000 }; new const gNades[][] = { {0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1} } new const restrict_bonus[][] = { "35hp", "most_wanted", "ka_wintershank" }; new gRestrictMaps,gAdminGMsg,gBonusLevel,gFlash,gSmoke,gHe,gHpbylevel,gApbylevel,gAr myChat,gSlash, gTk,gLostXpTk,gLevelUpmsg,gAllChat,gProgressBar,gBombDefuseXp,gBombPlantXp,gBomb , gMinPlayers, gCSDM; // public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_cvar("army_ranks",VERSION, FCVAR_SERVER | FCVAR_SPONLY); set_cvar_string("army_ranks",VERSION); // gRestrictMaps = register_cvar( "restrict_maps", "0");// вкл запрет бонусов на карте. gBonusLevel = register_cvar( "level_bonus", "0");// вкл оружие при получении уровня. gFlash = register_cvar( "flash_nades", "0");// вкл бонуса флешек gSmoke = register_cvar( "smoke_nades", "0");// вкл бонуса дымовых gHe = register_cvar( "he_nades", "0");// вкл бонуса осколочных gHpbylevel = register_cvar( "hp_by_level", "0");// кол-во хп, которое дается за лвл, если = 0 - то выкл gApbylevel = register_cvar( "ap_by_level", "1");// кол-во брони, которое дается за лвл, если = 0 - то выкл gArmyChat = register_cvar( "army_chat", "0");// использовать чат плагина, то есть приставка в чате, цвет сообщ. для админа gAdminGMsg = register_cvar( "admin_color", "2");// 1 = сообщ.админа зеленое,0 = желтое, 2 = цвета команды gSlash = register_cvar( "slash_messages", "0");// не отображать команды со слэшем gTk = register_cvar( "team_kill_lost_xp", "0");// терять exp при тимкилле gLostXpTk = register_cvar( "lost_xp_val", "0");// кол-во теряемых exp при тк gLevelUpmsg = register_cvar( "level_up_msg", "0");// сообщение при лвл-апе игрока : 1- вкл (всем), 2 - только игроку gAllChat = register_cvar( "all_chat", "1");// 1 - чат для всех(метвые и живые), 0-живые не видят чат мертвых и наоборот /***/ gProgressBar = register_cvar( "progress_bar_pos", "0");// расположение данных игрока: 0 - hud(под радаром), 1 - под чатом gCSDM = register_cvar( "army_csdm", "0");// 1 - выдавать бонусы в режиме DM, 0 - бонусы в обычном режиме // register_logevent( "EventRoundStart", 2, "1=Round_Start" ); register_event( "DeathMsg","EventDeath","a"); if(get_pcvar_num(gProgressBar) != 0){ set_task(1.0,"StatusText",_,_,_, "b"); } else { set_task(1.0,"Info",_,_,_, "b"); } // register_message(get_user_msgid("SayText"), "msg_SayText"); gStatusText = get_user_msgid("StatusText"); gSayText = get_user_msgid ("SayText"); register_event( "StatusValue", "EventStatusValue", "b", "1=2", "2>0" ); // g_MsgHud = CreateHudSyncObj(); MaxPlayers = get_maxplayers(); register_dictionary("army.txt" ); // if(get_pcvar_num(gRestrictMaps)) { new szMapName[64]; get_mapname(szMapName,63); for(new a = 0; a < sizeof restrict_bonus; a++) { if(equal(szMapName, restrict_bonus[a])) { restr_blocked = true; log_amx("[army ranks] weapon menu is blocked on map [%s].",restrict_bonus[a]); break; } else { restr_blocked = false; } } } // gMinPlayers = register_cvar( "min_players", "4");// мин.кол-во игроков для получения опыта за действия с бомбой gBomb = register_cvar( "bomb_xp", "1");// вкл получения опыта над действиями с бомбой gBombDefuseXp = register_cvar( "bdefuse_xp", "5");// кол-во получаемых exp при разминировании бомбы gBombPlantXp = register_cvar( "bplant_xp", "4");// кол-во получаемых exp при минировании бомбы RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);// регистрируем спавн игрока if(get_pcvar_num(gArmyChat)) { register_clcmd("say", "hookSay") register_clcmd("say_team", "hookSayTeam"); } } public plugin_cfg() { new szCfgDir[64], szFile[192]; get_configsdir(szCfgDir, charsmax(szCfgDir)); formatex(szFile,charsmax(szFile),"%s/army_ranks.cfg",szCfgDir); if(file_exists(szFile)) server_cmd("exec %s", szFile); } public bomb_defused(id) { if(!is_user_connected(id)|| !is_user_alive(id) || get_user_team(id) != 2 || get_pcvar_num(gBombDefuseXp) < 1 || get_pcvar_num(gBomb) !=1) return if(get_playersnum() <= get_pcvar_num(gMinPlayers)) { ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"MIN_PLAYERS") } else { UserData[id][gExp] += get_pcvar_num(gBombDefuseXp); ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"DEFUSE_XP",get_pcvar_num(gBombDefuseXp)) } } public bomb_planted(id) { if(!is_user_connected(id)|| !is_user_alive(id) || get_user_team(id) != 1 || get_pcvar_num(gBombPlantXp) < 1 || get_pcvar_num(gBomb) !=1) return if(get_playersnum() <= get_pcvar_num(gMinPlayers)) { ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"MIN_PLAYERS") } else { UserData[id][gExp] += get_pcvar_num(gBombPlantXp); ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"PLANT_XP",get_pcvar_num(gBombPlantXp)) } } // public client_putinserver(id) // путинсервер) { for(new i = 0; i<PlData; i++) UserData[id][i] = 0; if(is_user_connected(id)) set_task(1.0,"load_data",id); return PLUGIN_CONTINUE; } // public check_level(id) { if(UserData[id][gLevel] <= 0) UserData[id][gLevel] = 1; if(UserData[id][gExp] < 0) UserData[id][gExp] = 0; while(UserData[id][gExp] >= gLevels[UserData[id][gLevel]]) { UserData[id][gLevel]++; if(UserData[id][gLevel] > 20) UserData[id][gLevel] = 20; levelUp[id] = 1; switch(get_pcvar_num(gLevelUpmsg)) { case 1: { new szName[33]; get_user_name(id, szName, 32); static buffer[192],len; len = format(buffer, charsmax(buffer), "^4[^3Army Ranks^4]^1 %L ^4%s^1",LANG_PLAYER,"PLAYER1",szName); len += format(buffer[len], charsmax(buffer) - len, " %L",LANG_PLAYER,"NEW_LEVEL"); len += format(buffer[len], charsmax(buffer) - len, " ^4%L^1. ",LANG_PLAYER,gRankNames[UserData[id][gLevel]]); len += format(buffer[len], charsmax(buffer) - len, "%L",LANG_PLAYER,"CONTR"); ColorChat(0,NORMAL,buffer); } case 2: { new szName[33]; get_user_name(id, szName, 32); static buffer[192],len; len = format(buffer, charsmax(buffer), "^4[^3Army Ranks^4]^1 %L ^4%s^1",LANG_PLAYER,"PLAYER1",szName); len += format(buffer[len], charsmax(buffer) - len, " %L",LANG_PLAYER,"NEW_LEVEL"); len += format(buffer[len], charsmax(buffer) - len, " ^4%L^1. ",LANG_PLAYER,gRankNames[UserData[id][gLevel]]); len += format(buffer[len], charsmax(buffer) - len, "%L",LANG_PLAYER,"CONTR"); ColorChat(id,NORMAL,buffer); } } } } public EventDeath() { new iKiller = read_data(1); new iVictim = read_data(2); new head = read_data(3); if(iKiller != iVictim && is_user_connected(iKiller) && is_user_connected(iVictim) && UserData[iKiller][gLevel] <= 19) { // if tk? if(get_pcvar_num(gTk) && get_user_team(iKiller) == get_user_team(iVictim)) { UserData[iKiller][gExp] -= get_pcvar_num(gLostXpTk); return PLUGIN_CONTINUE; } new weapon = get_user_weapon(iKiller); UserData[iKiller][gExp] += 1; if(weapon == CSW_KNIFE) UserData[iKiller][gExp] += 3; if(head) UserData[iKiller][gExp] += 2; if(weapon == CSW_HEGRENADE) UserData[iKiller][gExp] += 1; check_level(iKiller); } return PLUGIN_CONTINUE; } public fwHamPlayerSpawnPost(id) { if (is_user_alive(id) && get_pcvar_num(gCSDM)) { if(restr_blocked) return HAM_IGNORED; if(get_pcvar_num(gFlash) && gNades[0][UserData[id][gLevel]]) give_item(id,"weapon_flashbang"); if(get_pcvar_num(gSmoke) && gNades[1][UserData[id][gLevel]]) give_item(id,"weapon_smokegrenade"); if(get_pcvar_num(gHe) && gNades[2][UserData[id][gLevel]]) give_item(id,"weapon_hegrenade"); if(get_pcvar_num(gHpbylevel) != 0) set_user_health(id,get_user_health(id)+get_pcvar_num(gHpbylevel)*UserData[id][gLevel]); if(get_pcvar_num(gApbylevel) != 0) set_user_armor(id,get_user_armor(id)+get_pcvar_num(gApbylevel)*UserData[id][gLevel]); if(levelUp[id] == 1 && get_pcvar_num(gBonusLevel)) { GetWeapon(id); levelUp[id] = 0; } } return HAM_IGNORED; } public EventRoundStart() { if(!get_pcvar_num(gCSDM)) { for(new id = 0; id <= MaxPlayers; id++) { if(is_user_alive(id)) { if(restr_blocked) return PLUGIN_CONTINUE; if(get_pcvar_num(gFlash) && gNades[0][UserData[id][gLevel]]) give_item(id,"weapon_flashbang"); if(get_pcvar_num(gSmoke) && gNades[1][UserData[id][gLevel]]) give_item(id,"weapon_smokegrenade"); if(get_pcvar_num(gHe) && gNades[2][UserData[id][gLevel]]) give_item(id,"weapon_hegrenade"); if(get_pcvar_num(gHpbylevel) != 0) set_user_health(id,get_user_health(id)+get_pcvar_num(gHpbylevel)*UserData[id][gLevel]); if(get_pcvar_num(gApbylevel) != 0) set_user_armor(id,get_user_armor(id)+get_pcvar_num(gApbylevel)*UserData[id][gLevel]); if(levelUp[id] == 1 && get_pcvar_num(gBonusLevel)) { GetWeapon(id); levelUp[id] = 0; } } } } return PLUGIN_CONTINUE; } ////////// save public load_data(id) { new stats[8],bodyhits[8], stats2[4]; get_user_stats(id,stats,bodyhits); get_user_stats2(id,stats2); UserData[id][gExp] = stats[0] + 2*stats[2] - get_pcvar_num(gLostXpTk)*stats[3] + get_pcvar_num(gBombDefuseXp)*stats2[1] + get_pcvar_num(gBombPlantXp)*stats2[2]; if(UserData[id][gLevel] <= 0) UserData[id][gLevel] = 1; while(UserData[id][gExp] >= gLevels[UserData[id][gLevel]]) { UserData[id][gLevel]++; if(UserData[id][gLevel] > 20) UserData[id][gLevel] = 20; } } ///////// chat event public hookSay(id) { if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id)) return PLUGIN_CONTINUE; new message[192],Len; read_args(message, 191); remove_quotes(message); if(is_admin_msg(message)) return PLUGIN_CONTINUE; if(is_empty_message(message)) { ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"EMPTY_MSG") return PLUGIN_HANDLED } if(get_pcvar_num(gSlash)) { if(is_has_slash(message)) return PLUGIN_HANDLED_MAIN } new szName[32]; get_user_name(id,szName,31); if(is_user_admin(id)) { Len = format(gMessage[Len], charsmax(gMessage) - 1, "^4[^3%L^4] ",LANG_PLAYER,gRankNames[UserData[id][gLevel]]); switch(get_pcvar_num(gAdminGMsg)) { case 1: { Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^4 : ",szName); Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message); } case 2: { Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^4 : ",szName); Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s",message); } default: { Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^4 : ",szName); Len += format(gMessage[Len], charsmax(gMessage) - 1, "^1%s",message); } } Chat(id,0,get_pcvar_num(gAllChat)); } else { Len = format(gMessage[Len], charsmax(gMessage) - 1, "^4[^3%L^4] ",LANG_PLAYER,gRankNames[UserData[id][gLevel]]); Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^4 : ",szName); Len += format(gMessage[Len], charsmax(gMessage) - 1, "^1%s",message); Chat(id,0,get_pcvar_num(gAllChat)); } return PLUGIN_HANDLED_MAIN } public hookSayTeam(id) { if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id)) return PLUGIN_CONTINUE; new message[192],Len; read_args(message, 191); remove_quotes(message); if(is_admin_msg(message)) return PLUGIN_CONTINUE; if(is_empty_message(message)) { ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"EMPTY_MSG"); return PLUGIN_HANDLED } if(get_pcvar_num(gSlash)) { if(is_has_slash(message)) return PLUGIN_HANDLED_MAIN } new szName[32]; get_user_name(id,szName,31); if(is_user_admin(id)) { Len = format(gMessage[Len], charsmax(gMessage) - 1, "^3%L^1 ^4[^3%L^4] ^3%s^4 : ",LANG_PLAYER,"SEND_TEAM",LANG_PLAYER,gRankNames[UserData[id][gLevel]],szName); switch(get_pcvar_num(gAdminGMsg)) { case 1: { Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message); } case 2: { Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s",message); } default: { Len += format(gMessage[Len], charsmax(gMessage) - 1, "^1%s",message); } } Chat(id,1,get_pcvar_num(gAllChat)); } else { Len = format(gMessage[Len], charsmax(gMessage) - 1, "^3%L^1 ^4[^3%L^4] ",LANG_PLAYER,"SEND_TEAM",LANG_PLAYER,gRankNames[UserData[id][gLevel]]); Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^4 : ",szName); Len += format(gMessage[Len], charsmax(gMessage) - 1, "^1%s",message); Chat(id,1,get_pcvar_num(gAllChat)); } return PLUGIN_HANDLED_MAIN } stock is_admin_msg(const Message[]) { if(Message[0] == '@') return true; return false; } stock is_empty_message(const Message[]) { if(equal(Message, "") || !strlen(Message)) return true; return false; } stock Chat(id,team,chat_type) { if(team) { if(chat_type) { for(new i = 0; i <= MaxPlayers; i++) { if(!is_user_connected(i)) continue if(get_user_team(id) == get_user_team(i)) send_message(gMessage, id, i); } } else { if(is_user_alive(id)) { for(new i = 0; i <= MaxPlayers; i++) { if(!is_user_connected(i) || !is_user_alive(i)) continue if(get_user_team(id) == get_user_team(i)) send_message(gMessage, id, i); } } else if(!is_user_alive(id)){ for(new i = 0; i <= MaxPlayers; i++) { if(!is_user_connected(i) || is_user_alive(i)) continue if(get_user_team(id) == get_user_team(i)) send_message(gMessage, id, i); } } } } else{ if(chat_type) { for(new i = 0; i <= MaxPlayers; i++) { if(!is_user_connected(i)) continue send_message(gMessage, id, i); } } else { if(is_user_alive(id)) { for(new i = 0; i <= MaxPlayers; i++) { if(!is_user_connected(i) || !is_user_alive(i)) continue send_message(gMessage, id, i); } } else if(!is_user_alive(id)){ for(new i = 0; i <= MaxPlayers; i++) { if(!is_user_connected(i) || is_user_alive(i)) continue send_message(gMessage, id, i); } } } } } stock send_message(const message[], const id, const i) { message_begin(MSG_ONE, gSayText, {0, 0, 0}, i) write_byte(id) write_string(message) message_end() } stock is_has_slash(const Message[]) { if(Message[0] == '/') return true; return false; } public msg_SayText() { //new arg[32] //get_msg_arg_string(2, arg, 31) //if(containi(arg,"name")!=-1) //return PLUGIN_HANDLED return PLUGIN_CONTINUE } /////////// natives public plugin_natives() { register_native("get_user_exp", "native_get_user_exp", 1); register_native("get_user_lvl", "native_get_user_lvl", 1); register_native("get_user_rankname", "native_get_user_rankname"); } public native_get_user_exp(id) { return UserData[id][gExp]; } public native_get_user_lvl(id) { return UserData[id][gLevel]; } public native_get_user_rankname(plugin_id, param_nums) { // Insufficient number of arguments if (param_nums != 3) return -1; // Retrieve the player's index static id; id = get_param(1); static szRankName[64]; format(szRankName, charsmax(szRankName), "%L",LANG_PLAYER,gRankNames[UserData[id][gLevel]]); // Copy the model name into the array passed set_string(2, szRankName, get_param(3)) return 1; } //////// informer public Info() { for(new id = 0; id <= MaxPlayers; id++) { if(!is_user_bot(id) && is_user_alive(id)) { static buffer[100]; if(UserData[id][gLevel] <= 19) message_begin(MSG_ONE_UNRELIABLE, gStatusText, _, id) write_byte(0) write_string(buffer) message_end(); } } for(new id = 0; id <= MaxPlayers; id++) { if(!is_user_bot(id) && is_user_connected(id)) { set_hudmessage(100, 100, 100, -1.0, 0.01, 0, 1.0, 1.0, _, _, 1) static buffer[192], len; len = format(buffer, charsmax(buffer), "%L",LANG_PLAYER,"ZVANIE"); len += format(buffer[len], charsmax(buffer) - len, " %L",LANG_PLAYER,gRankNames[UserData[id][gLevel]]); if(UserData[id][gLevel] <= 19) { len += format(buffer[len], charsmax(buffer) - len, "^n%L",LANG_PLAYER,"PL_XP",UserData[id][gExp],gLevels[UserData[id][gLevel]]); } else { len += format(buffer[len], charsmax(buffer) - len, "^n%L",LANG_PLAYER,"PL_MAX"); } ShowSyncHudMsg(id, g_MsgHud, "%s", buffer); } } return PLUGIN_CONTINUE } public EventStatusValue(id) { if(!is_user_bot(id) && is_user_connected(id)) { new name[32], target = read_data( 2 ); static buffer[100], len; get_user_name(target, name, 31) new color1 = 0, color2 = 0, color3 = 0 if (get_user_team(target) == 1) { color2 = 50; color1 = 255; } if (get_user_team(target) == 2) { color2 = 128 color3 = 255 } len = format(buffer, charsmax(buffer), "%L",LANG_PLAYER,gRankNames[UserData[target][gLevel]]); if(UserData[id][gLevel] <= 19) { len += format(buffer[len], charsmax(buffer) - len, " | %L",LANG_PLAYER,"PL_XP_STEXT",UserData[target][gExp],gLevels[UserData[target][gLevel]]); } else { len += format(buffer[len], charsmax(buffer) - len, " | %L",LANG_PLAYER,"PL_MAX"); } set_hudmessage(color1, color2, color3, -1.0, 0.60, 0, 2.0, 2.0, _, _, 1); if (get_user_team(id) == get_user_team(target)) { show_hudmessage(id, "Друг: %s^n%s", name, buffer); } else { show_hudmessage(id, "Противник: %s^n%s", name, buffer); } } } public StatusText() { for(new id = 0; id <= MaxPlayers; id++) { if(!is_user_bot(id) && is_user_alive(id)) { static buffer[100]; if(UserData[id][gLevel] <= 19) message_begin(MSG_ONE_UNRELIABLE, gStatusText, _, id) write_byte(0) write_string(buffer) message_end(); } } } /////// weap menu per lvl public GetWeapon(id) { new szText[700 char]; formatex( szText, charsmax( szText ), "%L", id, "GW_TITLE"); new menu = menu_create( szText, "gw_menu" ); // formatex( szText, charsmax( szText ), "awp"); menu_additem( menu, szText, "1", 0 ); // formatex( szText, charsmax( szText ), "ak-47"); menu_additem( menu, szText, "2", 0 ); // formatex( szText, charsmax( szText ), "m4a1"); menu_additem( menu, szText, "3", 0 ); // formatex( szText, charsmax( szText ), "famas"); menu_additem( menu, szText, "4", 0 ); // menu_setprop( menu, MPROP_EXIT, MEXIT_ALL ); menu_display( id, menu,0); return PLUGIN_CONTINUE; } public gw_menu(id,menu,item) { if( item == MENU_EXIT ) { return PLUGIN_HANDLED; } new data[ 6 ], iName[ 64 ], access, callback; menu_item_getinfo( menu, item, access, data, charsmax( data ), iName, charsmax( iName ), callback ); new key = str_to_num( data ); switch( key ) { case 1: { give_item(id,"weapon_awp"); cs_set_user_bpammo( id, CSW_AWP, 100); } case 2: { give_item(id,"weapon_ak47"); cs_set_user_bpammo( id, CSW_AK47, 200); } case 3: { give_item(id,"weapon_m4a1"); cs_set_user_bpammo( id, CSW_M4A1, 200); } case 4: { give_item(id,"weapon_famas"); cs_set_user_bpammo( id, CSW_FAMAS, 200); } } return PLUGIN_HANDLED; } Часть кода, где "блочится" эта "шняга" Код public Info() { for(new id = 0; id <= MaxPlayers; id++) { if(!is_user_bot(id) && is_user_alive(id)) { static buffer[100]; if(UserData[id][gLevel] <= 19) message_begin(MSG_ONE_UNRELIABLE, gStatusText, _, id) write_byte(0) write_string(buffer) message_end(); } } |
|
|
|
westcall
|
10.9.2013, 1:04
Сообщение
|
![]() |
progress_bar_pos = [0,1] - "расположение данных игрока: 0 - hud(под радаром), 1 - под чатом." Не оно?
|
Поблагодарили 1 раз
|
|
TarikYuzkiv
|
10.9.2013, 12:32
Сообщение
|
|
|
|
|
|
|
Chilly_Willy
|
10.9.2013, 13:51
Сообщение
|
![]() |
А это не miscstats?
|
Поблагодарили 1 раз
|
|
DraconKCH
|
11.9.2013, 5:02
Сообщение
|
|
|
Всем доброй ночи. Сегодня немного правил army ranks, убрал сообщения: "Friend Name Healt | Enemy Name". Так вот, несмотря на это, сообщения все же проскакивает в начале каждого раунда, что немного напрягает (смотреть видео, слева внизу) Прошу знающих людей помочь исправить, заранее спасибо! Исходник Код /* Обещанного три года ждут;) */ #include <amxmodx> #include <amxmisc> #include <colorchat> #include <fun> #include <cstrike> #include <csx> #include <fakemeta> #include <hamsandwich> // #define PLUGIN "Army Ranks" #define VERSION "1.3.1.11" #define AUTHOR "Arctic" #pragma tabsize 0 #define ADM_MENU ADMIN_LEVEL_A // menu access flag // enum _:PlData { gId,gExp,gLevel,gTempKey }; new UserData[33][PlData]; new gMessage[256]; new g_MsgHud,MaxPlayers,levelUp[33],gSayText,gStatusText new bool:restr_blocked; new const gRankNames[][] = { "I_LOAD", "I_0","I_1","I_2","I_3","I_4","I_5","I_6","I_7","I_8","I_9","I_10","I_11","I_12","I_13","I_14", "I_15","I_16","I_17","I_18","I_19","I_20" }; new const gLevels[] = { 0,15,30,60,100,180,350,750,999,1500,2200,2800,3200,3900,4500,5000,5500,6000 ,7000,8000,10000 }; new const gNades[][] = { {0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1} } new const restrict_bonus[][] = { "35hp", "most_wanted", "ka_wintershank" }; new gRestrictMaps,gAdminGMsg,gBonusLevel,gFlash,gSmoke,gHe,gHpbylevel,gApbylevel,gAr myChat,gSlash, gTk,gLostXpTk,gLevelUpmsg,gAllChat,gProgressBar,gBombDefuseXp,gBombPlantXp,gBomb , gMinPlayers, gCSDM; // public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_cvar("army_ranks",VERSION, FCVAR_SERVER | FCVAR_SPONLY); set_cvar_string("army_ranks",VERSION); // gRestrictMaps = register_cvar( "restrict_maps", "0");// вкл запрет бонусов на карте. gBonusLevel = register_cvar( "level_bonus", "0");// вкл оружие при получении уровня. gFlash = register_cvar( "flash_nades", "0");// вкл бонуса флешек gSmoke = register_cvar( "smoke_nades", "0");// вкл бонуса дымовых gHe = register_cvar( "he_nades", "0");// вкл бонуса осколочных gHpbylevel = register_cvar( "hp_by_level", "0");// кол-во хп, которое дается за лвл, если = 0 - то выкл gApbylevel = register_cvar( "ap_by_level", "1");// кол-во брони, которое дается за лвл, если = 0 - то выкл gArmyChat = register_cvar( "army_chat", "0");// использовать чат плагина, то есть приставка в чате, цвет сообщ. для админа gAdminGMsg = register_cvar( "admin_color", "2");// 1 = сообщ.админа зеленое,0 = желтое, 2 = цвета команды gSlash = register_cvar( "slash_messages", "0");// не отображать команды со слэшем gTk = register_cvar( "team_kill_lost_xp", "0");// терять exp при тимкилле gLostXpTk = register_cvar( "lost_xp_val", "0");// кол-во теряемых exp при тк gLevelUpmsg = register_cvar( "level_up_msg", "0");// сообщение при лвл-апе игрока : 1- вкл (всем), 2 - только игроку gAllChat = register_cvar( "all_chat", "1");// 1 - чат для всех(метвые и живые), 0-живые не видят чат мертвых и наоборот /***/ gProgressBar = register_cvar( "progress_bar_pos", "0");// расположение данных игрока: 0 - hud(под радаром), 1 - под чатом gCSDM = register_cvar( "army_csdm", "0");// 1 - выдавать бонусы в режиме DM, 0 - бонусы в обычном режиме // register_logevent( "EventRoundStart", 2, "1=Round_Start" ); register_event( "DeathMsg","EventDeath","a"); if(get_pcvar_num(gProgressBar) != 0){ set_task(1.0,"StatusText",_,_,_, "b"); } else { set_task(1.0,"Info",_,_,_, "b"); } // register_message(get_user_msgid("SayText"), "msg_SayText"); gStatusText = get_user_msgid("StatusText"); gSayText = get_user_msgid ("SayText"); register_event( "StatusValue", "EventStatusValue", "b", "1=2", "2>0" ); // g_MsgHud = CreateHudSyncObj(); MaxPlayers = get_maxplayers(); register_dictionary("army.txt" ); // if(get_pcvar_num(gRestrictMaps)) { new szMapName[64]; get_mapname(szMapName,63); for(new a = 0; a < sizeof restrict_bonus; a++) { if(equal(szMapName, restrict_bonus[a])) { restr_blocked = true; log_amx("[army ranks] weapon menu is blocked on map [%s].",restrict_bonus[a]); break; } else { restr_blocked = false; } } } // gMinPlayers = register_cvar( "min_players", "4");// мин.кол-во игроков для получения опыта за действия с бомбой gBomb = register_cvar( "bomb_xp", "1");// вкл получения опыта над действиями с бомбой gBombDefuseXp = register_cvar( "bdefuse_xp", "5");// кол-во получаемых exp при разминировании бомбы gBombPlantXp = register_cvar( "bplant_xp", "4");// кол-во получаемых exp при минировании бомбы RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);// регистрируем спавн игрока if(get_pcvar_num(gArmyChat)) { register_clcmd("say", "hookSay") register_clcmd("say_team", "hookSayTeam"); } } public plugin_cfg() { new szCfgDir[64], szFile[192]; get_configsdir(szCfgDir, charsmax(szCfgDir)); formatex(szFile,charsmax(szFile),"%s/army_ranks.cfg",szCfgDir); if(file_exists(szFile)) server_cmd("exec %s", szFile); } public bomb_defused(id) { if(!is_user_connected(id)|| !is_user_alive(id) || get_user_team(id) != 2 || get_pcvar_num(gBombDefuseXp) < 1 || get_pcvar_num(gBomb) !=1) return if(get_playersnum() <= get_pcvar_num(gMinPlayers)) { ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"MIN_PLAYERS") } else { UserData[id][gExp] += get_pcvar_num(gBombDefuseXp); ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"DEFUSE_XP",get_pcvar_num(gBombDefuseXp)) } } public bomb_planted(id) { if(!is_user_connected(id)|| !is_user_alive(id) || get_user_team(id) != 1 || get_pcvar_num(gBombPlantXp) < 1 || get_pcvar_num(gBomb) !=1) return if(get_playersnum() <= get_pcvar_num(gMinPlayers)) { ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"MIN_PLAYERS") } else { UserData[id][gExp] += get_pcvar_num(gBombPlantXp); ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"PLANT_XP",get_pcvar_num(gBombPlantXp)) } } // public client_putinserver(id) // путинсервер) { for(new i = 0; i<PlData; i++) UserData[id][i] = 0; if(is_user_connected(id)) set_task(1.0,"load_data",id); return PLUGIN_CONTINUE; } // public check_level(id) { if(UserData[id][gLevel] <= 0) UserData[id][gLevel] = 1; if(UserData[id][gExp] < 0) UserData[id][gExp] = 0; while(UserData[id][gExp] >= gLevels[UserData[id][gLevel]]) { UserData[id][gLevel]++; if(UserData[id][gLevel] > 20) UserData[id][gLevel] = 20; levelUp[id] = 1; switch(get_pcvar_num(gLevelUpmsg)) { case 1: { new szName[33]; get_user_name(id, szName, 32); static buffer[192],len; len = format(buffer, charsmax(buffer), "^4[^3Army Ranks^4]^1 %L ^4%s^1",LANG_PLAYER,"PLAYER1",szName); len += format(buffer[len], charsmax(buffer) - len, " %L",LANG_PLAYER,"NEW_LEVEL"); len += format(buffer[len], charsmax(buffer) - len, " ^4%L^1. ",LANG_PLAYER,gRankNames[UserData[id][gLevel]]); len += format(buffer[len], charsmax(buffer) - len, "%L",LANG_PLAYER,"CONTR"); ColorChat(0,NORMAL,buffer); } case 2: { new szName[33]; get_user_name(id, szName, 32); static buffer[192],len; len = format(buffer, charsmax(buffer), "^4[^3Army Ranks^4]^1 %L ^4%s^1",LANG_PLAYER,"PLAYER1",szName); len += format(buffer[len], charsmax(buffer) - len, " %L",LANG_PLAYER,"NEW_LEVEL"); len += format(buffer[len], charsmax(buffer) - len, " ^4%L^1. ",LANG_PLAYER,gRankNames[UserData[id][gLevel]]); len += format(buffer[len], charsmax(buffer) - len, "%L",LANG_PLAYER,"CONTR"); ColorChat(id,NORMAL,buffer); } } } } public EventDeath() { new iKiller = read_data(1); new iVictim = read_data(2); new head = read_data(3); if(iKiller != iVictim && is_user_connected(iKiller) && is_user_connected(iVictim) && UserData[iKiller][gLevel] <= 19) { // if tk? if(get_pcvar_num(gTk) && get_user_team(iKiller) == get_user_team(iVictim)) { UserData[iKiller][gExp] -= get_pcvar_num(gLostXpTk); return PLUGIN_CONTINUE; } new weapon = get_user_weapon(iKiller); UserData[iKiller][gExp] += 1; if(weapon == CSW_KNIFE) UserData[iKiller][gExp] += 3; if(head) UserData[iKiller][gExp] += 2; if(weapon == CSW_HEGRENADE) UserData[iKiller][gExp] += 1; check_level(iKiller); } return PLUGIN_CONTINUE; } public fwHamPlayerSpawnPost(id) { if (is_user_alive(id) && get_pcvar_num(gCSDM)) { if(restr_blocked) return HAM_IGNORED; if(get_pcvar_num(gFlash) && gNades[0][UserData[id][gLevel]]) give_item(id,"weapon_flashbang"); if(get_pcvar_num(gSmoke) && gNades[1][UserData[id][gLevel]]) give_item(id,"weapon_smokegrenade"); if(get_pcvar_num(gHe) && gNades[2][UserData[id][gLevel]]) give_item(id,"weapon_hegrenade"); if(get_pcvar_num(gHpbylevel) != 0) set_user_health(id,get_user_health(id)+get_pcvar_num(gHpbylevel)*UserData[id][gLevel]); if(get_pcvar_num(gApbylevel) != 0) set_user_armor(id,get_user_armor(id)+get_pcvar_num(gApbylevel)*UserData[id][gLevel]); if(levelUp[id] == 1 && get_pcvar_num(gBonusLevel)) { GetWeapon(id); levelUp[id] = 0; } } return HAM_IGNORED; } public EventRoundStart() { if(!get_pcvar_num(gCSDM)) { for(new id = 0; id <= MaxPlayers; id++) { if(is_user_alive(id)) { if(restr_blocked) return PLUGIN_CONTINUE; if(get_pcvar_num(gFlash) && gNades[0][UserData[id][gLevel]]) give_item(id,"weapon_flashbang"); if(get_pcvar_num(gSmoke) && gNades[1][UserData[id][gLevel]]) give_item(id,"weapon_smokegrenade"); if(get_pcvar_num(gHe) && gNades[2][UserData[id][gLevel]]) give_item(id,"weapon_hegrenade"); if(get_pcvar_num(gHpbylevel) != 0) set_user_health(id,get_user_health(id)+get_pcvar_num(gHpbylevel)*UserData[id][gLevel]); if(get_pcvar_num(gApbylevel) != 0) set_user_armor(id,get_user_armor(id)+get_pcvar_num(gApbylevel)*UserData[id][gLevel]); if(levelUp[id] == 1 && get_pcvar_num(gBonusLevel)) { GetWeapon(id); levelUp[id] = 0; } } } } return PLUGIN_CONTINUE; } ////////// save public load_data(id) { new stats[8],bodyhits[8], stats2[4]; get_user_stats(id,stats,bodyhits); get_user_stats2(id,stats2); UserData[id][gExp] = stats[0] + 2*stats[2] - get_pcvar_num(gLostXpTk)*stats[3] + get_pcvar_num(gBombDefuseXp)*stats2[1] + get_pcvar_num(gBombPlantXp)*stats2[2]; if(UserData[id][gLevel] <= 0) UserData[id][gLevel] = 1; while(UserData[id][gExp] >= gLevels[UserData[id][gLevel]]) { UserData[id][gLevel]++; if(UserData[id][gLevel] > 20) UserData[id][gLevel] = 20; } } ///////// chat event public hookSay(id) { if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id)) return PLUGIN_CONTINUE; new message[192],Len; read_args(message, 191); remove_quotes(message); if(is_admin_msg(message)) return PLUGIN_CONTINUE; if(is_empty_message(message)) { ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"EMPTY_MSG") return PLUGIN_HANDLED } if(get_pcvar_num(gSlash)) { if(is_has_slash(message)) return PLUGIN_HANDLED_MAIN } new szName[32]; get_user_name(id,szName,31); if(is_user_admin(id)) { Len = format(gMessage[Len], charsmax(gMessage) - 1, "^4[^3%L^4] ",LANG_PLAYER,gRankNames[UserData[id][gLevel]]); switch(get_pcvar_num(gAdminGMsg)) { case 1: { Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^4 : ",szName); Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message); } case 2: { Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^4 : ",szName); Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s",message); } default: { Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^4 : ",szName); Len += format(gMessage[Len], charsmax(gMessage) - 1, "^1%s",message); } } Chat(id,0,get_pcvar_num(gAllChat)); } else { Len = format(gMessage[Len], charsmax(gMessage) - 1, "^4[^3%L^4] ",LANG_PLAYER,gRankNames[UserData[id][gLevel]]); Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^4 : ",szName); Len += format(gMessage[Len], charsmax(gMessage) - 1, "^1%s",message); Chat(id,0,get_pcvar_num(gAllChat)); } return PLUGIN_HANDLED_MAIN } public hookSayTeam(id) { if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id)) return PLUGIN_CONTINUE; new message[192],Len; read_args(message, 191); remove_quotes(message); if(is_admin_msg(message)) return PLUGIN_CONTINUE; if(is_empty_message(message)) { ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"EMPTY_MSG"); return PLUGIN_HANDLED } if(get_pcvar_num(gSlash)) { if(is_has_slash(message)) return PLUGIN_HANDLED_MAIN } new szName[32]; get_user_name(id,szName,31); if(is_user_admin(id)) { Len = format(gMessage[Len], charsmax(gMessage) - 1, "^3%L^1 ^4[^3%L^4] ^3%s^4 : ",LANG_PLAYER,"SEND_TEAM",LANG_PLAYER,gRankNames[UserData[id][gLevel]],szName); switch(get_pcvar_num(gAdminGMsg)) { case 1: { Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message); } case 2: { Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s",message); } default: { Len += format(gMessage[Len], charsmax(gMessage) - 1, "^1%s",message); } } Chat(id,1,get_pcvar_num(gAllChat)); } else { Len = format(gMessage[Len], charsmax(gMessage) - 1, "^3%L^1 ^4[^3%L^4] ",LANG_PLAYER,"SEND_TEAM",LANG_PLAYER,gRankNames[UserData[id][gLevel]]); Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^4 : ",szName); Len += format(gMessage[Len], charsmax(gMessage) - 1, "^1%s",message); Chat(id,1,get_pcvar_num(gAllChat)); } return PLUGIN_HANDLED_MAIN } stock is_admin_msg(const Message[]) { if(Message[0] == '@') return true; return false; } stock is_empty_message(const Message[]) { if(equal(Message, "") || !strlen(Message)) return true; return false; } stock Chat(id,team,chat_type) { if(team) { if(chat_type) { for(new i = 0; i <= MaxPlayers; i++) { if(!is_user_connected(i)) continue if(get_user_team(id) == get_user_team(i)) send_message(gMessage, id, i); } } else { if(is_user_alive(id)) { for(new i = 0; i <= MaxPlayers; i++) { if(!is_user_connected(i) || !is_user_alive(i)) continue if(get_user_team(id) == get_user_team(i)) send_message(gMessage, id, i); } } else if(!is_user_alive(id)){ for(new i = 0; i <= MaxPlayers; i++) { if(!is_user_connected(i) || is_user_alive(i)) continue if(get_user_team(id) == get_user_team(i)) send_message(gMessage, id, i); } } } } else{ if(chat_type) { for(new i = 0; i <= MaxPlayers; i++) { if(!is_user_connected(i)) continue send_message(gMessage, id, i); } } else { if(is_user_alive(id)) { for(new i = 0; i <= MaxPlayers; i++) { if(!is_user_connected(i) || !is_user_alive(i)) continue send_message(gMessage, id, i); } } else if(!is_user_alive(id)){ for(new i = 0; i <= MaxPlayers; i++) { if(!is_user_connected(i) || is_user_alive(i)) continue send_message(gMessage, id, i); } } } } } stock send_message(const message[], const id, const i) { message_begin(MSG_ONE, gSayText, {0, 0, 0}, i) write_byte(id) write_string(message) message_end() } stock is_has_slash(const Message[]) { if(Message[0] == '/') return true; return false; } public msg_SayText() { //new arg[32] //get_msg_arg_string(2, arg, 31) //if(containi(arg,"name")!=-1) //return PLUGIN_HANDLED return PLUGIN_CONTINUE } /////////// natives public plugin_natives() { register_native("get_user_exp", "native_get_user_exp", 1); register_native("get_user_lvl", "native_get_user_lvl", 1); register_native("get_user_rankname", "native_get_user_rankname"); } public native_get_user_exp(id) { return UserData[id][gExp]; } public native_get_user_lvl(id) { return UserData[id][gLevel]; } public native_get_user_rankname(plugin_id, param_nums) { // Insufficient number of arguments if (param_nums != 3) return -1; // Retrieve the player's index static id; id = get_param(1); static szRankName[64]; format(szRankName, charsmax(szRankName), "%L",LANG_PLAYER,gRankNames[UserData[id][gLevel]]); // Copy the model name into the array passed set_string(2, szRankName, get_param(3)) return 1; } //////// informer public Info() { for(new id = 0; id <= MaxPlayers; id++) { if(!is_user_bot(id) && is_user_alive(id)) { static buffer[100]; if(UserData[id][gLevel] <= 19) message_begin(MSG_ONE_UNRELIABLE, gStatusText, _, id) write_byte(0) write_string(buffer) message_end(); } } for(new id = 0; id <= MaxPlayers; id++) { if(!is_user_bot(id) && is_user_connected(id)) { set_hudmessage(100, 100, 100, -1.0, 0.01, 0, 1.0, 1.0, _, _, 1) static buffer[192], len; len = format(buffer, charsmax(buffer), "%L",LANG_PLAYER,"ZVANIE"); len += format(buffer[len], charsmax(buffer) - len, " %L",LANG_PLAYER,gRankNames[UserData[id][gLevel]]); if(UserData[id][gLevel] <= 19) { len += format(buffer[len], charsmax(buffer) - len, "^n%L",LANG_PLAYER,"PL_XP",UserData[id][gExp],gLevels[UserData[id][gLevel]]); } else { len += format(buffer[len], charsmax(buffer) - len, "^n%L",LANG_PLAYER,"PL_MAX"); } ShowSyncHudMsg(id, g_MsgHud, "%s", buffer); } } return PLUGIN_CONTINUE } public EventStatusValue(id) { if(!is_user_bot(id) && is_user_connected(id)) { new name[32], target = read_data( 2 ); static buffer[100], len; get_user_name(target, name, 31) new color1 = 0, color2 = 0, color3 = 0 if (get_user_team(target) == 1) { color2 = 50; color1 = 255; } if (get_user_team(target) == 2) { color2 = 128 color3 = 255 } len = format(buffer, charsmax(buffer), "%L",LANG_PLAYER,gRankNames[UserData[target][gLevel]]); if(UserData[id][gLevel] <= 19) { len += format(buffer[len], charsmax(buffer) - len, " | %L",LANG_PLAYER,"PL_XP_STEXT",UserData[target][gExp],gLevels[UserData[target][gLevel]]); } else { len += format(buffer[len], charsmax(buffer) - len, " | %L",LANG_PLAYER,"PL_MAX"); } set_hudmessage(color1, color2, color3, -1.0, 0.60, 0, 2.0, 2.0, _, _, 1); if (get_user_team(id) == get_user_team(target)) { show_hudmessage(id, "Друг: %s^n%s", name, buffer); } else { show_hudmessage(id, "Противник: %s^n%s", name, buffer); } } } public StatusText() { for(new id = 0; id <= MaxPlayers; id++) { if(!is_user_bot(id) && is_user_alive(id)) { static buffer[100]; if(UserData[id][gLevel] <= 19) message_begin(MSG_ONE_UNRELIABLE, gStatusText, _, id) write_byte(0) write_string(buffer) message_end(); } } } /////// weap menu per lvl public GetWeapon(id) { new szText[700 char]; formatex( szText, charsmax( szText ), "%L", id, "GW_TITLE"); new menu = menu_create( szText, "gw_menu" ); // formatex( szText, charsmax( szText ), "awp"); menu_additem( menu, szText, "1", 0 ); // formatex( szText, charsmax( szText ), "ak-47"); menu_additem( menu, szText, "2", 0 ); // formatex( szText, charsmax( szText ), "m4a1"); menu_additem( menu, szText, "3", 0 ); // formatex( szText, charsmax( szText ), "famas"); menu_additem( menu, szText, "4", 0 ); // menu_setprop( menu, MPROP_EXIT, MEXIT_ALL ); menu_display( id, menu,0); return PLUGIN_CONTINUE; } public gw_menu(id,menu,item) { if( item == MENU_EXIT ) { return PLUGIN_HANDLED; } new data[ 6 ], iName[ 64 ], access, callback; menu_item_getinfo( menu, item, access, data, charsmax( data ), iName, charsmax( iName ), callback ); new key = str_to_num( data ); switch( key ) { case 1: { give_item(id,"weapon_awp"); cs_set_user_bpammo( id, CSW_AWP, 100); } case 2: { give_item(id,"weapon_ak47"); cs_set_user_bpammo( id, CSW_AK47, 200); } case 3: { give_item(id,"weapon_m4a1"); cs_set_user_bpammo( id, CSW_M4A1, 200); } case 4: { give_item(id,"weapon_famas"); cs_set_user_bpammo( id, CSW_FAMAS, 200); } } return PLUGIN_HANDLED; } Часть кода, где "блочится" эта "шняга" Код public Info() { for(new id = 0; id <= MaxPlayers; id++) { if(!is_user_bot(id) && is_user_alive(id)) { static buffer[100]; if(UserData[id][gLevel] <= 19) message_begin(MSG_ONE_UNRELIABLE, gStatusText, _, id) write_byte(0) write_string(buffer) message_end(); } } http://forums.alliedmods.net/showthread.ph...ight=statustext |
Поблагодарили 1 раз
|
|
![]() ![]() |