Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Army Ranks > "блок инфы"

Статус пользователя TarikYuzkiv
сообщение 9.9.2013, 22:47
Сообщение #1
Стаж: 13 лет

Сообщений: 509
Благодарностей: 196
Полезность: 635

Всем доброй ночи. Сегодня немного правил army ranks, убрал сообщения: "Friend Name Healt | Enemy Name".

Так вот, несмотря на это, сообщения все же проскакивает в начале каждого раунда, что немного напрягает (смотреть видео, слева внизу)

Прошу знающих людей помочь исправить, заранее спасибо! blush2.gif

Исходник
Код
/*     
    Обещанного три года ждут;)
*/
#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
Сообщение #2


Стаж: 13 лет

Сообщений: 270
Благодарностей: 48
Полезность: 156

progress_bar_pos = [0,1] - "расположение данных игрока: 0 - hud(под радаром), 1 - под чатом." Не оно?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя TarikYuzkiv
сообщение 10.9.2013, 12:32
Сообщение #3
Стаж: 13 лет

Сообщений: 509
Благодарностей: 196
Полезность: 635

Цитата(westcall @ 10.9.2013, 2:04) *
progress_bar_pos = [0,1] - "расположение данных игрока: 0 - hud(под радаром), 1 - под чатом." Не оно?

Это здесь причём?)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TarikYuzkiv
сообщение 10.9.2013, 12:38
Сообщение #4
Стаж: 13 лет

Сообщений: 509
Благодарностей: 196
Полезность: 635

Для тех, кто не понял - надо убрать эту "штуку".


Убрать вроде убрал, но все равно вначале нового раунда проскакивает...

Отредактировал: TarikYuzkiv, - 10.9.2013, 12:41
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Chilly_Willy
сообщение 10.9.2013, 13:51
Сообщение #5


Стаж: 17 лет

Сообщений: 394
Благодарностей: 45
Полезность: 119

А это не miscstats?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя westcall
сообщение 11.9.2013, 1:26
Сообщение #6


Стаж: 13 лет

Сообщений: 270
Благодарностей: 48
Полезность: 156

То что ты указал к плагину не имеет отношения...это серверная и пользовательская переменная, которая отображает инфу об игроке при наводе на него прицелом.
В конфиге hud_centerid "1" (будет по центру) у тебя стоит "0" поэтому снизу..
Ну или на серваке mp_playerid 0 // Иформация о игроке при наведении прицела (0=Все имена; 1=Имена из своей команды; 2=Без имён)

Отредактировал: westcall, - 11.9.2013, 1:36
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя DraconKCH
сообщение 11.9.2013, 5:02
Сообщение #7
Стаж: 17 лет

Сообщений: 156
Благодарностей: 74
Полезность: 373

Цитата(TarikYuzkiv @ 10.9.2013, 2:47) *
Всем доброй ночи. Сегодня немного правил army ranks, убрал сообщения: "Friend Name Healt | Enemy Name".

Так вот, несмотря на это, сообщения все же проскакивает в начале каждого раунда, что немного напрягает (смотреть видео, слева внизу)

Прошу знающих людей помочь исправить, заранее спасибо! blush2.gif

Исходник
Код
/*     
    Обещанного три года ждут;)
*/
#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 раз
   + Цитировать сообщение
Статус пользователя TarikYuzkiv
сообщение 11.9.2013, 9:01
Сообщение #8
Стаж: 13 лет

Сообщений: 509
Благодарностей: 196
Полезность: 635

Цитата(westcall @ 11.9.2013, 2:26) *
То что ты указал к плагину не имеет отношения...это серверная и пользовательская переменная, которая отображает инфу об игроке при наводе на него прицелом.
В конфиге hud_centerid "1" (будет по центру) у тебя стоит "0" поэтому снизу..
Ну или на серваке mp_playerid 0 // Иформация о игроке при наведении прицела (0=Все имена; 1=Имена из своей команды; 2=Без имён)

Но все равно можно через плагин заблочить.
Не знал я про mp_playerid, да и не думал, что это можно настроить через сервер. :)

Цитата(DraconKCH @ 11.9.2013, 6:02) *

Спасибо, проверил, работает.

Правда, все же решил, что худ слишком "напрягает" и сделал все через status text. : )


Всем спасибо, тема больше не актуальна.

Отредактировал: TarikYuzkiv, - 11.9.2013, 9:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: