Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

MzKzMzUzE - zdjęcie

MzKzMzUzE

Rejestracja: 05.02.2011
Aktualnie: Nieaktywny
Poza forum Ostatnio: 12.07.2018 17:33
-----

Moje posty

W temacie: auto restart knives

25.06.2018 19:11

refresh

W temacie: auto restart knives

23.06.2018 10:46

Nikt nic?

W temacie: miscstats.amxx

22.06.2018 19:31

Sprawdziłem, działa dziękuje. Do zamknięcia.

W temacie: auto restart knives

22.06.2018 13:32

Dźwięki normalnie się pobierały. Tak teraz wygląda moje .sma:

/* 
* AMX Mod X script. 
* Auto restart Knives by PEREF
* Skrypt powstał na bazie skryptu Auto-Restart by VikuS
* Działa tylko pod AMXX
*
* amx_auto_rr_knives -- 1-ON 0-OFF
*
* CVAR: auto_rr_time <time> default 45
* 
*/    

#include <amxmodx> 
#include <amxmisc>

#define SETHUDMSG       set_hudmessage(000, 100, 255, 0.75, 0.70,  2, 0.02, 1.0, 0.01, 0.1, 1);  // Niebieski
#define SETHUDMSG1      set_hudmessage(000, 205, 000, 0.75, 0.70,  2, 0.02, 1.0, 0.01, 0.1, 1);  // Zielony
#define SETHUDMSG2      set_hudmessage(255, 255, 000, 0.75, 0.70,  2, 0.02, 1.0, 0.01, 0.1, 1);  // Żołty
#define SETHUDMSG3      set_hudmessage(000, 255, 255, 0.75, 0.70,  2, 0.02, 1.0, 0.01, 0.1, 1);  // Aqa
#define SETHUDMSG4      set_hudmessage(255, 048, 048, 0.75, 0.70,  2, 0.02, 1.0, 0.01, 0.1, 1);  // Czerwony
#define SETHUDMSG5      set_hudmessage(255, 127, 000, 0.75, 0.70,  2, 0.02, 1.0, 0.01, 0.1, 1);  // Pomarańczowy
#define SETHUDMSG6      set_hudmessage(238, 018, 137, 0.75, 0.70,  2, 0.02, 1.0, 0.01, 0.1, 1);  // Rożowy
#define SETHUDMSG7      set_hudmessage(139, 069, 019, 0.75, 0.70,  2, 0.02, 1.0, 0.01, 0.1, 1);  // Brązowy
#define SETHUDMSG8      set_hudmessage(155, 048, 255, 0.75, 0.70,  2, 0.02, 1.0, 0.01, 0.1, 1);  // Fioletowy
#define SETHUDMSG9      set_hudmessage(250, 100, 100, -1.0, 0.25,  1, 0.02, 1.0, 0.01, 0.1, 1);  // (THREE TWO ONE)
#define SETHUDMSG10     set_hudmessage(250, 075, 075, -1.0, 0.25,  1, 0.02, 1.0, 0.01, 0.1, 1);  // (THREE TWO ONE)
#define LEVEL_LEVEL	ADMIN_CFG

new bool:AutoRR = true
new bool:knifeArena = false

public plugin_init()
{
	register_plugin("Auto-Restart-Knives","0.2","PEREF")
	register_dictionary("auto_restart_knives.txt")
	register_concmd("amx_auto_rr_knives","auto_rr",LEVEL_LEVEL," - 1 : ON | 0 : OFF")
	register_cvar("auto_rr_time","50")
	register_event("TextMsg","restart_time","a","2&#Game_C")
	register_event("CurWeapon","switchweapon","be","1=1","2!29")
	return PLUGIN_CONTINUE
}

public auto_rr(id)
{
	if (!(get_user_flags(id)&LEVEL_LEVEL)) {
		client_print(id, print_console, "[AMXX] %L", LANG_PLAYER, "NO_ACCESS")
		
		return PLUGIN_HANDLED
	}

	new arg [2]
	read_argv(1,arg,1)

	if(equal(arg, "1"))
	{
		AutoRR = true
		client_print(id,print_console,"[AMXX] %L", LANG_PLAYER, "ENABLED")
	}
	else if(equal(arg, "0"))
	{
		AutoRR = false
		client_print(id,print_console,"[AMXX] %L", LANG_PLAYER, "DISABLED")
	}
	else if(!equal(arg, "1") || equal(!arg, "0"))
	{
		client_print(id,print_console,"amx_auto_rr_knives 1 = On | 0 = Off");
	}
	return PLUGIN_HANDLED
 }

