PHP Kod:
/*
,----.. .--.--. ,---,
/ / \ / / '. ' .' \
| : :| : /`. / / ; '.
. | ;. /; | |--` : : \
. ; /--` | : ;_ : | /\ \
; | ; \ \ `. | : ' ;. :
| : | `----. \| | ;/ \ \ -SwindLer , Coded By CSAilesi.COM
. | '___ __ \ \ |' : | \ \ ,'
' ; : .'| / /`--' /| | ' '--'
' | '/ :'--'. / | : :
| : / `--'---' | | ,'
\ \ .' `--''
`---`
*/
#include < amxmodx >
#include < amxmisc >
#include < fakemeta >
#include < nvault >
/*----------------------------------------------------------------------------------------------*/
#define PLUGIN "Hesapli Level Sistemi"
#define VERSION "v.1"
#define AUTHOR "Anilcan , -SwindLer."
/*----------------------------------------------------------------------------------------------*/
#define TAG "CSAilesi"
/*----------------------------------------------------------------------------------------------*/
#define ENUM 3
#define MAX_RANKS 17
/*----------------------------------------------------------------------------------------------*/
new const yasakli_semboller[][] =
{
"@",
"*",
"/",
"%",
",",
".",
"ü",
"?",
"+"
}
enum _: szData
{
szRankName[ 32 ],
szRankXp
}
new const szRanklar[ ][ szData ] =
{
{ "Silver 1", 0 },
{ "Silver 2", 10 },
{ "Silver 3", 20 },
{ "Silver Elite", 50},
{ "Silver Elite Master", 100 },
{ "Gold Nova 1", 200 },
{ "Gold Nova 2", 350 },
{ "Gold Nova 3", 500 },
{ "Gold Nova Master", 750 },
{ "Master Guardian 1", 1000 },
{ "Master Guardian 2", 1250 },
{ "Master Guardian Elite", 1500 },
{ "Distinguished Master Guardian", 1750 },
{ "Legendary Eagle", 2000 },
{ "Legendary Eagle Master", 2300 },
{ "Supreme Master First Class", 2600 },
{ "Global Elite", 3000 }
}
enum _: Level {
g_LEVEL,
g_EXP,
g_TOPLAMKILL
}
/*-----------------------------------------------------------------------------------------------*/
/*-----------------------------------------{/-Newler\-}------------------------------------------*/
/*-----------------------------------------------------------------------------------------------*/
new g_Level[ 33 ][ Level ]
new g_username[ 33 ][ 50 ], k_username[ 33 ][ 50 ], sifre[ 33 ][ 50 ], g_sifre[ 33 ][ 50 ],username[ 33 ][ 50], k_sifre[ 33 ][ 50 ];
new g_login, g_register , g_vault,g_szName[33][32],g_hud,g_killxp
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /hesap", "menu_ac" );
register_clcmd( "KullaniciAdi_Sec", "user_name2" );
register_clcmd( "Sifre_Yaz", "sifre_sec" );
register_clcmd( "Kullanici_Adi", "user_name" );
register_clcmd( "Sifreni_Gir", "sifrexd" );
register_event( "DeathMsg" , "olunce" , "a" );
g_hud = CreateHudSyncObj( );
g_killxp = register_cvar( "csa_killxp", "1" );
}
public client_putinserver( id )
{
set_task(1.0, "goster", id, _, _, "b")
}
public client_disconnect(id)
{
kayit( id )
sifirla( id )
}
/*-----------------------------------------------------------------------------------------------*/
/*---------------------------------------{/-Hud Mesaji\-}----------------------------------------*/
/*-----------------------------------------------------------------------------------------------*/
public goster( id )
{
set_hudmessage(0, 255, 255, 0.01, 0.18, 0, 6.0, 1.0, 0.0, 0.0, -1 );
if( g_Level[ id ][ g_LEVEL ] < MAX_RANKS )
{
ShowSyncHudMsg( id,g_hud, "Fragin : [ %i ]^nGereken Frag: [ %i ]^nRankin [ %s ] ^nBir Ust Rank [ %s ]^nToplam Fragin[ %i ]",
g_Level[ id ][ g_EXP ],
szRanklar[ g_Level[ id ][ g_LEVEL ] + 1 ][ szRankXp ],
szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ],
szRanklar[ g_Level[ id ][ g_LEVEL ] + 1 ][ szRankName ],
g_Level[ id ][ g_TOPLAMKILL ]);
}
}
/*-----------------------------------------------------------------------------------------------*/
/*---------------------------------------{/-Level Sistemi\-}----------------------------------------*/
/*-----------------------------------------------------------------------------------------------*/
public olunce( )
{
new victim = read_data( 2 );
new killer = read_data( 1 );
new name[ 32 ]
get_user_name( killer, name, 31 );
if( killer != victim )
{
g_Level[ killer ][ g_EXP ] += get_pcvar_num( g_killxp );
g_Level[ killer][ g_TOPLAMKILL ] += 1;
kaydet( killer );
rutbe_kontrol( killer );
if( g_Level[ victim ][ g_EXP ] < 0 )
{
g_Level[ victim ][ g_EXP ] = 0;
}
if( g_Level[ victim ][ g_LEVEL ] != 0 )
{
if( g_Level[ victim ][ g_EXP ] < szRanklar[ g_Level[ victim ][ g_LEVEL ] ][ szRankXp ] )
{
g_Level[ victim ][ g_LEVEL ] -= 1
renkli_yazi( victim, "!n[ !t%s !n] !gRank Dustun. Yeni rankin !n[ !t%s !n].", TAG, szRanklar[ g_Level[ victim ][ g_LEVEL ] ][ szRankName ] );
kaydet( victim );
}
}
}
}
public rutbe_kontrol( id )
{
if( g_Level[ id ][ g_LEVEL ] < MAX_RANKS )
{
if( g_Level[ id ][ g_EXP ] >= szRanklar[ g_Level[ id ][ g_LEVEL ] + 1 ][ szRankXp ] )
{
g_Level[ id ][ g_LEVEL ] += 1;
renkli_yazi( id, "!n[ !t%s !n] !gRank Atladin. Yeni rankin !n[ !t%s !n].", TAG, szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ] );
renkli_yazi( id, "!n[ !t%s !n] !gRank Atladin. Yeni rankin !n[ !t%s !n].", TAG, szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ] );
renkli_yazi( id, "!n[ !t%s !n] !gRank Atladin. Yeni rankin !n[ !t%s !n].", TAG, szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ] );
renkli_yazi( id, "!n[ !t%s !n] !gRank Atladin. Yeni rankin !n[ !t%s !n].", TAG, szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ] );
kaydet( id );
}
}
}
/*----------------------------------------------------------------------------------------------*/
/*-------------------------------------{/-Hesap Sistemi\-}--------------------------------------*/
/*----------------------------------------------------------------------------------------------*/
public plugin_cfg()
{
g_vault = nvault_open( "LeveLLKayitt" );
if( g_vault == INVALID_HANDLE )
{
set_fail_state( "Vault dosyasi acilamadi" );
}
}
public plugin_end( )
{
nvault_close( g_vault );
}
public kaydet( id )
{
if( g_login & ( 1 << id ) )
{
new key1[ 64 ], data1[ 256 ], iPos1;
formatex( key1, 63, "%s-LeveL", g_username[ id ] )
for( new i = 0; i < ENUM; i++ )
{
iPos1 += formatex( data1[ iPos1 ], 255 - iPos1, "%i ", g_Level[ id ][ i ] )
}
nvault_set( g_vault, key1, data1 );
}
if( g_register & ( 1 << id ) )
{
new key1[ 64 ], data1[ 256 ], iPos1;
formatex( key1, 63, "%s-LeveL", k_username[ id ] )
for( new i = 0; i < ENUM; i++ )
{
iPos1 += formatex( data1[ iPos1 ], 255 - iPos1, "%i ", g_Level[ id ][ i ] )
}
nvault_set( g_vault, key1, data1 );
}
}
public user_name2( id )
{
new say[ 192 ]
read_args( say, 191 );
remove_quotes( say )
new len = strlen( say )
if( len < 5 || len > 32 )
{
renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi !n[ !t5 !n] !gkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
client_cmd( id, "messagemode KullaniciAdi_Sec" );
return PLUGIN_HANDLED;
}
for( new i; i < sizeof yasakli_semboller; i++ )
{
if( containi( say, yasakli_semboller[ i ] ) != -1 )
{
renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi Sembol Iceremez.", TAG );
client_cmd( id, "messagemode KullaniciAdi_Sec" );
return PLUGIN_HANDLED;
}
}
if( !equali( username[ id ], "" ) )
{
copy( g_username[ id ], 49, "" );
copy( g_sifre[ id ], 49, "" );
copy( k_username[ id ], 49, "" );
copy( k_sifre[ id ], 49, "" );
return PLUGIN_HANDLED;
}
copy( g_username[ id ], 49, "" );
copy( g_sifre[ id ], 49, "" );
copy( k_username[ id ], 49, say );
copy( k_sifre[ id ], 49, "" );
client_cmd( id, "messagemode Sifre_Yaz" );
return PLUGIN_HANDLED;
}
public sifre_sec( id )
{
new say[ 192 ]
read_args( say, 191 );
remove_quotes( say )
new len = strlen( say )
if( len < 5 || len > 32 )
{
renkli_yazi( id, "!n[ !t%s !n] !gSifre !n[ !t5 !n] !gkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
client_cmd( id, "messagemode Sifre_Yaz" );
return PLUGIN_HANDLED;
}
for( new i; i < sizeof yasakli_semboller; i++ )
{
if( containi( say, yasakli_semboller[ i ] ) != -1 )
{
renkli_yazi( id, "!n[ !t%s !n] !gSifre Sembol Iceremez.", TAG );
client_cmd( id, "messagemode Sifre_Yaz" );
return PLUGIN_HANDLED;
}
}
if( !equali( username[ id ], "" ) || equali( k_username[ id ], "" ) )
{
copy( g_username[ id ], 49, "" );
copy( g_sifre[ id ], 49, "" );
copy( k_username[ id ], 49, "" );
copy( k_sifre[ id ], 49, "" );
return PLUGIN_HANDLED;
}
copy( k_sifre[ id ], 49, say );
kayit_yap( id, k_username[ id ], k_sifre[ id ] );
copy( g_username[ id ], 49, "" );
copy( g_sifre[ id ], 49, "" );
copy( k_sifre[ id ], 49, "" );
return PLUGIN_HANDLED;
}
public kayit_yap( id, szName[ ], szSifre[ ] )
{
new getPw[32], IDFormat[64]
formatex( IDFormat, 63,"%s-LeveL-Kayit", szName );
nvault_get( g_vault, IDFormat, getPw,31 );
if( equali( getPw, "" ) )
{
new key[ 64 ];
copy( username[ id ], 49, szName );
copy( sifre[ id ], 49, szSifre );
formatex( key, 63, "%s-LeveL-Kayit", szName );
nvault_set( g_vault, key, szSifre )
g_register |= ( 1 << id )
new text[64];
read_args(text,63)
remove_quotes(text)
copy(g_szName[id],31,text)
renkli_yazi( id, "!n[ !t%s !n] !gBasarili bir sekilde hesabiniz acilmistir.", TAG );
renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adiniz !n[ !t%s !n] !gSifreniz !n[ !t%s !n].", TAG, szName, szSifre );
}
else
{
renkli_yazi( id, "!n[ !g%s !n] !tBu Kullanici Adinda Zaten Hesap Var.", TAG );
}
return PLUGIN_HANDLED;
}
public user_name( id )
{
new say[ 192 ]
read_args( say, 191 );
remove_quotes( say )
new len = strlen( say )
if( len < 5 || len > 32 )
{
renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi !n[ !t5 !n] !tkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
client_cmd( id, "messagemode Kullanici_Adi" );
return PLUGIN_HANDLED;
}
for( new i; i < sizeof yasakli_semboller; i++ )
{
if( containi( say, yasakli_semboller[ i ] ) != -1 )
{
renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi Sembol Iceremez.", TAG );
client_cmd( id, "messagemode Kullanici_Adi" );
return PLUGIN_HANDLED;
}
}
if( !equali( username[ id ], "" ) )
{
copy( g_username[ id ], 49, "" );
copy( g_sifre[ id ], 49, "" );
copy( k_username[ id ], 49, "" );
copy( k_sifre[ id ], 49, "" );
return PLUGIN_HANDLED;
}
copy( g_username[ id ], 49, say );
copy( g_sifre[ id ], 49, "" );
copy( k_username[ id ], 49, "" );
copy( k_sifre[ id ], 49, "" );
client_cmd( id, "messagemode Sifreni_Gir" );
return PLUGIN_HANDLED;
}
public sifrexd( id )
{
new say[ 192 ]
read_args( say, 191 );
remove_quotes( say )
new len = strlen( say )
if( len < 5 || len > 32 )
{
renkli_yazi( id, "!n[ !t%s !n] !gSifre !n[ !t5 !n] !gkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
client_cmd( id, "messagemode Sifreni_Gir" );
return PLUGIN_HANDLED;
}
for( new i; i < sizeof yasakli_semboller; i++ )
{
if( containi( say, yasakli_semboller[ i ] ) != -1 )
{
renkli_yazi( id, "!n[ !t%s !n] !gSifre Sembol Iceremez.", TAG );
client_cmd( id, "messagemode Sifreni_Gir" );
return PLUGIN_HANDLED;
}
}
if( !equali( username[ id ], "" ) || equali( g_username[ id ], "" ) )
{
copy( g_username[ id ], 49, "" );
copy( g_sifre[ id ], 49, "" );
copy( k_username[ id ], 49, "" );
copy( k_sifre[ id ], 49, "" );
return PLUGIN_HANDLED;
}
copy( g_sifre[ id ], 49, say );
giris_yap( id, g_username[ id ], g_sifre[ id ] );
copy( g_sifre[ id ], 49, "" );
copy( k_username[ id ], 49, "" );
copy( k_sifre[ id ], 49, "" );
return PLUGIN_HANDLED;
}
public giris_yap( id, szName[ ], szSifre[ ] )
{
new getPw[32], IDFormat[64]
formatex( IDFormat, 63,"%s-LeveL-Kayit", szName );
nvault_get( g_vault, IDFormat, getPw,31 );
if( equali( getPw, szSifre ) )
{
new key1[ 64 ], data1[ 256 ],szVal1[ 6 ];
copy( username[ id ], 49, szName );
copy( sifre[ id ], 49, szSifre );
formatex( key1, 63, "%s-LeveL", szName );
nvault_get( g_vault, key1, data1, 255 );
for( new i; i < ENUM; i++ )
{
strbreak( data1, szVal1, 5, data1, 255 );
g_Level[ id ][ i ] = str_to_num( szVal1 );
}
g_login |= ( 1 << id );
renkli_yazi( id, "!n[ !t%s !n] !gBasarili bir sekilde hesabiniza giris yaptiniz.", TAG );
}
else
{
renkli_yazi( id, "!n[ !t%s !n] !gYanlis !n[ !tKullanici Adi !n] !gya da !n[ !tSifre !n] !ggirdin.", TAG );
}
return PLUGIN_HANDLED;
}
public menu_ac( id )
{
if( !is_user_connected( id ) ) return PLUGIN_HANDLED;
new menu = menu_create( "\rLevel Sistemi \d|| \yHesap Kayit Sistemi","menu_devam");
if( equali( username[ id ], "" ) )
{
menu_additem( menu, "\yGiris Yap", "1" );
menu_additem( menu, "\yKayit Ol^n", "2" );
}
else
{
menu_additem( menu, "\yCikis Yap", "3" );
}
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
menu_display( id, menu, 0 );
return PLUGIN_HANDLED;
}
public menu_devam( id, menu, item )
{
if ( item == MENU_EXIT)
{
menu_destroy( menu )
return PLUGIN_HANDLED;
}
new data[ 6 ], name[ 32 ], access, callback;
menu_item_getinfo(menu, item, access, data,5, name, 31, callback );
new key = str_to_num( data )
switch( key )
{
case 1:
{
client_cmd( id, "messagemode Kullanici_Adi" );
}
case 2:
{
client_cmd( id, "messagemode KullaniciAdi_Sec" );
}
case 3:
{
kaydet( id );
remove_task( id );
copy( username[ id ], 49, "" );
copy( sifre[ id ], 49, "" );
copy( g_username[ id ], 49, "" );
copy( g_sifre[ id ], 49, "" );
copy( k_username[ id ], 49, "" );
copy( k_sifre[ id ], 49, "" );
g_login &= ~( 1 << id );
g_register &= ~( 1 << id );
set_task(1.0,"sifirla",id);
renkli_yazi( id, "!n[ !t%s !n] !gButun bilgileriniz kaydedilip hesabinizdan cikis yapilmistir.", TAG );
}
}
menu_destroy( menu );
return PLUGIN_HANDLED;
}
public sifirla(id)
{
for( new i; i < Level; i++ )
{
g_Level[ id ][ i ] = 0
}
}
public kayit( id )
{
kaydet( id );
remove_task( id );
copy( username[ id ], 49, "" );
copy( sifre[ id ], 49, "" );
copy( g_username[ id ], 49, "" );
copy( g_sifre[ id ], 49, "" );
copy( k_username[ id ], 49, "" );
copy( k_sifre[ id ], 49, "" );
g_login &= ~( 1 << id );
g_register &= ~( 1 << id );
for( new i; i < Level; i++ )
{
g_Level[ id ][ i ] = 0
}
}
/*----------------------------------------------------------------------------------------------*/
/*--------------------------------------{/-Renkli Yazi\-}---------------------------------------*/
/*----------------------------------------------------------------------------------------------*/
stock renkli_yazi(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!n", "^x01"); // Default Renk(Sarı)
replace_all(msg, 190, "!g", "^x04"); // Yeşil Renk
replace_all(msg, 190, "!t", "^x03"); // Takım Renk( CT mavi , T kırmızı )
if (id) players[0] = id; else get_players(players, count, "ch"); {
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
PHP Kod:
#include <amxmodx>
#include <amxmisc>
#include <csstats>
#define PLUGIN "Admin Chat Colors"
#define VERSION "2.0"
#define AUTHOR "Arion"
#define ACCESS_LEVEL ADMIN_RESERVATION
#define ADMIN_LISTEN ADMIN_ALL
#define RANK_NOTHING 0
#define RANK_PRIVATE 1
#define RANK_PRIVATE_FIRST_CLASS 2
#define RANK_CORPORAL 3
#define RANK_SERGEANT 4
#define RANK_STAFF_SERGEANT 5
#define RANK_GUNNERY_SERGEANT 6
#define RANK_MASTER_SERGEANT 7
#define RANK_COMMAND_SERGEANT 8
#define RANK_SECOND_LIEUTENANT 9
#define RANK_FIRST_LIEUTENANT 10
#define RANK_COLONEL 11
#define RANK_BRIGADIER_GENERAL 12
#define RANK_MAJOR_GENERAL 13
#define RANK_LIEUTENANT_GENERAL 14
#define RANK_GENERAL 15
#define RANK_GENERAL_OF_THE_ARMY 16
#define MAXRANKS 17
new PlayerRank[33]
new message[192]
new sayText
new teamInfo
new maxPlayers
new g_MessageColor
new g_NameColor
new g_AdminListen
new strName[191]
new strText[191]
new alive[11]
new const rankNames[MAXRANKS][] =
{
"[RUTBESIZ]",
"[SILVER II]",
"[SILVER III]",
"[SILVER ELITE]",
"[SILVER ELITE MASTER]",
"[GOLD NOVA I]",
"[GOLD NOVA II]",
"[GOLD NOVA III]",
"[GOLD NOVA MASTER]",
"[MASTER GUARDIAN I]",
"[MASTER GUARDIAN II]",
"[MASTER GUARDIAN ELITE]",
"[DISTINGUISHED MASTER]",
"[LEGENDARY EAGLE]",
"[LEGENDARY EAGLE MASTER]",
"[SUPREME MASTER]",
"[THE GLOBAL ELITE]"
}
new const rankXP[MAXRANKS] =
{
0, 10, 25, 50, 100, 200, 350, 500, 750, 1000, 1250, 1500, 1750, 2000, 2300, 2600, 3000
}
public plugin_init()
{
register_plugin (PLUGIN, VERSION, AUTHOR)
g_MessageColor = register_cvar ("amx_color", "2") // Message colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red
g_NameColor = register_cvar ("amx_namecolor", "6") // Name colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red, [6] Team-color
g_AdminListen = register_cvar ("amx_listen", "1") // Set whether admins see or not all messages (Alive, dead and team-only)
sayText = get_user_msgid ("SayText")
teamInfo = get_user_msgid ("TeamInfo")
maxPlayers = get_maxplayers()
register_message (sayText, "avoid_duplicated")
register_clcmd ("amx_color", "set_color", ACCESS_LEVEL, "<color>")
register_clcmd ("amx_namecolor", "set_name_color", ACCESS_LEVEL, "<color>")
register_clcmd ("amx_listen", "set_listen", ACCESS_LEVEL, "<1 | 0>")
register_clcmd ("say", "hook_say")
register_clcmd ("say_team", "hook_teamsay")
}
public avoid_duplicated (msgId, msgDest, receiver)
{
return PLUGIN_HANDLED
}
public hook_say(id)
{
read_args (message, 191)
remove_quotes (message)
if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) // Ignores Admin Hud Messages, Admin Slash commands,
// Gungame commands and empty messages
return PLUGIN_CONTINUE
new name[32]
get_user_name (id, name, 31)
new bool:admin = false
if (get_user_flags(id) & ACCESS_LEVEL)
admin = true
new isAlive
if (is_user_alive (id))
{
isAlive = 1
alive = "^x01"
}
else
{
isAlive = 0
alive = "^x01x"
}
static color[10]
static stats[8], hits[8]
get_user_stats(id, stats, hits)
new currentPlayerRank = 0;
while(currentPlayerRank < (MAXRANKS - 1))
{
if(stats[0] >= rankXP[currentPlayerRank + 1])
++currentPlayerRank;
else
break;
}
PlayerRank[id] = currentPlayerRank;
if (admin)
{
// Name
switch (get_pcvar_num (g_NameColor))
{
case 1:
format (strName, 191, "^x04%s %s%s", rankNames[currentPlayerRank], alive, name)
case 2:
format (strName, 191, "^x04%s %s^x04%s", rankNames[currentPlayerRank], alive, name)
case 3:
{
color = "SPECTATOR"
format (strName, 191, "^x04%s %s^x03%s", rankNames[currentPlayerRank], alive, name)
}
case 4:
{
color = "CT"
format (strName, 191, "^x04%s %s^x03%s", rankNames[currentPlayerRank], alive, name)
}
case 5:
{
color = "TERRORIST"
format (strName, 191, "^x04%s %s^x03%s", rankNames[currentPlayerRank], alive, name)
}
case 6:
{
get_user_team (id, color, 9)
format (strName, 191, "^x04%s %s^x03%s", rankNames[currentPlayerRank], alive, name)
}
}
// Message
switch (get_pcvar_num (g_MessageColor))
{
case 1: // Yellow
format (strText, 191, "%s", message)
case 2: // Green
format (strText, 191, "^x04%s", message)
case 3: // White
{
copy (color, 9, "SPECTATOR")
format (strText, 191, "^x03%s", message)
}
case 4: // Blue
{
copy (color, 9, "CT")
format (strText, 191, "^x03%s", message)
}
case 5: // Red
{
copy (color, 9, "TERRORIST")
format (strText, 191, "^x03%s", message)
}
}
}
else // Player is not admin. Team-color name : Yellow message
{
get_user_team (id, color, 9)
format (strName, 191, "^x04%s %s^x03%s", rankNames[currentPlayerRank], alive, name)
format (strText, 191, "%s", message)
}
format (message, 191, "%s^x01 : %s", strName, strText)
sendMessage (color, isAlive) // Sends the colored message
return PLUGIN_CONTINUE
}
public hook_teamsay(id)
{
new playerTeam = get_user_team(id)
new playerTeamName[19]
switch (playerTeam) // Team names which appear on team-only messages
{
case 1:
copy (playerTeamName, 11, "TEROR")
case 2:
copy (playerTeamName, 18, "POLIS")
default:
copy (playerTeamName, 9, "IZLEYICI")
}
read_args (message, 191)
remove_quotes (message)
if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) // Ignores Admin Hud Messages, Admin Slash commands,
// Gungame commands and empty messages
return PLUGIN_CONTINUE
new name[32]
get_user_name (id, name, 31)
new bool:admin = false
if (get_user_flags(id) & ACCESS_LEVEL)
admin = true
new isAlive
if (is_user_alive (id))
{
isAlive = 1
alive = "^x01"
}
else
{
isAlive = 0
alive = "^x01x"
}
static color[10]
static stats[8], hits[8]
get_user_stats(id, stats, hits)
new currentPlayerRank = 0;
while(currentPlayerRank < (MAXRANKS - 1))
{
if(stats[0] >= rankXP[currentPlayerRank + 1])
++currentPlayerRank;
else
break;
}
PlayerRank[id] = currentPlayerRank;
if (admin)
{
// Name
switch (get_pcvar_num (g_NameColor))
{
case 1:
format (strName, 191, "^x04%s %s(%s) %s", rankNames[currentPlayerRank], alive, playerTeamName, name)
case 2:
format (strName, 191, "^x04%s %s(%s) ^x04%s", rankNames[currentPlayerRank], alive, playerTeamName, name)
case 3:
{
color = "SPECTATOR"
format (strName, 191, "^x04%s %s(%s) ^x03%s", rankNames[currentPlayerRank], alive, playerTeamName, name)
}
case 4:
{
color = "CT"
format (strName, 191, "^x04%s %s(%s) ^x03%s", rankNames[currentPlayerRank], alive, playerTeamName, name)
}
case 5:
{
color = "TERRORIST"
format (strName, 191, "^x04%s %s(%s) ^x03%s", rankNames[currentPlayerRank], alive, playerTeamName, name)
}
case 6:
{
get_user_team (id, color, 9)
format (strName, 191, "^x04%s %s(%s) ^x03%s", rankNames[currentPlayerRank], alive, playerTeamName, name)
}
}
// Message
switch (get_pcvar_num (g_MessageColor))
{
case 1: // Yellow
format (strText, 191, "%s", message)
case 2: // Green
format (strText, 191, "^x04%s", message)
case 3: // White
{
copy (color, 9, "SPECTATOR")
format (strText, 191, "^x03%s", message)
}
case 4: // Blue
{
copy (color, 9, "CT")
format (strText, 191, "^x03%s", message)
}
case 5: // Red
{
copy (color, 9, "TERRORIST")
format (strText, 191, "^x03%s", message)
}
}
}
else // Player is not admin. Team-color name : Yellow message
{
get_user_team (id, color, 9)
format (strName, 191, "^x04%s %s(%s) ^x03%s", rankNames[currentPlayerRank], alive, playerTeamName, name)
format (strText, 191, "%s", message)
}
format (message, 191, "%s ^x01: %s", strName, strText)
sendTeamMessage (color, isAlive, playerTeam) // Sends the colored message
return PLUGIN_CONTINUE
}
public set_color (id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new arg[1], newColor
read_argv (1, arg, 1)
newColor = str_to_num (arg)
if (newColor >= 1 && newColor <= 5)
{
set_cvar_num ("amx_color", newColor)
set_pcvar_num (g_MessageColor, newColor)
if (get_pcvar_num (g_NameColor) != 1 &&
((newColor == 3 && get_pcvar_num (g_NameColor) != 3)
|| (newColor == 4 && get_pcvar_num (g_NameColor) != 4)
|| (newColor == 5 && get_pcvar_num (g_NameColor) != 5)))
{
set_cvar_num ("amx_namecolor", 2)
set_pcvar_num (g_NameColor, 2)
}
}
return PLUGIN_HANDLED
}
public set_name_color (id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new arg[1], newColor
read_argv (1, arg, 1)
newColor = str_to_num (arg)
if (newColor >= 1 && newColor <= 6)
{
set_cvar_num ("amx_namecolor", newColor)
set_pcvar_num (g_NameColor, newColor)
if ((get_pcvar_num (g_MessageColor) != 1
&& ((newColor == 3 && get_pcvar_num (g_MessageColor) != 3)
|| (newColor == 4 && get_pcvar_num (g_MessageColor) != 4)
|| (newColor == 5 && get_pcvar_num (g_MessageColor) != 5)))
|| get_pcvar_num (g_NameColor) == 6)
{
set_cvar_num ("amx_color", 2)
set_pcvar_num (g_MessageColor, 2)
}
}
return PLUGIN_HANDLED
}
public set_listen (id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new arg[1], newListen
read_argv(1, arg, 1)
newListen = str_to_num (arg)
set_cvar_num ("amx_listen", newListen)
set_pcvar_num (g_AdminListen, newListen)
return PLUGIN_HANDLED
}
public sendMessage (color[], alive)
{
new teamName[10]
for (new player = 1; player < maxPlayers; player++)
{
if (!is_user_connected(player))
continue
if(is_user_alive(player))
{
get_user_team (player, teamName, 9) // Stores user's team name to change back after sending the message
changeTeamInfo (player, color) // Changes user's team according to color choosen
writeMessage (player, message) // Writes the message on player's chat
changeTeamInfo (player, teamName) // Changes user's team back to original
}
else
{
get_user_team (player, teamName, 9) // Stores user's team name to change back after sending the message
changeTeamInfo (player, color) // Changes user's team according to color choosen
writeMessage (player, message) // Writes the message on player's chat
changeTeamInfo (player, teamName) // Changes user's team back to original
}
}
}
public sendTeamMessage (color[], alive, playerTeam)
{
new teamName[10]
for (new player = 1; player < maxPlayers; player++)
{
if (!is_user_connected(player))
continue
if (get_user_team(player) == playerTeam)
{
if (is_user_alive(player))
{
get_user_team (player, teamName, 9) // Stores user's team name to change back after sending the message
changeTeamInfo (player, color) // Changes user's team according to color choosen
writeMessage (player, message) // Writes the message on player's chat
changeTeamInfo (player, teamName) // Changes user's team back to original
}
else
{
get_user_team (player, teamName, 9) // Stores user's team name to change back after sending the message
changeTeamInfo (player, color) // Changes user's team according to color choosen
writeMessage (player, message) // Writes the message on player's chat
changeTeamInfo (player, teamName) // Changes user's team back to original
}
}
}
}
public changeTeamInfo (player, team[])
{
message_begin (MSG_ONE, teamInfo, _, player) // Tells to to modify teamInfo (Which is responsable for which time player is)
write_byte (player) // Write byte needed
write_string (team) // Changes player's team
message_end() // Also Needed
}
public writeMessage (player, message[])
{
message_begin (MSG_ONE, sayText, {0, 0, 0}, player) // Tells to modify sayText (Which is responsable for writing colored messages)
write_byte (player) // Write byte needed
write_string (message) // Effectively write the message, finally, afterall
message_end () // Needed as always
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/