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

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

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

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

Дописать плагин csdm_ffa

Статус пользователя allan
сообщение 13.10.2017, 21:26
Сообщение #1
Стаж: 9 лет 5 месяцев

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

привет форумчане помогите дописать плагин нужно сделать чтобы на de_dust2 и так далее каждый сам за себя был то есть mp_friendlyfire 1 был
а на остальных картах aim_ak47 no_ffa mp_friendlyfire 0 чтобы было
Код
Код
#include <amxmodx>
#include <amxmisc>
#include <csdm>
#include <colorchat>
#pragma library csdm_main

new PLUGIN[]    = "CSDM FFA"
new VERSION[]    = CSDM_VERSION
new AUTHOR[]    = "CSDM Team"
new ACCESS        = ADMIN_MAP

new bool:g_MainPlugin = true
new pv_mp_friendlyfire
new bool:g_PluginInited = false
new bool:g_Enabled = false
new bool:g_hideradar = false

// page info for settings in CSDM Setting Menu
new g_SettingsMenu = 0
new g_FfaSettMenu = 0
new g_ItemsInMenuNr = 0
new g_PageSettMenu = 0

new const g_sFireInTheHole[] = "#Fire_in_the_hole"
new const g_sFireInTheHoleSound[] = "%!MRAD_FIREINHOLE"

public plugin_natives()
{
    set_module_filter("module_filter")
    set_native_filter("native_filter")
}

public module_filter(const module[])
{
    if(equali(module, "csdm_main"))
        return PLUGIN_HANDLED
    
    return PLUGIN_CONTINUE
}

public native_filter(const name[], index, trap)
{
    if(!trap)
        return PLUGIN_HANDLED
        
    return PLUGIN_CONTINUE
}

public csdm_Init(const version[])
{
    if(version[0] == 0)
    {
        set_fail_state("CSDM failed to load.")
        return
    }
}

public csdm_CfgInit()
{
    csdm_reg_cfg("ffa", "read_cfg")
}

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)

    register_concmd("csdm_ffa_enable", "csdm_ffa_enable", ACCESS, "Включить FFA")
    register_concmd("csdm_ffa_disable", "csdm_ffa_disable", ACCESS, "Выключить FFA")
    register_concmd("csdm_ffa_ctrl", "csdm_ffa_ctrl", ACCESS, "Управление FFA")
    register_concmd("csdm_radar_ctrl", "csdm_radar_ctrl", ACCESS, "Управление радаром")
    
    register_clcmd("say /ffa", "csdm_ffa", ACCESS, "Включить/Выключить FFA")
    register_clcmd("say_team /ffa", "csdm_ffa", ACCESS, "Включить/Выключить FFA")

    register_clcmd("csdm_ffa_sett_menu", "csdm_ffa_sett_menu", ACCESS, "Меню настроек ^"FFA^"")

    register_event("ResetHUD", "eventResetHud", "be")

    register_message(get_user_msgid("TextMsg"), "msgTextMsg")
    register_message(get_user_msgid("SendAudio"), "msgSendAudio")
    register_message(get_user_msgid("Radar"), "Radar_Hook")

    g_MainPlugin = module_exists("csdm_main") ? true : false
    
    if(g_MainPlugin)
    {
        g_SettingsMenu = csdm_settings_menu()
        g_ItemsInMenuNr = menu_items(g_SettingsMenu)
        g_PageSettMenu = g_ItemsInMenuNr / 7

        g_FfaSettMenu = menu_create("[CSDM] Меню настроек ^"FFA^"", "use_csdm_ffa_menu")

        menu_additem(g_SettingsMenu, "Настройки ^"FFA^"", "csdm_ffa_sett_menu", ACCESS)

        if(g_FfaSettMenu)
        {
            new cb_ffa = menu_makecallback("hook_ffa_menu")
            menu_additem(g_FfaSettMenu, "FFA [вкл/выкл]", "csdm_ffa_ctrl", ADMIN_MAP, cb_ffa)

            new cb_radar = menu_makecallback("hook_radar_menu")
            menu_additem(g_FfaSettMenu, "Радар [показать/скрыть]", "csdm_radar_ctrl", ADMIN_MAP, cb_radar)
            menu_additem(g_FfaSettMenu, "Назад в настройки", "csdm_sett_back", 0, -1)

            menu_setprop(g_FfaSettMenu, MPROP_EXITNAME, "Выход")
            menu_setprop(g_FfaSettMenu, MPROP_EXIT, MEXIT_ALL)
        }
    }

    pv_mp_friendlyfire = get_cvar_pointer("mp_friendlyfire")

    set_task(4.0, "enforce_ffa", .flags="a", .repeat=2)

    g_PluginInited = true
}

