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

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

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

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

EvilRanks

, помогите вставить кусочек
Статус пользователя MrTsar
сообщение 22.7.2014, 15:47
Сообщение #1


Стаж: 13 лет

Сообщений: 206
Благодарностей: 7
Полезность: < 0

Здарова! Ситуация такая:
есть рабочий код:
*.sma код
Код
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <fun>
#include <cstrike>
#include <nvault>
#include <sqlx>
#include <fakemeta>
#include <csx>

#define PLUGIN "Военные звания"
#define VERSION "1.2 fix"
#define AUTHOR "OverGame"

//#define DEBUG

#define MAX_SIMBOLS     128
#define SIZE         10

#pragma tabsize 0
#define ADM_MENU     ADMIN_IMMUNITY
new g_vault;
new Handle:g_SqlTuple;
new g_Error[512];
enum _:PlData
{
    gId,gExp,gLevel,gTempKey
};

new gPrifix
new g_SayText
new g_TranslitSimbol[MAX_SIMBOLS][SIZE]
new g_EngSimbol[MAX_SIMBOLS][SIZE]
new g_SplitSimbol

new stats[8],bodyhits[8],irank;
new UserData[33][PlData];
new g_MsgHud,MaxPlayers,levelUp[33];
new bool:restr_blocked;
new const gRankNames[][] =
{
    "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","I_21","I_22","I_23","I_24","I_25","I_26","I_27","I_28","I_29"
};
new const gLevels[] =
{
    0,10,20,30,50,100,200,400,500,700,1000,1300,1500,2000,2500,3000,3500,4500,5
000,5500,6000,6500,7000,7500,8000,8500,9000,9500,10000
};
new const gNades[][] =
{
    {0,0,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},
    {0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1}
}
new const restrict_bonus[][] =
{
    "35hp",
    "most_wanted",
    "ka_wintershank"
};
new gRestrictMaps,gBonusLevel,gFlash,gSmoke,gHe,gHpbylevel,gApbylevel,
gHideRadar,gSaveType,gTableName,gHost,gUser,gPassword,gDbName,
gTk,gLostXpTk,gLevelUpmsg//,gDeleteNullRow;
public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    register_cvar("evil_army",VERSION, FCVAR_SERVER | FCVAR_SPONLY);
    set_cvar_string("evil_army",VERSION);
    register_cvar ("amx_client_translit", "1")
    register_dictionary ("evil_translit.txt")
    new lTranslitMode[128], lTranslit[128]
    format (lTranslitMode, 127, "1/0 - %L", LANG_SERVER, "TRANSLIT_MODE")
    format (lTranslit, 127, "%L", LANG_SERVER, "TRANSLIT")
    register_clcmd ("amx_translit", "cmdTranslit", ADMIN_ALL, lTranslitMode)
    register_clcmd ("say","Translit", ADMIN_ALL, lTranslit)
    register_clcmd ("say_team","Translit", ADMIN_ALL, lTranslit)
    g_SayText = get_user_msgid ("SayText")
    gRestrictMaps     = register_cvar( "restrict_maps",         "0");// вкл запрет бонусов на карте.    
    gBonusLevel    = register_cvar( "level_bonus",         "0");// вкл оружие при получении уровня.
    gFlash        = register_cvar( "flash_nades",         "0");// вкл бонуса флешек
    gSmoke        = register_cvar( "smoke_nades",         "1");// вкл бонуса дымовых
    gHe        = register_cvar( "he_nades",         "1");// вкл бонуса осколочных
    gHpbylevel    = register_cvar( "hp_by_level",         "3");// кол-во хп, которое дается за лвл, если = 0 - то выкл
    gApbylevel    = register_cvar( "ap_by_level",         "5");// кол-во брони, которое дается за лвл, если = 0 - то выкл
    gHideRadar    = register_cvar( "hide_radar",         "1");// скрывать радар у игрока
    gSaveType     = register_cvar( "save_type",         "0");// 0 - nvault, 1- mysql.
    gTk         = register_cvar( "team_kill_lost_xp",       "1");// терять exp при тимкилле
    gLostXpTk     = register_cvar( "lost_xp_val",         "3");// кол-во теряемых exp при тк
    gLevelUpmsg    = register_cvar( "level_up_msg",         "1");// сообщение при лвл-апе игрока : 1- вкл (всем), 2 - только игроку
    gHost        = register_cvar( "mysql_host",         "127.0.0.1");     // host
    gUser        = register_cvar( "mysql_user",         "root");    // username
    gPassword    = register_cvar( "mysql_password",     "qwerty");     // password
    gDbName        = register_cvar( "mysql_db_name",     "test");     // database name
    gTableName    = register_cvar( "mysql_table_name",     "evil_army");     // название таблицы mysql
    gPrifix     = register_cvar( "au_prifix", "1")     // прифекс
    register_logevent( "EventRoundStart", 2, "1=Round_Start" );
    set_task(1.0,"Info",_,_,_, "b")
    register_event( "DeathMsg","EventDeath","a");
    register_message(get_user_msgid("SayText"), "msg_SayText");
    g_MsgHud = CreateHudSyncObj();
    MaxPlayers = get_maxplayers();
    register_dictionary("evil_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("[Evil Army] weapon menu is blocked on map [%s].",restrict_bonus[a]);
                break;
            } else {
                restr_blocked = false;
            }    
        }
    }
    switch(get_pcvar_num(gSaveType))
    {
        case 0:
        {
            g_vault = nvault_open("evil_army");
        }
        case 1:
        {
            set_task(0.1, "sql_init");
        }
        default:
        {
            g_vault = nvault_open("evil_army");
        }
    }
    register_clcmd("evil_setmenu","set_level_menu");
    new configsDir[64]
    new line, textline[64], len

    get_configsdir (configsDir, 63)
    
    format (configsDir, 63, "%s/evil_translit.ini", configsDir)

    if (!file_exists (configsDir))
    {
        console_print(0, "[AMXX] %L", LANG_SERVER, "NO_FILE", PLUGIN, configsDir)
        return PLUGIN_HANDLED
    }

    new i=0
    while ((line = read_file (configsDir, line, textline, 63, len)))
    {
        if (len == 0 || equal (textline, ";", 1))
            continue

        parse (textline, g_EngSimbol[i], SIZE, g_SplitSimbol, SIZE, g_TranslitSimbol[i], SIZE)
        #if defined DEBUG
        console_print (0, "Loaded simbol translit ^"%s^" into ^"%s^". Split simbol is ^"%s^"", g_EngSimbol[i], g_TranslitSimbol[i], g_SplitSimbol)
        #endif
        i++
    }
}

