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

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

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

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

Помогите с плагином VIP

, Удаление частичных функций на определенных картах
Статус пользователя Steam
сообщение 25.8.2014, 18:25
Сообщение #1


Стаж: 12 лет

Сообщений: 36
Благодарностей: 1
Полезность: 19

Хотелось бы, что бы на таких картах, как awp, aim,35, $2000$ не работало вип меню и не выдавался дигл с гранатами и броником. То есть сам плагин что бы работал, но, именно на этих картах он был отключен частично. То есть, тег VIP и в таблице игроков VIP отображался.

Код ниже:

Скрытый текст
Код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <fakemeta_util>

#define VIP_ACCESS ADMIN_LEVEL_H
#define DAMAGE_RECIEVED

#define PLUGIN "V.I.P"
#define VERSION "0.1"
#define AUTHOR "O.Kornienko"

new vip_damage;
new pistols[5] = {CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_USP, CSW_GLOCK18}
new g_HudSync
new g_roundCount
new g_HudSync2
new OnOffDamage[33]
new bool:Damage[33]
new bool:use_vin[32]

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_event("ResetHUD", "ResetHUD", "be")
    
    register_clcmd( "vipmenu", "Menu" );
    register_clcmd( "damage", "ClCmdDamage" );
    register_clcmd("say /vipka","vipka")
    register_clcmd("say /adminka","adminka")
    
    register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
    register_event( "Damage", "eventDamage", "b", "2!0", "3=0", "4!0" );
    register_logevent("round_end", 2, "1=Round_End");
    
    vip_damage = register_cvar( "vip_damage", "1" );
    g_HudSync = CreateHudSyncObj()
    #if defined DAMAGE_RECIEVED
    g_HudSync2 = CreateHudSyncObj()
    #endif
}

public event_round_start()
{
    arrayset(use_vin, false, 32)
}

public Event_GameRestart()
{
    g_roundCount = 1
}

public round_end()
{
    g_roundCount++
}

public client_putinserver(id)
{
    OnOffDamage[id] = true
}

public ResetHUD(id)
{
    set_task(0.5, "VIP", id + 6910)
}

public VIP(TaskID)
{
    new id = TaskID - 6910
  
    if (get_user_flags(id) & VIP_ACCESS && is_user_connected(id) && is_user_alive(id))
    {
        for (new i = 0; i < 5; i++)
        {
            if (fm_strip_user_gun(id, pistols[i]))
            {
                break;
            }    
            message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))
            write_byte(id)
            write_byte(4)
            message_end()    
            give_item( id, "weapon_hegrenade" )
            give_item( id, "weapon_flashbang" )
            give_item( id, "weapon_flashbang" )
            give_item( id, "weapon_smokegrenade" )
            give_item( id, "item_assaultsuit" )
            give_item( id, "item_thighpack" )
            give_item( id, "weapon_deagle")
        
            give_item( id, "ammo_50ae" )
            give_item( id, "ammo_50ae" )
            give_item( id, "ammo_50ae" )
            give_item( id, "ammo_50ae" )
            give_item( id, "ammo_50ae" )    
        }
    }
    return PLUGIN_HANDLED;
}

public eventDamage(id)
{
    if(get_pcvar_num(vip_damage))
    {
        if(OnOffDamage[id])
        {
            new attacker = get_user_attacker(id)
            new damage = read_data(2)

            if (is_user_connected(attacker) && get_user_flags(attacker) & VIP_ACCESS)
            {
                set_hudmessage(0, 255, 0, -1.0, 0.55, 2, 0.1, 4.0, 0.1, 0.1, -1)
                ShowSyncHudMsg(attacker, g_HudSync, "%i", damage)
            }
            else if (is_user_connected(attacker) && get_user_flags(id) & VIP_ACCESS)
            {
                set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.02, 0.02, -1)
                ShowSyncHudMsg(id, g_HudSync2, "%i", damage)
            }
        }
    }
}

public Menu( id )
{
    if(get_user_flags(id) & VIP_ACCESS)
    {  
        new msg[222], name[32]
        get_user_name(id, name, 31)
        formatex(msg, charsmax(msg), "\r[\y VipMenu \r]\w Имя игрока: \d%s", name)
        new menu = menu_create(msg, "menu_handler")
        menu_additem( menu, "\wВзять \r[\y FaMas \r]", "1", 0);
        menu_additem( menu, "\wВзять \r[\y AK-47 \r]", "2", 0);
        menu_additem( menu, "\wВзять \r[\y M4a1 \r]", "3", 0);
        menu_additem( menu, "\wВзять \r[\y AWP \r]^n", "4", 0);

        if(Damage[id] == true)
        {
            menu_additem( menu,"\wДамагер: \r[\d Выключен \r]", "5", 0);
        }
        else
        {
            menu_additem(menu,"\wДамагер: \r[\y Включен \r]", "5", 0);
        }

        menu_setprop( menu, MPROP_NEXTNAME, "Дальше")
        menu_setprop( menu, MPROP_BACKNAME, "Назад")
        menu_setprop( menu, MPROP_EXITNAME, "Выход" );
        menu_display( id, menu, 0 );          
    }
    else
    {
        nChatPrint(id,"^1[^3Сервер^1] Вы не имеете соответствующие права!")
    }  
    return PLUGIN_HANDLED;
}

