Помощь по miscstats.sma

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
460
Реакции
68
Помог
7 раз(а)
Ошибка
Не работает звук DoubleKill
ОС
Windows
Билд
Protocol version 48
Exe version 1.6.3.7 (cstrike)
ReHLDS version: 3.3.0.624-dev
Build date: 15:23:36 Dec 15 2017 (1343)
Build from: https://github.com/dreamstalker/rehlds/commit/a761c5d
ReGamedll
ReGameDLL version: 5.3.0.276-dev
Build date: 16:19:11 Dec 8 2017
Build from: https://github.com/s1lentq/ReGameDLL_CS/commit/adeb09a
Список метамодулей
Currently loaded plugins:
description stat pend file vers src load unload
[ 1] VoiceTranscoder RUN - voicetranscoder.dll v2017RC3 ini ANY ANY
[ 2] AMX Mod X RUN - amxmodx_mm.dll v1.8.3-dev+5123 ini Start ANY
[ 3] WHBlocker RUN - whblocker_mm.dll v1.5.695 ini Chlvl ANY
[ 4] Reunion RUN - reunion_mm.dll v0.1.75 ini Start Never
[ 5] Rechecker RUN - rechecker_mm.dll v2.5 ini Chlvl ANY
[ 6] ReAuthCheck RUN - reauthcheck_mm.dll v0.1.6 ini Start Never
[ 7] ReSemiclip RUN - resemiclip_mm.dll v2.3.9 ini Chlvl ANY
[ 8] CStrike RUN - cstrike_amxx.dll v1.8.3-Re pl2 ANY ANY
[ 9] SQLite RUN - sqlite_amxx.dll v1.8.2-dev pl2 ANY ANY
[10] ReAimDetector RUN - reaimdetector_amxx.dll v0.2.0 pl2 ANY Never
[11] hackdetector RUN - hackdetector_amxx.dll v0.15.328.lite pl2 ANY ANY
[12] ReAPI RUN - reapi_amxx.dll v5.2.0.143-dev pl2 ANY Never
[13] Fun RUN - fun_amxx.dll v1.8.3-Re pl2 ANY ANY
[14] FakeMeta RUN - fakemeta_amxx.dll v1.8.3-Re pl2 ANY ANY
[15] Engine RUN - engine_amxx.dll v1.8.3-Re pl2 ANY ANY
[16] Ham Sandwich RUN - hamsandwich_amxx.dll v1.8.3-Re pl2 ANY ANY
16 plugins, 16 running
Список плагинов
Currently loaded plugins:
name version author file status
[ 1] CSStatsX SQL 0.7.4 serfreeman1337 csstatsx_sql.am running
[ 2] ReAimDetector API 0.2.0 ReHLDS Team reaimdetector.a running
[ 3] Aliases checker 1.0.3 kanagava alias_detector. running
[ 4] RC BaseChanger freesrv custom rc_basechanger. stopped
[ 5] Lite Admin ESP 1.0 neygomon admin_esp.amxx running
[ 6] Admin Base 1.8.2 AMXX Dev Team admin.amxx running
[ 7] Ping Control 0.1.5 Freedo.m | neygo Ping_Control_2. running
[ 8] Afk Control 0.5.1 neygomon afk_control.amx running
[ 9] AES: StatsX 0.5.7 Vega serfreeman1337/s aes_statsx_cstr running
[ 10] Stats Configuration 1.8.2 AMXX Dev Team statscfg.amxx running
[ 11] Say me and Say hp 1.4 neygomon sayme_reapi.amx running
[ 12] Advanced Gag 1.9.0 neygomon amx_gag.amxx running
[ 13] Advanced MapChooser 1.1.2 neygomon map_chooser.amx running
[ 14] Lite Translit 2.8 neygomon lite_translit_c running
[ 15] FreshBans 1.3.7b kanagava fresh_bans.amxx running
[ 16] ScreenMaker 1.1 neygomon screen_maker.am running
[ 17] [ReAPI] No Team Flash 0.0.2 Vaqtincha no_team_flash.a running
[ 18] SF Warn Menu 0.1.4g serfreeman1337 sf_admin_warns. running
[ 19] Menus Front-End 1.5 neugomon menufront.amxx running
[ 20] Restrict Weapons 1.8.2 Leo_[BH] restmenu.amxx running
[ 21] resetscore(ReAPI) 1.0 Phantom resetscore.amxx running
[ 22] Maps Menu 1.4.1 neugomon mapsmenu.amxx running
[ 23] Block grande info 1.0 neygomon BlockGrenadeInf running
[ 24] Server Menu [INI] 1.0 Leo_[BH] server_menu.amx running
[ 25] SF Bets 0.1.5 serfreeman1337 sf_bets.amxx running
[ 26] Parachute for ALL [ReA 3.0 Leo_[BH] parachute.amxx running
[ 27] Lite C4 Timer 1.0.0 neygomon lite_c4timer.am running
[ 28] Plugins Controller 1.0 neygomon plugins_control stopped
[ 29] DemoRecoder 1.1 neygomon amx_demorec.amx running
[ 30] Steam Bonus 1.2 Stimul steam_bonus.amx running
[ 31] Player Votes 1.0 neugomon player_votes.am running
[ 32] CS Misc. Stats 1.8.2 AMXX Dev Team miscstats.amxx running
[ 33] Steam VIP 0.1 nakazatel auto_steam_vip. stopped
[ 34] Amx_Killer 1.0 Xhonor Amx_Killer.amxx running
[ 35] Adverts 1.0 pUzzlik adverts_message running
[ 36] Grab 2.5 Support123 grab_new.amxx running
[ 37] Steam Models 0.1b+mod.l Freedo.m steam_models.am running
[ 38] Snowballs 1.1 FragOwn snowballs.amxx running
[ 39] Christmas hat 0.3 AMXX.Shop christmas_hat_r running
[ 40] Anti reconnect 3.0 JohnJ antireconnect.a running
[ 41] V.I.P Custom Weapons 1.0.0 Vaqtincha vip_custom.amxx debug
[ 42] V.I.P Custom DEAGLE 1.0.0 Vaqtincha custom_deagle.a debug
[ 43] V.I.P Custom M4A1 1.0.0 Vaqtincha custom_m4a1.amx debug
[ 44] V.I.P Custom AK-47 1.0.0 Vaqtincha custom_ak47.amx debug
[ 45] V.I.P Custom AWP 1.0.0 Vaqtincha custom_awp.amxx debug
[ 46] Advanced Experience Sy 0.5.7 Vega serfreeman1337/s aes_main.amxx running
[ 47] AES: CStrike Addon 0.5.7 Vega serfreeman1337/s aes_exp_cstrike running
[ 48] AES: Informer 0.5.7 Vega serfreeman1337/s aes_informer.am running
[ 49] AES: Admin Tools 0.5.7 Vega serfreeman1337/s aes_exp_editor. running
[ 50] AES: Bonus System 0.5.7 Vega serfreeman1337/s aes_bonus_syste running
[ 51] AES: Bonus CSTRIKE 0.5.7 Vega serfreeman1337/s aes_bonus_cstri running
51 plugins, 48 running
Исходный код
/* AMX Mod X
* Misc. Stats Plugin
*
* by the AMX Mod X Development Team
* originally developed by OLO
*
* This file is part of AMX Mod X.
*
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* In addition, as a special exception, the author gives permission to
* link the code of this program with the Half-Life Game Engine ("HL
* Engine") and Modified Game Libraries ("MODs") developed by Valve,
* L.L.C ("Valve"). You must obey the GNU General Public License in all
* respects for all of the code used other than the HL Engine and MODs
* from Valve. If you modify this file, you may extend this exception
* to your version of the file, but you are not obligated to do so. If
* you do not wish to do so, delete this exception statement from your
* version.
*/

#include <amxmodx>
#include <csx>
#include <cstrike>

public MultiKill
public MultiKillSound
public BombPlanting
public BombDefusing
public BombPlanted
public BombDefused
public BombFailed
public BombPickUp
public BombDrop
public BombCountVoice
public BombCountDef
public BombReached
public ItalyBonusKill
public EnemyRemaining
public LastMan
public KnifeKill
public KnifeKillSound
public GrenadeKill
public GrenadeSuicide
public HeadShotKill
public HeadShotKillSound
public RoundCounterSound
public RoundCounter
public KillingStreak
public KillingStreakSound
public DoubleKill
public DoubleKillSound
public PlayerName
public FirstBloodSound

new g_streakKills[33][2]
new g_multiKills[33][2]
new g_C4Timer
new g_Defusing
new g_Planter
new Float:g_LastOmg
new g_LastAnnounce
new g_roundCount
new Float:g_doubleKill
new g_doubleKillId
new g_friend[33]
new g_firstBlood
new g_center1_sync
new g_announce_sync
new g_status_sync
new g_left_sync
new g_bottom_sync
new g_he_sync

new g_MultiKillMsg[7][] =
{
"Multi-Kill! %s^n%L %d %L (%d %L)",
"Ultra-Kill!!! %s^n%L %d %L (%d %L)",
"%s IS ON A KILLING SPREE!!!^n%L %d %L (%d %L)",
"RAMPAGE!!! %s^n%L %d %L (%d hs)",
"%s IS UNSTOPPABLE!!!^n%L %d %L (%d %L)",
"%s IS A MONSTER!^n%L %d %L (%d %L)",
"%s IS GODLIKE!!!!^n%L %d %L (%d %L)"
}

new g_Sounds[7][] =
{
"multikill",
"ultrakill",
"killingspree",
"rampage",
"unstoppable",
"monsterkill",
"godlike"
}
new g_KillingMsg[7][] =
{
"%s: Multi-Kill!",
"%s: Ultra-Kill!!!",
"%s IS ON A KILLING SPREE!!!",
"%s: RAMPAGE!!!",
"%s IS UNSTOPPABLE!!!",
"%s IS A MONSTER!",
"%s IS GODLIKE!!!"
}

new g_KinfeMsg[4][] =
{
"KNIFE_MSG_1",
"KNIFE_MSG_2",
"KNIFE_MSG_3",
"KNIFE_MSG_4"
}

new g_LastMessages[4][] =
{
"LAST_MSG_1",
"LAST_MSG_2",
"LAST_MSG_3",
"LAST_MSG_4"
}

new g_HeMessages[4][] =
{
"HE_MSG_1",
"HE_MSG_2",
"HE_MSG_3",
"HE_MSG_4"
}

new g_SHeMessages[4][] =
{
"SHE_MSG_1",
"SHE_MSG_2",
"SHE_MSG_3",
"SHE_MSG_4"
}

new g_HeadShots[7][] =
{
"HS_MSG_1",
"HS_MSG_2",
"HS_MSG_3",
"HS_MSG_4",
"HS_MSG_5",
"HS_MSG_6",
"HS_MSG_7"
}

new g_teamsNames[4][] =
{
"TERRORIST",
"CT",
"TERRORISTS",
"CTS"
}

public plugin_precache()
{
precache_sound("misc/prepare.wav")
precache_sound("misc/unstoppable.wav")
precache_sound("misc/ultrakill.wav")
precache_sound("misc/rampage.wav")
precache_sound("misc/oneandonly.wav")
precache_sound("misc/multikill.wav")
precache_sound("misc/monsterkill.wav")
precache_sound("misc/killingspree.wav")
precache_sound("misc/humiliation.wav")
precache_sound("misc/headshot.wav")
precache_sound("misc/godlike.wav")
precache_sound("misc/firstblood.wav")
precache_sound("misc/doublekill.wav")
}

public plugin_init()
{
register_plugin("CS Misc. Stats", AMXX_VERSION_STR, "AMXX Dev Team")
register_dictionary("miscstats.txt")
register_event("TextMsg", "eRestart", "a", "2&#Game_C", "2&#Game_w")
register_event("SendAudio", "eEndRound", "a", "2&%!MRAD_terwin", "2&%!MRAD_ctwin", "2&%!MRAD_rounddraw")
register_event("RoundTime", "eNewRound", "bc")
register_event("StatusValue", "setTeam", "be", "1=1")
register_event("StatusValue", "showStatus", "be", "1=2", "2!0")
register_event("StatusValue", "hideStatus", "be", "1=1", "2=0")

new mapname[32]
get_mapname(mapname, 31)

if (equali(mapname, "de_", 3) || equali(mapname, "csde_", 5))
{
register_event("StatusIcon", "eGotBomb", "be", "1=1", "1=2", "2=c4")
register_event("TextMsg", "eBombPickUp", "bc", "2&#Got_bomb")
register_event("TextMsg", "eBombDrop", "bc", "2&#Game_bomb_d")
}
else if (equali(mapname, "cs_italy"))
{
register_event("23", "chickenKill", "a", "1=108", /*"12=106", */ "15=4")
register_event("23", "radioKill", "a", "1=108", /*"12=294", */ "15=2")
}

g_center1_sync = CreateHudSyncObj()
g_announce_sync = CreateHudSyncObj()
g_status_sync = CreateHudSyncObj()
g_left_sync = CreateHudSyncObj()
g_bottom_sync = CreateHudSyncObj()
g_he_sync = CreateHudSyncObj()
}

public plugin_cfg()
{
new g_addStast[] = "amx_statscfg add ^"%s^" %s"

server_cmd(g_addStast, "ST_MULTI_KILL", "MultiKill")
server_cmd(g_addStast, "ST_MULTI_KILL_SOUND", "MultiKillSound")
server_cmd(g_addStast, "ST_BOMB_PLANTING", "BombPlanting")
server_cmd(g_addStast, "ST_BOMB_DEFUSING", "BombDefusing")
server_cmd(g_addStast, "ST_BOMB_PLANTED", "BombPlanted")
server_cmd(g_addStast, "ST_BOMB_DEF_SUCC", "BombDefused")
server_cmd(g_addStast, "ST_BOMB_DEF_FAIL", "BombFailed")
server_cmd(g_addStast, "ST_BOMB_PICKUP", "BombPickUp")
server_cmd(g_addStast, "ST_BOMB_DROP", "BombDrop")
server_cmd(g_addStast, "ST_BOMB_CD_VOICE", "BombCountVoice")
server_cmd(g_addStast, "ST_BOMB_CD_DEF", "BombCountDef")
server_cmd(g_addStast, "ST_BOMB_SITE", "BombReached")
server_cmd(g_addStast, "ST_ITALY_BONUS", "ItalyBonusKill")
server_cmd(g_addStast, "ST_LAST_MAN", "LastMan")
server_cmd(g_addStast, "ST_KNIFE_KILL", "KnifeKill")
server_cmd(g_addStast, "ST_KNIFE_KILL_SOUND", "KnifeKillSound")
server_cmd(g_addStast, "ST_HE_KILL", "GrenadeKill")
server_cmd(g_addStast, "ST_HE_SUICIDE", "GrenadeSuicide")
server_cmd(g_addStast, "ST_HS_KILL", "HeadShotKill")
server_cmd(g_addStast, "ST_HS_KILL_SOUND", "HeadShotKillSound")
server_cmd(g_addStast, "ST_ROUND_CNT", "RoundCounter")
server_cmd(g_addStast, "ST_ROUND_CNT_SOUND", "RoundCounterSound")
server_cmd(g_addStast, "ST_KILL_STR", "KillingStreak")
server_cmd(g_addStast, "ST_KILL_STR_SOUND", "KillingStreakSound")
server_cmd(g_addStast, "ST_ENEMY_REM", "EnemyRemaining")
server_cmd(g_addStast, "ST_DOUBLE_KILL", "DoubleKill")
server_cmd(g_addStast, "ST_DOUBLE_KILL_SOUND", "DoubleKillSound")
server_cmd(g_addStast, "ST_PLAYER_NAME", "PlayerName")
server_cmd(g_addStast, "ST_FIRST_BLOOD_SOUND", "FirstBloodSound")
}

public client_putinserver(id)
{
g_multiKills[id] = {0, 0}
g_streakKills[id] = {0, 0}
}

public client_death(killer, victim, wpnindex, hitplace, TK)
{
if (wpnindex == CSW_C4)
return

new headshot = (hitplace == HIT_HEAD) ? 1 : 0
new selfkill = (killer == victim) ? 1 : 0

if (g_firstBlood)
{
g_firstBlood = 0
if (FirstBloodSound)
play_sound("misc/firstblood")
}

if ((KillingStreak || KillingStreakSound) && !TK)
{
g_streakKills[victim][1]++
g_streakKills[victim][0] = 0

if (!selfkill)
{
g_streakKills[killer][0]++
g_streakKills[killer][1] = 0

new a = g_streakKills[killer][0] - 3

if ((a > -1) && !(a % 2))
{
new name[32]
get_user_name(killer, name, 31)

if ((a >>= 1) > 6)
a = 6

if (KillingStreak)
{
set_hudmessage(0, 100, 255, 0.05, 0.50, 2, 0.02, 6.0, 0.01, 0.1, -1)
ShowSyncHudMsg(0, g_left_sync, g_KillingMsg[a], name)
}

if (KillingStreakSound)
{
new file[32]

format(file, 31, "misc/%s", g_Sounds[a])
play_sound(file)
}
}
}
}

if (MultiKill || MultiKillSound)
{
if (!selfkill && !TK && killer)
{
g_multiKills[killer][0]++
g_multiKills[killer][1] += headshot

new param[2]

param[0] = killer
param[1] = g_multiKills[killer][0]
set_task(4.0 + float(param[1]), "checkKills", 0, param, 2)
}
}

if (EnemyRemaining && is_user_connected(victim))
{
new ppl[32], pplnum = 0, maxplayers = get_maxplayers()
new epplnum = 0
new CsTeams:team = cs_get_user_team(victim)
new CsTeams:other_team
new CsTeams:enemy_team = (team == CS_TEAM_T) ? CS_TEAM_CT : CS_TEAM_T

if (team == CS_TEAM_T || team == CS_TEAM_CT)
{
for (new i=1; i<=maxplayers; i++)
{
if (!is_user_connected(i))
{
continue
}
if (i == victim)
{
continue
}
other_team = cs_get_user_team(i)
if (other_team == team && is_user_alive(i))
{
epplnum++
} else if (other_team == enemy_team) {
ppl[pplnum++] = i
}
}

if (pplnum && epplnum)
{
new message[128], team_name[32]

set_hudmessage(255, 255, 255, 0.02, 0.85, 2, 0.05, 0.1, 0.02, 3.0, -1)

/* This is a pretty stupid thing to translate, but whatever */
new _teamname[32]
if (team == CS_TEAM_T)
{
format(_teamname, 31, "TERRORIST%s", (epplnum == 1) ? "" : "S")
} else if (team == CS_TEAM_CT) {
format(_teamname, 31, "CT%s", (epplnum == 1) ? "" : "S")
}

for (new a = 0; a < pplnum; ++a)
{
format(team_name, 31, "%L", ppl[a], _teamname)
format(message, 127, "%L", ppl[a], "REMAINING", epplnum, team_name)
ShowSyncHudMsg(ppl[a], g_bottom_sync, "%s", message)
}
}
}
}

if (LastMan)
{
new cts[32], ts[32], ctsnum, tsnum
new maxplayers = get_maxplayers()
new CsTeams:team

for (new i=1; i<=maxplayers; i++)
{
if (!is_user_connected(i) || !is_user_alive(i))
{
continue
}
team = cs_get_user_team(i)
if (team == CS_TEAM_T)
{
ts[tsnum++] = i
} else if (team == CS_TEAM_CT) {
cts[ctsnum++] = i
}
}

if (ctsnum == 1 && tsnum == 1)
{
new ctname[32], tname[32]

get_user_name(cts[0], ctname, 31)
get_user_name(ts[0], tname, 31)

set_hudmessage(0, 255, 255, -1.0, 0.35, 0, 6.0, 6.0, 0.5, 0.15, -1)
ShowSyncHudMsg(0, g_center1_sync, "%s vs. %s", ctname, tname)

play_sound("misc/maytheforce")
}
else if (!g_LastAnnounce)
{
new oposite = 0, _team = 0

if (ctsnum == 1 && tsnum > 1)
{
g_LastAnnounce = cts[0]
oposite = tsnum
_team = 0
}
else if (tsnum == 1 && ctsnum > 1)
{
g_LastAnnounce = ts[0]
oposite = ctsnum
_team = 1
}

if (g_LastAnnounce)
{
new name[32]

get_user_name(g_LastAnnounce, name, 31)

set_hudmessage(0, 255, 255, -1.0, 0.38, 0, 6.0, 6.0, 0.5, 0.15, -1)
ShowSyncHudMsg(0, g_center1_sync, "%s (%d HP) vs. %d %s%s: %L", name, get_user_health(g_LastAnnounce), oposite, g_teamsNames[_team], (oposite == 1) ? "" : "S", LANG_PLAYER, g_LastMessages[random_num(0, 3)])

if (!is_user_connecting(g_LastAnnounce))
{
client_cmd(g_LastAnnounce, "spk misc/oneandonly")
}
}
}
}

if (wpnindex == CSW_KNIFE && (KnifeKill || KnifeKillSound))
{
if (KnifeKill)
{
new killer_name[32], victim_name[32]

get_user_name(killer, killer_name, 31)
get_user_name(victim, victim_name, 31)

set_hudmessage(255, 100, 100, -1.0, 0.25, 1, 6.0, 6.0, 0.5, 0.15, -1)
ShowSyncHudMsg(0, g_he_sync, "%L", LANG_PLAYER, g_KinfeMsg[random_num(0, 3)], killer_name, victim_name)
}

if (KnifeKillSound)
play_sound("misc/humiliation")
}

if (wpnindex == CSW_HEGRENADE && (GrenadeKill || GrenadeSuicide))
{
new killer_name[32], victim_name[32]

get_user_name(killer, killer_name, 31)
get_user_name(victim, victim_name, 31)

set_hudmessage(255, 100, 100, -1.0, 0.25, 1, 6.0, 6.0, 0.5, 0.15, -1)

if (!selfkill)
{
if (GrenadeKill)
ShowSyncHudMsg(0, g_he_sync, "%L", LANG_PLAYER, g_HeMessages[random_num(0, 3)], killer_name, victim_name)
}
else if (GrenadeSuicide)
ShowSyncHudMsg(0, g_he_sync, "%L", LANG_PLAYER, g_SHeMessages[random_num(0, 3)], victim_name)
}

if (headshot && (HeadShotKill || HeadShotKillSound))
{
if (HeadShotKill && wpnindex)
{
new killer_name[32], victim_name[32], weapon_name[32], message[256], players[32], pnum

xmod_get_wpnname(wpnindex, weapon_name, 31)
get_user_name(killer, killer_name, 31)
get_user_name(victim, victim_name, 31)
get_players(players, pnum, "c")

for (new i = 0; i < pnum; i++)
{
format(message, sizeof(message)-1, "%L", players[i], g_HeadShots[random_num(0, 6)])

replace(message, sizeof(message)-1, "$vn", victim_name)
replace(message, sizeof(message)-1, "$wn", weapon_name)
replace(message, sizeof(message)-1, "$kn", killer_name)

set_hudmessage(100, 100, 255, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, -1)
ShowSyncHudMsg(players[i], g_announce_sync, "%s", message)
}
}

if (HeadShotKillSound)
{
client_cmd(killer, "spk misc/headshot")
client_cmd(victim, "spk misc/headshot")
}
}

if ((DoubleKill || DoubleKillSound) && !selfkill)
{
new Float:nowtime = get_gametime()

if (g_doubleKill == nowtime && g_doubleKillId == killer)
{
if (DoubleKill)
{
new name[32]

get_user_name(killer, name, 31)

set_hudmessage(255, 0, 255, -1.0, 0.35, 0, 6.0, 6.0, 0.5, 0.15, -1)
ShowSyncHudMsg(0, g_center1_sync, "%L", LANG_PLAYER, "DOUBLE_KILL", name)
}

if (DoubleKillSound)
play_sound("misc/doublekill")
}

g_doubleKill = nowtime
g_doubleKillId = killer
}
}

public hideStatus(id)
{
if (PlayerName)
{
ClearSyncHud(id, g_status_sync)
}
}

public setTeam(id)
g_friend[id] = read_data(2)

public showStatus(id)
{
if(!is_user_bot(id) && is_user_connected(id) && PlayerName)
{
new name[32], pid = read_data(2)

get_user_name(pid, name, 31)
new color1 = 0, color2 = 0

if (get_user_team(pid) == 1)
color1 = 255
else
color2 = 255

if (g_friend[id] == 1) // friend
{
new clip, ammo, wpnid = get_user_weapon(pid, clip, ammo)
new wpnname[32]

if (wpnid)
xmod_get_wpnname(wpnid, wpnname, 31)

set_hudmessage(color1, 50, color2, -1.0, 0.60, 1, 0.01, 3.0, 0.01, 0.01, -1)
ShowSyncHudMsg(id, g_status_sync, "%s -- %d HP / %d AP / %s", name, get_user_health(pid), get_user_armor(pid), wpnname)
} else {
set_hudmessage(color1, 50, color2, -1.0, 0.60, 1, 0.01, 3.0, 0.01, 0.01, -1)
ShowSyncHudMsg(id, g_status_sync, "%s", name)
}
}
}

public eNewRound()
{
if (read_data(1) == floatround(get_cvar_float("mp_roundtime") * 60.0,floatround_floor))
{
g_firstBlood = 1
g_C4Timer = 0
++g_roundCount

if (RoundCounter)
{
set_hudmessage(200, 0, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, -1)
ShowSyncHudMsg(0, g_announce_sync, "%L", LANG_PLAYER, "PREPARE_FIGHT", g_roundCount)
}

if (RoundCounterSound)
play_sound("misc/prepare")

if (KillingStreak)
{
new appl[32], ppl, i
get_players(appl, ppl, "ac")

for (new a = 0; a < ppl; ++a)
{
i = appl[a]

if (g_streakKills[i][0] >= 2)
client_print(i, print_chat, "* %L", i, "KILLED_ROW", g_streakKills[i][0])
else if (g_streakKills[i][1] >= 2)
client_print(i, print_chat, "* %L", i, "DIED_ROUNDS", g_streakKills[i][1])
}
}
}
}

public eRestart()
{
eEndRound()
g_roundCount = 0
g_firstBlood = 1
}

public eEndRound()
{
g_C4Timer = -2
g_LastOmg = 0.0
remove_task(8038)
g_LastAnnounce = 0
}

public checkKills(param[])
{
new id = param[0]
new a = param[1]

if (a == g_multiKills[id][0])
{
a -= 3

if (a > -1)
{
if (a > 6)
{
a = 6
}

if (MultiKill)
{
new name[32]

get_user_name(id, name, 31)
set_hudmessage(255, 0, 100, 0.05, 0.50, 2, 0.02, 6.0, 0.01, 0.1, -1)

ShowSyncHudMsg(0, g_left_sync, g_MultiKillMsg[a], name, LANG_PLAYER, "WITH", g_multiKills[id][0], LANG_PLAYER, "KILLS", g_multiKills[id][1], LANG_PLAYER, "HS")
}

if (MultiKillSound)
{
new sound[24]
format(sound, 23, "misc/%s", g_Sounds[a])
play_sound(sound)
}
}
g_multiKills[id] = {0, 0}
}
}

public chickenKill()
{
if (ItalyBonusKill)
announceEvent(0, "KILLED_CHICKEN")
}

public radioKill()
{
if (ItalyBonusKill)
announceEvent(0, "BLEW_RADIO")
}

announceEvent(id, message[])
{
new name[32]

get_user_name(id, name, 31)
set_hudmessage(255, 100, 50, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, -1)
ShowSyncHudMsg(0, g_announce_sync, "%L", LANG_PLAYER, message, name)
}

public eBombPickUp(id)
{
if (BombPickUp)
announceEvent(id, "PICKED_BOMB")
}

public eBombDrop()
{
if (BombDrop)
announceEvent(g_Planter, "DROPPED_BOMB")
}

public eGotBomb(id)
{
g_Planter = id

if (BombReached && read_data(1) == 2 && g_LastOmg < get_gametime())
{
g_LastOmg = get_gametime() + 15.0
announceEvent(g_Planter, "REACHED_TARGET")
}
}

public bombTimer()
{
if (--g_C4Timer > 0)
{
if (BombCountVoice)
{
if (g_C4Timer == 30 || g_C4Timer == 20)
{
new temp[64]

num_to_word(g_C4Timer, temp, 63)
format(temp, 63, "^"vox/%s seconds until explosion^"", temp)
play_sound(temp)
}
else if (g_C4Timer < 11)
{
new temp[64]

num_to_word(g_C4Timer, temp, 63)
format(temp, 63, "^"vox/%s^"", temp)
play_sound(temp)
}
}
if (BombCountDef && g_Defusing)
client_print(g_Defusing, print_center, "%d", g_C4Timer)
}
else
remove_task(8038)
}

public bomb_planted(planter)
{
g_Defusing = 0

if (BombPlanted)
announceEvent(planter, "SET_UP_BOMB")

g_C4Timer = get_cvar_num("mp_c4timer")
set_task(1.0, "bombTimer", 8038, "", 0, "b")
}

public bomb_planting(planter)
{
if (BombPlanting)
announceEvent(planter, "PLANT_BOMB")
}

public bomb_defusing(defuser)
{
if (BombDefusing)
announceEvent(defuser, "DEFUSING_BOMB")

g_Defusing = defuser
}

public bomb_defused(defuser)
{
if (BombDefused)
announceEvent(defuser, "DEFUSED_BOMB")
}

public bomb_explode(planter, defuser)
{
if (BombFailed && defuser)
announceEvent(defuser, "FAILED_DEFU")
}

public play_sound(sound[])
{
new players[32], pnum
get_players(players, pnum, "c")
new i

for (i = 0; i < pnum; i++)
{
if (is_user_connecting(players[i]))
continue

client_cmd(players[i], "spk %s", sound)
}
}
Скачал помню с какого то форума. С подкачкой звуков клиенту но тут не работает звук DoubleKill. Помогите исправить пожалуйста за ране спасибо.
 
В этой теме было размещено решение! Перейти к решению.
Сообщения
2,144
Реакции
1,223
Помог
44 раз(а)
Неужели кто-то еще пользуется этим исчадием Ада? Бросьте эту идею! Подумайте о психическом здоровье ваших игроков. Они вам еще спасибо скажут, что не поставили "это".
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
Minni, психическом здоровье)))) Вообще то игра построена на убийстве одной из команд другой командой игроков разными способами дабы не выполнить определённое задание, а это вам не кажется странным в плане здоровой психики???
 
