Въпрос за съобщения в чата!
-
DeadlySight
Извън линия - Потребител
- Мнения: 10
- Регистриран на: 11 Окт 2016, 00:03
- Местоположение: amxx-bg.info
- Получена благодарност: 2 пъти
- Обратна връзка:
Въпрос за съобщения в чата!
Здравейте! Искам да попитам има ли начин да спра съобщения, които излизат в чата, когато играч убие противников играч.
Съобщенията са следните:
* icho made headshot on $$$$$$$$$$$$$$$$$$$$$$$ at 17.6 m ( 57.9 ft ) with m4a1
Съобщенията са следните:
* icho made headshot on $$$$$$$$$$$$$$$$$$$$$$$ at 17.6 m ( 57.9 ft ) with m4a1
-
TheRedShoko
Извън линия - Модератор
- Мнения: 1016
- Регистриран на: 06 Окт 2016, 07:42
- Местоположение: Бургас
- Се отблагодари: 5 пъти
- Получена благодарност: 84 пъти
-
JustInCase
Извън линия - Потребител
- Мнения: 582
- Регистриран на: 14 Окт 2016, 23:31
- Се отблагодари: 4 пъти
- Получена благодарност: 15 пъти
Re: Въпрос за съобщения в чата!
Най-вероятно е statsx.amxx
MANSION - HNS : 45.144.155.99:27026
ONLINE
ONLINE
-
DeadlySight
Извън линия - Потребител
- Мнения: 10
- Регистриран на: 11 Окт 2016, 00:03
- Местоположение: amxx-bg.info
- Получена благодарност: 2 пъти
- Обратна връзка:
-
JustInCase
Извън линия - Потребител
- Мнения: 582
- Регистриран на: 14 Окт 2016, 23:31
- Се отблагодари: 4 пъти
- Получена благодарност: 15 пъти
-
DeadlySight
Извън линия - Потребител
- Мнения: 10
- Регистриран на: 11 Окт 2016, 00:03
- Местоположение: amxx-bg.info
- Получена благодарност: 2 пъти
- Обратна връзка:
-
JustInCase
Извън линия - Потребител
- Мнения: 582
- Регистриран на: 14 Окт 2016, 23:31
- Се отблагодари: 4 пъти
- Получена благодарност: 15 пъти
Re: Въпрос за съобщения в чата!
Не намирам никакъв такъв текст не е от този плъгин.
MANSION - HNS : 45.144.155.99:27026
ONLINE
ONLINE
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Re: Въпрос за съобщения в чата!
Съобщението е от плъгина Headshot Deluxe. Промени квара amx_hs_event на "bf":
amx_hs_event "flags"
flags
"a" - text FX
"b" - sound FX
"c" - display number of headshots ( for killer only , and current map )
"d" - display percentage of frags by headshot ( for killer only , and current map )
"e" - display headshot ranking ( for killer only , and current map )
"f" - enables steam MOTD for result of saying /hsAll
default "abf"
-
Petrowch0
Извън линия - Потребител
- Мнения: 220
- Регистриран на: 14 Окт 2016, 19:23
- Местоположение: de_dust2
- Получена благодарност: 3 пъти
- Обратна връзка:
Re: Въпрос за съобщения в чата!
Или виж така дали ще ги има пак:
Код за потвърждение: Избери целия код
/*
* AMXmodX script.
*
*
* Plugin : Headshot DeluXe vX.16.1.0
*
*
* This file is provided as is (no warranties).
* Feel free to use it or modify it.
* Report bugs at [email protected] THX
*
* Author: DanRaZor
*
* Originally Based on :
* Ultimate Sounds by Hephos
* welcome HUDMsg by JustinHoMi
* lots from OLO
*
* THX.
*
*/
/*
* *** AMXx Code ***
*/
/* Macros */
#define MAX_TXT_LEN 300
#define MAX_TXT_LEN_1 299
#define COEF_FEETS 12
#define MAX_RANK 5
#define MAX_STAT 4
//#define DEBUG
/* Includes */
#include <amxmodx>
#include <amxmisc>
/* Global vars */
new killr = 0 /* describes current killer ( his id ) */
new vict = 0 /* describes current victim ( his id ) */
new nbHS[33] /* to store HS of players connected */
new nbFrags[33] /* to store frags of players connected */
new ranking[33] /* Rankingtab : 32 players from 1 to 32 ( 0 not used ) */
/* Center Message Position/colors/Channel */
new HUD_COL[3] = { 0,80,220 }
new Float:HUD_POS[2] = { -1.0,0.3 }
new HUD_CHN = 10
/* Stats Message Position/colors/Channel */
new HUD_COL2[3] = { 0,80,220 }
new Float:HUD_POS2[2] = { 0.0,0.2 }
new HUD_CHN2 = 9
/* Default texts */
new titleMotd[30] = " HEADSHOT : Rankings" /* Title for top stats */
new textSup50[25] = "Unbelievable !!!" /* when done 50 HS */
new textSup20[25] = "Great !!!" /* when done 20 HS */
new textSup10[25] = "Good job !!!" /* when done 10 HS */
new textSup1[25] = "" /* when done 1 HS */
new textFirst[25] = "Your first Headshot" /* when done first HS */
new textHS[25] = "Headshots" /* basic Text */
new textRank[25] = "Rank :" /* basic Text */
new textFrags[25] = "Frags" /* basic Text */
new noHeadshot[50]= "No Headshot, try later" /* basic Text */
/* To store language version */
new langVersion = 0
/* To store fun activation */
new funVersion = 0
/* Default values for hud, chat and wavs */
new hudAllCvar[MAX_TXT_LEN] = ""
new hudVicCvar[MAX_TXT_LEN] = ""
new hudKilCvar[MAX_TXT_LEN] = ""
new chatAllCvar[MAX_TXT_LEN] = ""
new chatVicCvar[MAX_TXT_LEN] = ""
new chatKilCvar[MAX_TXT_LEN] = ""
new wavAllCvar[MAX_TXT_LEN] = "misc/headshot"
new wavVicCvar[MAX_TXT_LEN] = "misc/ow"
new wavKilCvar[MAX_TXT_LEN] = "barney/ba_gotone"
/* Sizes of random sounds lists */
#define VIC_MAX 12
#define KIL_MAX 17
/* To Store last Random message */
/* and avoid to send twice a sound */
new lastMsgKil = -1
new lastMsgVic = -1
/* Random sounds for FUN version */
new listKilWav[KIL_MAX][] = {
"barney/ba_another",
"barney/ba_buttugly",
"barney/ba_close",
"barney/ba_endline",
"barney/ba_firepl",
"barney/ba_iwish",
"barney/ba_later",
"barney/ba_seethat",
"barney/beertopside",
"barney/c1a4_ba_octo1",
"barney/checkwounds",
"barney/diebloodsucker",
"barney/realbadwound",
"barney/somethingdied",
"barney/somethingstinky",
"barney/stench",
"scientist/perfectday"
}
new listVicWav[VIC_MAX][] = {
"barney/ba_dotoyou",
"barney/ba_uwish",
"barney/bigmess",
"barney/c1a2_ba_4zomb",
"barney/cantfigure",
"barney/dontbuyit",
"barney/guyresponsible",
"barney/hitbad",
"barney/imdead",
"barney/iwaithere",
"fvox/flatline",
"scientist/recalculate"
}
/* Code */
/* Setting languages */
public set_english () {
langVersion = 0
copy ( titleMotd ,29 ," HEADSHOT : Rankings" )
copy ( textSup50 ,24 ,"Unbelievable !!!" )
copy ( textSup20 ,24 ,"Great !!!" )
copy ( textSup10 ,24 ,"Good job !!!" )
copy ( textSup1 ,24 ,"" )
copy ( textFirst ,24 ,"Your first Headshot" )
copy ( textHS ,24 ,"Headshots" )
copy ( textRank ,24 ,"Rank :" )
copy ( textFrags ,24 ,"Frags" )
copy ( noHeadshot,49 ,"No Headshot, try later" )
return PLUGIN_CONTINUE
}
public set_french () {
langVersion = 1
copy ( titleMotd ,29 ," HEADSHOT : Classement" )
copy ( textSup50 ,24 ,"Incroyable !!!" )
copy ( textSup20 ,24 ,"Bravo !!!" )
copy ( textSup10 ,24 ,"Bien Joue !!!" )
copy ( textSup1 ,24 ,"" )
copy ( textFirst ,24 ,"Premier Headshot" )
copy ( textHS ,24 ,"Headshots" )
copy ( textRank ,24 ,"Classement :" )
copy ( textFrags ,24 ,"Frags" )
copy ( noHeadshot,49 ,"Pas de Headshot, essayer plus tard" )
return PLUGIN_CONTINUE
}
public set_espagnol () {
langVersion = 2
copy ( titleMotd ,29 ," HEADSHOT : Clasificacion" )
copy ( textSup50 ,24 ,"increible !!!" )
copy ( textSup20 ,24 ,"Bravo !!!" )
copy ( textSup10 ,24 ,"Bien jugado !!!" )
copy ( textSup1 ,24 ,"" )
copy ( textFirst ,24 ,"Tu primero Headshot" )
copy ( textHS ,24 ,"Headshots" )
copy ( textRank ,24 ,"clasificacion :" )
copy ( textFrags ,24 ,"Frags" )
copy ( noHeadshot,49 ,"No hay Headshot, intentar mas tarde" )
return PLUGIN_CONTINUE
}
public set_portugues () {
langVersion = 3
copy ( titleMotd ,29 ," HEADSHOT : Classificaзao" )
copy ( textSup50 ,24 ,"So visto !!!" )
copy ( textSup20 ,24 ,"Bravo !!!" )
copy ( textSup10 ,24 ,"Boa !!!" )
copy ( textSup1 ,24 ,"" )
copy ( textFirst ,24 ,"O teu primeiro Headshot" )
copy ( textHS ,24 ,"Headshots" )
copy ( textRank ,24 ,"classificacao :" )
copy ( textFrags ,24 ,"Frags" )
copy ( noHeadshot,49 ,"Nao houve Headshot, tentar mais tarde" )
return PLUGIN_CONTINUE
}
public set_german () {
langVersion = 4
copy ( titleMotd ,29 ," HEADSHOT : Rangliste" )
copy ( textSup50 ,24 ,"Unglaublich !!!" )
copy ( textSup20 ,24 ,"Klasse !!!" )
copy ( textSup10 ,24 ,"Gute Arbeit !!!" )
copy ( textSup1 ,24 ,"" )
copy ( textFirst ,24 ,"Dein erster Headshot" )
copy ( textHS ,24 ,"Headshots" )
copy ( textRank ,24 ,"Rang :" )
copy ( textFrags ,24 ,"Frags" )
copy ( noHeadshot,49 ,"Kein Headshot, versuchs spater" )
return PLUGIN_CONTINUE
}
public set_language ( id , level, cid ) {
if (!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED
new param[10]
read_argv(1,param,9)
if ( containi ( param , "fr" ) > -1 ) {
set_french ()
client_print(id,print_chat,"* Activation Headshot DeluXe FR" )
}
else if ( containi ( param , "eng" ) > -1 ) {
set_english ()
client_print(id,print_chat,"* Activation Headshot DeluXe ENG" )
}
else if ( containi ( param , "esp" ) > -1 ) {
set_espagnol ()
client_print(id,print_chat,"* Activacion Headshot DeluXe ESP" )
}
else if ( containi ( param , "port" ) > -1 ) {
set_portugues ()
client_print(id,print_chat,"* Activacao Headshot DeluXe PORT" )
}
else if ( containi ( param , "ger" ) > -1 ) {
set_german ()
client_print(id,print_chat,"* Aktivierung Headshot DeluXe GER" )
}
else {
set_english ()
client_print(id,print_chat,"* Activation Headshot DeluXe ENG ( Default )" )
}
return PLUGIN_HANDLED_MAIN
}
public show_lang ( id ) {
new text[MAX_TXT_LEN]
if ( langVersion == 0 )
copy ( text , MAX_TXT_LEN_1 , "* This server is using AMXmodX plugin : Headshot DeluXe" )
else if ( langVersion == 1 )
copy ( text , MAX_TXT_LEN_1 , "* Ce serveur utilise le plugin AMXmodX : Headshot DeluXe" )
else if ( langVersion == 2 )
copy ( text , MAX_TXT_LEN_1 , "* Este servidor utiliza el plugin AMXmodX : Headshot DeluXe" )
else if ( langVersion == 3 )
copy ( text , MAX_TXT_LEN_1 , "* Este servidor utiliza o plugin AMXmodX : Headshot DeluXe" )
else if ( langVersion == 4 )
copy ( text , MAX_TXT_LEN_1 , "* Dieser server benutzt das plugin AMXmodX : Headshot DeluXe" )
else
copy ( text , MAX_TXT_LEN_1 , "* This server is using AMXmodX plugin : Headshot DeluXe" )
if ( funVersion == 1 )
add ( text , MAX_TXT_LEN_1 , " (FUN)" )
client_print(0,print_chat,text)
return PLUGIN_CONTINUE
}
/* About stats */
public init_stats() {
/* Done at each map start */
for ( new z = 0 ; z < 33 ; ++z ) {
nbHS[z] = 0
nbFrags[z] = 0
ranking[z] = 0
}
new hsflgs[10]
get_cvar_string("amx_hs_event",hsflgs,9)
return PLUGIN_CONTINUE
}
public get_rank(id) {
for ( new z = 1 ; z < 33 ; ++z )
if ( ranking[z] == id )
return z
return 0
}
public get_maxP() {
new value = 0
for ( new z = 1 ; z < 33 ; ++z )
if ( ranking[z] != 0 )
++value
return value
}
public remove_player(id) {
for ( new z = 0 ; z < 33 ; ++z ) {
if ( ranking[z] == id ) {
for ( new t = z ; t < 32 ; ++t )
ranking[t] = ranking[t+1]
ranking[32] = 0
return PLUGIN_CONTINUE
}
}
nbHS[id]=0
nbFrags[id]=0
return PLUGIN_CONTINUE
}
public update_rankings() {
/* Number of HS for last killer */
for ( new z = 1 ; z < 33 ; ++z ) {
if ( ranking[z] == 0 ) {
ranking[z] = killr
return PLUGIN_CONTINUE
}
else if ( ranking[z] != killr ) {
if ( nbHS[killr] > nbHS[ranking[z]] ) {
for ( new w = 32 ; w > z ; --w ) {
ranking[w] = ranking[w-1]
}
ranking[z] = killr
new dec = 0
for ( new x = z+1 ; x < 33 ; ++x ) {
if ( ranking[x] == killr ) {
++dec
ranking [33-dec] = 0
}
if ( x+dec < 33 )
ranking[x]=ranking[x+dec]
}
return PLUGIN_CONTINUE
}
else if ( nbHS[killr] == nbHS[ranking[z]] ) {
new Float:prct1 = ( float(nbHS[killr]) / float( nbFrags[killr] ) ) * 100
new Float:prct2 = ( float(nbHS[ranking[z]]) / float( nbFrags[ranking[z]] ) ) * 100
if ( prct1 > prct2 ) {
for ( new w = 32 ; w > z ; --w ) {
ranking[w] = ranking[w-1]
}
ranking[z] = killr
new dec = 0
for ( new x = z+1 ; x < 33 ; ++x ) {
if ( ranking[x] == killr ) {
++dec
ranking [33-dec] = 0
}
if ( x+dec < 33 )
ranking[x]=ranking[x+dec]
}
return PLUGIN_CONTINUE
}
}
}
else if ( ranking[z] == killr ) {
return PLUGIN_CONTINUE
}
}
return PLUGIN_CONTINUE
}
/* Replacing vars */
replace_vars ( ioText[] ) {
/* replacement of
%killer%
%victim%
%distance%
%distFeet%
%weapon%
\n
*/
new distance,vorigin[3],korigin[3]
new killerStr[80], victimStr[80], distStr[8], distFtStr[8]
get_user_origin(vict,vorigin)
get_user_origin(killr,korigin)
distance = get_distance(vorigin,korigin)
new Float:distFt = ( float(distance) * 0.08333 )
format(distFtStr,7,"%.1f",distFt)
new Float:dist = distFt * 0.304
format(distStr,7,"%.1f",dist)
get_user_name(killr,killerStr,79)
get_user_name(vict,victimStr,79)
new wpnId,clip,ammo,wpn[32]
wpnId = get_user_weapon(killr,clip,ammo)
get_weaponname ( wpnId , wpn ,31 )
/* here we have for example wpn = "weapon_m4a1" so ... */
replace(wpn,31,"weapon_","") /* it's nicer */
replace(ioText,MAX_TXT_LEN_1,"%killer%",killerStr)
replace(ioText,MAX_TXT_LEN_1,"%victim%",victimStr)
replace(ioText,MAX_TXT_LEN_1,"%distance%",distStr)
replace(ioText,MAX_TXT_LEN_1,"%distFeet%",distFtStr)
replace(ioText,MAX_TXT_LEN_1,"%weapon%",wpn)
replace(ioText,MAX_TXT_LEN_1,"\n","^n")
return PLUGIN_CONTINUE
}
/* Displaying FXs */
display_HS_TXTEvent() {
/* displays Text FX */
/* text FX in HUD */
new temp [MAX_TXT_LEN]
set_hudmessage(HUD_COL[0],HUD_COL[1],HUD_COL[2],HUD_POS[0],HUD_POS[1],0,6.0,6.0,0.5, 0.15, HUD_CHN )
if ( hudAllCvar[0] != 0 ) {
copy ( temp , MAX_TXT_LEN_1 , hudAllCvar )
replace_vars ( temp )
for ( new id = 1 ; id < 33 ; ++id ) {
if ( is_user_connected (id) ) {
if ( id == vict ) {
if ( hudVicCvar[0] == 0 ) {
/* If victim has no hud Text specified */
/* he gots the one for all */
show_hudmessage(id,temp)
}
}
else if ( id == killr ) {
if ( hudKilCvar[0] == 0 ) {
/* If killer has no hud Text specified */
/* he gots the one for all */
show_hudmessage(id,temp)
}
}
else {
show_hudmessage(id,temp)
}
}
}
}
if ( hudKilCvar[0] != 0 ) {
copy ( temp , MAX_TXT_LEN_1 , hudKilCvar )
replace_vars ( temp )
if ( is_user_connected (killr) )
show_hudmessage(killr,temp)
}
if ( hudVicCvar[0] != 0 ) {
copy ( temp , MAX_TXT_LEN_1 , hudVicCvar )
replace_vars ( temp )
if ( is_user_connected (vict) )
show_hudmessage(vict,temp)
}
/* text FX in CHAT */
if ( chatAllCvar[0] != 0 ) {
copy ( temp , MAX_TXT_LEN_1 , chatAllCvar )
replace_vars ( temp )
for ( new id = 1 ; id < 33 ; ++id ) {
if ( is_user_connected (id) ) {
if ( id == vict ) {
if ( chatVicCvar[0] == 0 ) {
/* If victim has no chat Text specified */
/* he gots the one for all */
client_print(id,print_chat,temp )
}
}
else if ( id == killr ) {
if ( chatKilCvar[0] == 0 ) {
/* If killer has no chat Text specified */
/* he gots the one for all */
client_print(id,print_chat,temp )
}
}
else {
client_print(id,print_chat,temp )
}
}
}
}
if ( chatKilCvar[0] != 0 ) {
copy ( temp , MAX_TXT_LEN_1 , chatKilCvar )
replace_vars ( temp )
if ( is_user_connected (killr) )
client_print(killr,print_chat,temp )
}
if ( chatVicCvar[0] != 0 ) {
copy ( temp , MAX_TXT_LEN_1 , chatVicCvar )
replace_vars ( temp )
if ( is_user_connected (vict) )
client_print(vict,print_chat,temp )
}
return PLUGIN_CONTINUE
}
play_HS_SOUNDEvent() {
/* Play the correct wav for correct users */
if ( wavAllCvar[0] != 0 ) {
new text[MAX_TXT_LEN]
format(text,MAX_TXT_LEN_1,"spk %s", wavAllCvar)
for ( new id = 1 ; id < 33 ; ++id ) {
if ( is_user_connected (id) ) {
if ( id == vict ) {
if ( wavVicCvar[0] == 0 ) {
/* If victim has no wav specified */
/* he gots the one for all */
client_cmd(id,text)
}
}
else if ( id == killr ) {
if ( wavKilCvar[0] == 0 )
/* If killer has no wav specified */
/* he gots the one for all */
client_cmd(id,text)
}
else {
client_cmd(id,text)
}
}
}
}
if ( funVersion == 1 ) {
new text[MAX_TXT_LEN]
new text2[MAX_TXT_LEN]
get_rand_kill( text2 )
format(text,MAX_TXT_LEN_1,"spk %s", text2)
if ( is_user_connected (killr) )
client_cmd(killr,text)
}
else if ( wavKilCvar[0] != 0 ) {
new text[MAX_TXT_LEN]
format(text,MAX_TXT_LEN_1,"spk %s", wavKilCvar)
if ( is_user_connected (killr) )
client_cmd(killr,text)
}
if ( funVersion == 1 ) {
new text[MAX_TXT_LEN]
new text2[MAX_TXT_LEN]
get_rand_vict( text2 )
format(text,MAX_TXT_LEN_1,"spk %s", text2)
if ( is_user_connected (vict) )
client_cmd(vict,text)
}
else if ( wavVicCvar[0] != 0 ) {
new text[MAX_TXT_LEN]
format(text,MAX_TXT_LEN_1,"spk %s", wavVicCvar)
if ( is_user_connected (vict) )
client_cmd(vict,text)
}
return PLUGIN_CONTINUE
}
/* Changing configs */
public amx_hsChangeHud ( id , level , cid ) {
if (!cmd_access(id,level,cid,3))
return PLUGIN_HANDLED
new users[32], path[MAX_TXT_LEN]
read_argv(1,users,31)
read_argv(2,path ,MAX_TXT_LEN_1)
if ( users[0] == 0 ) {
console_print(id,"[AMX] amx_hs_set_hud : No user found ... aborting")
return PLUGIN_HANDLED
}
new count = 0
if ( containi ( users , "A" ) > -1) {
++count
}
if ( containi ( users , "V" ) > -1) {
++count
}
if ( containi ( users , "K" ) > -1) {
++count
}
if ( count > 1 ) {
console_print(id,"[AMX] amx_hs_set_hud : Only specify one user at a time ... aborting")
return PLUGIN_HANDLED
}
if ( containi ( users , "A" ) > -1) {
if ( path[0] == 0 ) {
hudAllCvar[0] = 0
}
else
copy ( hudAllCvar , MAX_TXT_LEN_1 , path )
}
else if ( containi ( users , "V" ) > -1) {
if ( path[0] == 0 ) {
chatVicCvar[0] = 0
}
else
copy ( hudVicCvar , MAX_TXT_LEN_1 , path )
}
else if ( containi ( users , "K" ) > -1) {
if ( path[0] == 0 ) {
chatKilCvar[0] = 0
}
else
copy ( hudKilCvar , MAX_TXT_LEN_1 , path )
}
else {
console_print(id,"[AMX] amx_hs_set_hud : Bad user specified ... aborting")
return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}
public amx_hsChangeChat ( id , level, cid ) {
if (!cmd_access(id,level,cid,3))
return PLUGIN_HANDLED
new users[32], path[MAX_TXT_LEN]
read_argv(1,users,31)
read_argv(2,path ,MAX_TXT_LEN_1)
if ( users[0] == 0 ) {
console_print(id,"[AMX] amx_hs_set_chat : No user found ... aborting")
return PLUGIN_HANDLED
}
new count = 0
if ( containi ( users , "A" ) > -1) {
++count
}
if ( containi ( users , "V" ) > -1) {
++count
}
if ( containi ( users , "K" ) > -1) {
++count
}
if ( count > 1 ) {
console_print(id,"[AMX] amx_hs_set_chat : Only specify one user at a time ... aborting")
return PLUGIN_HANDLED
}
if ( containi ( users , "A" ) > -1) {
if ( path[0] == 0 ) {
chatAllCvar[0] = 0
}
else
copy ( chatAllCvar , MAX_TXT_LEN_1 , path )
}
else if ( containi ( users , "V" ) > -1) {
if ( path[0] == 0 ) {
chatVicCvar[0] = 0
}
else
copy ( chatVicCvar , MAX_TXT_LEN_1 , path )
}
else if ( containi ( users , "K" ) > -1) {
if ( path[0] == 0 ) {
chatKilCvar[0] = 0
}
else
copy ( chatKilCvar , MAX_TXT_LEN_1 , path )
}
else {
console_print(id,"[AMX] amx_hs_set_chat : Bad user specified ... aborting")
return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}
public amx_hsChangeWav ( id , level, cid ) {
if (!cmd_access(id,level,cid,3))
return PLUGIN_HANDLED
new users[32], path[MAX_TXT_LEN]
read_argv(1,users,31)
read_argv(2,path ,MAX_TXT_LEN_1)
if ( users[0] == 0 ) {
console_print(id,"[AMX] amx_hs_set_wav : No user found ... aborting")
return PLUGIN_HANDLED
}
new count = 0
if ( containi ( users , "A" ) > -1) {
++count
}
if ( containi ( users , "V" ) > -1) {
++count
}
if ( containi ( users , "K" ) > -1) {
++count
}
if ( count > 1 ) {
console_print(id,"[AMX] amx_hs_set_wav : Only specify one user at a time ... aborting")
return PLUGIN_HANDLED
}
if ( containi ( users , "A" ) > -1) {
if ( path[0] == 0 ) {
wavAllCvar[0] = 0
}
else
copy ( wavAllCvar , MAX_TXT_LEN_1 , path )
}
else if ( containi ( users , "V" ) > -1) {
if ( path[0] == 0 ) {
wavVicCvar[0] = 0
}
else
copy ( wavVicCvar , MAX_TXT_LEN_1 , path )
}
else if ( containi ( users , "K" ) > -1) {
if ( path[0] == 0 ) {
wavKilCvar[0] = 0
}
else
copy ( wavKilCvar , MAX_TXT_LEN_1 , path )
}
else {
console_print(id,"[AMX] amx_hs_set_wav : Bad user specified ... aborting")
return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}
/* Displaying FX ( stats ) */
public display_event_Text ( id ) {
new nbText[MAX_TXT_LEN]
new ratioText[MAX_TXT_LEN]
new rankText[MAX_TXT_LEN]
new output[MAX_TXT_LEN]
new cnt = 0
new hsflgs[10]
get_cvar_string("amx_hs_event",hsflgs,9)
if ( read_flags(hsflgs)&4) {
++cnt
new done = 0
if ( nbHS[id] == 50 ) {
format ( nbText , MAX_TXT_LEN_1 , "%s^n %d %s" ,textSup50 ,nbHS[id], textHS )
done = 1
}
if ( ( nbHS[id] == 20 ) && ( done == 0 ) ) {
format ( nbText , MAX_TXT_LEN_1 , "%s^n %d %s" ,textSup20, nbHS[id], textHS )
done = 1
}
if ( ( nbHS[id] == 10 ) && ( done == 0 ) ) {
format ( nbText , MAX_TXT_LEN_1 , "%s^n %d %s" ,textSup10, nbHS[id], textHS )
done = 1
}
if ( ( nbHS[id] > 1 ) && ( done == 0 ) ) {
format ( nbText , MAX_TXT_LEN_1 , "%s^n %d %s" ,textSup1, nbHS[id], textHS )
done = 1
}
if ( done == 0 ) {
format ( nbText , MAX_TXT_LEN_1 , "^n %s" ,textFirst )
}
copy ( output , MAX_TXT_LEN_1 , nbText )
}
if ( read_flags(hsflgs)&16) {
++cnt
new maxP = get_maxP()
new rk = get_rank(id)
format ( rankText , MAX_TXT_LEN_1 , "^n %s %d/%d" ,textRank ,rk, maxP )
add ( output , MAX_TXT_LEN_1 , rankText )
}
if ( read_flags(hsflgs)&8) {
++cnt
new Float:percent = 1.0
percent *= float(nbHS[id])
percent /= float(nbFrags[id])
percent *= 100.0
format ( ratioText , MAX_TXT_LEN_1 , "^n %s %.0f %c" , textFrags, percent, '%' )
format ( output , MAX_TXT_LEN_1 , "%s%s" , output , ratioText )
}
if ( cnt > 0 ) {
set_hudmessage(HUD_COL2[0],HUD_COL2[1],HUD_COL2[2],HUD_POS2[0],HUD_POS2[1],0,6.0,6.0,0.5, 0.15, HUD_CHN2 )
show_hudmessage(id,output)
}
return PLUGIN_CONTINUE
}
public display_HS_RANK ( id ) {
new rkText[MAX_TXT_LEN]
new r = 1
new n = 0
if ( nbHS[id] > 0 ) {
new rk = get_rank(id)
new maxp = get_maxP()
format ( rkText , MAX_TXT_LEN_1 , "Headshot %s %d/%d ( %d HeadShot(s) )",textRank , rk , maxp , nbHS[id] )
}
else {
format ( rkText , MAX_TXT_LEN_1 , "%s ...", noHeadshot , r , n )
}
client_print(id,print_chat,rkText )
return PLUGIN_CONTINUE
}
public display_HS_TOP ( id ) {
new title[80]
new topText[2000]
new NameP[40]
format ( title , 79 ,titleMotd )
new NB = 0
new hsflags[10]
get_cvar_string("amx_hs_event",hsflags,9)
if ( read_flags(hsflags)&32) {
new textC1[200]; /* Rank column */
new textC2[700]; /* Name column */
new textC3[200]; /* HS column */
new textC4[200]; /* % of frags column 1 */
new textC5[200]; /* % of frags column 2 */
for ( new d = 1 ; d < 16 ; ++d ) {
new userId = ranking[d]
if ( userId == 0 ) {
/* No more rankings */
d = 50
}
else if ( is_user_connected(userId) ) {
if ( nbHS[userId] > 0 ) {
get_user_name ( userId , NameP , 39 )
new Float:percent = ( float(nbHS[userId]) / float(nbFrags[userId]) ) * 100
new temp1[10]
format ( temp1 , 9 , "%d<br>" , d )
add( textC1,199,temp1)
add( textC2,699,NameP)
add( textC2,699,"<br>")
new temp3[30]
format ( temp3 , 29 , "%d<br>" , nbHS[userId] )
add( textC3,199,temp3)
new temp4[10]
format ( temp4 , 9 , "%.1f<br>" , percent )
add( textC4, 199, temp4 )
add( textC5, 199, "%<br>" )
++NB
}
}
}
if ( NB == 0 ) {
add (topText,1999,"<html><head></head><body bgcolor=^"#666666^" text=^"#FFFFFF^">")
add (topText,1999,"<div align=^"center^">")
add (topText,1999,"<font size=^"2^" face=^"Arial, Helvetica, sans-serif^" color=orange>")
add (topText,1999,"<br><br><br><b>")
new temp6[100]
format ( temp6 ,99, "%s ...",noHeadshot )
add (topText,1999,temp6)
add (topText,1999,"</b></font></div></body></html>")
}
else {
add (topText,1999,"<html><head></head><body bgcolor=^"#666666^" text=^"#FFFFFF^">")
add (topText,1999,"<table align=^"center^" width=^"80%^">")
add (topText,1999,"<td bgcolor=^"#666666^" width=^"12%^">")
add (topText,1999,"<div align=^"center^">")
add (topText,1999,"<font size=^"2^" face=^"Arial, Helvetica, sans-serif^" color=orange><br><br><b>")
add (topText,1999,textC1)
add (topText,1999,"</b></td><td bgcolor=^"#666666^"><div align=^"left^" width=^"48%^">")
add (topText,1999,"<font size=^"2^" face=^"Arial, Helvetica, sans-serif^" color=orange><br><br><b>")
add (topText,1999,textC2)
add (topText,1999,"</b></font></div></td><td bgcolor=^"#666666^" width=^"20%^"><div align=^"center^">")
add (topText,1999,"<font size=^"2^" face=^"Arial, Helvetica, sans-serif^" color=orange><b>HS</b><br><br><b>")
add (topText,1999,textC3)
add (topText,1999,"</b></font></div></td><td bgcolor=^"#666666^" width=^"15%^"><div align=^"right^">")
add (topText,1999,"<font size=^"2^" face=^"Arial, Helvetica, sans-serif^" color=orange><b>Frags</b><br><br><b>")
add (topText,1999,textC4)
add (topText,1999,"</b></font></div></td><td bgcolor=^"#666666^" width=^"5%^"><div align=^"left^">")
add (topText,1999,"<font size=^"2^" face=^"Arial, Helvetica, sans-serif^" color=orange><br><br><b>")
add (topText,1999,textC5)
add (topText,1999,"</b></font></div></td></table></body></html>")
}
}
else {
for ( new d = 1 ; d < 33 ; ++d ) {
new userId = ranking[d]
if ( userId == 0 ) {
/* No more rankings */
d = 50
}
else if ( is_user_connected(userId) ) {
if ( nbHS[userId] > 0 ) {
get_user_name ( userId , NameP , 39 )
new Float:percent = ( float(nbHS[userId]) / float(nbFrags[userId]) ) * 100
new temp[MAX_TXT_LEN]
format ( temp , MAX_TXT_LEN_1 , "^n%d - %s^n %4d Headshot(s) - %s %.1f %% " ,d,NameP,nbHS[userId],textFrags,percent)
add( topText,2999,temp)
++NB
}
}
}
if ( NB == 0 )
format ( topText ,2047, "^n^n^n %s ...",noHeadshot )
}
show_motd(id,topText,title)
return PLUGIN_CONTINUE
}
/* Initiating call */
public made_hs(){
killr = read_data(1)
vict = read_data(2)
if ( killr > 0 )
{
nbHS[killr]=nbHS[killr]+1
update_rankings()
#if defined DEBUG
new text[100]
format ( text, 99, "[AMXmodX] - Player %d made HS -> Total = %d", killr, nbHS[killr] )
log_message(text)
#endif
new hsflags[10]
get_cvar_string("amx_hs_event",hsflags,9)
if ( read_flags(hsflags)&1)
display_HS_TXTEvent()
if ( read_flags(hsflags)&2)
play_HS_SOUNDEvent()
display_event_Text ( killr )
}
#if defined DEBUG
else
{
new text[100]
format ( text, 99, "[AMXmodX] - WorldSpawn made hs ..." )
log_message(text)
}
#endif
return PLUGIN_CONTINUE
}
/* Updating frags counter */
public made_frag(id){
killr = read_data(1)
if ( killr > 0 )
{
nbFrags[killr]=nbFrags[killr]+1
#if defined DEBUG
new text[100]
format ( text, 99, "[AMXmodX] - Player %d made frag -> Total = %d", killr, nbFrags[killr] )
log_message(text)
#endif
if ( ( read_data(3) == 1 ) && ( read_data(5) == 0 ) )
{
#if defined DEBUG
log_message("[AMXmodX] - Frag = HS")
#endif
made_hs()
}
}
#if defined DEBUG
else
{
new text[100]
format ( text, 99, "[AMXmodX] - WorldSpawn made frag ..." )
log_message(text)
}
#endif
return PLUGIN_CONTINUE
}
/* Saving configuration */
public save_to_file ( id , level, cid ) {
if (!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED
new cfgFile[MAX_TXT_LEN]
read_argv(1,cfgFile,MAX_TXT_LEN_1)
if ( cfgFile[0] == 0 ) {
console_print(id,"[AMX] amx_hs_save_config : No path or file found ... aborting")
return PLUGIN_HANDLED
}
if ( containi(cfgFile,".cfg" ) == -1 ) {
console_print(id,"[AMX] amx_hs_save_config : You have to use cfg extension for file ... aborting")
return PLUGIN_HANDLED
}
replace(cfgFile,MAX_TXT_LEN_1,"../","")
new counter = 0
if ( file_exists( cfgFile ) )
console_print(id,"[AMX] amx_hs_save_config : File found ... adding config at end of file")
else
console_print(id,"[AMX] amx_hs_save_config : File not found ... trying to create it")
new temp1[MAX_TXT_LEN]= "amx_hs_event ^""
new hsCfg[MAX_TXT_LEN]
get_cvar_string ( "amx_hs_event" , hsCfg , MAX_TXT_LEN_1)
add ( temp1 , MAX_TXT_LEN_1 , hsCfg )
add ( temp1 , MAX_TXT_LEN_1 , "^"" )
write_file(cfgFile,"// Configuration for Plugin Headshot Deluxe",-1)
if ( write_file(cfgFile,temp1,-1) == 0 ) {
++counter
console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_event ... skipping")
}
if ( langVersion == 0 ) {
if ( write_file(cfgFile,"amx_hs_set_lang ^"eng^"",-1) == 0 ) {
++counter
console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_lang ... skipping")
}
}
else if ( langVersion == 1 ) {
if ( write_file(cfgFile,"amx_hs_set_lang ^"fr^"",-1) == 0 ) {
++counter
console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_lang ... skipping")
}
}
else if ( langVersion == 2 ) {
if ( write_file(cfgFile,"amx_hs_set_lang ^"esp^"",-1) == 0 ) {
++counter
console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_lang ... skipping")
}
}
else if ( langVersion == 3 ) {
if ( write_file(cfgFile,"amx_hs_set_lang ^"port^"",-1) == 0 ) {
++counter
console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_lang ... skipping")
}
}
else if ( langVersion == 4 ) {
if ( write_file(cfgFile,"amx_hs_set_lang ^"eng^"",-1) == 0 ) {
++counter
console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_lang ... skipping")
}
}
{
new temp2[MAX_TXT_LEN]= "amx_hs_set_hs_hud ^"A^" ^""
add ( temp2 , MAX_TXT_LEN_1 , hudAllCvar )
add ( temp2 , MAX_TXT_LEN_1 , "^"" )
if ( write_file(cfgFile,temp2,-1) == 0 ) {
++counter
console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_hs_hud A ... skipping")
}
}
{
new temp2[MAX_TXT_LEN]= "amx_hs_set_hs_hud ^"V^" ^""
add ( temp2 , MAX_TXT_LEN_1 , hudVicCvar )
add ( temp2 , MAX_TXT_LEN_1 , "^"" )
if ( write_file(cfgFile,temp2,-1) == 0 ) {
++counter
console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_hs_hud V ... skipping")
}
}
{
new temp2[MAX_TXT_LEN]= "amx_hs_set_hs_hud ^"K^" ^""
add ( temp2 , MAX_TXT_LEN_1 , hudKilCvar )
add ( temp2 , MAX_TXT_LEN_1 , "^"" )
if ( write_file(cfgFile,temp2,-1) == 0 ) {
++counter
console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_hs_hud K ... skipping")
}
}
{
new temp2[MAX_TXT_LEN]= "amx_hs_set_hs_chat ^"A^" ^""
add ( temp2 , MAX_TXT_LEN_1 , chatAllCvar )
add ( temp2 , MAX_TXT_LEN_1 , "^"" )
if ( write_file(cfgFile,temp2,-1) == 0 ) {
++counter
console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_hs_chat A ... skipping")
}
}
{
new temp2[MAX_TXT_LEN]= "amx_hs_set_hs_chat ^"V^" ^""
add ( temp2 , MAX_TXT_LEN_1 , chatVicCvar )
add ( temp2 , MAX_TXT_LEN_1 , "^"" )
if ( write_file(cfgFile,temp2,-1) == 0 ) {
++counter
console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_hs_chat V ... skipping")
}
}
{
new temp2[MAX_TXT_LEN]= "amx_hs_set_hs_chat ^"K^" ^""
add ( temp2 , MAX_TXT_LEN_1 , chatKilCvar )
add ( temp2 , MAX_TXT_LEN_1 , "^"" )
if ( write_file(cfgFile,temp2,-1) == 0 ) {
++counter
console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_hs_chat K ... skipping")
}
}
{
new temp2[MAX_TXT_LEN]= "amx_hs_set_hs_wav ^"A^" ^""
add ( temp2 , MAX_TXT_LEN_1 , wavAllCvar )
add ( temp2 , MAX_TXT_LEN_1 , "^"" )
if ( write_file(cfgFile,temp2,-1) == 0 ) {
++counter
console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_hs_wav A ... skipping")
}
}
{
new temp2[MAX_TXT_LEN]= "amx_hs_set_hs_wav ^"V^" ^""
add ( temp2 , MAX_TXT_LEN_1 , wavVicCvar )
add ( temp2 , MAX_TXT_LEN_1 , "^"" )
if ( write_file(cfgFile,temp2,-1) == 0 ) {
++counter
console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_hs_wav V ... skipping")
}
}
{
new temp2[MAX_TXT_LEN]= "amx_hs_set_hs_wav ^"K^" ^""
add ( temp2 , MAX_TXT_LEN_1 , wavKilCvar )
add ( temp2 , MAX_TXT_LEN_1 , "^"" )
if ( write_file(cfgFile,temp2,-1) == 0 ) {
++counter
console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_hs_wav K ... skipping")
}
}
write_file(cfgFile,"//", -1)
if ( counter > 0 ) {
console_print(id,"[AMX] amx_hs_save_config : Configuration for HS-Deluxe stored ( %d write error(s) )" , counter )
}
else {
console_print(id,"[AMX] amx_hs_save_config : Configuration for HS-Deluxe stored successfully" )
}
return PLUGIN_HANDLED_MAIN
}
/* Fun addon */
public switch_funmode ( id , level, cid ) {
if (!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED
new act[MAX_TXT_LEN]
read_argv(1,act,MAX_TXT_LEN_1)
if ( act[0] == 0 ) {
console_print(id,"[AMX] amx_hs_set_fun : Bad value ... aborting")
return PLUGIN_HANDLED
}
if ( containi(act,"ON" ) > -1 ) {
funVersion = 1
client_print(0,print_chat,"* HS DeluXe Fun mode ON" )
}
else if ( containi(act,"OFF" ) > -1 ) {
funVersion = 0
client_print(0,print_chat,"* HS DeluXe Fun mode OFF" )
}
return PLUGIN_HANDLED_MAIN
}
public get_rand_vict( text[] ) {
new i = random_num(0,VIC_MAX-1)
while ( i == lastMsgVic ) {
i = random_num(0,VIC_MAX-1)
}
lastMsgVic = i
copy ( text , MAX_TXT_LEN_1 , listVicWav[i] )
return PLUGIN_CONTINUE
}
public get_rand_kill( text[] ) {
new j = random_num(0,KIL_MAX-1)
while ( j == lastMsgKil ) {
j = random_num(0,KIL_MAX-1)
}
lastMsgKil = j
copy ( text , MAX_TXT_LEN_1 , listKilWav[j] )
return PLUGIN_CONTINUE
}
/* Didn't forget disconnection IN Game .. */
public client_disconnect(id) {
remove_player(id)
return PLUGIN_CONTINUE
}
/* Precaching sounds */
public plugin_precache() {
if ( wavKilCvar[0] != 0 ) {
new text[MAX_TXT_LEN]
copy ( text , MAX_TXT_LEN_1 , wavKilCvar )
add ( text , MAX_TXT_LEN_1 , ".wav" )
precache_sound ( text )
}
if ( wavVicCvar[0] != 0 ) {
new text[MAX_TXT_LEN]
copy ( text , MAX_TXT_LEN_1 , wavVicCvar )
add ( text , MAX_TXT_LEN_1 , ".wav" )
precache_sound ( text )
}
if ( wavAllCvar[0] != 0 ) {
new text[MAX_TXT_LEN]
copy ( text , MAX_TXT_LEN_1 , wavAllCvar )
add ( text , MAX_TXT_LEN_1 , ".wav" )
precache_sound ( text )
}
return PLUGIN_CONTINUE
}
/* Initializing plugin */
public plugin_init(){
register_plugin("Headshot DeluXe","X.16.1.0","DanRaZor")
init_stats()
register_cvar("hsd_version","X.16.1.0",FCVAR_SERVER)
register_event ("DeathMsg","made_frag","a" )
register_cvar ("amx_hs_event" ,"f")
register_concmd ("amx_hs_set_hud" , "amx_hsChangeHud" , ADMIN_CVAR, "^"users^" ^"text^" ( users = A,V,K )")
register_concmd ("amx_hs_set_chat" , "amx_hsChangeChat", ADMIN_CVAR, "^"users^" ^"text^" ( users = A,V,K )")
register_concmd ("amx_hs_set_wav" , "amx_hsChangeWav" , ADMIN_CVAR, "^"users^" ^"wavPathFile^" ( users = A,V,K )")
register_concmd ("amx_hs_set_lang" , "set_language" , ADMIN_CVAR, "^"language^" ( eng, fr, esp, port, ger ) ")
register_concmd ("amx_hs_set_fun" , "switch_funmode" , ADMIN_CVAR, "^"ON^" or ^"OFF^"")
register_concmd ("amx_hs_save_config", "save_to_file" , ADMIN_RCON, "^"cfgPathFile^"")
register_clcmd ("say /hs" , "display_HS_RANK")
register_clcmd ("say_team /hs" , "display_HS_RANK")
register_clcmd ("say /hsAll" , "display_HS_TOP")
register_clcmd ("say_team /hsAll" , "display_HS_TOP")
register_clcmd ("say /hd" , "show_lang")
register_clcmd ("say_team /hd" , "show_lang")
return PLUGIN_CONTINUE
}
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Re: Въпрос за съобщения в чата!
Промяна на стойността на квара чрез .sma файла няма да промени квара.Petrowch0 написа:Или виж така дали ще ги има пак:
Код за потвърждение: Избери целия код
/* * AMXmodX script. * * * Plugin : Headshot DeluXe vX.16.1.0 * * * This file is provided as is (no warranties). * Feel free to use it or modify it. * Report bugs at [email protected] THX * * Author: DanRaZor * * Originally Based on : * Ultimate Sounds by Hephos * welcome HUDMsg by JustinHoMi * lots from OLO * * THX. * */ /* * *** AMXx Code *** */ /* Macros */ #define MAX_TXT_LEN 300 #define MAX_TXT_LEN_1 299 #define COEF_FEETS 12 #define MAX_RANK 5 #define MAX_STAT 4 //#define DEBUG /* Includes */ #include <amxmodx> #include <amxmisc> /* Global vars */ new killr = 0 /* describes current killer ( his id ) */ new vict = 0 /* describes current victim ( his id ) */ new nbHS[33] /* to store HS of players connected */ new nbFrags[33] /* to store frags of players connected */ new ranking[33] /* Rankingtab : 32 players from 1 to 32 ( 0 not used ) */ /* Center Message Position/colors/Channel */ new HUD_COL[3] = { 0,80,220 } new Float:HUD_POS[2] = { -1.0,0.3 } new HUD_CHN = 10 /* Stats Message Position/colors/Channel */ new HUD_COL2[3] = { 0,80,220 } new Float:HUD_POS2[2] = { 0.0,0.2 } new HUD_CHN2 = 9 /* Default texts */ new titleMotd[30] = " HEADSHOT : Rankings" /* Title for top stats */ new textSup50[25] = "Unbelievable !!!" /* when done 50 HS */ new textSup20[25] = "Great !!!" /* when done 20 HS */ new textSup10[25] = "Good job !!!" /* when done 10 HS */ new textSup1[25] = "" /* when done 1 HS */ new textFirst[25] = "Your first Headshot" /* when done first HS */ new textHS[25] = "Headshots" /* basic Text */ new textRank[25] = "Rank :" /* basic Text */ new textFrags[25] = "Frags" /* basic Text */ new noHeadshot[50]= "No Headshot, try later" /* basic Text */ /* To store language version */ new langVersion = 0 /* To store fun activation */ new funVersion = 0 /* Default values for hud, chat and wavs */ new hudAllCvar[MAX_TXT_LEN] = "" new hudVicCvar[MAX_TXT_LEN] = "" new hudKilCvar[MAX_TXT_LEN] = "" new chatAllCvar[MAX_TXT_LEN] = "" new chatVicCvar[MAX_TXT_LEN] = "" new chatKilCvar[MAX_TXT_LEN] = "" new wavAllCvar[MAX_TXT_LEN] = "misc/headshot" new wavVicCvar[MAX_TXT_LEN] = "misc/ow" new wavKilCvar[MAX_TXT_LEN] = "barney/ba_gotone" /* Sizes of random sounds lists */ #define VIC_MAX 12 #define KIL_MAX 17 /* To Store last Random message */ /* and avoid to send twice a sound */ new lastMsgKil = -1 new lastMsgVic = -1 /* Random sounds for FUN version */ new listKilWav[KIL_MAX][] = { "barney/ba_another", "barney/ba_buttugly", "barney/ba_close", "barney/ba_endline", "barney/ba_firepl", "barney/ba_iwish", "barney/ba_later", "barney/ba_seethat", "barney/beertopside", "barney/c1a4_ba_octo1", "barney/checkwounds", "barney/diebloodsucker", "barney/realbadwound", "barney/somethingdied", "barney/somethingstinky", "barney/stench", "scientist/perfectday" } new listVicWav[VIC_MAX][] = { "barney/ba_dotoyou", "barney/ba_uwish", "barney/bigmess", "barney/c1a2_ba_4zomb", "barney/cantfigure", "barney/dontbuyit", "barney/guyresponsible", "barney/hitbad", "barney/imdead", "barney/iwaithere", "fvox/flatline", "scientist/recalculate" } /* Code */ /* Setting languages */ public set_english () { langVersion = 0 copy ( titleMotd ,29 ," HEADSHOT : Rankings" ) copy ( textSup50 ,24 ,"Unbelievable !!!" ) copy ( textSup20 ,24 ,"Great !!!" ) copy ( textSup10 ,24 ,"Good job !!!" ) copy ( textSup1 ,24 ,"" ) copy ( textFirst ,24 ,"Your first Headshot" ) copy ( textHS ,24 ,"Headshots" ) copy ( textRank ,24 ,"Rank :" ) copy ( textFrags ,24 ,"Frags" ) copy ( noHeadshot,49 ,"No Headshot, try later" ) return PLUGIN_CONTINUE } public set_french () { langVersion = 1 copy ( titleMotd ,29 ," HEADSHOT : Classement" ) copy ( textSup50 ,24 ,"Incroyable !!!" ) copy ( textSup20 ,24 ,"Bravo !!!" ) copy ( textSup10 ,24 ,"Bien Joue !!!" ) copy ( textSup1 ,24 ,"" ) copy ( textFirst ,24 ,"Premier Headshot" ) copy ( textHS ,24 ,"Headshots" ) copy ( textRank ,24 ,"Classement :" ) copy ( textFrags ,24 ,"Frags" ) copy ( noHeadshot,49 ,"Pas de Headshot, essayer plus tard" ) return PLUGIN_CONTINUE } public set_espagnol () { langVersion = 2 copy ( titleMotd ,29 ," HEADSHOT : Clasificacion" ) copy ( textSup50 ,24 ,"increible !!!" ) copy ( textSup20 ,24 ,"Bravo !!!" ) copy ( textSup10 ,24 ,"Bien jugado !!!" ) copy ( textSup1 ,24 ,"" ) copy ( textFirst ,24 ,"Tu primero Headshot" ) copy ( textHS ,24 ,"Headshots" ) copy ( textRank ,24 ,"clasificacion :" ) copy ( textFrags ,24 ,"Frags" ) copy ( noHeadshot,49 ,"No hay Headshot, intentar mas tarde" ) return PLUGIN_CONTINUE } public set_portugues () { langVersion = 3 copy ( titleMotd ,29 ," HEADSHOT : Classificaзao" ) copy ( textSup50 ,24 ,"So visto !!!" ) copy ( textSup20 ,24 ,"Bravo !!!" ) copy ( textSup10 ,24 ,"Boa !!!" ) copy ( textSup1 ,24 ,"" ) copy ( textFirst ,24 ,"O teu primeiro Headshot" ) copy ( textHS ,24 ,"Headshots" ) copy ( textRank ,24 ,"classificacao :" ) copy ( textFrags ,24 ,"Frags" ) copy ( noHeadshot,49 ,"Nao houve Headshot, tentar mais tarde" ) return PLUGIN_CONTINUE } public set_german () { langVersion = 4 copy ( titleMotd ,29 ," HEADSHOT : Rangliste" ) copy ( textSup50 ,24 ,"Unglaublich !!!" ) copy ( textSup20 ,24 ,"Klasse !!!" ) copy ( textSup10 ,24 ,"Gute Arbeit !!!" ) copy ( textSup1 ,24 ,"" ) copy ( textFirst ,24 ,"Dein erster Headshot" ) copy ( textHS ,24 ,"Headshots" ) copy ( textRank ,24 ,"Rang :" ) copy ( textFrags ,24 ,"Frags" ) copy ( noHeadshot,49 ,"Kein Headshot, versuchs spater" ) return PLUGIN_CONTINUE } public set_language ( id , level, cid ) { if (!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED new param[10] read_argv(1,param,9) if ( containi ( param , "fr" ) > -1 ) { set_french () client_print(id,print_chat,"* Activation Headshot DeluXe FR" ) } else if ( containi ( param , "eng" ) > -1 ) { set_english () client_print(id,print_chat,"* Activation Headshot DeluXe ENG" ) } else if ( containi ( param , "esp" ) > -1 ) { set_espagnol () client_print(id,print_chat,"* Activacion Headshot DeluXe ESP" ) } else if ( containi ( param , "port" ) > -1 ) { set_portugues () client_print(id,print_chat,"* Activacao Headshot DeluXe PORT" ) } else if ( containi ( param , "ger" ) > -1 ) { set_german () client_print(id,print_chat,"* Aktivierung Headshot DeluXe GER" ) } else { set_english () client_print(id,print_chat,"* Activation Headshot DeluXe ENG ( Default )" ) } return PLUGIN_HANDLED_MAIN } public show_lang ( id ) { new text[MAX_TXT_LEN] if ( langVersion == 0 ) copy ( text , MAX_TXT_LEN_1 , "* This server is using AMXmodX plugin : Headshot DeluXe" ) else if ( langVersion == 1 ) copy ( text , MAX_TXT_LEN_1 , "* Ce serveur utilise le plugin AMXmodX : Headshot DeluXe" ) else if ( langVersion == 2 ) copy ( text , MAX_TXT_LEN_1 , "* Este servidor utiliza el plugin AMXmodX : Headshot DeluXe" ) else if ( langVersion == 3 ) copy ( text , MAX_TXT_LEN_1 , "* Este servidor utiliza o plugin AMXmodX : Headshot DeluXe" ) else if ( langVersion == 4 ) copy ( text , MAX_TXT_LEN_1 , "* Dieser server benutzt das plugin AMXmodX : Headshot DeluXe" ) else copy ( text , MAX_TXT_LEN_1 , "* This server is using AMXmodX plugin : Headshot DeluXe" ) if ( funVersion == 1 ) add ( text , MAX_TXT_LEN_1 , " (FUN)" ) client_print(0,print_chat,text) return PLUGIN_CONTINUE } /* About stats */ public init_stats() { /* Done at each map start */ for ( new z = 0 ; z < 33 ; ++z ) { nbHS[z] = 0 nbFrags[z] = 0 ranking[z] = 0 } new hsflgs[10] get_cvar_string("amx_hs_event",hsflgs,9) return PLUGIN_CONTINUE } public get_rank(id) { for ( new z = 1 ; z < 33 ; ++z ) if ( ranking[z] == id ) return z return 0 } public get_maxP() { new value = 0 for ( new z = 1 ; z < 33 ; ++z ) if ( ranking[z] != 0 ) ++value return value } public remove_player(id) { for ( new z = 0 ; z < 33 ; ++z ) { if ( ranking[z] == id ) { for ( new t = z ; t < 32 ; ++t ) ranking[t] = ranking[t+1] ranking[32] = 0 return PLUGIN_CONTINUE } } nbHS[id]=0 nbFrags[id]=0 return PLUGIN_CONTINUE } public update_rankings() { /* Number of HS for last killer */ for ( new z = 1 ; z < 33 ; ++z ) { if ( ranking[z] == 0 ) { ranking[z] = killr return PLUGIN_CONTINUE } else if ( ranking[z] != killr ) { if ( nbHS[killr] > nbHS[ranking[z]] ) { for ( new w = 32 ; w > z ; --w ) { ranking[w] = ranking[w-1] } ranking[z] = killr new dec = 0 for ( new x = z+1 ; x < 33 ; ++x ) { if ( ranking[x] == killr ) { ++dec ranking [33-dec] = 0 } if ( x+dec < 33 ) ranking[x]=ranking[x+dec] } return PLUGIN_CONTINUE } else if ( nbHS[killr] == nbHS[ranking[z]] ) { new Float:prct1 = ( float(nbHS[killr]) / float( nbFrags[killr] ) ) * 100 new Float:prct2 = ( float(nbHS[ranking[z]]) / float( nbFrags[ranking[z]] ) ) * 100 if ( prct1 > prct2 ) { for ( new w = 32 ; w > z ; --w ) { ranking[w] = ranking[w-1] } ranking[z] = killr new dec = 0 for ( new x = z+1 ; x < 33 ; ++x ) { if ( ranking[x] == killr ) { ++dec ranking [33-dec] = 0 } if ( x+dec < 33 ) ranking[x]=ranking[x+dec] } return PLUGIN_CONTINUE } } } else if ( ranking[z] == killr ) { return PLUGIN_CONTINUE } } return PLUGIN_CONTINUE } /* Replacing vars */ replace_vars ( ioText[] ) { /* replacement of %killer% %victim% %distance% %distFeet% %weapon% \n */ new distance,vorigin[3],korigin[3] new killerStr[80], victimStr[80], distStr[8], distFtStr[8] get_user_origin(vict,vorigin) get_user_origin(killr,korigin) distance = get_distance(vorigin,korigin) new Float:distFt = ( float(distance) * 0.08333 ) format(distFtStr,7,"%.1f",distFt) new Float:dist = distFt * 0.304 format(distStr,7,"%.1f",dist) get_user_name(killr,killerStr,79) get_user_name(vict,victimStr,79) new wpnId,clip,ammo,wpn[32] wpnId = get_user_weapon(killr,clip,ammo) get_weaponname ( wpnId , wpn ,31 ) /* here we have for example wpn = "weapon_m4a1" so ... */ replace(wpn,31,"weapon_","") /* it's nicer */ replace(ioText,MAX_TXT_LEN_1,"%killer%",killerStr) replace(ioText,MAX_TXT_LEN_1,"%victim%",victimStr) replace(ioText,MAX_TXT_LEN_1,"%distance%",distStr) replace(ioText,MAX_TXT_LEN_1,"%distFeet%",distFtStr) replace(ioText,MAX_TXT_LEN_1,"%weapon%",wpn) replace(ioText,MAX_TXT_LEN_1,"\n","^n") return PLUGIN_CONTINUE } /* Displaying FXs */ display_HS_TXTEvent() { /* displays Text FX */ /* text FX in HUD */ new temp [MAX_TXT_LEN] set_hudmessage(HUD_COL[0],HUD_COL[1],HUD_COL[2],HUD_POS[0],HUD_POS[1],0,6.0,6.0,0.5, 0.15, HUD_CHN ) if ( hudAllCvar[0] != 0 ) { copy ( temp , MAX_TXT_LEN_1 , hudAllCvar ) replace_vars ( temp ) for ( new id = 1 ; id < 33 ; ++id ) { if ( is_user_connected (id) ) { if ( id == vict ) { if ( hudVicCvar[0] == 0 ) { /* If victim has no hud Text specified */ /* he gots the one for all */ show_hudmessage(id,temp) } } else if ( id == killr ) { if ( hudKilCvar[0] == 0 ) { /* If killer has no hud Text specified */ /* he gots the one for all */ show_hudmessage(id,temp) } } else { show_hudmessage(id,temp) } } } } if ( hudKilCvar[0] != 0 ) { copy ( temp , MAX_TXT_LEN_1 , hudKilCvar ) replace_vars ( temp ) if ( is_user_connected (killr) ) show_hudmessage(killr,temp) } if ( hudVicCvar[0] != 0 ) { copy ( temp , MAX_TXT_LEN_1 , hudVicCvar ) replace_vars ( temp ) if ( is_user_connected (vict) ) show_hudmessage(vict,temp) } /* text FX in CHAT */ if ( chatAllCvar[0] != 0 ) { copy ( temp , MAX_TXT_LEN_1 , chatAllCvar ) replace_vars ( temp ) for ( new id = 1 ; id < 33 ; ++id ) { if ( is_user_connected (id) ) { if ( id == vict ) { if ( chatVicCvar[0] == 0 ) { /* If victim has no chat Text specified */ /* he gots the one for all */ client_print(id,print_chat,temp ) } } else if ( id == killr ) { if ( chatKilCvar[0] == 0 ) { /* If killer has no chat Text specified */ /* he gots the one for all */ client_print(id,print_chat,temp ) } } else { client_print(id,print_chat,temp ) } } } } if ( chatKilCvar[0] != 0 ) { copy ( temp , MAX_TXT_LEN_1 , chatKilCvar ) replace_vars ( temp ) if ( is_user_connected (killr) ) client_print(killr,print_chat,temp ) } if ( chatVicCvar[0] != 0 ) { copy ( temp , MAX_TXT_LEN_1 , chatVicCvar ) replace_vars ( temp ) if ( is_user_connected (vict) ) client_print(vict,print_chat,temp ) } return PLUGIN_CONTINUE } play_HS_SOUNDEvent() { /* Play the correct wav for correct users */ if ( wavAllCvar[0] != 0 ) { new text[MAX_TXT_LEN] format(text,MAX_TXT_LEN_1,"spk %s", wavAllCvar) for ( new id = 1 ; id < 33 ; ++id ) { if ( is_user_connected (id) ) { if ( id == vict ) { if ( wavVicCvar[0] == 0 ) { /* If victim has no wav specified */ /* he gots the one for all */ client_cmd(id,text) } } else if ( id == killr ) { if ( wavKilCvar[0] == 0 ) /* If killer has no wav specified */ /* he gots the one for all */ client_cmd(id,text) } else { client_cmd(id,text) } } } } if ( funVersion == 1 ) { new text[MAX_TXT_LEN] new text2[MAX_TXT_LEN] get_rand_kill( text2 ) format(text,MAX_TXT_LEN_1,"spk %s", text2) if ( is_user_connected (killr) ) client_cmd(killr,text) } else if ( wavKilCvar[0] != 0 ) { new text[MAX_TXT_LEN] format(text,MAX_TXT_LEN_1,"spk %s", wavKilCvar) if ( is_user_connected (killr) ) client_cmd(killr,text) } if ( funVersion == 1 ) { new text[MAX_TXT_LEN] new text2[MAX_TXT_LEN] get_rand_vict( text2 ) format(text,MAX_TXT_LEN_1,"spk %s", text2) if ( is_user_connected (vict) ) client_cmd(vict,text) } else if ( wavVicCvar[0] != 0 ) { new text[MAX_TXT_LEN] format(text,MAX_TXT_LEN_1,"spk %s", wavVicCvar) if ( is_user_connected (vict) ) client_cmd(vict,text) } return PLUGIN_CONTINUE } /* Changing configs */ public amx_hsChangeHud ( id , level , cid ) { if (!cmd_access(id,level,cid,3)) return PLUGIN_HANDLED new users[32], path[MAX_TXT_LEN] read_argv(1,users,31) read_argv(2,path ,MAX_TXT_LEN_1) if ( users[0] == 0 ) { console_print(id,"[AMX] amx_hs_set_hud : No user found ... aborting") return PLUGIN_HANDLED } new count = 0 if ( containi ( users , "A" ) > -1) { ++count } if ( containi ( users , "V" ) > -1) { ++count } if ( containi ( users , "K" ) > -1) { ++count } if ( count > 1 ) { console_print(id,"[AMX] amx_hs_set_hud : Only specify one user at a time ... aborting") return PLUGIN_HANDLED } if ( containi ( users , "A" ) > -1) { if ( path[0] == 0 ) { hudAllCvar[0] = 0 } else copy ( hudAllCvar , MAX_TXT_LEN_1 , path ) } else if ( containi ( users , "V" ) > -1) { if ( path[0] == 0 ) { chatVicCvar[0] = 0 } else copy ( hudVicCvar , MAX_TXT_LEN_1 , path ) } else if ( containi ( users , "K" ) > -1) { if ( path[0] == 0 ) { chatKilCvar[0] = 0 } else copy ( hudKilCvar , MAX_TXT_LEN_1 , path ) } else { console_print(id,"[AMX] amx_hs_set_hud : Bad user specified ... aborting") return PLUGIN_HANDLED } return PLUGIN_HANDLED } public amx_hsChangeChat ( id , level, cid ) { if (!cmd_access(id,level,cid,3)) return PLUGIN_HANDLED new users[32], path[MAX_TXT_LEN] read_argv(1,users,31) read_argv(2,path ,MAX_TXT_LEN_1) if ( users[0] == 0 ) { console_print(id,"[AMX] amx_hs_set_chat : No user found ... aborting") return PLUGIN_HANDLED } new count = 0 if ( containi ( users , "A" ) > -1) { ++count } if ( containi ( users , "V" ) > -1) { ++count } if ( containi ( users , "K" ) > -1) { ++count } if ( count > 1 ) { console_print(id,"[AMX] amx_hs_set_chat : Only specify one user at a time ... aborting") return PLUGIN_HANDLED } if ( containi ( users , "A" ) > -1) { if ( path[0] == 0 ) { chatAllCvar[0] = 0 } else copy ( chatAllCvar , MAX_TXT_LEN_1 , path ) } else if ( containi ( users , "V" ) > -1) { if ( path[0] == 0 ) { chatVicCvar[0] = 0 } else copy ( chatVicCvar , MAX_TXT_LEN_1 , path ) } else if ( containi ( users , "K" ) > -1) { if ( path[0] == 0 ) { chatKilCvar[0] = 0 } else copy ( chatKilCvar , MAX_TXT_LEN_1 , path ) } else { console_print(id,"[AMX] amx_hs_set_chat : Bad user specified ... aborting") return PLUGIN_HANDLED } return PLUGIN_HANDLED } public amx_hsChangeWav ( id , level, cid ) { if (!cmd_access(id,level,cid,3)) return PLUGIN_HANDLED new users[32], path[MAX_TXT_LEN] read_argv(1,users,31) read_argv(2,path ,MAX_TXT_LEN_1) if ( users[0] == 0 ) { console_print(id,"[AMX] amx_hs_set_wav : No user found ... aborting") return PLUGIN_HANDLED } new count = 0 if ( containi ( users , "A" ) > -1) { ++count } if ( containi ( users , "V" ) > -1) { ++count } if ( containi ( users , "K" ) > -1) { ++count } if ( count > 1 ) { console_print(id,"[AMX] amx_hs_set_wav : Only specify one user at a time ... aborting") return PLUGIN_HANDLED } if ( containi ( users , "A" ) > -1) { if ( path[0] == 0 ) { wavAllCvar[0] = 0 } else copy ( wavAllCvar , MAX_TXT_LEN_1 , path ) } else if ( containi ( users , "V" ) > -1) { if ( path[0] == 0 ) { wavVicCvar[0] = 0 } else copy ( wavVicCvar , MAX_TXT_LEN_1 , path ) } else if ( containi ( users , "K" ) > -1) { if ( path[0] == 0 ) { wavKilCvar[0] = 0 } else copy ( wavKilCvar , MAX_TXT_LEN_1 , path ) } else { console_print(id,"[AMX] amx_hs_set_wav : Bad user specified ... aborting") return PLUGIN_HANDLED } return PLUGIN_HANDLED } /* Displaying FX ( stats ) */ public display_event_Text ( id ) { new nbText[MAX_TXT_LEN] new ratioText[MAX_TXT_LEN] new rankText[MAX_TXT_LEN] new output[MAX_TXT_LEN] new cnt = 0 new hsflgs[10] get_cvar_string("amx_hs_event",hsflgs,9) if ( read_flags(hsflgs)&4) { ++cnt new done = 0 if ( nbHS[id] == 50 ) { format ( nbText , MAX_TXT_LEN_1 , "%s^n %d %s" ,textSup50 ,nbHS[id], textHS ) done = 1 } if ( ( nbHS[id] == 20 ) && ( done == 0 ) ) { format ( nbText , MAX_TXT_LEN_1 , "%s^n %d %s" ,textSup20, nbHS[id], textHS ) done = 1 } if ( ( nbHS[id] == 10 ) && ( done == 0 ) ) { format ( nbText , MAX_TXT_LEN_1 , "%s^n %d %s" ,textSup10, nbHS[id], textHS ) done = 1 } if ( ( nbHS[id] > 1 ) && ( done == 0 ) ) { format ( nbText , MAX_TXT_LEN_1 , "%s^n %d %s" ,textSup1, nbHS[id], textHS ) done = 1 } if ( done == 0 ) { format ( nbText , MAX_TXT_LEN_1 , "^n %s" ,textFirst ) } copy ( output , MAX_TXT_LEN_1 , nbText ) } if ( read_flags(hsflgs)&16) { ++cnt new maxP = get_maxP() new rk = get_rank(id) format ( rankText , MAX_TXT_LEN_1 , "^n %s %d/%d" ,textRank ,rk, maxP ) add ( output , MAX_TXT_LEN_1 , rankText ) } if ( read_flags(hsflgs)&8) { ++cnt new Float:percent = 1.0 percent *= float(nbHS[id]) percent /= float(nbFrags[id]) percent *= 100.0 format ( ratioText , MAX_TXT_LEN_1 , "^n %s %.0f %c" , textFrags, percent, '%' ) format ( output , MAX_TXT_LEN_1 , "%s%s" , output , ratioText ) } if ( cnt > 0 ) { set_hudmessage(HUD_COL2[0],HUD_COL2[1],HUD_COL2[2],HUD_POS2[0],HUD_POS2[1],0,6.0,6.0,0.5, 0.15, HUD_CHN2 ) show_hudmessage(id,output) } return PLUGIN_CONTINUE } public display_HS_RANK ( id ) { new rkText[MAX_TXT_LEN] new r = 1 new n = 0 if ( nbHS[id] > 0 ) { new rk = get_rank(id) new maxp = get_maxP() format ( rkText , MAX_TXT_LEN_1 , "Headshot %s %d/%d ( %d HeadShot(s) )",textRank , rk , maxp , nbHS[id] ) } else { format ( rkText , MAX_TXT_LEN_1 , "%s ...", noHeadshot , r , n ) } client_print(id,print_chat,rkText ) return PLUGIN_CONTINUE } public display_HS_TOP ( id ) { new title[80] new topText[2000] new NameP[40] format ( title , 79 ,titleMotd ) new NB = 0 new hsflags[10] get_cvar_string("amx_hs_event",hsflags,9) if ( read_flags(hsflags)&32) { new textC1[200]; /* Rank column */ new textC2[700]; /* Name column */ new textC3[200]; /* HS column */ new textC4[200]; /* % of frags column 1 */ new textC5[200]; /* % of frags column 2 */ for ( new d = 1 ; d < 16 ; ++d ) { new userId = ranking[d] if ( userId == 0 ) { /* No more rankings */ d = 50 } else if ( is_user_connected(userId) ) { if ( nbHS[userId] > 0 ) { get_user_name ( userId , NameP , 39 ) new Float:percent = ( float(nbHS[userId]) / float(nbFrags[userId]) ) * 100 new temp1[10] format ( temp1 , 9 , "%d<br>" , d ) add( textC1,199,temp1) add( textC2,699,NameP) add( textC2,699,"<br>") new temp3[30] format ( temp3 , 29 , "%d<br>" , nbHS[userId] ) add( textC3,199,temp3) new temp4[10] format ( temp4 , 9 , "%.1f<br>" , percent ) add( textC4, 199, temp4 ) add( textC5, 199, "%<br>" ) ++NB } } } if ( NB == 0 ) { add (topText,1999,"<html><head></head><body bgcolor=^"#666666^" text=^"#FFFFFF^">") add (topText,1999,"<div align=^"center^">") add (topText,1999,"<font size=^"2^" face=^"Arial, Helvetica, sans-serif^" color=orange>") add (topText,1999,"<br><br><br><b>") new temp6[100] format ( temp6 ,99, "%s ...",noHeadshot ) add (topText,1999,temp6) add (topText,1999,"</b></font></div></body></html>") } else { add (topText,1999,"<html><head></head><body bgcolor=^"#666666^" text=^"#FFFFFF^">") add (topText,1999,"<table align=^"center^" width=^"80%^">") add (topText,1999,"<td bgcolor=^"#666666^" width=^"12%^">") add (topText,1999,"<div align=^"center^">") add (topText,1999,"<font size=^"2^" face=^"Arial, Helvetica, sans-serif^" color=orange><br><br><b>") add (topText,1999,textC1) add (topText,1999,"</b></td><td bgcolor=^"#666666^"><div align=^"left^" width=^"48%^">") add (topText,1999,"<font size=^"2^" face=^"Arial, Helvetica, sans-serif^" color=orange><br><br><b>") add (topText,1999,textC2) add (topText,1999,"</b></font></div></td><td bgcolor=^"#666666^" width=^"20%^"><div align=^"center^">") add (topText,1999,"<font size=^"2^" face=^"Arial, Helvetica, sans-serif^" color=orange><b>HS</b><br><br><b>") add (topText,1999,textC3) add (topText,1999,"</b></font></div></td><td bgcolor=^"#666666^" width=^"15%^"><div align=^"right^">") add (topText,1999,"<font size=^"2^" face=^"Arial, Helvetica, sans-serif^" color=orange><b>Frags</b><br><br><b>") add (topText,1999,textC4) add (topText,1999,"</b></font></div></td><td bgcolor=^"#666666^" width=^"5%^"><div align=^"left^">") add (topText,1999,"<font size=^"2^" face=^"Arial, Helvetica, sans-serif^" color=orange><br><br><b>") add (topText,1999,textC5) add (topText,1999,"</b></font></div></td></table></body></html>") } } else { for ( new d = 1 ; d < 33 ; ++d ) { new userId = ranking[d] if ( userId == 0 ) { /* No more rankings */ d = 50 } else if ( is_user_connected(userId) ) { if ( nbHS[userId] > 0 ) { get_user_name ( userId , NameP , 39 ) new Float:percent = ( float(nbHS[userId]) / float(nbFrags[userId]) ) * 100 new temp[MAX_TXT_LEN] format ( temp , MAX_TXT_LEN_1 , "^n%d - %s^n %4d Headshot(s) - %s %.1f %% " ,d,NameP,nbHS[userId],textFrags,percent) add( topText,2999,temp) ++NB } } } if ( NB == 0 ) format ( topText ,2047, "^n^n^n %s ...",noHeadshot ) } show_motd(id,topText,title) return PLUGIN_CONTINUE } /* Initiating call */ public made_hs(){ killr = read_data(1) vict = read_data(2) if ( killr > 0 ) { nbHS[killr]=nbHS[killr]+1 update_rankings() #if defined DEBUG new text[100] format ( text, 99, "[AMXmodX] - Player %d made HS -> Total = %d", killr, nbHS[killr] ) log_message(text) #endif new hsflags[10] get_cvar_string("amx_hs_event",hsflags,9) if ( read_flags(hsflags)&1) display_HS_TXTEvent() if ( read_flags(hsflags)&2) play_HS_SOUNDEvent() display_event_Text ( killr ) } #if defined DEBUG else { new text[100] format ( text, 99, "[AMXmodX] - WorldSpawn made hs ..." ) log_message(text) } #endif return PLUGIN_CONTINUE } /* Updating frags counter */ public made_frag(id){ killr = read_data(1) if ( killr > 0 ) { nbFrags[killr]=nbFrags[killr]+1 #if defined DEBUG new text[100] format ( text, 99, "[AMXmodX] - Player %d made frag -> Total = %d", killr, nbFrags[killr] ) log_message(text) #endif if ( ( read_data(3) == 1 ) && ( read_data(5) == 0 ) ) { #if defined DEBUG log_message("[AMXmodX] - Frag = HS") #endif made_hs() } } #if defined DEBUG else { new text[100] format ( text, 99, "[AMXmodX] - WorldSpawn made frag ..." ) log_message(text) } #endif return PLUGIN_CONTINUE } /* Saving configuration */ public save_to_file ( id , level, cid ) { if (!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED new cfgFile[MAX_TXT_LEN] read_argv(1,cfgFile,MAX_TXT_LEN_1) if ( cfgFile[0] == 0 ) { console_print(id,"[AMX] amx_hs_save_config : No path or file found ... aborting") return PLUGIN_HANDLED } if ( containi(cfgFile,".cfg" ) == -1 ) { console_print(id,"[AMX] amx_hs_save_config : You have to use cfg extension for file ... aborting") return PLUGIN_HANDLED } replace(cfgFile,MAX_TXT_LEN_1,"../","") new counter = 0 if ( file_exists( cfgFile ) ) console_print(id,"[AMX] amx_hs_save_config : File found ... adding config at end of file") else console_print(id,"[AMX] amx_hs_save_config : File not found ... trying to create it") new temp1[MAX_TXT_LEN]= "amx_hs_event ^"" new hsCfg[MAX_TXT_LEN] get_cvar_string ( "amx_hs_event" , hsCfg , MAX_TXT_LEN_1) add ( temp1 , MAX_TXT_LEN_1 , hsCfg ) add ( temp1 , MAX_TXT_LEN_1 , "^"" ) write_file(cfgFile,"// Configuration for Plugin Headshot Deluxe",-1) if ( write_file(cfgFile,temp1,-1) == 0 ) { ++counter console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_event ... skipping") } if ( langVersion == 0 ) { if ( write_file(cfgFile,"amx_hs_set_lang ^"eng^"",-1) == 0 ) { ++counter console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_lang ... skipping") } } else if ( langVersion == 1 ) { if ( write_file(cfgFile,"amx_hs_set_lang ^"fr^"",-1) == 0 ) { ++counter console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_lang ... skipping") } } else if ( langVersion == 2 ) { if ( write_file(cfgFile,"amx_hs_set_lang ^"esp^"",-1) == 0 ) { ++counter console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_lang ... skipping") } } else if ( langVersion == 3 ) { if ( write_file(cfgFile,"amx_hs_set_lang ^"port^"",-1) == 0 ) { ++counter console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_lang ... skipping") } } else if ( langVersion == 4 ) { if ( write_file(cfgFile,"amx_hs_set_lang ^"eng^"",-1) == 0 ) { ++counter console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_lang ... skipping") } } { new temp2[MAX_TXT_LEN]= "amx_hs_set_hs_hud ^"A^" ^"" add ( temp2 , MAX_TXT_LEN_1 , hudAllCvar ) add ( temp2 , MAX_TXT_LEN_1 , "^"" ) if ( write_file(cfgFile,temp2,-1) == 0 ) { ++counter console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_hs_hud A ... skipping") } } { new temp2[MAX_TXT_LEN]= "amx_hs_set_hs_hud ^"V^" ^"" add ( temp2 , MAX_TXT_LEN_1 , hudVicCvar ) add ( temp2 , MAX_TXT_LEN_1 , "^"" ) if ( write_file(cfgFile,temp2,-1) == 0 ) { ++counter console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_hs_hud V ... skipping") } } { new temp2[MAX_TXT_LEN]= "amx_hs_set_hs_hud ^"K^" ^"" add ( temp2 , MAX_TXT_LEN_1 , hudKilCvar ) add ( temp2 , MAX_TXT_LEN_1 , "^"" ) if ( write_file(cfgFile,temp2,-1) == 0 ) { ++counter console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_hs_hud K ... skipping") } } { new temp2[MAX_TXT_LEN]= "amx_hs_set_hs_chat ^"A^" ^"" add ( temp2 , MAX_TXT_LEN_1 , chatAllCvar ) add ( temp2 , MAX_TXT_LEN_1 , "^"" ) if ( write_file(cfgFile,temp2,-1) == 0 ) { ++counter console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_hs_chat A ... skipping") } } { new temp2[MAX_TXT_LEN]= "amx_hs_set_hs_chat ^"V^" ^"" add ( temp2 , MAX_TXT_LEN_1 , chatVicCvar ) add ( temp2 , MAX_TXT_LEN_1 , "^"" ) if ( write_file(cfgFile,temp2,-1) == 0 ) { ++counter console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_hs_chat V ... skipping") } } { new temp2[MAX_TXT_LEN]= "amx_hs_set_hs_chat ^"K^" ^"" add ( temp2 , MAX_TXT_LEN_1 , chatKilCvar ) add ( temp2 , MAX_TXT_LEN_1 , "^"" ) if ( write_file(cfgFile,temp2,-1) == 0 ) { ++counter console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_hs_chat K ... skipping") } } { new temp2[MAX_TXT_LEN]= "amx_hs_set_hs_wav ^"A^" ^"" add ( temp2 , MAX_TXT_LEN_1 , wavAllCvar ) add ( temp2 , MAX_TXT_LEN_1 , "^"" ) if ( write_file(cfgFile,temp2,-1) == 0 ) { ++counter console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_hs_wav A ... skipping") } } { new temp2[MAX_TXT_LEN]= "amx_hs_set_hs_wav ^"V^" ^"" add ( temp2 , MAX_TXT_LEN_1 , wavVicCvar ) add ( temp2 , MAX_TXT_LEN_1 , "^"" ) if ( write_file(cfgFile,temp2,-1) == 0 ) { ++counter console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_hs_wav V ... skipping") } } { new temp2[MAX_TXT_LEN]= "amx_hs_set_hs_wav ^"K^" ^"" add ( temp2 , MAX_TXT_LEN_1 , wavKilCvar ) add ( temp2 , MAX_TXT_LEN_1 , "^"" ) if ( write_file(cfgFile,temp2,-1) == 0 ) { ++counter console_print(id,"[AMX] amx_hs_save_config : Failed to write config for amx_hs_set_hs_wav K ... skipping") } } write_file(cfgFile,"//", -1) if ( counter > 0 ) { console_print(id,"[AMX] amx_hs_save_config : Configuration for HS-Deluxe stored ( %d write error(s) )" , counter ) } else { console_print(id,"[AMX] amx_hs_save_config : Configuration for HS-Deluxe stored successfully" ) } return PLUGIN_HANDLED_MAIN } /* Fun addon */ public switch_funmode ( id , level, cid ) { if (!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED new act[MAX_TXT_LEN] read_argv(1,act,MAX_TXT_LEN_1) if ( act[0] == 0 ) { console_print(id,"[AMX] amx_hs_set_fun : Bad value ... aborting") return PLUGIN_HANDLED } if ( containi(act,"ON" ) > -1 ) { funVersion = 1 client_print(0,print_chat,"* HS DeluXe Fun mode ON" ) } else if ( containi(act,"OFF" ) > -1 ) { funVersion = 0 client_print(0,print_chat,"* HS DeluXe Fun mode OFF" ) } return PLUGIN_HANDLED_MAIN } public get_rand_vict( text[] ) { new i = random_num(0,VIC_MAX-1) while ( i == lastMsgVic ) { i = random_num(0,VIC_MAX-1) } lastMsgVic = i copy ( text , MAX_TXT_LEN_1 , listVicWav[i] ) return PLUGIN_CONTINUE } public get_rand_kill( text[] ) { new j = random_num(0,KIL_MAX-1) while ( j == lastMsgKil ) { j = random_num(0,KIL_MAX-1) } lastMsgKil = j copy ( text , MAX_TXT_LEN_1 , listKilWav[j] ) return PLUGIN_CONTINUE } /* Didn't forget disconnection IN Game .. */ public client_disconnect(id) { remove_player(id) return PLUGIN_CONTINUE } /* Precaching sounds */ public plugin_precache() { if ( wavKilCvar[0] != 0 ) { new text[MAX_TXT_LEN] copy ( text , MAX_TXT_LEN_1 , wavKilCvar ) add ( text , MAX_TXT_LEN_1 , ".wav" ) precache_sound ( text ) } if ( wavVicCvar[0] != 0 ) { new text[MAX_TXT_LEN] copy ( text , MAX_TXT_LEN_1 , wavVicCvar ) add ( text , MAX_TXT_LEN_1 , ".wav" ) precache_sound ( text ) } if ( wavAllCvar[0] != 0 ) { new text[MAX_TXT_LEN] copy ( text , MAX_TXT_LEN_1 , wavAllCvar ) add ( text , MAX_TXT_LEN_1 , ".wav" ) precache_sound ( text ) } return PLUGIN_CONTINUE } /* Initializing plugin */ public plugin_init(){ register_plugin("Headshot DeluXe","X.16.1.0","DanRaZor") init_stats() register_cvar("hsd_version","X.16.1.0",FCVAR_SERVER) register_event ("DeathMsg","made_frag","a" ) register_cvar ("amx_hs_event" ,"f") register_concmd ("amx_hs_set_hud" , "amx_hsChangeHud" , ADMIN_CVAR, "^"users^" ^"text^" ( users = A,V,K )") register_concmd ("amx_hs_set_chat" , "amx_hsChangeChat", ADMIN_CVAR, "^"users^" ^"text^" ( users = A,V,K )") register_concmd ("amx_hs_set_wav" , "amx_hsChangeWav" , ADMIN_CVAR, "^"users^" ^"wavPathFile^" ( users = A,V,K )") register_concmd ("amx_hs_set_lang" , "set_language" , ADMIN_CVAR, "^"language^" ( eng, fr, esp, port, ger ) ") register_concmd ("amx_hs_set_fun" , "switch_funmode" , ADMIN_CVAR, "^"ON^" or ^"OFF^"") register_concmd ("amx_hs_save_config", "save_to_file" , ADMIN_RCON, "^"cfgPathFile^"") register_clcmd ("say /hs" , "display_HS_RANK") register_clcmd ("say_team /hs" , "display_HS_RANK") register_clcmd ("say /hsAll" , "display_HS_TOP") register_clcmd ("say_team /hsAll" , "display_HS_TOP") register_clcmd ("say /hd" , "show_lang") register_clcmd ("say_team /hd" , "show_lang") return PLUGIN_CONTINUE }
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 0 Отговори
- 1321 Преглеждания
-
Последно мнение от jumby1990
-
- 6 Отговори
- 750 Преглеждания
-
Последно мнение от zolfeca
-
- 4 Отговори
- 1213 Преглеждания
-
Последно мнение от antonstoqnovv
-
- 5 Отговори
- 2015 Преглеждания
-
Последно мнение от impossible
-
- 0 Отговори
- 1834 Преглеждания
-
Последно мнение от Scorpions95
-
- 8 Отговори
- 2883 Преглеждания
-
Последно мнение от qwertymi
-
- 2 Отговори
- 912 Преглеждания
-
Последно мнение от EMOTO2.COM
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 21 госта