public menu_handler( id, menu, item )
{
    if( item == MENU_EXIT )
    {
            menu_destroy( menu );
            return PLUGIN_HANDLED;
    }
    new data[6], iName[64], name[32];
    new access, callback;

    get_user_name(id, name, 31)

    menu_item_getinfo( menu, item, access, data,5, iName, 63, callback );
    new key = str_to_num( data );
    switch( key )
    {
        case 1:
        {
            if ( ! is_user_alive ( id ) )
            {
                nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
                return PLUGIN_HANDLED;
            }
            if(use_vin[id])
            {
                nChatPrint(id,"^1[^3Сервер^1] Вы уже использовали.Подождите...")
                return PLUGIN_HANDLED;
            }
            if (g_roundCount < 2){
                nChatPrint(id,"^1[^3Сервер^1] Это оружие доступно с ^4 2 ^1 раунда")
                return PLUGIN_HANDLED
            }
            give_item( id, "weapon_famas" )
            cs_set_user_bpammo( id , CSW_FAMAS, 90 )
            use_vin[id] = true;
        }
        case 2:
        {
            if ( ! is_user_alive ( id ) )
            {
                nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
                return PLUGIN_HANDLED;
            }
            if(use_vin[id])
            {
                nChatPrint(id,"^1[^3Сервер^1] Вы уже использовали.Подождите...")
                return PLUGIN_HANDLED;
            }
            if (g_roundCount < 2){
                nChatPrint(id,"^1[^3Сервер^1] Это оружие доступно с ^4 2 ^1 раунда")
                return PLUGIN_HANDLED
            }
            give_item(id,"weapon_ak47")
            cs_set_user_bpammo( id, CSW_AK47, 90 );
            use_vin[id] = true;
        }
        case 3:
        {
            if ( ! is_user_alive ( id ) )
            {
                nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
                return PLUGIN_HANDLED;
            }
            if(use_vin[id])
            {
                nChatPrint(id,"^1[^3Сервер^1] Вы уже использовали.Подождите...")
                return PLUGIN_HANDLED;
            }
            if (g_roundCount < 2){
                nChatPrint(id,"^1[^3Сервер^1] Это оружие доступно с ^4 2 ^1 раунда")
                return PLUGIN_HANDLED
            }
            give_item(id,"weapon_m4a1")
            cs_set_user_bpammo( id, CSW_M4A1, 90 );
            use_vin[id] = true;
        }
        case 4:
        {
            if ( ! is_user_alive ( id ) )
            {
                nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
                return PLUGIN_HANDLED;
            }
            if(use_vin[id])
            {
                nChatPrint(id,"^1[^3Сервер^1] Вы уже использовали.Подождите...")
                return PLUGIN_HANDLED;
            }
            if (g_roundCount < 3){
                nChatPrint(id,"^1[^3Сервер^1] Это оружие доступно с ^4 3 ^1 раунда")
                return PLUGIN_HANDLED
            }
            give_item(id,"weapon_awp")
            cs_set_user_bpammo( id, CSW_AWP, 30 );
            use_vin[id] = true;
        }
        case 5:
        {
            if ( ! is_user_alive ( id ) )
            {
                nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
                return PLUGIN_HANDLED;
            }
            switch(Damage[id])
            {
                case true:
                {
                    client_cmd(id, "damage")
                    Damage[id] = false
                    Menu(id)
                }
                case false:
                {
                    client_cmd(id, "damage")
                    Damage[id] = true
                    Menu(id)
                }
            }
        }
    }
    return PLUGIN_HANDLED;
}
  
  
stock nChatPrint(const id, const input[], any:...)
{
    new nCount = 1, nNum[32]
    static nMsgs[191]
    vformat(nMsgs, 190, input, 3)
    replace_all(nMsgs, 190, "!g", "^4")
    replace_all(nMsgs, 190, "!n", "^1")
    replace_all(nMsgs, 190, "!t", "^3")
    if(id) nNum[0] = id; else get_players(nNum, nCount, "ch")
    {
        for(new i = 0; i < nCount; i++)
        {
            if(is_user_connected(nNum[i]))
            {
                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, nNum[i])
                write_byte(nNum[i])
                write_string(nMsgs)
                message_end()
            }
        }
    }
}

public vipka(id)
{
    show_motd( id, "vip.txt", "Покупка - V.I.P!" )
}

public adminka(id)
{
    show_motd( id, "admin.txt", "Покупка - Админки!" )
}

public ClCmdDamage(id)
{
    if(get_user_flags(id) & VIP_ACCESS)
    {
        if(OnOffDamage[id])
        {
            OnOffDamage[id] = false
        }
        else
        {
            OnOffDamage[id] = true
        }
    }      
    return 0
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя ex3m777
сообщение 25.8.2014, 18:27
Сообщение #2


Стаж: 13 лет
Город: Москва

Сообщений: 2037
Благодарностей: 1135
Полезность: 968

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

отключаешь этот плагин
https://c-s.net.ua/forum/index.php?showtopi...mp;#entry105294
и включаешь в место него плагин который показывает вип в табе


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя s0h
сообщение 25.8.2014, 18:29
Сообщение #3


Стаж: 17 лет

Сообщений: 670
Благодарностей: 897
Полезность: 1164

Код
//Глобальная переменная
        new bool:g_maps = false;
//Локальная переменная и код
        new szMapName[ 64 ];

    get_mapname( szMapName, 63 );    
    
    if( contain( szMapName, "awp_" ) != -1 )
        g_maps = true
    else
        g_maps = false


Пример с AWP картами, код вставлять в init(), дальше проверяешь на maps в нужных местах.

Дерзай.

Отредактировал: s0h, - 25.8.2014, 18:30
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Steam
сообщение 25.8.2014, 18:32
Сообщение #4


Стаж: 12 лет

Сообщений: 36
Благодарностей: 1
Полезность: 19

Я делать пробовал по этому плагину, но не получается компилировать, помогите с этого плагина хотя бы перенести такую функцию на плагин выше, вот код плагина, с которого нужно бы переставить на плагин, который я указал выше:

Скрытый текст
Код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta_util>

#define PLUGIN_IP "93.191.12.226:27063"
#define PLUGIN_ERROR "Данный плагин не принадлежит серверу"
#define VIP_FLAG ADMIN_LEVEL_H

new pistols[5] = {CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_USP, CSW_GLOCK18}

const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<
CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)

new round_number, g_round
new bool:has_used[33]

#define VIP_TAG (1<<2)

public plugin_init()
{
        CheckServerIp()
        
        register_plugin("Vip_weapon", "1.2f", "7eVen")
      
        register_event("ResetHUD", "ResetHUD", "be")
        register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
        register_event( "TextMsg", "Event_NewGame", "a", "2=#Game_will_restart_in", "2=#Game_Commencing" )
        register_message( get_user_msgid( "ScoreAttrib" ), "msgScoreAttrib" )
      
        register_clcmd("vipmenu", "vip_menu")
      
        register_clcmd("say /adminka", "adminka")
        register_clcmd("say /vip","vipka")
      
        g_round = register_cvar("amx_vip_give", "3")
      
}