public plugin_cfg()
{
    if(!pv_mp_friendlyfire)
        pv_mp_friendlyfire = get_cvar_pointer("mp_friendlyfire")
}

public csdm_StateChange(csdm_state)
{
    new value = csdm_active() ? 1:0

    if((value) && g_Enabled)
    {
        csdm_set_ffa(1)

        if(g_hideradar)
            client_cmd(0, "hideradar")

        if(pv_mp_friendlyfire)
            set_pcvar_num(pv_mp_friendlyfire, 1)
    }
    else if(g_PluginInited)
    {
        csdm_set_ffa(0)

        client_cmd(0, "drawradar")
    }
}

public msgTextMsg(msg_id, msg_dest, msg_entity) // block "fire in the hole" msg
{
    new sTemp[sizeof(g_sFireInTheHole)]
    
    if(csdm_active() && csdm_get_ffa() && get_msg_args() == 5 && get_msg_argtype(5) == ARG_STRING)
    {
        get_msg_arg_string(5, sTemp, sizeof(sTemp)-1)

        if(equal(sTemp, g_sFireInTheHole))
            return PLUGIN_HANDLED
    }
        
    return PLUGIN_CONTINUE
}

public msgSendAudio() // block "fire in the hole" radio
{
    new sTemp[sizeof(g_sFireInTheHoleSound)]

    if(csdm_active() && csdm_get_ffa())
    {
        get_msg_arg_string(2, sTemp, sizeof(sTemp)-1)

        if(equali(sTemp, g_sFireInTheHoleSound))
            return PLUGIN_HANDLED
    }

    return PLUGIN_CONTINUE
}

public eventResetHud(id)
{
    if(csdm_active() && g_Enabled && g_hideradar)
    {
        client_cmd(id, "hideradar")
    }
    return PLUGIN_CONTINUE
}


public Radar_Hook(msg_id, msg_dest, msg_entity)
{
    if(csdm_active() && csdm_get_ffa())
    {
        return PLUGIN_HANDLED
    }
    return PLUGIN_CONTINUE
}


public enforce_ffa()
{
    //enforce this
    if(csdm_active() && csdm_get_ffa())
    {
        if(g_hideradar)
            client_cmd(0, "hideradar")

        if(pv_mp_friendlyfire)
            set_pcvar_num(pv_mp_friendlyfire, 1)
    }
    else if(g_hideradar)
    {
        client_cmd(0, "drawradar")
    }
}