Сообщения
119
Реакции
53
Помог
4 раз(а)
Best777, Возьми вот этот плагин убил не мало времени на его настройку. В конфиге если что отключишь лишнее. DoubleKill работает имеет 2 звука. В звуках можешь глянуть прослушать всю озвучку. Приемущества: озвучка убийств начинается с 4го и выше фрагов чтоб хороших игроков или читеров =) было слышно а не каждое убийство всяких нубов очень полезно особенно на всяких мясных серверах. Сделал разнообразие звуков и эпичность в общем делал для себя всем понравилось.Если будут вопросы по настройке пиши.
 

Вложения

Сообщения
119
Реакции
53
Помог
4 раз(а)
Best777, скиньте полностью плагин с вашими файлами и названиями звуков нужно удостоверится что вы не сделали ошибку при установке прежде чем проверять код на ошибки.
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
Sleedney, спасибо за ваш вариант но хотелось бы классический. А вот то что вы просили.
 

Вложения

Сообщения
119
Реакции
53
Помог
4 раз(а)
Best777, скиньте конфиг stats.ini пожалуйста.
Введение: этот конфигурационный файл предназначен для отключения/включения статистических опций, например таких как "/rankstats", "/statsme" и подобных. Так же всё это может быть настроено через графическое меню amxmodmenu (пункт Stats cfg).