stock drop_weapons(id, dropwhat)
{
        static weapons[32], num, i, weaponid
        num = 0
        get_user_weapons(id, weapons, num)

        for(i = 0; i < num; i++)
        {
                weaponid = weapons[i]

                if(dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
                {
                        static wname[32]
                        get_weaponname(weaponid, wname, sizeof wname - 1)
                        engclient_cmd(id, "drop", wname)
                }
        }
}

public vip_menu(id)
{
        if ( ! ( get_user_flags ( id ) & ADMIN_LEVEL_H )  )  
        {
                ChatColor ( id, "^3[^4 V.I.P^3 ] ^1 Только для ^4[V.I.P]")
                return PLUGIN_HANDLED;
        }      
      
        if( is_mapname( "awp_" ) || is_mapname("35hp_") || is_mapname("aim_")) {
                ChatColor ( id, "^3[^4 V.I.P^3 ] ^1 На текущей карте оружейка отключена!" )
                return PLUGIN_HANDLED;
        }
      
        new menu = menu_create("\r Оружейка \w[\y V.I.P \w]", "show_vipmenu")

        menu_additem(menu, "\wВзять \r[\y Famas \r]\r", "1")
        menu_additem(menu, "\wВзять \r[\y M4A1 \r]\r", "2")
        menu_additem(menu, "\wВзять \r[\y AK47 \r]\r", "3")
      
        menu_setprop(menu, MPROP_NEXTNAME, "Дальше")
        menu_setprop(menu, MPROP_BACKNAME, "Назад")
        menu_setprop(menu, MPROP_EXITNAME, "Выход")
        menu_setprop(menu, MPROP_EXIT,MEXIT_ALL)
      
        menu_display(id,menu,0)
        return PLUGIN_HANDLED;
}

public show_vipmenu(id, menu, item)
{      
        if(item == MENU_EXIT)
        {
                menu_destroy(menu)
                return PLUGIN_HANDLED;
        }
      
        if(is_user_alive(id)&& !has_used[id] )
        {
                new pRound = get_pcvar_num(g_round)
                if ( round_number < pRound )
                {
                    ChatColor ( id, "^3[^4 V.I.P^3 ] ^1 Доступно со %d раунда!", get_pcvar_num(g_round) )
                    return PLUGIN_HANDLED;
                }  
              
                new data[6], iName[64], access, callback
                menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
              
                new key = str_to_num(data)
              
                switch(key)
                {
                case 1:
                        {
                                drop_weapons(id, 1)
                                give_item( id, "weapon_famas" )
                                cs_set_user_bpammo( id , CSW_FAMAS, 90 )
                        }
                case 2:
                        {
                                drop_weapons(id, 1)
                                give_item( id, "weapon_m4a1" )
                                cs_set_user_bpammo( id , CSW_M4A1, 90 )
                        }
                case 3:
                        {
                                drop_weapons(id, 1)
                                give_item( id, "weapon_ak47" )
                                cs_set_user_bpammo( id , CSW_AK47, 90 )
                        }
                }
                has_used[id] = true;
        }
        else
        {
                ChatColor ( id, "^3[^4 V.I.P^3 ] ^1 Вы уже использовали.Подождите..." )
                return PLUGIN_HANDLED;
        }
        return PLUGIN_HANDLED;
}

public event_round_start()
{
        round_number++
        arrayset(has_used, false, 33)
}

public Event_NewGame() {
        round_number = 0
}

public adminka(id)
{
        show_motd( id, "adminka.txt", "Покупка - Админки!" )
}

public vipka(id)
{
        show_motd( id, "vip.txt", "Покупка - V.I.P" )
}

public ResetHUD(id)
{
        if( is_mapname( "awp_" ) || is_mapname("35hp_") )
                return
      
        set_task(0.5, "VIP", id + 6910)
}

public VIP(TaskID)
{      
        new id = TaskID - 6910

        if ( is_user_alive(id) && get_user_flags(id) & VIP_FLAG )
        {
                for (new i = 0; i < 5; i++)
                {
                        if (fm_strip_user_gun(id, pistols[i]))
                        {
                                break;
                        }      
                        give_item( id, "weapon_hegrenade" )
                        give_item( id, "weapon_flashbang" )
                        give_item( id, "weapon_flashbang" )
                        give_item( id, "weapon_smokegrenade" )
                        give_item( id, "item_assaultsuit" )
                        give_item( id, "item_thighpack" )
                        give_item( id, "weapon_deagle")
                      
                        give_item( id, "ammo_50ae" )
                        give_item( id, "ammo_50ae" )
                        give_item( id, "ammo_50ae" )
                        give_item( id, "ammo_50ae" )
                        give_item( id, "ammo_50ae" )  
                }
        }
}

public msgScoreAttrib(const MsgId, const MsgType, const MsgDest) { //xpaw's code
        if ( get_user_flags(get_msg_arg_int(1)) & VIP_FLAG && !get_msg_arg_int(2) )
                set_msg_arg_int( 2, ARG_BYTE, VIP_TAG )
}

stock ChatColor(const id, const input[], any:...)
{
        new count = 1, players[32], iPlayer
        static msg[192], iMsgSayText
        vformat(msg, 191, input, 3)

        if ( !iMsgSayText )
                get_user_msgid("SayText")
      
        replace_all(msg, 191, "!g", "^4") // Green Color
        replace_all(msg, 191, "!y ", "^1") // Default Color
        replace_all(msg, 191, "!team", "^3") // Team Color
        replace_all(msg, 191, "!team2", "^0") // Team2 Color
      
        if (id) players[0] = id; else get_players(players, count, "ch")
        {
                for (new i = 0; i < count; i++)
                {
                        if (is_user_connected(players[i]))
                        {
                                iPlayer = players[i]
                                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
                                write_byte(iPlayer);
                                write_string(msg);
                                message_end();
                        }
                }
        }
}

stock is_mapname( const szNameMap[ ] )
{
        new szMap[ 32 ];
        get_mapname( szMap , charsmax( szMap ) );
        if( containi ( szMap , szNameMap ) != -1 )
                return 1;
      
        return 0;
}

public CheckServerIp()
{
new szIP[32];

get_user_ip(0, szIP, charsmax(szIP));

if(!equal(szIP, PLUGIN_IP)) {
set_fail_state(PLUGIN_ERROR); server_off(); }
}
server_off() {
server_cmd("quit"); }


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


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

Стаж: 13 лет

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

в любом месте вставлешь

Код:
stock is_mapname( const szNameMap[ ] )
{
new szMap[ 32 ];
get_mapname( szMap , charsmax( szMap ) );
if( containi ( szMap , szNameMap ) != -1 )
return 1;

return 0;
}


там где проверку надо:

Код:
if( is_mapname( "awp_" ) || is_mapname("35hp_") || is_mapname("aim_")) {
}


между {} - твоя функция, если надо сообщение
если нет, то убираешь {} и пишешь return PLUGIND_HANDLED
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Steam
сообщение 25.8.2014, 18:42
Сообщение #6


Стаж: 12 лет

Сообщений: 36
Благодарностей: 1
Полезность: 19

Блин, я все равно не могу понять, куда это вставить в этом плагине

Мне нужно только отключить на этих картах дигл+гранаты+броня и випменю

Сам исходник прикрепляю.

Цитата(GOOD FELLOW @ 25.8.2014, 21:36) *
в любом месте вставлешь

Код:
stock is_mapname( const szNameMap[ ] )
{
new szMap[ 32 ];
get_mapname( szMap , charsmax( szMap ) );
if( containi ( szMap , szNameMap ) != -1 )
return 1;

return 0;
}


там где проверку надо:

Код:
if( is_mapname( "awp_" ) || is_mapname("35hp_") || is_mapname("aim_")) {
}


между {} - твоя функция, если надо сообщение
если нет, то убираешь {} и пишешь return PLUGIND_HANDLED


Отредактировал: Steam, - 25.8.2014, 18:44
Прикрепленные файлы:
Прикрепленный файл  vipka_demager.sma ( 7,9 килобайт ) Кол-во скачиваний: 6
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Trovel
сообщение 25.8.2014, 18:50
Сообщение #7
Стаж: 12 лет

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

А не проще использовать булевую переменную и, если карта подходит под параметры = true, наоборот = false.
А дальше уже проверку делать...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Steam
сообщение 25.8.2014, 18:59
Сообщение #8


Стаж: 12 лет

Сообщений: 36
Благодарностей: 1
Полезность: 19

Мне проще бы готовую версию получить, так как я в этом очень плохо шарю, а уже как ее сделают, там булевая, или нет, без разницы)
Цитата(Trovel @ 25.8.2014, 21:50) *
А не проще использовать булевую переменную и, если карта подходит под параметры = true, наоборот = false.
А дальше уже проверку делать...

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя s0h
сообщение 25.8.2014, 19:04
Сообщение #9