public switchweapon(id)
{
	if (!knifeArena)
		return PLUGIN_CONTINUE

	engclient_cmd(id,"weapon_knife")
	return PLUGIN_CONTINUE
}

public restart_time() 
{
	if (AutoRR==true)
	{
		new restart_time=get_cvar_num("auto_rr_time")

		knifeArena = true
		pause("ac","lastmanbets.amxx")
		pause("ac","ptb.amxx")
		pause("ac","alt_end_round_sounds.amxx")
		pause("ac","Automaticknifeduel.amxx")
		pause("ac","cytaty.amxx")
		pause("ac","inf_smierc.amxx")
		SETHUDMSG
		show_hudmessage(0, "%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",restart_time)

		set_task(float(restart_time),"restart_map",0)
		set_task(float(restart_time)-1,"restart_1s",0)
		set_task(float(restart_time)-2,"restart_2s",0)
		set_task(float(restart_time)-3,"restart_3s",0)
		set_task(float(restart_time)-4,"restart_4s",0)
		set_task(float(restart_time)-5,"restart_5s",0)

		if (restart_time > 6)
		{
		set_task(float(restart_time)-6,"restart_6s",0)
		}
		if (restart_time > 7)
		{
		set_task(float(restart_time)-7,"restart_7s",0)
		}
		if (restart_time > 8)
		{
		set_task(float(restart_time)-8,"restart_8s",0)
		}
		if (restart_time > 9)
		{
		set_task(float(restart_time)-9,"restart_9s",0)
		}
		if (restart_time > 10)
		{
		set_task(float(restart_time)-10,"restart_10s",0)
		}
		if (restart_time > 11)
		{
		set_task(float(restart_time)-11,"restart_11s",0)
		}
		if (restart_time > 12)
		{
		set_task(float(restart_time)-12,"restart_12s",0)
		}
                if (restart_time > 13)
		{
		set_task(float(restart_time)-13,"restart_13s",0)
		}
                if (restart_time > 14)
		{
		set_task(float(restart_time)-14,"restart_14s",0)
		}
                if (restart_time > 15)
		{
		set_task(float(restart_time)-15,"restart_15s",0)
		}
                if (restart_time > 16)
		{
		set_task(float(restart_time)-16,"restart_16s",0)
		}
                if (restart_time > 17)
		{
		set_task(float(restart_time)-17,"restart_17s",0)
		}
                if (restart_time > 18)
		{
		set_task(float(restart_time)-18,"restart_18s",0)
		}
                if (restart_time > 19)
		{
		set_task(float(restart_time)-19,"restart_19s",0)
		}
                if (restart_time > 20)
		{
		set_task(float(restart_time)-20,"restart_20s",0)
		}
                if (restart_time > 21)
		{
		set_task(float(restart_time)-21,"restart_21s",0)
		}
                if (restart_time > 22)
		{
		set_task(float(restart_time)-22,"restart_22s",0)
		}
                if (restart_time > 23)
		{
		set_task(float(restart_time)-23,"restart_23s",0)
		}
                if (restart_time > 24)
		{
		set_task(float(restart_time)-24,"restart_24s",0)
		}
                if (restart_time > 25)
		{
		set_task(float(restart_time)-25,"restart_25s",0)
		}
                if (restart_time > 26)
		{
		set_task(float(restart_time)-26,"restart_26s",0)
		}
                if (restart_time > 27)
		{
		set_task(float(restart_time)-27,"restart_27s",0)
		}
                if (restart_time > 28)
		{
		set_task(float(restart_time)-28,"restart_28s",0)
		}
                if (restart_time > 29)
		{
		set_task(float(restart_time)-29,"restart_29s",0)
		}
                if (restart_time > 30)
		{
		set_task(float(restart_time)-30,"restart_30s",0)
		}
                if (restart_time > 31)
		{
		set_task(float(restart_time)-31,"restart_31s",0)
		}
                if (restart_time > 32)
		{
		set_task(float(restart_time)-32,"restart_32s",0)
		}
                if (restart_time > 33)
		{
		set_task(float(restart_time)-33,"restart_33s",0)
		}
                if (restart_time > 34)
		{
		set_task(float(restart_time)-34,"restart_34s",0)
		}
                if (restart_time > 35)
		{
		set_task(float(restart_time)-35,"restart_35s",0)
		}
                if (restart_time > 36)
		{
		set_task(float(restart_time)-36,"restart_36s",0)
		}
                if (restart_time > 37)
		{
		set_task(float(restart_time)-37,"restart_37s",0)
		}
                if (restart_time > 38)
		{
		set_task(float(restart_time)-38,"restart_38s",0)
		}
                if (restart_time > 39)
		{
		set_task(float(restart_time)-39,"restart_39s",0)
		}
                if (restart_time > 40)
		{
		set_task(float(restart_time)-40,"restart_40s",0)
		}
                if (restart_time > 41)
		{
		set_task(float(restart_time)-41,"restart_41s",0)
		}
                if (restart_time > 42)
		{
		set_task(float(restart_time)-42,"restart_42s",0)
		}
                if (restart_time > 43)
		{
		set_task(float(restart_time)-43,"restart_43s",0)
		}
                if (restart_time > 44)
		{
		set_task(float(restart_time)-44,"restart_44s",0)
		}
                if (restart_time > 45)
		{
		set_task(float(restart_time)-45,"restart_45s",0)
		}
                if (restart_time > 50)
		{
		set_task(float(restart_time)-50,"restart_50s",0)
		}
 	
        }
}
public restart_50s() 
{ 
        SETHUDMSG
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",50)
}
public restart_45s() 
{ 
	SETHUDMSG1 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",45)
	client_cmd(0,"mp3 play miscszn/sznres28.mp3")
}
public restart_44s() 
{ 
	SETHUDMSG2 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",44)
}
public restart_43s() 
{ 
	SETHUDMSG3 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",43)
}
public restart_42s() 
{ 
	SETHUDMSG4 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",42)
}
public restart_41s() 
{ 
	SETHUDMSG5
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",41)
}
public restart_40s() 
{ 
	SETHUDMSG6
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",40)
}
public restart_39s() 
{ 
	SETHUDMSG7 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",39)
}
public restart_38s() 
{ 
	SETHUDMSG8 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",38)
}
public restart_37s() 
{ 
	SETHUDMSG 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",37)
}
public restart_36s() 
{ 
	SETHUDMSG1 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",36)
}
public restart_35s() 
{ 
	SETHUDMSG2 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",35)
}
public restart_34s() 
{ 
	SETHUDMSG3 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",34)
}
public restart_33s() 
{ 
	SETHUDMSG4 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",33)
}
public restart_32s() 
{ 
	SETHUDMSG5 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",32)
}
public restart_31s() 
{ 
	SETHUDMSG6 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",31)
}
public restart_30s() 
{ 
	SETHUDMSG7 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",30)
}
public restart_29s() 
{ 
	SETHUDMSG8 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",29)
}
public restart_28s() 
{ 
	SETHUDMSG 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",28)
}
public restart_27s() 
{ 
	SETHUDMSG1 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",27)
}
public restart_26s() 
{ 
	SETHUDMSG2 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",26)
}
public restart_25s() 
{ 
	SETHUDMSG3 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",25)
}
public restart_24s() 
{ 
	SETHUDMSG4 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",24)
}
public restart_23s() 
{ 
	SETHUDMSG5
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",23)
}
public restart_22s() 
{ 
	SETHUDMSG6
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",22)
}
public restart_21s() 
{ 
	SETHUDMSG7 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",21)
}
public restart_20s() 
{ 
	SETHUDMSG8 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",20)
}
public restart_19s() 
{ 
	SETHUDMSG 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",19)
}
public restart_18s() 
{ 
	SETHUDMSG1 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",18)
}
public restart_17s() 
{ 
	SETHUDMSG2 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",17)
}
public restart_16s() 
{ 
	SETHUDMSG3 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",16)
}
public restart_15s() 
{ 
	SETHUDMSG4 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",15)
}
public restart_14s() 
{ 
	SETHUDMSG5 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",14)
}
public restart_13s() 
{ 
	SETHUDMSG6 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",13)
}
public restart_12s() 
{ 
	SETHUDMSG7 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",12)
}
public restart_11s() 
{ 
	SETHUDMSG8 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",11)
}
public restart_10s() 
{ 
	SETHUDMSG 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",10)
}
public restart_9s() 
{ 
	SETHUDMSG1 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",9)
}
public restart_8s() 
{ 
	SETHUDMSG2 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",8)
}
public restart_7s() 
{ 
	SETHUDMSG3 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",7)
}
public restart_6s() 
{ 
	SETHUDMSG4 
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",6)
}
public restart_5s() 
{ 
	SETHUDMSG5
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",5)
	client_cmd(0,"")
} 
public restart_4s() 
{ 
	SETHUDMSG6
	show_hudmessage(0,"%L", LANG_PLAYER, "AUTO_RR_FOR_SEC",4)
	client_cmd(0,"")
} 
public restart_3s()
{
	SETHUDMSG9
        SETHUDMSG10
	show_hudmessage(0,"%L", LANG_PLAYER, "THREE",3)
	client_cmd(0,"spk miscszn/three.wav")
}
public restart_2s()
{
	SETHUDMSG9
        SETHUDMSG10
	show_hudmessage(0,"%L", LANG_PLAYER, "TWO",2)
	client_cmd(0,"spk miscszn/two.wav")
}
public restart_1s()
{       
        SETHUDMSG9
        SETHUDMSG10
	show_hudmessage(0,"%L", LANG_PLAYER, "ONE",1)
	client_cmd(0,"spk miscszn/one.wav")
}