Настройка:
Для того чтобы включить/отключить ту или иную опцию можно воспользоваться графическим меню amxmodmenu (пункт Stats cfg), либо сделать это вручную, для этого необходимо открыть файл stats.ini и настроить его под себя. Для корректной работы и настройки статистики потребуется включить такие плагины как: statscfg.amxx, statsx.amxx, miscstats.amxx. Ниже приведены все доступные опции статистики, для их использования необходимо просто вписать их в файл stats.ini.

Звуки
Код:
MultiKillSound ; звук при уничтожение нескольких противников за раунд
KnifeKillSound ; звук при убийстве с ножа
HeadShotKillSound ; звук при убийстве headshot'ом
KillingStreakSound ; звук при достижение наибольшего количества убийств
DoubleKillSound ; звук при двойном убийстве
FirstBloodSound ; звук при первой крови (убийстве)
Сообщеня
Код:
MultiKill ; сообщение при уничтожение нескольких противников за раунд
BombPlanting ; сообщение о попытке минирования планета
BombDefusing ; сообщение о попытке разминирования планета
BombPlanted ; сообщение о заминирование планета
BombDefused ; сообщение о разминирование планета
BombFailed ; сообщение о неудачной попытки разминирования
BombPickUp ; обратный отчёт до взрыва бомбы
BombDrop ; сообщение о потери бомбы
LastMan ; сообщение об оставшихся в живых игроках
KnifeKill ; сообщение об убийстве с ножа
GrenadeKill ; сообщение об убийстве с гранаты
GrenadeSuicide ; сообщение о самоубийстве с гранаты
HeadShotKill ; сообщение об убийстве headshot'ом
KillingStreak ; сообщение об достижение наибольшего количества убийств
DoubleKill ; сообщение при двойном убийстве
KillerChat ; сообщение показывающий остаток брони и HP
30 Дек 2017
Best777, если время будет скомпилируйте этот вариант но обязательно проверьте stats.ini (stats.cfg)
А так же обязательно что бы работали модули
Код:
#include <amxmodx>
#include <csx>
#include <cstrike>
 