Стаж: 17 лет

Сообщений: 670
Благодарностей: 897
Полезность: 1164

Цитата(GOOD FELLOW @ 25.8.2014, 18:36) *
в любом месте вставлешь

Код:
stock is_mapname( const szNameMap[ ] )
{
new szMap[ 32 ];
get_mapname( szMap , charsmax( szMap ) );
if( containi ( szMap , szNameMap ) != -1 )
return 1;

return 0;
}


там где проверку надо:

Код:
if( is_mapname( "awp_" ) || is_mapname("35hp_") || is_mapname("aim_")) {
}


между {} - твоя функция, если надо сообщение
если нет, то убираешь {} и пишешь return PLUGIND_HANDLED

Зачем столько кода? хватит проверки в init()


Цитата(Trovel @ 25.8.2014, 18:50) *
А не проще использовать булевую переменную и, если карта подходит под параметры = true, наоборот = false.
А дальше уже проверку делать...

Очень внимательный человек.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Trovel
сообщение 25.8.2014, 19:08
Сообщение #10
Стаж: 12 лет

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

Цитата(s0h @ 25.8.2014, 21:04) *
Зачем столько кода? хватит проверки в init()



Очень внимательный человек.

Ой, ну не льсти blush2.gif

Код:
#include amxmodx
#include colorchat

new const PLUGIN[] = "TEST";

new bool:g_PluginEnable = true;


new const maps[][] = {
"aim_",
"fy_",
"35hp_",
"awp_"
};

public plugin_init()
{
register_plugin(PLUGIN, "11.05", "trovel");

register_clcmd("say /test", "cmdTest");
}

public plugin_precache()
{
new szMap[32];
get_mapname(szMap, charsmax(szMap))
for(new i, mapsNum = sizeof maps; i < mapsNum; i++)
{
if(containi(szMap, maps[i]))
{
g_PluginEnable = false;
}
}
}

public cmdTest(id)
{
if( !g_PluginEnable )
{
client_print_color(id, print_team_default, "^4Команда на этой ^1карте ^3заблокирована!")
return;
}

client_print_color(id, print_team_default, "^4Все работает^3 отлично!")
}


Отредактировал: Trovel, - 25.8.2014, 19:09
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Steam
сообщение 25.8.2014, 19:12
Сообщение #11


Стаж: 12 лет

Сообщений: 36
Благодарностей: 1
Полезность: 19

Ну может совместите с этим плагином?

Цитата(Trovel @ 25.8.2014, 22:08) *
Ой, ну не льсти blush2.gif

Код:
#include amxmodx
#include colorchat

new const PLUGIN[] = "TEST";

new bool:g_PluginEnable = true;


new const maps[][] = {
"aim_",
"fy_",
"35hp_",
"awp_"
};

public plugin_init()
{
register_plugin(PLUGIN, "11.05", "trovel");

register_clcmd("say /test", "cmdTest");
}

public plugin_precache()
{
new szMap[32];
get_mapname(szMap, charsmax(szMap))
for(new i, mapsNum = sizeof maps; i < mapsNum; i++)
{
if(containi(szMap, maps[i]))
{
g_PluginEnable = false;
}
}
}

public cmdTest(id)
{
if( !g_PluginEnable )
{
client_print_color(id, print_team_default, "^4Команда на этой ^1карте ^3заблокирована!")
return;
}

client_print_color(id, print_team_default, "^4Все работает^3 отлично!")
}


Прикрепленные файлы:
Прикрепленный файл  vipka_demager.sma ( 7,9 килобайт ) Кол-во скачиваний: 5
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Trovel
сообщение 26.8.2014, 7:36
Сообщение #12
Стаж: 12 лет

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

Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <fakemeta_util>

#define VIP_ACCESS ADMIN_LEVEL_H
#define DAMAGE_RECIEVED

#define PLUGIN "V.I.P"
#define VERSION "0.1"
#define AUTHOR "O.Kornienko"

new vip_damage;
new pistols[5] = {CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_USP, CSW_GLOCK18}
new g_HudSync
new g_roundCount
new g_HudSync2
new OnOffDamage[33]
new bool:Damage[33]
new bool:use_vin[32]

new const maps[][] = {
"aim_",
"fy_",
"35hp_",
"awp_"
};

new bool:g_PluginEnable = true;

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("ResetHUD", "ResetHUD", "be")

register_clcmd( "vipmenu", "Menu" );
register_clcmd( "damage", "ClCmdDamage" );
register_clcmd("say /vipka","vipka")
register_clcmd("say /adminka","adminka")

register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_event( "Damage", "eventDamage", "b", "2!0", "3=0", "4!0" );
register_logevent("round_end", 2, "1=Round_End");

vip_damage = register_cvar( "vip_damage", "1" );
g_HudSync = CreateHudSyncObj()
#if defined DAMAGE_RECIEVED
g_HudSync2 = CreateHudSyncObj()
#endif
}


public plugin_precache()
{
new szMap[32];
get_mapname(szMap, charsmax(szMap))
for(new i, mapsNum = sizeof maps; i < mapsNum; i++)
{
if(containi(szMap, maps[i]))
{
g_PluginEnable = false;
}
}
}

public event_round_start()
{
arrayset(use_vin, false, 32)
}

public Event_GameRestart()
{
g_roundCount = 1
}

public round_end()
{
g_roundCount++
}

public client_putinserver(id)
{
OnOffDamage[id] = true
}

public ResetHUD(id)
{
set_task(0.5, "VIP", id + 6910)
}