public plugin_cfg()
{
    new szCfgDir[64], szFile[192];
    get_configsdir(szCfgDir, charsmax(szCfgDir));
    formatex(szFile,charsmax(szFile),"%s/evil_army.cfg",szCfgDir);
    if(file_exists(szFile))
        server_cmd("exec %s", szFile);
}

public set_level_menu(id)
{
    if(get_user_flags(id) & ADM_MENU)
    {
        UserData[id][gTempKey] = 0;
        new players[32], num;
        get_players(players, num)
        new tempname[32], info[10];
        new players_menu = menu_create("Изменить звание игроку:", "set_level_hl")
        for(new i = 0; i < num; i++)
        {
            get_user_name(players[i], tempname, 31);
            num_to_str(players[i], info, 9);
            menu_additem(players_menu, tempname, info, 0);
        }
        menu_setprop(players_menu, MPROP_EXIT, MEXIT_ALL);
        menu_display(id, players_menu, 0);
    }
    return PLUGIN_CONTINUE
}
public set_level_hl(id, menu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    new data[6], _access, callback;
    menu_item_getinfo( menu, item, _access, data, charsmax(data), _, _, callback);
    UserData[id][gTempKey] = str_to_num(data);
    set_level_pl(id);
    return PLUGIN_CONTINUE
}
public set_level_pl(id)
{
    static szText[1024];
    formatex(szText,charsmax(szText), "%L", id, "CHOOSE_RANKN");
    new menu = menu_create( szText, "set_level_phl");
    for(new i = 1; i < sizeof(gRankNames); i++)
    {
        new szItem[100],lang[10],num[5];
        format(lang,9,"I_%d",i);
        format(num,4,"%d",i);
        formatex(szItem,charsmax(szItem),"%L",id,lang);
        menu_additem(menu,szItem,num);
    }
    menu_setprop(menu, MPROP_BACKNAME, "Назад");
    menu_setprop(menu, MPROP_NEXTNAME, "Далее");
    menu_setprop(menu, MPROP_EXITNAME, "Выйти");
    menu_display( id, menu,0);
    return PLUGIN_CONTINUE;
}
public set_level_phl(id,menu,item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    new data[6], _access, callback;
    menu_item_getinfo( menu, item, _access, data, charsmax(data), _, _, callback);
    new level = str_to_num(data);
    if(UserData[id][gTempKey] >= 1 && UserData[id][gTempKey] <= 32)
    {
        UserData[UserData[id][gTempKey]][gLevel] = level;
        UserData[UserData[id][gTempKey]][gExp] = gLevels[level-1];
        new szName[2][32];
        get_user_name(id, szName[0], 31);
        get_user_name(UserData[id][gTempKey], szName[1], 31);
        ColorChat(0,GREY,"%s give %L level to %s.",szName[0],LANG_PLAYER,gRankNames[level],szName[1])
    } else {
        set_level_menu(id);
    }
    UserData[id][gTempKey] = 0;
    return PLUGIN_HANDLED;
}

