Здравствуйте, гость Вход | Регистрация
Наши новости:
|
| Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
|---|---|---|---|---|---|
| 14.11.2011, 11:27 | Server Stat System | redow, вот еслиб кто-то выложил такой скрипт: 1. Показывался онлайн на сервере. 2. Показывалась статистика в ТОП на сервере. 3. Подробней статистика об игроке в ТОП. 4. Активность Админа на сервере (онлайн/оффлайн) Вот былоб круто) |
Kirby Magicman | ||
| 12.11.2011, 18:38 | что за строка? | ZZZombiE, да. |
FixX | ||
| 9.11.2011, 19:29 | нужен скрипт мониторинга | edge, то такой-же как и там стоит. Только там вид другой и всё. |
edge | ||
| 23.10.2011, 0:15 | Скрипты для AmxBans 5.0+ | Скрипты by Karpen для AmxBans 5.0+! Скрипт №1 Последний бан игрока V1.2 [attachment=15158:111.PNG] Описание: показывает последнего игрока, зашедшего в бан лист, с не большой информацией. Установка: смотрите ниже. Возможности: Ник - выводит ник игрока. IP-адрес - выводит IP игрока. Причина - выводит причину бана. Админом - выводит Админа, который забанил. Время бана - Время бана (если больше одного дня, показывает в днях) Дата бана - Дата бана игрока Забанен на - На каком сервер забанен Вопрос: Как сделать чтоб дата выводилась в форме: 10.01.11? Ответ: найдите в скрипте строчку: $last_player_ban_data = dateShorttime и замените на $last_player_ban_data = dateShort Вопрос: У меня показывает иероглифы, что делать? Ответ: есть не много вариантов это исправить! 1. Самый лучший, переведите файл в кодировку UTF-8 no BOM 2. Тоже не плох вставьте перед if(empty($last_player_ban_length)) {$last_player_ban_length = lang("_PERMANENT");} Такой скрипт: Код $last_player_ban_nickname = iconv('CP1251','utf-8',$last_player_ban_nickname); $last_player_ban_adm = iconv('CP1251','utf-8',$last_player_ban_adm); $last_player_ban_reason = iconv('CP1251','utf-8',$last_player_ban_reason); $last_player_server_name = iconv('CP1251','utf-8',$last_player_server_name); Вопрос: Вид бана будет такой-же как и на скрине выше? Ответ: нет, я тестировал на своей ст сайта, где не был подключены стили, если подключить, всё будет красиво Скрипт Код <table class='listtable' cellspacing='0' cellpadding='0' border='0' width='100%'> <tr><td class='listtable_top' colspan='4'>Последний бан:</td></tr> <?php require("include/config.inc.php"); require("$config->path_root/include/functions.lang.php"); require("$config->path_root/include/functions.inc.php"); $last_ban = mysql_query("SELECT bid, player_ip, player_nick, admin_nick, ban_reason, ban_created, ban_length, server_name FROM $config->bans ORDER BY ban_created DESC LIMIT 1"); $last_bans = mysql_query("SELECT bid, player_ip, player_nick, admin_nick, ban_reason, ban_created, ban_length, server_name FROM $config->bans ORDER BY ban_created DESC LIMIT 1"); $timezone_correction = $config->timezone_fixx * 3600; while($row = mysql_fetch_array($last_ban)){ $last_player_ban_bid = $row['bid']; $last_player_ban_ip = $row['player_ip']; $last_player_ban_nickname = $row['player_nick']; $last_player_ban_adm = $row['admin_nick']; $last_player_ban_reason = $row['ban_reason']; while($rows = mysql_fetch_object($last_bans)) {$last_player_ban_data = dateShorttime($rows->ban_created + $timezone_correction);} $last_player_ban_length = $row['ban_length']; $last_player_server_name = $row['server_name']; if(empty($last_player_ban_length)) {$last_player_ban_length = lang("_PERMANENT");} else {if ($last_player_ban_length >= 1440) {$last_player_ban_length = round($last_player_ban_length / 1440); if ($duration == 1) $last_player_ban_length = "$last_player_ban_length " . lang("_DAY"); else $last_player_ban_length = "$last_player_ban_length " . lang("_DAYS"); } else {$last_player_ban_length = "$last_player_ban_length " . lang("_MINS");} } echo " <tr><td class='listtable_1'>Ник:</td> <td class='listtable_1'><a href='ban_details.php?bid=$last_player_ban_bid'>$last_player_ban_nickname</a></td></tr> <tr><td class='listtable_1'>IP-адрес:</td> <td class='listtable_1'>$last_player_ban_ip</td></tr> <tr><td class='listtable_1'>Причина:</td> <td class='listtable_1'>$last_player_ban_reason</td></tr> <tr><td class='listtable_1'>Админом:</td> <td class='listtable_1'>$last_player_ban_adm</td></tr> <tr><td class='listtable_1'>Время бана:</td> <td class='listtable_1'>$last_player_ban_length</td></tr> <tr><td class='listtable_1'>Дата бана:</td> <td class='listtable_1'>$last_player_ban_data</td></tr> <tr><td class='listtable_1'>Забанен на:</td> <td class='listtable_1'>$last_player_server_name</td></tr> "; } ?> </table> Скрипт №2 Статистика Администратора V1.5 [attachment=15159:112.PNG] Описание: Показывает сколько банов всего (забанено/истекших), сколько Активных и истекших, из тех что забанил, также сколько розбанил игроков. Установка: смотрите ниже. Скрипт Код <?php if(isset($_SESSION['uid'])) { if ($config->error_handler == "enabled") {include("$config->error_handler_path");} $adm = $_SESSION['uid']; $result1 = mysql_query("SELECT count(*) FROM amx_bans WHERE admin_nick='$adm'"); $result2 = mysql_query("SELECT count(*) FROM amx_banhistory WHERE admin_nick='$adm'"); while($all_rows = mysql_fetch_array($result2)) while($all_row = mysql_fetch_array($result1)){$all_bans = $all_row['count(*)'] + $all_rows['count(*)']; echo "[Всего банов: <b>$all_bans</b>] ";} $result3 = mysql_query("SELECT count(*) FROM amx_bans WHERE admin_nick='$adm'"); while($rowe = mysql_fetch_array($result3)){$ac_bans = $rowe['count(*)']; echo "[Активных банов: <b>$ac_bans</b>] ";} $result4 = mysql_query("SELECT count(*) FROM amx_banhistory WHERE admin_nick='$adm'"); while($ex_row = mysql_fetch_array($result4)){$ex_bans = $ex_row['count(*)']; echo "[Истекших банов: <b>$ex_bans</b>] ";} $result5 = mysql_query("SELECT count(*) FROM amx_banhistory WHERE unban_admin_nick='$adm'"); while($no_pl_row = mysql_fetch_array($result5)){$no_player = $no_pl_row['count(*)']; echo "[Разбанил игроков: <b>$no_player</b>]";} } ?> Скрипт №3 Статистика банлиста V2.0 [attachment=15160:3111131.PNG] Описание: выводит полную статистику бан лист, тоетсть, сколько банов всего, сколько из них активных/истекло, сколько банов на всегда а сколько по времени, сколько Админов на сайте и серверов, сколько подключено серверв. до банлиста. Установка: смотрите ниже. Вопрос: Как правильно удалять? Ответ: Это ошибка всего скрипта :biggrin: просто в базе данных стоит что Какой-то Админ есть на сервере, например если у вас было 3 Админа, и вес 3 на сервер подключено, сначала нужно отключить от сервера, а потом удалять, поскольку после удаления, он будет храниться в другой таблице БД (базы данных). Вопрос: Я удалил не отключив от сервера, что делать? Ответ: Вообще это сложно, но возможно, заходим в phpMyAdmin выбираем там bans (тоесть наша база данных, возможно у вас другая) дальше найдём таблицу amx_admins_servers кликаем как на скрине ниже [attachment=15161:11111111111.PNG] и удаляем кто вам не нужен (можно удалить всех, но потом поставить наново Админов на сервера, через Админку AmxBans) Удолять по ID. Скрипт Код <?php require("include/config.inc.php"); require("$config->path_root/include/functions.lang.php"); require("$config->path_root/include/functions.inc.php"); $active_bans = mysql_query("SELECT COUNT(bid) AS active_bans FROM $config->bans") or die(mysql_error()); $result = mysql_fetch_object($active_bans); $expired_bans = mysql_query("SELECT COUNT(bhid) AS expired_bans FROM $config->ban_history") or die(mysql_error()); $result2 = mysql_fetch_object($expired_bans); $total = $result->active_bans + $result2->expired_bans; $perm_bans = mysql_query("SELECT COUNT(*) AS perm_bans FROM $config->bans WHERE ban_length='0'") or die(mysql_error()); $result3 = mysql_fetch_object($perm_bans); $temp_bans = mysql_query("SELECT COUNT(*) AS temp_bans FROM $config->bans WHERE ban_length!='0'") or die(mysql_error()); $result4 = mysql_fetch_object($temp_bans); $adms = mysql_query("SELECT COUNT(*) AS adms FROM $config->webadmins") or die(mysql_error()); $result5 = mysql_fetch_object($adms); $admse = mysql_query("SELECT COUNT(*) AS admse FROM $config->admins_servers") or die(mysql_error()); $result7 = mysql_fetch_object($admse); $servers = mysql_query("SELECT COUNT(*) AS servers FROM $config->servers") or die(mysql_error()); $result6 = mysql_fetch_object($servers); echo " <table cellpadding='0' cellspacing='0' width='100%'><tr> <td width='80%'>Всего банов</td> <td width='20%'>".$total."</td> </tr><tr> <td width='80%'>Активных</td> <td width='20%'>".$result->active_bans."</td> </tr><tr> <td width='80%'>Истекших</td> <td width='20%'>".$result2->expired_bans."</td> </tr><tr> <td width='80%'>Банов на всегда</td> <td width='20%'>".$result3->perm_bans."</td> </tr><tr> <td width='80%'>Временных</td> <td width='20%'>".$result4->temp_bans."</td> </tr><tr> <td width='80%'>Админов на сайте</td> <td width='20%'>".$result5->adms."</td> </tr><tr> <td width='80%'>Админов на серверах</td> <td width='20%'>".$result7->admse."</td> </tr><tr> <td width='80%'>Серверов</td> <td width='20%'>".$result6->servers."</td> </tr></table> "; ?> Установка: 1. Создаем новый файл например в папке bans/include с названием banLict_my.php 2. Вставляем скрипт который ниже, где вы хотите увидеть информацию (тоесть скрипт который вы хотите установить) Код {php}if (file_exists('include/banLict_my.php')) {include 'include/banLict_my.php';} else {include '../include/banLict_my.php';}{/php} Обновление информации ежедневно. не забывайте про: Спасибо. |
bomj, fantom1922, Orty_Hart | ||
| 22.9.2011, 18:13 | Мониторинг для серверов CS 1.6 | Автору не нравиться то, что некоторые пользователи оскорбили скрипт Karpen, и все данный - были удалены. Тему - удалить. |
Pich, Tr1sT, voloxastik, Vortex Club, гога_95 | ||
| 17.8.2011, 14:15 | AmxBans 5.0 - Не показывает флаги стран игроков | Я вот установил AmxBans 5.0 и у меня была такая проблемка: У меня не показывались флаги стран, возле ника игрока... Что я сделал, поюзал Google, и понял что в AmxBans 5.1 показывает флаги... Я узнал, что файл /bans/include/GeoIP.dat - отвечает за это. Так решение такое: заменить файл GeoIP.dat от AmxBans 5.0 на GeoIP.dat от AmxBans 5.1 Рабочий файл: [attachment=14739:GeoIP.rar] Более новей версия GeoIP чем та, что выше. [attachment=14743:GeoIP2.rar] Последняя версия GeoIP (Август 2011) [attachment=14744:GeoIP.dat.gz] Установка: Закиньте файл GeoIP.dat (который скачали) в папку /bans/include/ При замене файла, нажимаем Да. |
basket, belone, Z[1]. | ||
| 16.6.2011, 13:11 | Админ в чате зелёный [поправить] | Akushi, ох, спасибо, я просто создал тестовый сервер, а на нем просто отключил плагин статистики :D Вот плагин, кому надо, без багов и с рабочими командами. тему офф. |
MiXa, МУЖЫК | ||
| 15.6.2011, 7:23 | Поздравляем проект c-s.net.ua с 5-летием! | Поздравляю с таким не малым проектом! |
iLLuSioN, MaZzai, System Error | ||
| 30.5.2011, 17:54 | miscstats - баг | Вот я сделал, только не знаю, правильно ли сделал... Вот оригинал плагина: miscstats.sma Код #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][] = { "Террорист", "Контр Террорист", "Террориста", "Контр Террориста" } 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 против %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) против %d-оx %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) } } Вот что я сделал: miscstats.sma Код #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][] = { "Террорист", "Контр Террорист", "Террориста", "Контр Террориста" } 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 против %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) против %d-оx %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) } } Что я добавил в самом низу: Что я добавил Код public plugin_precache() { precache_sound ("/sound/misc/godlike.wav") precache_sound ("/sound/misc/headshot.wav") precache_sound ("/sound/misc/holyshit.wav") precache_sound ("/sound/misc/humiliation.wav") precache_sound ("/sound/misc/killingspree.wav") precache_sound ("/sound/misc/maytheforce.wav") precache_sound ("/sound/misc/monsterkill.wav") precache_sound ("/sound/misc/multikill.wav") return PLUGIN_CONTINUE } |
TheArtemMaps | ||
| 6.5.2011, 11:13 | Loadingsound and Roundsound by Karpen 06.05.11 | Вот моя нарезка трэков для сайта c-s.net.ua by Karpen В архиве: Loadingsound 1). плагин для Loadingsound 2). 28 трэков :biggrin: 3). размер: 5.45мб. Жанры: 1. Drum And Bass Loadingsound_1.mp3 [размер: 213кб. длительность: 13сек.] Loadingsound_2.mp3 [размер: 227кб. длительность: 14сек.] Loadingsound_3.mp3 [размер: 231кб. длительность: 14сек.] Loadingsound_4.mp3 [размер: 287кб. длительность: 11сек.] 2. Electro Loadingsound_1.mp3 [размер: 219кб. длительность: 14сек.] Loadingsound_2.mp3 [размер: 163кб. длительность: 10сек.] Loadingsound_3.mp3 [размер: 211кб. длительность: 13сек.] Loadingsound_4.mp3 [размер: 170кб. длительность: 10сек.] Loadingsound_5.mp3 [размер: 202кб. длительность: 12сек.] Loadingsound_6.mp3 [размер: 184кб. длительность: 11сек.] 3. Minimal Loadingsound_1.mp3 [размер: 219кб. длительность: 13сек.] Loadingsound_2.mp3 [размер: 195кб. длительность: 12сек.] Loadingsound_3.mp3 [размер: 212кб. длительность: 13сек.] Loadingsound_4.mp3 [размер: 229кб. длительность: 14сек.] 4. Rock Loadingsound_1.mp3 [размер: 227кб. длительность: 14сек.] Loadingsound_2.mp3 [размер: 165кб. длительность: 10сек.] Loadingsound_3.mp3 [размер: 203кб. длительность: 13сек.] Loadingsound_4.mp3 [размер: 180кб. длительность: 11сек.] Loadingsound_5.mp3 [размер: 264кб. длительность: 16сек.] Loadingsound_6.mp3 [размер: 168кб. длительность: 10сек.] Loadingsound_7.mp3 [размер: 255кб. длительность: 16сек.] Loadingsound_8.mp3 [размер: 198кб. длительность: 12сек.] 5. Trans Loadingsound_1.mp3 [размер: 193кб. длительность: 12сек.] Loadingsound_2.mp3 [размер: 209кб. длительность: 13сек.] Loadingsound_3.mp3 [размер: 186кб. длительность: 11сек.] Loadingsound_4.mp3 [размер: 267кб. длительность: 17сек.] 6. and all Loadingsound_1.mp3 [размер: 248кб. длительность: 15сек.] Настройки плагина loadingsound.sma #include <amxmodx> #define Maxsounds 4 //количество песен new soundlist[Maxsounds][] = {"Loadingsound_1","Loadingsound_2","Loadingsound_3","Loadingsound_4"} //название песен public client_connect(id) { new i i = random_num(0,Maxsounds-1) client_cmd(id,"mp3 play sound/loading/%s",soundlist[i]) return PLUGIN_CONTINUE } public plugin_init() { register_plugin("Loading Sound","1.0","Sutar") return PLUGIN_CONTINUE } public plugin_precache() { precache_sound ("loading/rLoadingsound_1.mp3") //путь к песне в папке precache_sound ("loading/Loadingsound_2.mp3") //путь к песне в папке precache_sound ("loading/Loadingsound_3.mp3") //путь к песне в папке precache_sound ("loading/Loadingsound_4.mp3") //путь к песне в папке return PLUGIN_CONTINUE } В архиве: Roundsound 1). плагин для Roundsound 2). 28 трэков :biggrin: 3). размер 7.63мб. Жанры: 1. Drum And Bass Loadingsound_1.mp3 [размер: 516кб. длительность: 11сек.] Loadingsound_2.mp3 [размер: 636кб. длительность: 14сек.] Loadingsound_3.mp3 [размер: 586кб. длительность: 13сек.] Loadingsound_4.mp3 [размер: 626кб. длительность: 14сек.] 2. Electro Loadingsound_1.mp3 [размер: 604кб. длительность: 14сек.] Loadingsound_2.mp3 [размер: 448кб. длительность: 10сек.] Loadingsound_3.mp3 [размер: 580кб. длительность: 13сек.] Loadingsound_4.mp3 [размер: 468кб. длительность: 10сек.] Loadingsound_5.mp3 [размер: 556кб. длительность: 12сек.] Loadingsound_6.mp3 [размер: 506кб. длительность: 11сек.] 3. Minimal Loadingsound_1.mp3 [размер: 586кб. длительность: 13сек.] Loadingsound_2.mp3 [размер: 603кб. длительность: 14сек.] Loadingsound_3.mp3 [размер: 538кб. длительность: 12сек.] Loadingsound_4.mp3 [размер: 602кб. длительность: 13сек.] 4. Rock Loadingsound_1.mp3 [размер: 728кб. длительность: 16сек.] Loadingsound_2.mp3 [размер: 546кб. длительность: 12сек.] Loadingsound_3.mp3 [размер: 463кб. длительность: 10сек.] Loadingsound_4.mp3 [размер: 702кб. длительность: 16сек.] Loadingsound_5.mp3 [размер: 626кб. длительность: 14сек.] Loadingsound_6.mp3 [размер: 454кб. длительность: 10сек.] Loadingsound_7.mp3 [размер: 560кб. длительность: 13сек.] Loadingsound_8.mp3 [размер: 494кб. длительность: 11сек.] 5. Trans Loadingsound_1.mp3 [размер: 530кб. длительность: 12сек.] Loadingsound_2.mp3 [размер: 576кб. длительность: 13сек.] Loadingsound_3.mp3 [размер: 514кб. длительность: 11сек.] Loadingsound_4.mp3 [размер: 736кб. длительность: 17сек.] 6. and all Loadingsound_1.mp3 [размер: 682кб. длительность: 15сек.] Настройки плагина roundsound.sma #include <amxmodx> public plugin_init() { register_plugin("RoundSound","1.5","Sutar") register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin") register_event("SendAudio", "ct_win", "a", "2&%!MRAD_ctwin") } public t_win() { new rand = random_num(1,3) //количество песен контеров win client_cmd(0,"stopsound") switch(rand) { case 1: client_cmd(0,"spk roundsound/roundsound_ctwin_1") //песни в папке roundsound контеров win case 2: client_cmd(0,"spk roundsound/roundsound_ctwin_2") //песни в папке roundsound контеров win case 3: client_cmd(0,"spk roundsound/roundsound_ctwin_3") //песни в папке roundsound контеров win } return PLUGIN_HANDLED } public ct_win() { new rand = random_num(1,3) //количество песен тероров win client_cmd(0,"stopsound") switch(rand) { case 1: client_cmd(0,"spk roundsound/roundsound_twin_1") //песни в папке roundsound тороров win case 2: client_cmd(0,"spk roundsound/roundsound_twin_2") //песни в папке roundsound тороров win case 3: client_cmd(0,"spk roundsound/roundsound_twin_3") //песни в папке roundsound тороров win } return PLUGIN_HANDLED } public plugin_precache() { precache_sound("roundsound/roundsound_twin_1.wav") //список всех треков precache_sound("roundsound/roundsound_twin_2.wav") //список всех треков precache_sound("roundsound/roundsound_twin_3.wav") //список всех треков precache_sound("roundsound/roundsound_сtwin_1.wav") //список всех треков precache_sound("roundsound/roundsound_сtwin_2.wav") //список всех треков precache_sound("roundsound/roundsound_сtwin_3.wav") //список всех треков return PLUGIN_CONTINUE } Как сделать быструю скачку звуков с сервера 1. Заливаем звуки в корень папки Пример: Звук на сервере лежит так: loadingsound/loadingsound_1.mp3 Значить в сайте, заливаю звук в такомже порядке... http://site.com/download/loadingsound/loadingsound_1.mp3 2. прописываем в \cstrike\server.cfg Код sv_allowdownload 0 // возможность скачивания с сервера недостающих файлов sv_allowupload 1 // разрешить закачку файлов (например decals, спрей-логи, карты) на сервер sv_downloadurl "http://site.com/download" // путь к папке с файлами 3. Всё, готово! Не понятно? смотри ТУТ! Не забываем про кнопку Спасибо! |
cs125, Fox-CaH9, MaximumEnergy, nividimka, vertu.nk, Yes I Do Not, z.i.k.o | ||