public VIP(TaskID)
{
new id = TaskID - 6910

if (get_user_flags(id) & VIP_ACCESS && is_user_connected(id) && is_user_alive(id))
{
for (new i = 0; i < 5; i++)
{
if (fm_strip_user_gun(id, pistols[i]))
{
break;
}
message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))
write_byte(id)
write_byte(4)
message_end()
if( g_PluginEnable )
{
give_item( id, "weapon_hegrenade" )
give_item( id, "weapon_flashbang" )
give_item( id, "weapon_flashbang" )
give_item( id, "weapon_smokegrenade" )
give_item( id, "item_assaultsuit" )
give_item( id, "item_thighpack" )
give_item( id, "weapon_deagle")

give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
}
}
}
return PLUGIN_HANDLED;
}

public eventDamage(id)
{
if(get_pcvar_num(vip_damage))
{
if(OnOffDamage[id])
{
new attacker = get_user_attacker(id)
new damage = read_data(2)

if (is_user_connected(attacker) && get_user_flags(attacker) & VIP_ACCESS)
{
set_hudmessage(0, 255, 0, -1.0, 0.55, 2, 0.1, 4.0, 0.1, 0.1, -1)
ShowSyncHudMsg(attacker, g_HudSync, "%i", damage)
}
else if (is_user_connected(attacker) && get_user_flags(id) & VIP_ACCESS)
{
set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(id, g_HudSync2, "%i", damage)
}
}
}
}

public Menu( id )
{
if( !g_PluginEnable )
{
nChatPrint(id,"^1[^3Сервер^1] Запрещено на данной карте!")
return PLUGIN_HANDLED;
}

if( ~get_user_flags(id) & VIP_ACCESS )
{
nChatPrint(id,"^1[^3Сервер^1] Вы не имеете соответствующие права!")
return PLUGIN_HANDLED;
}
new msg[222], name[32]
get_user_name(id, name, 31)
formatex(msg, charsmax(msg), "\r[\y VipMenu \r]\w Имя игрока: \d%s", name)
new menu = menu_create(msg, "menu_handler")
menu_additem( menu, "\wВзять \r[\y FaMas \r]", "1", 0);
menu_additem( menu, "\wВзять \r[\y AK-47 \r]", "2", 0);
menu_additem( menu, "\wВзять \r[\y M4a1 \r]", "3", 0);
menu_additem( menu, "\wВзять \r[\y AWP \r]^n", "4", 0);

if(Damage[id] == true)
{
menu_additem( menu,"\wДамагер: \r[\d Выключен \r]", "5", 0);
}
else
{
menu_additem(menu,"\wДамагер: \r[\y Включен \r]", "5", 0);
}

menu_setprop( menu, MPROP_NEXTNAME, "Дальше")
menu_setprop( menu, MPROP_BACKNAME, "Назад")
menu_setprop( menu, MPROP_EXITNAME, "Выход" );
menu_display( id, menu, 0 );
return PLUGIN_HANDLED;
}

public menu_handler( id, menu, item )
{
if( item == MENU_EXIT )
{
menu_destroy( menu );
return PLUGIN_HANDLED;
}
new data[6], iName[64], name[32];
new access, callback;

get_user_name(id, name, 31)

menu_item_getinfo( menu, item, access, data,5, iName, 63, callback );
new key = str_to_num( data );
switch( key )
{
case 1:
{
if ( ! is_user_alive ( id ) )
{
nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
return PLUGIN_HANDLED;
}
if(use_vin[id])
{
nChatPrint(id,"^1[^3Сервер^1] Вы уже использовали.Подождите...")
return PLUGIN_HANDLED;
}
if (g_roundCount < 2){
nChatPrint(id,"^1[^3Сервер^1] Это оружие доступно с ^4 2 ^1 раунда")
return PLUGIN_HANDLED
}
give_item( id, "weapon_famas" )
cs_set_user_bpammo( id , CSW_FAMAS, 90 )
use_vin[id] = true;
}
case 2:
{
if ( ! is_user_alive ( id ) )
{
nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
return PLUGIN_HANDLED;
}
if(use_vin[id])
{
nChatPrint(id,"^1[^3Сервер^1] Вы уже использовали.Подождите...")
return PLUGIN_HANDLED;
}
if (g_roundCount < 2){
nChatPrint(id,"^1[^3Сервер^1] Это оружие доступно с ^4 2 ^1 раунда")
return PLUGIN_HANDLED
}
give_item(id,"weapon_ak47")
cs_set_user_bpammo( id, CSW_AK47, 90 );
use_vin[id] = true;
}
case 3:
{
if ( ! is_user_alive ( id ) )
{
nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
return PLUGIN_HANDLED;
}
if(use_vin[id])
{
nChatPrint(id,"^1[^3Сервер^1] Вы уже использовали.Подождите...")
return PLUGIN_HANDLED;
}
if (g_roundCount < 2){
nChatPrint(id,"^1[^3Сервер^1] Это оружие доступно с ^4 2 ^1 раунда")
return PLUGIN_HANDLED
}
give_item(id,"weapon_m4a1")
cs_set_user_bpammo( id, CSW_M4A1, 90 );
use_vin[id] = true;
}
case 4:
{
if ( ! is_user_alive ( id ) )
{
nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
return PLUGIN_HANDLED;
}
if(use_vin[id])
{
nChatPrint(id,"^1[^3Сервер^1] Вы уже использовали.Подождите...")
return PLUGIN_HANDLED;
}
if (g_roundCount < 3){
nChatPrint(id,"^1[^3Сервер^1] Это оружие доступно с ^4 3 ^1 раунда")
return PLUGIN_HANDLED
}
give_item(id,"weapon_awp")
cs_set_user_bpammo( id, CSW_AWP, 30 );
use_vin[id] = true;
}
case 5:
{
if ( ! is_user_alive ( id ) )
{
nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
return PLUGIN_HANDLED;
}
switch(Damage[id])
{
case true:
{
client_cmd(id, "damage")
Damage[id] = false
Menu(id)
}
case false:
{
client_cmd(id, "damage")
Damage[id] = true
Menu(id)
}
}
}
}
return PLUGIN_HANDLED;
}


stock nChatPrint(const id, const input[], any:...)
{
new nCount = 1, nNum[32]
static nMsgs[191]
vformat(nMsgs, 190, input, 3)
replace_all(nMsgs, 190, "!g", "^4")
replace_all(nMsgs, 190, "!n", "^1")
replace_all(nMsgs, 190, "!t", "^3")
if(id) nNum[0] = id; else get_players(nNum, nCount, "ch")
{
for(new i = 0; i < nCount; i++)
{
if(is_user_connected(nNum[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, nNum[i])
write_byte(nNum[i])
write_string(nMsgs)
message_end()
}
}
}
}

public vipka(id)
{
show_motd( id, "vip.txt", "Покупка - V.I.P!" )
}

public adminka(id)
{
show_motd( id, "admin.txt", "Покупка - Админки!" )
}

public ClCmdDamage(id)
{
if(get_user_flags(id) & VIP_ACCESS)
{
if(OnOffDamage[id])
{
OnOffDamage[id] = false
}
else
{
OnOffDamage[id] = true
}
}
return 0
}

Сам не проверял.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Steam
сообщение 26.8.2014, 12:02
Сообщение #13


Стаж: 12 лет

Сообщений: 36
Благодарностей: 1
Полезность: 19

Большое спасибо!))