public restart_map() 
{
	if (AutoRR==true)
	{
		set_cvar_float("sv_restart",1.0)
		knifeArena = false
		unpause("ac","lastmanbets.amxx")
		unpause("ac","ptb.amxx")
		unpause("ac","alt_end_round_sounds.amxx")
		unpause("ac","Automaticknifeduel.amxx")
		unpause("ac","cytaty.amxx")
		unpause("ac","inf_smierc.amxx")
		set_task(2.0,"hudmess_show",0)
		SETHUDMSG9
                SETHUDMSG10
		show_hudmessage(0, "%L", LANG_PLAYER, "AUTOMATIC")
		client_cmd(0,"mp3 play miscszn/szndo_przodu.mp3")
	}
}

public hudmess_show()
{
		set_hudmessage(000, 100, 255, 0.05, 0.65, 2, 0.02, 6.0, 0.01, 0.1, 2)
		show_hudmessage(0, "%L", LANG_PLAYER, "NICE_GAME")
}

public plugin_precache()
{
	precache_sound( "miscszn/one.wav")
	precache_sound( "miscszn/two.wav")
	precache_sound( "miscszn/three.wav")
	precache_sound( "miscszn/szndo_przodu.mp3")
	precache_sound( "miscszn/sznres28.mp3")
	return PLUGIN_CONTINUE
}

Zmieniłem ścieżkę plików, dodałem pluginy które mają być stopowane podczas nożówki, dwa dźwięki są w mp3 więc przerobiłem kod.

 

Pluginy się stopują i włączają jak powinny, wszystkie dźwięki pobiera, odtwarza się THREE, TWO, ONE lecz nie odtwarzają się moje mp3. Coś skopałem? sznres28 trwa 40 sek. zaś szndo_przodu 11 sek.

W temacie: miscstats.amxx

22.06.2018 11:36

/* 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_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("miscszn/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, "miscszn/%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("miscszn/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 miscszn/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("miscszn/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 miscszn/headshot")
			client_cmd(victim, "spk miscszn/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("miscszn/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("miscszn/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, "miscszn/%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( "miscszn/1.wav")
	precache_sound( "miscszn/2.wav")
	precache_sound( "miscszn/3.wav")
	precache_sound( "miscszn/4.wav")
	precache_sound( "miscszn/5.wav")
	return PLUGIN_CONTINUE
}

Dobrze? Niby kompiluje ale jeszcze nie testowałem na serwerze.