public csdm_ffa_sett_menu(id, level, cid)
{
    if(!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED
    
    menu_display(id, g_FfaSettMenu, 0)

    return PLUGIN_HANDLED
}

public use_csdm_ffa_menu(id, menu, item)
{
    if(item < 0)
        return PLUGIN_CONTINUE

    new command[24], paccess, call

    if(!menu_item_getinfo(g_FfaSettMenu, item, paccess, command, 23, _, 0, call))
    {
        log_amx("Error: csdm_menu_item() failed (menu %d) (page %d) (item %d)", g_FfaSettMenu, 0, item)
        return PLUGIN_HANDLED
    }

    if(paccess && !(get_user_flags(id) & paccess))
    {
        ColorChat(id, NORMAL, "У вас нет прав для доступа к этому меню опций.")
        return PLUGIN_HANDLED
    }

    if((equali(command,"csdm_ffa_ctrl")) || (equali(command,"csdm_radar_ctrl")))
    {
        client_cmd(id, command)
        menu_display(id, g_FfaSettMenu, 0)
        return PLUGIN_HANDLED
    }
    else if(equali(command,"csdm_sett_back"))
    {
        menu_display(id, g_SettingsMenu, g_PageSettMenu)
        return PLUGIN_HANDLED
    }
    return PLUGIN_HANDLED
}

public csdm_ffa_ctrl(id, level, cid)
{
    if(!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED
    
    g_Enabled = (g_Enabled ? false : true)
    csdm_set_ffa( g_Enabled ? 1 : 0 )

    ColorChat(id, RED, "^x04[CSDM]^x01 Режим FFA %s.", g_Enabled ? "^x04Включен" : "^x03Выключен")

    if(csdm_active() && csdm_get_ffa())
    {
        if(g_hideradar)
            client_cmd(0, "hideradar")

        if(pv_mp_friendlyfire)
            set_pcvar_num(pv_mp_friendlyfire, 1)
    }
    else if(g_hideradar)
    {
        client_cmd(0, "drawradar")
    }

    csdm_write_cfg(id, "ffa", "enabled", g_Enabled ? "1" : "0")

    menu_display(id, g_FfaSettMenu, 0)
    return PLUGIN_HANDLED
}

public csdm_radar_ctrl(id, level, cid)
{
    if(!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED
    
    g_hideradar = (g_hideradar ? false : true)

    ColorChat(id, RED, "^x04[CSDM]^x01 Радар %s.", g_hideradar ? "^x03Скрыт" : "^x04Показан")

    if(csdm_active() && csdm_get_ffa())
    {
        if(g_hideradar)
            client_cmd(0, "hideradar")
        else
            client_cmd(0, "drawradar")
    }

    csdm_write_cfg(id, "ffa", "radar_disable", g_hideradar ? "1" : "0")

    menu_display(id, g_FfaSettMenu, 0)
    return PLUGIN_HANDLED
}

public hook_ffa_menu(player, menu, item)
{
    new paccess, command[24], call
    
    menu_item_getinfo(menu, item, paccess, command, 23, _, 0, call)
    
    if(equali(command, "csdm_ffa_ctrl"))
    {
        if(!g_Enabled)
        {
            menu_item_setname(menu, item, "Режим FFA: \rВыкл.")
        }
        else
        {
            menu_item_setname(menu, item, "Режим FFA: \yВкл.")
        }
    }
}

public hook_radar_menu(player, menu, item)
{
    new paccess, command[24], call
    
    menu_item_getinfo(menu, item, paccess, command, 23, _, 0, call)
    
    if(equali(command, "csdm_radar_ctrl"))
    {
        if(!g_hideradar)
        {
            menu_item_setname(menu, item, "Радар: \yПоказан")
        }
        else
        {
            menu_item_setname(menu, item, "Радар: \rСкрыт")
        }
    }
}

public csdm_ffa(id, level, cid)
{
    if(!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED

    g_Enabled = (g_Enabled ? false : true)

    csdm_set_ffa(g_Enabled ? 1 : 0)

    ColorChat(id, RED, "^x04[CSDM]^x01 Режим FFA %s.", g_Enabled ? "^x04Включен" : "^x03Выключен")

    if(csdm_active() && csdm_get_ffa())
    {
        if(g_hideradar)
            client_cmd(0, "hideradar")

        if(pv_mp_friendlyfire)
            set_pcvar_num(pv_mp_friendlyfire, 1)
    }
    else if(g_hideradar)
    {
        client_cmd(0, "drawradar")
    }
    return PLUGIN_HANDLED    
}

public csdm_ffa_enable(id, level, cid)
{
    if(!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED

    g_Enabled = true    

    csdm_set_ffa(1)

    ColorChat(id, RED, "^x04[CSDM]^x01 Режим FFA ^x04Включен.")

    if(g_hideradar)
        client_cmd(0, "hideradar")

    if(pv_mp_friendlyfire)
        set_pcvar_num(pv_mp_friendlyfire, 1)

    return PLUGIN_HANDLED    
}

public csdm_ffa_disable(id, level, cid)
{
    if(!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED

    g_Enabled = false    

    csdm_set_ffa(0)

    ColorChat(id, RED, "^x04[CSDM]^x01 Режим FFA ^x03Выключен.")

    if(g_hideradar)
        client_cmd(0, "drawradar")

    return PLUGIN_HANDLED    
}

public read_cfg(readAction, line[], section[])
{
    if(readAction == CFG_READ)
    {
        new setting[24], sign[3], value[32];

        parse(line, setting, 23, sign, 2, value, 31);
    
        if(equali(setting, "enabled"))
        {
            g_Enabled = (str_to_num(value) ? true : false)
            csdm_set_ffa(str_to_num(value))
        }

        if(equali(setting, "radar_disable"))
        {
            g_hideradar = (str_to_num(value) ? true : false)
        }
    }
}

Прикрепленные файлы:
Прикрепленный файл  csdm_ffa.sma ( 9,76 килобайт ) Кол-во скачиваний: 6
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя x1DD
сообщение 14.10.2017, 22:29
Сообщение #2


Стаж: 11 лет

Сообщений: 167
Благодарностей: 98
Полезность: 287

Вроде бы это можно сделать конфингом.
Вот пример:
Создаем в дир /cstrike/addons/amxmodx/configs папку maps Далее в этой папке создадим cfg для нашей карты в вашем случае это de_dust2.cfg
После чего открываем de_dust2.cfg и делаем запись в нем csdm_ffa_enable сохраняем.


Сейчас CS уже давно помирает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя allan
сообщение 20.10.2017, 20:50
Сообщение #3
Стаж: 9 лет 5 месяцев

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

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