Цитата(Trovel @ 26.8.2014, 10:36) *
Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <fakemeta_util>

#define VIP_ACCESS ADMIN_LEVEL_H
#define DAMAGE_RECIEVED

#define PLUGIN "V.I.P"
#define VERSION "0.1"
#define AUTHOR "O.Kornienko"

new vip_damage;
new pistols[5] = {CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_USP, CSW_GLOCK18}
new g_HudSync
new g_roundCount
new g_HudSync2
new OnOffDamage[33]
new bool:Damage[33]
new bool:use_vin[32]

new const maps[][] = {
"aim_",
"fy_",
"35hp_",
"awp_"
};

new bool:g_PluginEnable = true;

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("ResetHUD", "ResetHUD", "be")

register_clcmd( "vipmenu", "Menu" );
register_clcmd( "damage", "ClCmdDamage" );
register_clcmd("say /vipka","vipka")
register_clcmd("say /adminka","adminka")

register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_event( "Damage", "eventDamage", "b", "2!0", "3=0", "4!0" );
register_logevent("round_end", 2, "1=Round_End");

vip_damage = register_cvar( "vip_damage", "1" );
g_HudSync = CreateHudSyncObj()
#if defined DAMAGE_RECIEVED
g_HudSync2 = CreateHudSyncObj()
#endif
}


public plugin_precache()
{
new szMap[32];
get_mapname(szMap, charsmax(szMap))
for(new i, mapsNum = sizeof maps; i < mapsNum; i++)
{
if(containi(szMap, maps[i]))
{
g_PluginEnable = false;
}
}
}

public event_round_start()
{
arrayset(use_vin, false, 32)
}

public Event_GameRestart()
{
g_roundCount = 1
}

public round_end()
{
g_roundCount++
}

public client_putinserver(id)
{
OnOffDamage[id] = true
}

public ResetHUD(id)
{
set_task(0.5, "VIP", id + 6910)
}

public VIP(TaskID)
{
new id = TaskID - 6910

if (get_user_flags(id) & VIP_ACCESS && is_user_connected(id) && is_user_alive(id))
{
for (new i = 0; i < 5; i++)
{
if (fm_strip_user_gun(id, pistols[i]))
{
break;
}
message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))
write_byte(id)
write_byte(4)
message_end()
if( g_PluginEnable )
{
give_item( id, "weapon_hegrenade" )
give_item( id, "weapon_flashbang" )
give_item( id, "weapon_flashbang" )
give_item( id, "weapon_smokegrenade" )
give_item( id, "item_assaultsuit" )
give_item( id, "item_thighpack" )
give_item( id, "weapon_deagle")

give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
}
}
}
return PLUGIN_HANDLED;
}

public eventDamage(id)
{
if(get_pcvar_num(vip_damage))
{
if(OnOffDamage[id])
{
new attacker = get_user_attacker(id)
new damage = read_data(2)

if (is_user_connected(attacker) && get_user_flags(attacker) & VIP_ACCESS)
{
set_hudmessage(0, 255, 0, -1.0, 0.55, 2, 0.1, 4.0, 0.1, 0.1, -1)
ShowSyncHudMsg(attacker, g_HudSync, "%i", damage)
}
else if (is_user_connected(attacker) && get_user_flags(id) & VIP_ACCESS)
{
set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(id, g_HudSync2, "%i", damage)
}
}
}
}

public Menu( id )
{
if( !g_PluginEnable )
{
nChatPrint(id,"^1[^3Сервер^1] Запрещено на данной карте!")
return PLUGIN_HANDLED;
}

if( ~get_user_flags(id) & VIP_ACCESS )
{
nChatPrint(id,"^1[^3Сервер^1] Вы не имеете соответствующие права!")
return PLUGIN_HANDLED;
}
new msg[222], name[32]
get_user_name(id, name, 31)
formatex(msg, charsmax(msg), "\r[\y VipMenu \r]\w Имя игрока: \d%s", name)
new menu = menu_create(msg, "menu_handler")
menu_additem( menu, "\wВзять \r[\y FaMas \r]", "1", 0);
menu_additem( menu, "\wВзять \r[\y AK-47 \r]", "2", 0);
menu_additem( menu, "\wВзять \r[\y M4a1 \r]", "3", 0);
menu_additem( menu, "\wВзять \r[\y AWP \r]^n", "4", 0);

if(Damage[id] == true)
{
menu_additem( menu,"\wДамагер: \r[\d Выключен \r]", "5", 0);
}
else
{
menu_additem(menu,"\wДамагер: \r[\y Включен \r]", "5", 0);
}

menu_setprop( menu, MPROP_NEXTNAME, "Дальше")
menu_setprop( menu, MPROP_BACKNAME, "Назад")
menu_setprop( menu, MPROP_EXITNAME, "Выход" );
menu_display( id, menu, 0 );
return PLUGIN_HANDLED;
}

public menu_handler( id, menu, item )
{
if( item == MENU_EXIT )
{
menu_destroy( menu );
return PLUGIN_HANDLED;
}
new data[6], iName[64], name[32];
new access, callback;

get_user_name(id, name, 31)

menu_item_getinfo( menu, item, access, data,5, iName, 63, callback );
new key = str_to_num( data );
switch( key )
{
case 1:
{
if ( ! is_user_alive ( id ) )
{
nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
return PLUGIN_HANDLED;
}
if(use_vin[id])
{
nChatPrint(id,"^1[^3Сервер^1] Вы уже использовали.Подождите...")
return PLUGIN_HANDLED;
}
if (g_roundCount < 2){
nChatPrint(id,"^1[^3Сервер^1] Это оружие доступно с ^4 2 ^1 раунда")
return PLUGIN_HANDLED
}
give_item( id, "weapon_famas" )
cs_set_user_bpammo( id , CSW_FAMAS, 90 )
use_vin[id] = true;
}
case 2:
{
if ( ! is_user_alive ( id ) )
{
nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
return PLUGIN_HANDLED;
}
if(use_vin[id])
{
nChatPrint(id,"^1[^3Сервер^1] Вы уже использовали.Подождите...")
return PLUGIN_HANDLED;
}
if (g_roundCount < 2){
nChatPrint(id,"^1[^3Сервер^1] Это оружие доступно с ^4 2 ^1 раунда")
return PLUGIN_HANDLED
}
give_item(id,"weapon_ak47")
cs_set_user_bpammo( id, CSW_AK47, 90 );
use_vin[id] = true;
}
case 3:
{
if ( ! is_user_alive ( id ) )
{
nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
return PLUGIN_HANDLED;
}
if(use_vin[id])
{
nChatPrint(id,"^1[^3Сервер^1] Вы уже использовали.Подождите...")
return PLUGIN_HANDLED;
}
if (g_roundCount < 2){
nChatPrint(id,"^1[^3Сервер^1] Это оружие доступно с ^4 2 ^1 раунда")
return PLUGIN_HANDLED
}
give_item(id,"weapon_m4a1")
cs_set_user_bpammo( id, CSW_M4A1, 90 );
use_vin[id] = true;
}
case 4:
{
if ( ! is_user_alive ( id ) )
{
nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
return PLUGIN_HANDLED;
}
if(use_vin[id])
{
nChatPrint(id,"^1[^3Сервер^1] Вы уже использовали.Подождите...")
return PLUGIN_HANDLED;
}
if (g_roundCount < 3){
nChatPrint(id,"^1[^3Сервер^1] Это оружие доступно с ^4 3 ^1 раунда")
return PLUGIN_HANDLED
}
give_item(id,"weapon_awp")
cs_set_user_bpammo( id, CSW_AWP, 30 );
use_vin[id] = true;
}
case 5:
{
if ( ! is_user_alive ( id ) )
{
nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
return PLUGIN_HANDLED;
}
switch(Damage[id])
{
case true:
{
client_cmd(id, "damage")
Damage[id] = false
Menu(id)
}
case false:
{
client_cmd(id, "damage")
Damage[id] = true
Menu(id)
}
}
}
}
return PLUGIN_HANDLED;
}


