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

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

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

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

Помогите добавить функцию

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

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

привет форумчане , помогите добавить функцию нужно сделать чтобы на картах de_ и cs_ работало csdm_ffa было mp_friendlyfire 1
на остальных чтобы было mp_friendlyfire 0

Cкрытый текст
Код:
#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)
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Vasiok007
сообщение 15.10.2017, 22:40
Сообщение #2


Стаж: 12 лет
Город: Кишинев

Сообщений: 157
Благодарностей: 56
Полезность: 258

allan,
Допустим вы хотите сделать отдельный конфиг для карты de_nuke, для этого делаем следующее:
- Заходим в cstrike/addons/amxmodx/configs и создаём в этой директории папку под названием maps
- В только что созданной папке создаём текстовый документ под названием de_nuke.cfg
- Теперь вписываем в этот файл необходимые настройки:
mp_freezetime 12
mp_timelimit 40
mp_roundtime 3
Теперь независимо от настроек вашего server.cfg на карте de_nuke будет фриз тайм в 12 секунд и лимит игры в 40 минуты,время раунда 3 минуты.

Представте что у вас есть плагин resetscore.amxx и вы хотите чтобы он работал на всех awp_ картах! Для этого делаем следующее:
- Заходим в cstrike/addons/amxmodx/configs и создаём в этой директории папку под названием maps
- В только что созданной папке создаём текстовый документ под названием plugins-awp и вписываем в него название плагина.
- Закрываем документ, сохраняем изменения и меняем расширение документа .txt на .ini


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