public sql_init()
{
    new szTableName[64],szHost[64],szUser[64],szPassword[64],szDbName[64],ErrorCode;
    get_pcvar_string(gTableName,szTableName,63);
    get_pcvar_string(gHost,szHost,63);
    get_pcvar_string(gUser,szUser,63);
    get_pcvar_string(gPassword,szPassword,63);
    get_pcvar_string(gDbName,szDbName,63);
    g_SqlTuple = SQL_MakeDbTuple(szHost,szUser,szPassword,szDbName);
    new Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)
    if(SqlConnection == Empty_Handle)
        set_fail_state(g_Error);

    new Handle:Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS `%s`(`id` INT(10) NOT NULL AUTO_INCREMENT,`name` VARCHAR(32) NOT NULL,`exp` INT(10) NOT NULL,`level` INT(10) NOT NULL,PRIMARY KEY (id));", szTableName)
    if(!SQL_Execute(Queries))
    {
        SQL_QueryError(Queries,g_Error,charsmax(g_Error))
        set_fail_state(g_Error);
    }
    SQL_QueryAndIgnore(SqlConnection, "DELETE FROM %s WHERE exp=0 and level=1;",szTableName);
    SQL_FreeHandle(Queries)
    SQL_FreeHandle(SqlConnection);
}
public plugin_end()
{
    switch(get_pcvar_num(gSaveType))
    {
        case 0:
        {
            nvault_close(g_vault);
        }
        case 1:
        {
            if(g_SqlTuple != Empty_Handle)
                SQL_FreeHandle(g_SqlTuple);
        }
        default:
        {
            nvault_close(g_vault);
        }
    }
}
public client_putinserver(id)
{
    if(get_pcvar_num(gHideRadar))
        client_cmd(id,"hideradar 1");
        
    UserData[id] = UserData[0];
    load_data(id);
}
public client_disconnect(id)
{
    save_usr(id);
    UserData[id] = UserData[0];
}
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]++;
        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[^3Evil Army^4]^1 %L ^4%s^1",LANG_PLAYER,"PLAYER",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,GREY,buffer);
            }
            case 2:
            {
                new szName[33];
                get_user_name(id, szName, 32);
                static buffer[192],len;
                len = format(buffer, charsmax(buffer), "^4[^3Evil Army^4]^1 %L ^4%s^1",LANG_PLAYER,"PLAYER",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,GREY,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 EventRoundStart()
{
    for(new id = 1; id <= MaxPlayers; id++)
    {
        if(is_user_alive(id) && is_user_connected(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;
}
public load_data(id)
{
    new szName[33];
    get_user_name(id,szName,32);
    switch(get_pcvar_num(gSaveType))
    {
        case 0:
        {
            static data[256], timestamp;
            if(nvault_lookup(g_vault, szName, data, sizeof(data) - 1, timestamp) )
            {
                next_load_data(id, data, sizeof(data) - 1);
                return;
            } else {
                register_player(id,"");
            }
        }
        case 1:
        {
            new szTableName[32],ErrorCode;
            new Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)
            SQL_QuoteString(SqlConnection, szName, 32, szName);
            get_pcvar_string(gTableName,szTableName,31);
            if(SqlConnection == Empty_Handle)
            {
                log_amx(g_Error);
                return;
            }
            new Handle:Query = SQL_PrepareQuery(SqlConnection,"SELECT id FROM %s WHERE name = '%s';",szTableName,szName)
            if(!SQL_Execute(Query))
            {
                SQL_QueryError(Query,g_Error,511);
                log_amx(g_Error);
                return;
            }
            if(SQL_NumResults(Query) > 0 )
            {
                next_load_data(id, "", 0);
            } else {
                register_player(id,"");
            }
            SQL_FreeHandle(Query);
            SQL_FreeHandle(SqlConnection);
        }
        default:
        {
            static data[256], timestamp;
            if(nvault_lookup(g_vault, szName, data, sizeof(data) - 1, timestamp) )
            {
                next_load_data(id, data, sizeof(data) - 1);
                return;
            } else {
                register_player(id,"");
            }
        }
    }
}
public next_load_data(id,data[],len)
{
    new szName[33];
    get_user_name(id,szName,32);
    switch(get_pcvar_num(gSaveType))
    {
        case 0:
        {
            replace_all(data,len,"|"," ");
            new exp[5],level[5];
            parse(data,exp,4,level,4);
            UserData[id][gExp]= str_to_num(exp);
            UserData[id][gLevel]= str_to_num(level);
        }
        case 1:
        {
            new szTableName[32],ErrorCode;
            new Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)
            SQL_QuoteString(SqlConnection, szName, 32, szName);
            get_pcvar_string(gTableName,szTableName,31);
            if(SqlConnection == Empty_Handle)
            {
                log_amx(g_Error);
                return;
            }
            new Handle:Query = SQL_PrepareQuery(SqlConnection,"SELECT id,exp,level FROM %s WHERE name = '%s';",szTableName,szName)
            if(!SQL_Execute(Query))
            {
                SQL_QueryError(Query,g_Error,511)
                log_amx(g_Error)
            }
            if( SQL_NumResults(Query) > 0)
            {
                UserData[id][gId]= SQL_ReadResult(Query,0);
                UserData[id][gExp]= SQL_ReadResult(Query,1);
                UserData[id][gLevel]= SQL_ReadResult(Query,2);
            }
            SQL_FreeHandle(Query);
            SQL_FreeHandle(SqlConnection);
        }
        default:
        {
            replace_all(data,len,"|"," ");
            new exp[5],level[5];
            parse(data,exp,4,level,4);
            UserData[id][gExp]= str_to_num(exp);
            UserData[id][gLevel]= str_to_num(level);
        }
    }
// mini-check lvl_up
    if(UserData[id][gLevel] <= 0)
        UserData[id][gLevel] = 1;

    while(UserData[id][gExp] >= gLevels[UserData[id][gLevel]])
        UserData[id][gLevel]++;
}
public register_player(id,data[])
{
    new szName[33];
    get_user_name(id,szName,32);
    switch(get_pcvar_num(gSaveType))
    {
        case 0:
        {
            UserData[id][gExp]= 0
            UserData[id][gLevel]= 1;
        }
        case 1:
        {
            new szTableName[32],ErrorCode;
            new Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)
            SQL_QuoteString(SqlConnection, szName, 32, szName);
            get_pcvar_string(gTableName,szTableName,31);
            if(SqlConnection == Empty_Handle)
            {
                log_amx(g_Error);
                return;
            }
            new Handle:Query = SQL_PrepareQuery(SqlConnection,"INSERT INTO %s (`id`,`name`,`exp`,`level`) VALUES (NULL,'%s','0','1');",szTableName,szName);
            if(!SQL_Execute(Query))
            {
                SQL_QueryError(Query,g_Error,511)
                log_amx(g_Error)
            }
            SQL_FreeHandle(Query);
            SQL_FreeHandle(SqlConnection);
            UserData[id][gExp] = 0;
            UserData[id][gLevel] = 1;
        }
        default:
        {
            UserData[id][gExp]= 0
            UserData[id][gLevel]= 1;
        }
    }
}
public save_usr(id)
{
    new szName[33];
    get_user_name(id,szName,32);
    switch(get_pcvar_num(gSaveType))
    {
        case 0:
        {
            static data[256];
            formatex(data, 255, "|%i|%i|", UserData[id][gExp],UserData[id][gLevel]);
            nvault_set(g_vault, szName, data);
        }
        case 1:
        {
            new saveq[256],szTableName[32];
            get_pcvar_string(gTableName,szTableName,31);
            format(saveq,255,"UPDATE `%s` SET `exp`='%d',`level`='%d' WHERE `id`='%d';", szTableName,UserData[id][gExp],UserData[id][gLevel],UserData[id][gId])
            SQL_ThreadQuery(g_SqlTuple,"QueryHandler",saveq);
        }
        default:
        {
            static data[256];
            formatex(data, 255, "|%i|%i|", UserData[id][gExp],UserData[id][gLevel]);
            nvault_set(g_vault, szName, data);
        }
    }
}
stock is_empty_message(const Message[])
{
    if(equal(Message, "") || !strlen(Message))
        return true;
        
    return false;
}
public client_infochanged(id)
{
    new newname[32],oldname[32]
    get_user_info(id, "name", newname,31)
    get_user_name(id,oldname,31)
    if(!is_user_connected(id) || is_user_bot(id))
        return PLUGIN_CONTINUE
        
    if(!equali(newname, oldname))
    {
        set_user_info(id,"name",oldname);
        log_amx("namechange BLOCKED.");
        return PLUGIN_HANDLED
    }
    return PLUGIN_CONTINUE
}
public msg_SayText()
{
    new arg[32]
    get_msg_arg_string(2, arg, 31)
    if(containi(arg,"name")!=-1)
        return PLUGIN_HANDLED

    return PLUGIN_CONTINUE
}
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("set_user_exp", "native_set_user_exp", 1);
    register_native("set_user_lvl", "native_set_user_lvl", 1);
    register_native("get_user_rankname", "native_get_user_rankname", 1);
}
public native_set_user_exp(id,num)
{
    UserData[id][gExp] = num;
}
public native_set_user_lvl(id,num)
{
    UserData[id][gLevel] = num;
}
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(id)
{
    static szRankName[64];
    format(szRankName, charsmax(szRankName), "%L",LANG_PLAYER,gRankNames[UserData[id][gLevel]]);
    return szRankName;
}
public Info()
{
    for(new id = 1; id <= MaxPlayers; id++)
    {
        if(!is_user_bot(id) && is_user_connected(id))
        {
            if(get_pcvar_num(gHideRadar))
                set_hudmessage(203, 44, 49, 0.01, 0.20, 0, 1.0, 1.0, _, _, -1);
            else
                set_hudmessage(203, 44, 49, 0.01, 0.20, 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");
            }
            irank = get_user_stats(id,stats,bodyhits)
            ShowSyncHudMsg(id, g_MsgHud, "%s^nВаш ранг: %d из %d^nМы вконтакте: %L", buffer, irank, get_statsnum(), LANG_PLAYER,"GROUP_VK");
        }
    }
    return PLUGIN_CONTINUE
}
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 QueryHandler(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
    switch(FailState)
    {
        case -2: log_amx("[Evil Army] Failed to connect (%d): %s", Errcode, Error);
        case -1: log_amx("[Evil Army] (%d): %s", Errcode, Error);
    }
    return PLUGIN_HANDLED
}

public cmdTranslit (id)
{
    new translit_mode[2], arg[2]

    get_user_info (id, "translit", translit_mode, 1)
    
    read_argv (1, arg, 2)
    new value = str_to_num (arg)

    switch (value)
    {
        case 0:
        {
            client_cmd (id, "setinfo translit ^"^"")
            client_print (id, print_console, "%L", id, "TRANSLIT_OFF")
            return PLUGIN_HANDLED
        }
        case 1:
        {
            client_cmd (id, "setinfo translit 1")            
            client_print (id, print_console, "%L", id, "TRANSLIT_ON")            
            return PLUGIN_HANDLED
        }
        default:
        {
            if (equal (translit_mode, "1"))
                client_print (id, print_console, "%L", id, "TRANSLIT_ON")
            else
                client_print (id, print_console, "%L", id, "TRANSLIT_OFF")

            return PLUGIN_HANDLED
        }
    }

    return PLUGIN_CONTINUE
}



public Translit (id)
{
    new translit[2]

    if (!get_cvar_num ("amx_client_translit"))
    {
        if (!access (id, ADMIN_CHAT))
            return PLUGIN_CONTINUE
    }

    get_user_info (id, "translit", translit, 1)

    if (!equal (translit, "1"))
        return PLUGIN_CONTINUE

    if (is_user_hltv (id) || is_user_bot (id))
        return PLUGIN_CONTINUE
    new original_message[192], send_message[192]
    new name[32]

    read_args (original_message, 191)
    remove_quotes (original_message)
#if defined DEBUG
    console_print (0, "Origin message is %s", original_message)
    console_print (0, "Origin message length is %d", strlen (original_message))
#endif
    if (strlen (original_message) < 1)
        return PLUGIN_CONTINUE

    if (contain (original_message, "!") == 0)
        return PLUGIN_CONTINUE

#if defined DEBUG
    add (send_message, 191, "^x01(Translit) ")
#endif
    for (new i=0; i < MAX_SIMBOLS; i++)
    {
        while (contain (original_message, g_EngSimbol[i]) != -1)
        {
            replace (original_message, 191, g_EngSimbol[i], g_TranslitSimbol[i])
#if defined DEBUG
            console_print (0, "Translit ^"%s^" into ^"%s^"", g_EngSimbol[i], g_TranslitSimbol[i])
#endif
        }
    }
    new say_mode[9]
    new players[32], playersNum
    new CsTeams:team = cs_get_user_team (id)
    new lSpectator[32], lTerrorist[32], lCounterTerrorist[32], lDead[32]

    read_argv (0, say_mode, 8)

    switch (team)
    {
        case 0:
        {
            if ((equal (say_mode, "say_team")))
            {
#if defined DEBUG
                console_print (0, "User team is UNASSIGNED. Say mode is SAY_TEAM")
#endif
                format (lSpectator, 31, "(%L) ", id, "SPECTATOR")
                add (send_message, 191, lSpectator)

                get_players (players, playersNum, "ce", "SPECTATOR")
            } else {
#if defined DEBUG
                console_print (0, "User team is UNASSIGNED. Say mode is SAY")
#endif
                get_players (players, playersNum, "bc")
            }
        }
        case 1:
        {
            if (is_user_alive (id))
            {
                if (equal (say_mode, "say_team"))
                {
#if defined DEBUG
                    console_print (0, "User team is TERRORIST. User is ALIVE. Say mode is SAY_TEAM")
#endif
                    format (lTerrorist, 31, "(%L) ", id, "TERRORIST")
                    add (send_message, 191, lTerrorist)

                    get_players (players, playersNum, "ace", "TERRORIST")
                } else {
#if defined DEBUG
                    console_print (0, "User team is TERRORIST. User is ALIVE. Say mode is SAY")
#endif
                    get_players (players, playersNum, "ac")
                }
            } else {
                format (lDead, 31, "*%L* ", id, "DEAD")
                add (send_message, 191, lDead)

                if (equal (say_mode, "say_team"))
                {
#if defined DEBUG
                    console_print (0, "User team is TERRORIST. User is DEAD. Say mode is SAY_TEAM")
#endif
                    format (lTerrorist, 31, "(%L) ", id, "TERRORIST")
                    add (send_message, 191, lTerrorist)

                    get_players (players, playersNum, "bce", "TERRORIST")
                } else {
#if defined DEBUG
                    console_print (0, "User team is TERRORIST. User is DEAD. Say mode is SAY")
#endif
                    get_players (players, playersNum, "bc")
                }
            }        
        }
        case 2:
        {
            if (is_user_alive (id))
            {
                if (equal (say_mode, "say_team"))
                {
#if defined DEBUG
                    console_print (0, "User team is COUNTER_TERRORIST. User is ALIVE. Say mode is SAY_TEAM")
#endif
                    format (lCounterTerrorist, 31, "(%L) ", id, "COUNTERTERRORIST")
                    add (send_message, 191, lCounterTerrorist)

                    get_players (players, playersNum, "ace", "CT")
                } else {
#if defined DEBUG
                    console_print (0, "User team is COUNTER_TERRORIST. User is ALIVE. Say mode is SAY")
#endif
                    get_players (players, playersNum, "ac")
                }
            } else {
                format (lDead, 31, "*%L* ", id, "DEAD")
                add (send_message, 191, lDead)

                if (equal (say_mode, "say_team"))
                {
#if defined DEBUG
                    console_print (0, "User team is COUNTER_TERRORIST. User is DEAD. Say mode is SAY_TEAM")
#endif
                    format (lCounterTerrorist, 31, "(%L) ", id, "COUNTERTERRORIST")
                    add (send_message, 191, lCounterTerrorist)

                    get_players (players, playersNum, "bce", "CT")
                } else {
#if defined DEBUG
                    console_print (0, "User team is COUNTER_TERRORIST. User is DEAD. Say mode is SAY")
#endif
                    get_players (players, playersNum, "bc")
                }
            }        
        }
        case 3:
        {
            if ((equal (say_mode, "say_team")))
            {
#if defined DEBUG
                console_print (0, "User team is SPECTATOR. Say mode is SAY_TEAM")
#endif
                format (lSpectator, 31, "(%L) ", id, "SPECTATOR")
                add (send_message, 191, lSpectator)

                get_players (players, playersNum, "ce", "SPECTATOR")
            } else {
#if defined DEBUG
                console_print (0, "User team is SPECTATOR. Say mode is SAY")
#endif
                get_players (players, playersNum, "bc")
            }
        }
    }

    get_user_name (id, name, 31)
#if defined DEBUG
    console_print (0, "Send message prefix is ^"%s^"", send_message)
    console_print (0, "Sender name is ^"%s^"", name)
    console_print (0, "Send message is %s", original_message)
    console_print (0, "Send message lenght is %d", strlen (send_message) + strlen (name) + strlen (original_message))
#endif
if(get_pcvar_num(gPrifix) == 1){
if(get_user_flags(id) & ADMIN_BAN){
    format (send_message, 191, "^x01%s[^x04Админ^x01]^x01[^x04%L^x01] ^x03%s^x04 :  %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)
}else{
    format (send_message, 191, "^x01%s[^x04Игрок^x01]^x01[^x04%L^x01] ^x03%s^x01 :  %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)
}
}else if(get_pcvar_num(gPrifix) == 0){
format (send_message, 191, "^x01%s[^x04%L^x01] ^x03%s^x01 :  %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)
}

    for (new i=0; i<playersNum; i++)
    {
        message_begin (MSG_ONE, g_SayText, {0, 0, 0}, players[i])
        write_byte (players[i])
        write_string (send_message)
        message_end ()
        client_print (players[i], print_console, send_message)
    }

    return PLUGIN_HANDLED
}

Все отлично, но хочется вставить сюда еще небольшой кусочек который будет давать приставку в чате не только админам а и вип игрокам с флагом (ADMIN_LEVEL_H).
Так как я в скриптинге 0, прошу помощи вас.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 22.7.2014, 15:51
Сообщение #2


Иконка группы

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Код:
if(get_user_flags(id) & ADMIN_BAN){
format (send_message, 191, "^x01%s[^x04Админ^x01]^x01[^x04%L^x01] ^x03%s^x04 : %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)
}else if(get_user_flags(id) & ADMIN_LEVEL_H){
format (send_message, 191, "^x01%s[^x04VIP^x01]^x01[^x04%L^x01] ^x03%s^x03 : %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)
} else {
format (send_message, 191, "^x01%s[^x04Игрок^x01]^x01[^x04%L^x01] ^x03%s^x01 : %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)
}


Отредактировал: GOOD FELLOW, - 22.7.2014, 15:52
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя MrTsar
сообщение 22.7.2014, 20:38
Сообщение #3


Стаж: 13 лет

Сообщений: 206
Благодарностей: 7
Полезность: < 0


EvilArmy.sma(48) : error 001: expected token: "}", but found "-integer value-"
EvilArmy.sma(49) : error 010: invalid function or declaration
EvilArmy.sma(161) : warning 209: function "plugin_init" should return a value
EvilArmy.sma(972) : error 001: expected token: "}", but found "-end of file-"

3 Errors.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя andrei911
сообщение 22.7.2014, 20:58
Сообщение #4
Стаж: 12 лет

Сообщений: 18
Благодарностей: 5
Полезность: 0

Попробуй elseif вместе написать (3 строка в коде от GOOD FELLOW)

Отредактировал: andrei911, - 22.7.2014, 21:00
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 22.7.2014, 21:00
Сообщение #5


Иконка группы

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

andrei911, бред сказанул
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
andreiwiz
сообщение 22.7.2014, 21:10
Сообщение #6
Стаж: 11 лет

Сообщений: 335
Благодарностей: 29
Полезность: 0

так вроде бы есть 1.3 fix...
или я ошибаюсь?
если кому нужен:


Отредактировал: andreiwiz, - 22.7.2014, 21:12
Прикрепленные файлы:
Прикрепленный файл  4391_EvilArmy_1_3_Fi.7z ( 137,56 килобайт ) Кол-во скачиваний: 5
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 22.7.2014, 21:12
Сообщение #7


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

замени
Код:

if(get_pcvar_num(gPrifix) == 1){
if(get_user_flags(id) & ADMIN_BAN){
format (send_message, 191, "^x01%s[^x04Админ^x01]^x01[^x04%L^x01] ^x03%s^x04 : %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)
}else{
format (send_message, 191, "^x01%s[^x04Игрок^x01]^x01[^x04%L^x01] ^x03%s^x01 : %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)
}
}else if(get_pcvar_num(gPrifix) == 0){
format (send_message, 191, "^x01%s[^x04%L^x01] ^x03%s^x01 : %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)
}


на
Код:

if(get_pcvar_num(gPrifix) == 1)
{
new user_flag = get_user_flags(id) ;

if(user_flag & ADMIN_BAN)
format (send_message, 191, "^x01%s[^x04Админ^x01]^x01[^x04%L^x01] ^x03%s^x04 : %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)

else if(user_flag & ADMIN_LEVEL_H)
format (send_message, 191, "^x01%s[^x04VIP^x01]^x01[^x04%L^x01] ^x03%s^x03 : %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)

else
format (send_message, 191, "^x01%s[^x04Игрок^x01]^x01[^x04%L^x01] ^x03%s^x01 : %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)
}

else if(get_pcvar_num(gPrifix) == 0)
{
format (send_message, 191, "^x01%s[^x04%L^x01] ^x03%s^x01 : %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)
}
else
return PLUGIN_HANDLED
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя MrTsar
сообщение 22.7.2014, 23:27
Сообщение #8


Стаж: 13 лет

Сообщений: 206
Благодарностей: 7
Полезность: < 0


Спасибо, скомпилировался! Проверю отпишусь.

Отредактировал: MrTsar, - 22.7.2014, 23:56
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MrTsar
сообщение 22.7.2014, 23:56
Сообщение #9


Стаж: 13 лет

Сообщений: 206
Благодарностей: 7
Полезность: < 0

Цитата(Legenda @ 22.7.2014, 22:12) *
замени
Код:

if(get_pcvar_num(gPrifix) == 1){
if(get_user_flags(id) & ADMIN_BAN){
format (send_message, 191, "^x01%s[^x04Админ^x01]^x01[^x04%L^x01] ^x03%s^x04 : %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)
}else{
format (send_message, 191, "^x01%s[^x04Игрок^x01]^x01[^x04%L^x01] ^x03%s^x01 : %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)
}
}else if(get_pcvar_num(gPrifix) == 0){
format (send_message, 191, "^x01%s[^x04%L^x01] ^x03%s^x01 : %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)
}


на
Код:

if(get_pcvar_num(gPrifix) == 1)
{
new user_flag = get_user_flags(id) ;

if(user_flag & ADMIN_BAN)
format (send_message, 191, "^x01%s[^x04Админ^x01]^x01[^x04%L^x01] ^x03%s^x04 : %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)

else if(user_flag & ADMIN_LEVEL_H)
format (send_message, 191, "^x01%s[^x04VIP^x01]^x01[^x04%L^x01] ^x03%s^x03 : %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)

else
format (send_message, 191, "^x01%s[^x04Игрок^x01]^x01[^x04%L^x01] ^x03%s^x01 : %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)
}

else if(get_pcvar_num(gPrifix) == 0)
{
format (send_message, 191, "^x01%s[^x04%L^x01] ^x03%s^x01 : %s", send_message, LANG_PLAYER, gRankNames[UserData[id][gLevel]], name, original_message)
}
else
return PLUGIN_HANDLED

Спасибо огромное все работает так как мне нужно!) Тему можно закрыть.

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