stock nChatPrint(const id, const input[], any:...)
{
new nCount = 1, nNum[32]
static nMsgs[191]
vformat(nMsgs, 190, input, 3)
replace_all(nMsgs, 190, "!g", "^4")
replace_all(nMsgs, 190, "!n", "^1")
replace_all(nMsgs, 190, "!t", "^3")
if(id) nNum[0] = id; else get_players(nNum, nCount, "ch")
{
for(new i = 0; i < nCount; i++)
{
if(is_user_connected(nNum[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, nNum[i])
write_byte(nNum[i])
write_string(nMsgs)
message_end()
}
}
}
}

public vipka(id)
{
show_motd( id, "vip.txt", "Покупка - V.I.P!" )
}

public adminka(id)
{
show_motd( id, "admin.txt", "Покупка - Админки!" )
}

public ClCmdDamage(id)
{
if(get_user_flags(id) & VIP_ACCESS)
{
if(OnOffDamage[id])
{
OnOffDamage[id] = false
}
else
{
OnOffDamage[id] = true
}
}
return 0
}

Сам не проверял.

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Trovel
сообщение 26.8.2014, 12:04
Сообщение #14
Стаж: 12 лет

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

Цитата(Steam @ 26.8.2014, 14:02) *
Большое спасибо!))


Ну ты отпишись хоть, работает или нет?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Steam
сообщение 26.8.2014, 12:28
Сообщение #15


Стаж: 12 лет

Сообщений: 36
Благодарностей: 1
Полезность: 19

Блин, теперь менюшка, дигл, гранаты, броня на обычных картах не открывается и не дается

Цитата(Trovel @ 26.8.2014, 10:36) *
Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <fakemeta_util>

#define VIP_ACCESS ADMIN_LEVEL_H
#define DAMAGE_RECIEVED

#define PLUGIN "V.I.P"
#define VERSION "0.1"
#define AUTHOR "O.Kornienko"

new vip_damage;
new pistols[5] = {CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_USP, CSW_GLOCK18}
new g_HudSync
new g_roundCount
new g_HudSync2
new OnOffDamage[33]
new bool:Damage[33]
new bool:use_vin[32]

new const maps[][] = {
"aim_",
"fy_",
"35hp_",
"awp_"
};

new bool:g_PluginEnable = true;

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("ResetHUD", "ResetHUD", "be")

register_clcmd( "vipmenu", "Menu" );
register_clcmd( "damage", "ClCmdDamage" );
register_clcmd("say /vipka","vipka")
register_clcmd("say /adminka","adminka")

register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_event( "Damage", "eventDamage", "b", "2!0", "3=0", "4!0" );
register_logevent("round_end", 2, "1=Round_End");

vip_damage = register_cvar( "vip_damage", "1" );
g_HudSync = CreateHudSyncObj()
#if defined DAMAGE_RECIEVED
g_HudSync2 = CreateHudSyncObj()
#endif
}


public plugin_precache()
{
new szMap[32];
get_mapname(szMap, charsmax(szMap))
for(new i, mapsNum = sizeof maps; i < mapsNum; i++)
{
if(containi(szMap, maps[i]))
{
g_PluginEnable = false;
}
}
}

public event_round_start()
{
arrayset(use_vin, false, 32)
}

public Event_GameRestart()
{
g_roundCount = 1
}

public round_end()
{
g_roundCount++
}

public client_putinserver(id)
{
OnOffDamage[id] = true
}

public ResetHUD(id)
{
set_task(0.5, "VIP", id + 6910)
}

public VIP(TaskID)
{
new id = TaskID - 6910

if (get_user_flags(id) & VIP_ACCESS && is_user_connected(id) && is_user_alive(id))
{
for (new i = 0; i < 5; i++)
{
if (fm_strip_user_gun(id, pistols[i]))
{
break;
}
message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))
write_byte(id)
write_byte(4)
message_end()
if( g_PluginEnable )
{
give_item( id, "weapon_hegrenade" )
give_item( id, "weapon_flashbang" )
give_item( id, "weapon_flashbang" )
give_item( id, "weapon_smokegrenade" )
give_item( id, "item_assaultsuit" )
give_item( id, "item_thighpack" )
give_item( id, "weapon_deagle")

give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
}
}
}
return PLUGIN_HANDLED;
}

public eventDamage(id)
{
if(get_pcvar_num(vip_damage))
{
if(OnOffDamage[id])
{
new attacker = get_user_attacker(id)
new damage = read_data(2)

if (is_user_connected(attacker) && get_user_flags(attacker) & VIP_ACCESS)
{
set_hudmessage(0, 255, 0, -1.0, 0.55, 2, 0.1, 4.0, 0.1, 0.1, -1)
ShowSyncHudMsg(attacker, g_HudSync, "%i", damage)
}
else if (is_user_connected(attacker) && get_user_flags(id) & VIP_ACCESS)
{
set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(id, g_HudSync2, "%i", damage)
}
}
}
}