Вложения

Последнее редактирование:
Сообщения
460
Реакции
68
Помог
7 раз(а)
Sleedney, ок спасибо и вот то что просили.
PHP:
;Generated by Stats Configuration Plugin. Do not modify!
;Variable  Description
SayStatsMe               ;Разрешение /statsme
SayRankStats             ;Разрешение /rankstats
SayRank                  ;Разрешение /rank
SayTop15                 ;Разрешение /top15
SayStatsAll              ;Разрешение /stats
SayHot                   ;AES_SAY_HOT
SaySeStats               ;CSXSQL_SESTATS_CFG
MultiKill                ;Мульти-убийства
MultiKillSound           ;Звук для мульти-убийств
BombPlanting             ;Закладка бомбы
BombDefusing             ;Разминирование бомбы
BombPlanted              ;Бомба заложена
BombDefused              ;Бомба разминированна
BombFailed               ;Бомба не разминированна
BombPickUp               ;Бомба подобранна
BombDrop                 ;Бомба сброшена
BombCountVoice           ;Озвучка отсчета бомбы
BombCountDef             ;Отсчет до взрыва для минера
BombReached              ;Прибытие на место установки бомбы
ItalyBonusKill           ;Убийство курицы
LastMan                  ;Последний игрок
KnifeKill                ;Убийство с ножа
KnifeKillSound           ;Звук для убийства с ножа
GrenadeKill              ;Убийство гранатой
GrenadeSuicide           ;Самоубийство гранатой
HeadShotKill             ;Убийство в голову
HeadShotKillSound        ;Звук для убийства в голову
RoundCounter             ;Счетчик раундов
RoundCounterSound        ;Звук для счетчика раундов
KillingStreak            ;Серия убийств между раундами
KillingStreakSound       ;Звук для серии убийств между раундами
EnemyRemaining           ;Осталось врагов
DoubleKill               ;Двойное убийство
DoubleKillSound          ;Звук для двойного убийства
PlayerName               ;Имя и статус игрока при наводке
FirstBloodSound          ;Звук для первой крови
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу