- Регистрация
- 8 Июн 2017
- Сообщения
- 224
- Симпатии
- 80
- Пол
- Мужской
shram47, Чаво?
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#define MAX_CLIENTS 32
#define m_LastHitGroup 75
#define m_bitsDamageType 76
#define m_pActiveItem 373
#define m_iId 43
new g_iKillCount[ MAX_CLIENTS +1 ];
new bool: g_bszFirstBlood;
new bool: g_bszSoundsEnable[ MAX_CLIENTS +1 char ];
new const SOUNDS_KILL[ ][ ] =
{
"soundkills/firstkill.wav",
"soundkills/doublekill.wav",
"soundkills/tripplekill.wav",
"soundkills/multikill.wav",
"soundkills/crazy.wav",
"soundkills/rampage.wav",
"soundkills/headshot.wav",
"soundkills/knife.wav",
"soundkills/grenade.wav"
};
public plugin_init( )
{
register_plugin( "SoundKill", "0.1", "unknown" ); // Modification from Shram47 especially for http://dev-cs.ru/threads/704/
register_logevent( "LogEV_RoundStart", 2, "1=Round_Start" );
register_clcmd( "say /sounds", "Command_Sounds" );
register_clcmd( "say_team /sounds", "Command_Sounds" );
register_clcmd( "sounds", "Command_Sounds" );
RegisterHam( Ham_Killed, "player", "CPlayer__Killed_Post", .Post = 1 );
}
public plugin_precache( )
{
for( new i = 0; i < sizeof SOUNDS_KILL; i++ )
engfunc( EngFunc_PrecacheSound, SOUNDS_KILL[ i ] );
}
public LogEV_RoundStart( )
{
g_bszFirstBlood = true;
for( new iPlayers = MAX_CLIENTS; iPlayers > 0; iPlayers-- )
g_iKillCount[ iPlayers ] = 0;
}
public Command_Sounds( iPlayer )
{
if( g_bszSoundsEnable{ iPlayer } )
{
g_bszSoundsEnable{ iPlayer } = false;
client_print( iPlayer, print_chat, "Звуки убийств отключены." );
}
else
{
g_bszSoundsEnable{ iPlayer } = true;
client_print( iPlayer, print_chat, "Звуки убийств включены." );
}
return PLUGIN_HANDLED;
}
public CPlayer__Killed_Post( iVictim, iAttacker, iGib )
{
if( iVictim == iAttacker || !is_user_connected( iAttacker ) )
return;
if( !g_bszSoundsEnable{ iAttacker } )
return;
new iBitsDamageType = get_pdata_int( iVictim, m_bitsDamageType );
new iLastHitGroup = get_pdata_int( iVictim, m_LastHitGroup );
new iActiveItem = get_pdata_cbase( iAttacker, m_pActiveItem );
if( pev_valid( iActiveItem ) != 2 )
return;
new iId = get_pdata_int( iActiveItem, m_iId, 4 );
g_iKillCount[ iAttacker ]++;
if( iLastHitGroup == HIT_HEAD )
{
if( g_bszFirstBlood )
{
client_cmd( iAttacker, "spk %s", SOUNDS_KILL[ 0 ] );
g_bszFirstBlood = false;
}
else
client_cmd( iAttacker, "spk %s", SOUNDS_KILL[ 6 ] );
return;
}
if( iId == CSW_KNIFE && iBitsDamageType & ( DMG_NEVERGIB | DMG_BULLET ) )
{
if( g_bszFirstBlood )
{
client_cmd( iAttacker, "spk %s", SOUNDS_KILL[ 0 ] );
g_bszFirstBlood = false;
}
else
client_cmd( iAttacker, "spk %s", SOUNDS_KILL[ 7 ] );
return;
}
if( ~iBitsDamageType & ( DMG_NEVERGIB | DMG_BULLET ) )
{
if( g_bszFirstBlood )
{
client_cmd( iAttacker, "spk %s", SOUNDS_KILL[ 0 ] );
g_bszFirstBlood = false;
}
else
client_cmd( iAttacker, "spk %s", SOUNDS_KILL[ 8 ] );
return;
}
if( g_bszFirstBlood )
{
client_cmd( iAttacker, "spk %s", SOUNDS_KILL[ 0 ] );
g_bszFirstBlood = false;
}
else
{
switch( g_iKillCount[ iAttacker ] )
{
case 2: client_cmd( iAttacker, "spk %s", SOUNDS_KILL[ 1 ] );
case 3: client_cmd( iAttacker, "spk %s", SOUNDS_KILL[ 2 ] );
case 4: client_cmd( iAttacker, "spk %s", SOUNDS_KILL[ 3 ] );
case 5: client_cmd( iAttacker, "spk %s", SOUNDS_KILL[ 4 ] );
case 6:
{
client_cmd( iAttacker, "spk %s", SOUNDS_KILL[ 5 ] );
g_iKillCount[ iAttacker ] = 5;
}
}
}
}
public client_putinserver( iPlayer )
{
g_bszSoundsEnable{ iPlayer } = true;
g_iKillCount[ iPlayer ] = 0;
}
new g_checkKillsinf[33][32]
new logdate[64], logfile[64]
public plugin_precache()
{
get_time("20%y.%m.%d", logdate, 63)
formatex(logfile, 63, "killsounds_%s.log", logdate)
public cmd_killson(id)
{
client_cmd(id, "setinfo kills ON")
g_checkKillsinf[id]= "ON"
client_cmd(id, "spk vox/activated")
client_print( iPlayer, print_chat, "Звуки убийств отключены." );
if(get_cvar_num("amx_kills_log") == 1)
{
new map[32]
get_mapname(map, 31)
new name[32]
get_user_name(id, name, 31)
get_time("20%y.%m.%d", logdate, 63)
formatex(logfile, 63, "killsounds_%s.log", logdate)
log_to_file(logfile, "[KILLS SPK ON] [%s] [%s]", name, map)
}
return PLUGIN_CONTINUE
}
public cmd_killsoff(id)
{
client_cmd(id, "setinfo kills OFF")
g_checkKillsinf[id]= "OFF"
client_cmd(id, "spk vox/deactivated")
if(get_cvar_num("amx_kills_log") == 1)
{
new map[32]
get_mapname(map, 31)
new name[32]
get_user_name(id, name, 31)
get_time("20%y.%m.%d", logdate, 63)
formatex(logfile, 63, "killsounds_%s.log", logdate)
log_to_file(logfile, "[KILLSOUNDS SPK OFF] [%s] [%s]", name, map)
}
return PLUGIN_CONTINUE
}
заменимс наИзъян будет только в том что если будет у игрока на кфг стоит только чтение то после перезахода в кс его настройки не сохраняться
set_user_info
ПоищуЕсли хотите пример найдите мою вип систему там я делал сохранку в re_vip_damager.sma по команде say /damager довольно четкий и ясный вам пример будет.
public cmd_killson(id)
{
set_user_info(id,"kills","ON")
g_checkKillsinf[id]= "ON"
client_cmd(id, "spk vox/activated")
client_print( iPlayer, print_chat, "Звуки убийств отключены." );
if(get_cvar_num("amx_kills_log") == 1)
{
new map[32]
get_mapname(map, 31)
new name[32]
get_user_name(id, name, 31)
get_time("20%y.%m.%d", logdate, 63)
formatex(logfile, 63, "killsounds_%s.log", logdate)
log_to_file(logfile, "[KILLS SPK ON] [%s] [%s]", name, map)
}
return PLUGIN_CONTINUE
}
Biggrinулыбнуловообще лучше прописывать адрес хоста вместо ip
Subb98 написал(а):через set_user_info настройка будет храниться на сервере до тех пор, пока игрок не отключится от сервера.
;Файл конфигураций CSDM мода
;Стандартные настройки by BAILOPAN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Что бы данные опции действовали, должен быть включен главный плагин (csdm_main.amxx)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[settings]
;Вкл/Выкл CSDM мод
enabled = 1
;Игрок появляется без оружия (только с ножом)
strip_weapons = 1
;Как долго сброшенное оружие будет оставаться на земле (в секундах)
;Не стоит ставить этот квар отличным от 0 во избежании лагов
;0 - не остается, -1 - остается навсегда
weapons_stay = 0
;Установка режима возрождений
; "none" - нормальный режим, стандартные точки возрождения
; "preset" - предустановленные точки возрождений, установлденные плагином csdm_spawn_preset.amxx (он должен быть включен)
spawnmode = preset
;Скравать или нет бомбу
remove_bomb = 1
;Время ожидания до возрождения в секундах
spawn_wait_time = 0.75
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Что бы данные опции действовали, должен быть включен соответсвенный плагин (csdm_ffa.amxx)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[ffa]
;Вкл/Выкл режима FFA
enabled = 0
;Показать или скрыть радар (1 - скрыть / 0 - показать)
radar_disable = 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Что бы данные опции действовали, должен быть включен соответсвенный плагин (csdm_misc.amxx)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[misc]
;Удалять следующие задания и зоны (указать нужные флаги для удаления)
; a - задания на as_ картах
; b - зоны закупок
; c - задания на cs_ картах
; d - задания на de_ картах
remove_objectives = abcd
;Блокировать использование всех команд закупки
block_buy = 1
;Бесконечные патроны
ammo_refill = 1
;Сообщать по радио о возрождении игрока
spawn_radio_msg = 0
;Скрывать денеги
hide_money = 0
;Скрывать таймер если remove_objectives установлено acd или abcd
hide_timer = 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Что бы данные опции действовали, должен быть включен соответсвенный плагин (csdm_stripper.amxx)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[stripper]
;Скрытие дополнительных объектов на картах
enabled = 1
;Укажите здесь все объекты которые необходимо удалять с карт.
;Примечание:
;Не рекомендуется добавлять другие объекты которые не указанны в списке ниже.
;HL иногда ведет себя странно, когда Вы хотите удалить некоторые объекты
;поэтому автор мода не может дать вам гарантии, что он будет работать
;со всеми объектами которые вы здесь укажите.
;Удаление объектов указанных по умолчанию не привод к каким либо сбоям.
class = player_weaponstrip
class = game_player_equip
class = item_healthkit
class = item_battery
class = armoury_entity
class = item_longjump
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Что бы данные опции действовали, должен быть включен соответсвенный плагин (csdm_tickets.amxx)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[ticketing]
;Вкл\Выкл режим билетов
enabled = 0
;Сколько раз игроки одной команды или отдельные игроки могут возродится за раунд.
;(зависит от параметра ticketing_player)
tickets = 10
;Показ количества оставшихся билетов (возрождений): 0 - отключен, 1 - HUD, 2 - чат
show_state = 1
;Считать билеты для: 0 - команды, 1 - игрока
ticketing_player = 0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Что бы данные опции действовали, должен быть включен соответсвенный плагин (csdm_protection.amxx)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[protection]
;Вкл/Выкл защиту игрока при возрождении
enabled = 1
;Вкл/Выкл свечение игрока при защите
glowing = 0
;Цвет свечения при защите
;Цвет указывается в палитре RGBA, где A - это альфа канал (прозрачность)
;(чем больше значение A (альфа канала), тем толще аура свечения)
colorst = "255 0 0 200" ; Цвет для игроков команды T
colorsct = "0 0 255 200" ; Цвет для игроков команды CT
colorsffa = "0 255 0 200" ; Цвет для всех игроков команды в режиме FFA
;Сколько времени будет действовать защита при возрождении (в секундах)
time = 3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Что бы данные опции действовали, должен быть включен соответсвенный плагин (csdm_equip.amxx)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[equip]
;Какое снаряжение будет доступно в меню (указать нужные флаги):
; p - первичное оружие
; s - вторичное оружие
; a - броня
; g - гранаты
; b - закупка
menus = ps
;Автоматически игроку будет выданно (указать флаги):
; a - броня
; h - каска
; g - гранаты
; d - щипчики (только команде CT)
; n - ночное виденье
autoitems = ahg
;Какие гранаты доступны (указать флаги)
; f - световая
; h - разрывная
; s - дымовая
grenades = h
;Количество выдаваемых световых гранат
fnadesnum = 0
;Разрешить использовать меню оружия в любое время по команде в чат guns или /guns
always_allow_gunmenu = 0
;;;;;;;;;;;;;;;
;;Меню оружия;;
;;;;;;;;;;;;;;;
;Формирование меню оружия
;Формат для меню оружия следующий:
;Реальное имя итема "Отображаемое имя в меню" Вкл\Выкл
;1 - оружие доступно; 0 - оружие блокированно
;Удаление или перемещение пунктов
;влияет на порядок их отображения в меню!
[secondary]
usp USP 1
glock18 Glock 1
deagle Deagle 1
p228 P228 1
elite Elite 1
fiveseven "Five Seven" 1
[primary]
m4a1 M4A1 1
ak47 AK47 1
awp AWP 1
famas Famas 1
galil Galil 1
mp5navy "MP5 Navy" 1
xm1014 XM1014 1
p90 P90 1
aug AUG 1
sg552 SG552 1
scout Scout 1
m249 M249 1
;ump45 "UMP 45" 1
;m3 M3 1
;tmp TMP 1
;mac10 "Mac 10" 1
;Список оружия которое будет выдаваться бота в случайном порядке
;Нужно указать только реальное имя итема из списка выше
[botsecondary]
deagle
usp
elite
fiveseven
[botprimary]
ak47
m4a1
aug
sg552
galil
famas
scout
awp
sg550
m249
g3sg1
mp5navy
m3
xm1014
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Что бы данные опции действовали, должен быть включен соответсвенный плагин (csdm_itemmode.amxx)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[items]
;Вкл/Выкл режим предметов
enabled = 0
;Если установлено 1 - с убитого игрока падает пак включающий в себя: используемое оружие, боеприпасы и реактивный ранец
;Если установлено 2 - с убитого падает то же самое что и при 1 плюс хдоровье и броня
;Если установлено 0 - с убитого игрока не падает пак
drop_packs = 0
;Количество брони содержащееся в батарейке. По умолчанию 15.
battery = 15
;Количество здоровья содержащееся в аптечке. По умолчанию 15.
medkit = 15
;Через сколько времени предмет снова появится на том же месте (в секундах). По умолчанию 20 (0 = не появится)
item_time = 20
;Сколько времени предметы остаются на земле (в секундах). (Максимальное значение 30)
drop_time = 10
;Если установлено 1, предметы не будут иметь эффект проваливания. По умолчанию 0.
persistent_items = 0
;Сколько разрывных гранат гранат игрок может имет. По умолчанию 1.
max_hnades = 1
;Сколько световых гранат игрок может иметь. По умолчанию 2.
max_fnades = 2
;Сколько дымовых гранат игрок может иметь. По умолчанию 1.
max_snades = 1
;Вкл/Выкл меню оружия при включенном режиме предметов.
;Если вы хотите что бы игроки только подбирали боеприпасы у вас дожен быть включен режим предметов.
no_gun_menu = 1
;Уберите символ комментирования ";" что бы ограничить какой либо предмет.
;Или добавьте свой предмет без символа комментирования (указывать реальное название итемов)
[item_restrictions]
;m4a1
;ak47
;aug
;sg552
;galil
;famas
;scout
;awp
;sg550
;m249
;g3sg1
;ump45
;mp5navy
;m3
;xm1014
;tmp
;mac10
;p90
;elite
;longjump
;medkit
;battery
;pistolammo
;rifleammo
;shotammo
;smgammo
;awpammo
;paraammo
;fullammo
;armor
;flashbang
;hegrenade
;smokegrenade
да вот в этом и прикол ставил 1 и 0 не фига не фурычит чето... почему то серавно когда пишешь guns в чате не показывает... как на скрине...Izmayl7, ты конфиг смотрел хоть?
поставь 1 и проверьКод:;Разрешить использовать меню оружия в любое время по команде в чат guns или /guns always_allow_gunmenu = 0
убрал приставку csdm и цвет поменял. было так ^x04[CSDM]^x01 »>»>»> поменял на вот так ^x04* ^x01. исходники оба приложил. первый дефолтный, второй измененный я менял))Izmayl7, а что именно ты менял в исходнике?
первый раз когда поставил работало. затем как поменял на новый и потом удалял - хотел поставить старый также на команду в чате не реагировало... 1 раз сработало. и потом перестало работать...Izmayl7, с неизменнным исходником все работало?
вроде да!)Izmayl7, VGUI меню выключено надеюсь у вас?
#include <amxmodx>
#include <reapi>
new m_iOldDeaths[33];
public plugin_init()
{
RegisterHookChain(RG_CBasePlayer_Killed, "func_playerkilled", true);
RegisterHookChain(RG_CSGameRules_RestartRound, "func_restartround", true);
}
public func_playerkilled(const this, pevAttacker, iGib)
{
m_iOldDeaths[this] = get_member(this, m_iDeaths);
}
public func_restartround()
{
new pl[32], pnum; get_players(pl, pnum, "ch");
for(new i, a; i < pnum; i++)
{
pl[i] = a;
if(get_member(a, m_iDeaths) > m_iOldDeaths[a])
{
..;
}
else
{
..;
}
}
}