14-04-13, 22:08
Buyur yaptım. Ama dediğim gibi, Örneğin CT deki bir admin yazı yazdığında ismi kırmızı görünücektir. Yani Kırmızı ve mavi renkler bir printte aynı anda yazılamaz. Sen bir dene en fazla bu kadar oluyor.
Amxx ekte.
PHP Code:
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "Admin Chat Colors"
#define VERSION "1.0"
#define AUTHOR "akcaliberkk"
#define RCON_LEVEL ADMIN_RCON
#define ADMIN_LEVEL ADMIN_BAN
#define SLOT_LEVEL ADMIN_RESERVATION
#define ADMIN_LISTEN ADMIN_CHAT
new message[192]
new sayText
new teamInfo
new maxPlayers
new g_AdminListen
new strName[191]
new strText[191]
new alive[11]
public plugin_init()
{
register_plugin (PLUGIN, VERSION, AUTHOR)
sayText = get_user_msgid ("SayText")
teamInfo = get_user_msgid ("TeamInfo")
maxPlayers = get_maxplayers()
g_AdminListen = register_cvar ("amx_listen", "1")
register_message (sayText, "avoid_duplicated")
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, "")) return PLUGIN_CONTINUE
new name[32]
get_user_name (id, name, 31)
new bool:admin = false
new bool:rcon = false
new bool:slot = false
if (access(id,RCON_LEVEL)) rcon = true;
else if(access(id,ADMIN_LEVEL)) admin = true;
else if(access(id,SLOT_LEVEL)) slot = true;
new isAlive
if (is_user_alive (id))
{
isAlive = 1
alive = "^x01"
}
else
{
isAlive = 0
alive = "^x01*DEAD* "
}
static color[10]
get_user_team (id, color, 9)
format (strName, 191, "%s^x03%s", alive, name)
if(rcon) {
copy (color, 9, "CT")
format (strText, 191, "^x03%s", message)
}
else if(admin) {
copy (color, 9, "TERRORIST")
format (strText, 191, "^x03%s", message)
}
else if(slot) {
format (strText, 191, "^x04%s", message)
}
else {
format (strText, 191, "%s", message)
}
format (message, 191, "%s^x01 : %s", strName, strText)
sendMessage (color, isAlive)
return PLUGIN_CONTINUE
}
public hook_teamsay(id)
{
new playerTeam = get_user_team(id)
new playerTeamName[19]
switch (playerTeam)
{
case 1:
copy (playerTeamName, 11, "Terrorists")
case 2:
copy (playerTeamName, 18, "Counter-Terrorists")
default:
copy (playerTeamName, 9, "Spectator")
}
read_args (message, 191)
remove_quotes (message)
if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) return PLUGIN_CONTINUE
new name[32]
get_user_name (id, name, 31)
new bool:admin = false
new bool:rcon = false
new bool:slot = false
if (access(id,RCON_LEVEL)) rcon = true;
else if(access(id,ADMIN_LEVEL)) admin = true;
else if(access(id,SLOT_LEVEL)) slot = true;
new isAlive
if (is_user_alive (id))
{
isAlive = 1
alive = "^x01"
}
else
{
isAlive = 0
alive = "^x01*DEAD* "
}
static color[10]
get_user_team (id, color, 9)
format (strName, 191, "%s(%s) ^x03%s", alive, playerTeamName, name)
if(rcon) {
copy (color, 9, "CT")
format (strText, 191, "^x03%s", message)
}
else if(admin) {
copy (color, 9, "TERRORIST")
format (strText, 191, "^x03%s", message)
}
else if(slot) {
format (strText, 191, "^x04%s", message)
}
else {
format (strText, 191, "%s", message)
}
format (message, 191, "%s ^x01: %s", strName, strText)
sendTeamMessage (color, isAlive, playerTeam)
return PLUGIN_CONTINUE
}
public sendMessage (color[], alive)
{
new teamName[10]
for (new player = 1; player < maxPlayers; player++)
{
if (!is_user_connected(player))
continue
if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN)
{
get_user_team (player, teamName, 9)
changeTeamInfo (player, color)
writeMessage (player, message)
changeTeamInfo (player, teamName)
}
}
}
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 || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN)
{
if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN)
{
get_user_team (player, teamName, 9)
changeTeamInfo (player, color)
writeMessage (player, message)
changeTeamInfo (player, teamName)
}
}
}
}
public changeTeamInfo (player, team[])
{
message_begin (MSG_ONE, teamInfo, _, player)
write_byte (player)
write_string (team)
message_end()
}
public writeMessage (player, message[])
{
message_begin (MSG_ONE, sayText, {0, 0, 0}, player)
write_byte (player)
write_string (message)
message_end ()
}
Amxx ekte.
CS:GO ve CS 1.6 için ücretli eklenti yapılır.
Plugin yazmak isteyenlere yardımcı olabilirim.
Skype adresimden ulaşabilirsiniz: destek_596
Steam: http://steamcommunity.com/id/ca-nemesis/


![[Image: amxxlarge.jpg]](https://www.amxmodx.org/images/amxxlarge.jpg)