public Menu( id )
{
if( !g_PluginEnable )
{
nChatPrint(id,"^1[^3Сервер^1] Запрещено на данной карте!")
return PLUGIN_HANDLED;
}

if( ~get_user_flags(id) & VIP_ACCESS )
{
nChatPrint(id,"^1[^3Сервер^1] Вы не имеете соответствующие права!")
return PLUGIN_HANDLED;
}
new msg[222], name[32]
get_user_name(id, name, 31)
formatex(msg, charsmax(msg), "\r[\y VipMenu \r]\w Имя игрока: \d%s", name)
new menu = menu_create(msg, "menu_handler")
menu_additem( menu, "\wВзять \r[\y FaMas \r]", "1", 0);
menu_additem( menu, "\wВзять \r[\y AK-47 \r]", "2", 0);
menu_additem( menu, "\wВзять \r[\y M4a1 \r]", "3", 0);
menu_additem( menu, "\wВзять \r[\y AWP \r]^n", "4", 0);

if(Damage[id] == true)
{
menu_additem( menu,"\wДамагер: \r[\d Выключен \r]", "5", 0);
}
else
{
menu_additem(menu,"\wДамагер: \r[\y Включен \r]", "5", 0);
}

menu_setprop( menu, MPROP_NEXTNAME, "Дальше")
menu_setprop( menu, MPROP_BACKNAME, "Назад")
menu_setprop( menu, MPROP_EXITNAME, "Выход" );
menu_display( id, menu, 0 );
return PLUGIN_HANDLED;
}

public menu_handler( id, menu, item )
{
if( item == MENU_EXIT )
{
menu_destroy( menu );
return PLUGIN_HANDLED;
}
new data[6], iName[64], name[32];
new access, callback;

get_user_name(id, name, 31)

menu_item_getinfo( menu, item, access, data,5, iName, 63, callback );
new key = str_to_num( data );
switch( key )
{
case 1:
{
if ( ! is_user_alive ( id ) )
{
nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
return PLUGIN_HANDLED;
}
if(use_vin[id])
{
nChatPrint(id,"^1[^3Сервер^1] Вы уже использовали.Подождите...")
return PLUGIN_HANDLED;
}
if (g_roundCount < 2){
nChatPrint(id,"^1[^3Сервер^1] Это оружие доступно с ^4 2 ^1 раунда")
return PLUGIN_HANDLED
}
give_item( id, "weapon_famas" )
cs_set_user_bpammo( id , CSW_FAMAS, 90 )
use_vin[id] = true;
}
case 2:
{
if ( ! is_user_alive ( id ) )
{
nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
return PLUGIN_HANDLED;
}
if(use_vin[id])
{
nChatPrint(id,"^1[^3Сервер^1] Вы уже использовали.Подождите...")
return PLUGIN_HANDLED;
}
if (g_roundCount < 2){
nChatPrint(id,"^1[^3Сервер^1] Это оружие доступно с ^4 2 ^1 раунда")
return PLUGIN_HANDLED
}
give_item(id,"weapon_ak47")
cs_set_user_bpammo( id, CSW_AK47, 90 );
use_vin[id] = true;
}
case 3:
{
if ( ! is_user_alive ( id ) )
{
nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
return PLUGIN_HANDLED;
}
if(use_vin[id])
{
nChatPrint(id,"^1[^3Сервер^1] Вы уже использовали.Подождите...")
return PLUGIN_HANDLED;
}
if (g_roundCount < 2){
nChatPrint(id,"^1[^3Сервер^1] Это оружие доступно с ^4 2 ^1 раунда")
return PLUGIN_HANDLED
}
give_item(id,"weapon_m4a1")
cs_set_user_bpammo( id, CSW_M4A1, 90 );
use_vin[id] = true;
}
case 4:
{
if ( ! is_user_alive ( id ) )
{
nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
return PLUGIN_HANDLED;
}
if(use_vin[id])
{
nChatPrint(id,"^1[^3Сервер^1] Вы уже использовали.Подождите...")
return PLUGIN_HANDLED;
}
if (g_roundCount < 3){
nChatPrint(id,"^1[^3Сервер^1] Это оружие доступно с ^4 3 ^1 раунда")
return PLUGIN_HANDLED
}
give_item(id,"weapon_awp")
cs_set_user_bpammo( id, CSW_AWP, 30 );
use_vin[id] = true;
}
case 5:
{
if ( ! is_user_alive ( id ) )
{
nChatPrint(id,"^1[^3Сервер^1] Вы^3 [Мертвый]")
return PLUGIN_HANDLED;
}
switch(Damage[id])
{
case true:
{
client_cmd(id, "damage")
Damage[id] = false
Menu(id)
}
case false:
{
client_cmd(id, "damage")
Damage[id] = true
Menu(id)
}
}
}
}
return PLUGIN_HANDLED;
}


stock nChatPrint(const id, const input[], any:...)
{
new nCount = 1, nNum[32]
static nMsgs[191]
vformat(nMsgs, 190, input, 3)
replace_all(nMsgs, 190, "!g", "^4")
replace_all(nMsgs, 190, "!n", "^1")
replace_all(nMsgs, 190, "!t", "^3")
if(id) nNum[0] = id; else get_players(nNum, nCount, "ch")
{
for(new i = 0; i < nCount; i++)
{
if(is_user_connected(nNum[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, nNum[i])
write_byte(nNum[i])
write_string(nMsgs)
message_end()
}
}
}
}

public vipka(id)
{
show_motd( id, "vip.txt", "Покупка - V.I.P!" )
}

public adminka(id)
{
show_motd( id, "admin.txt", "Покупка - Админки!" )
}

public ClCmdDamage(id)
{
if(get_user_flags(id) & VIP_ACCESS)
{
if(OnOffDamage[id])
{
OnOffDamage[id] = false
}
else
{
OnOffDamage[id] = true
}
}
return 0
}

Сам не проверял.

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя admir
сообщение 26.8.2014, 17:28
Сообщение #16
Стаж: 13 лет

Сообщений: 192
Благодарностей: 31
Полезность: 138

не уверен, что native containi можно использовать как логическую переменную, ведь в случае не нахождении соответствий он возвращает -1, а не 0.


исправьте в исходнике
Код:

if(containi(szMap, maps[i]))
{
g_PluginEnable = false;
}

на
Код:

if(containi(szMap, maps[i]) != -1)
{
g_PluginEnable = false;
}

может и поможет (лень проверять)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Steam
сообщение 26.8.2014, 18:01
Сообщение #17


Стаж: 12 лет

Сообщений: 36
Благодарностей: 1
Полезность: 19

Ну вроде все, помог))))))
Цитата(admir @ 26.8.2014, 20:28) *
не уверен, что native containi можно использовать как логическую переменную, ведь в случае не нахождении соответствий он возвращает -1, а не 0.


исправьте в исходнике
Код:

if(containi(szMap, maps[i]))
{
g_PluginEnable = false;
}

на
Код:

if(containi(szMap, maps[i]) != -1)
{
g_PluginEnable = false;
}

может и поможет (лень проверять)

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 3 гостей читают эту тему: