Цитата(Adidasman @ 22.3.2014, 6:01)

прикрепи исходник гляну. (само собой там же есть функции с чатом)
Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <csstats>
#include <fakemeta>
#include <fun>
new g_AdminGMsg, g_Prefix, g_NoSlesh, g_AllChat
#define MAX_PLAYERS 32
new g_oldrank[MAX_PLAYERS+1]
new gMessage[256]
new gSayText
#define PLUGIN "Lite Rank System"
#define VERSION "1.3"
#define AUTHOR "xoymiii"
#define TASKID_INFO 7777
#define ACCESS_DENIED_BONUS ADMIN_LEVEL_H // Если у игрока имеется флаг t, то бонусы для него не выдаются
#define ADMIN_PREFIX ADMIN_BAN // Флаг для префикса админа (по умолчанию флаг d)
#define VIP_PREFIX ADMIN_LEVEL_F // Флаг для префикса випа (по умолчанию флаг r)
new MaxPlayers
new PlayerXP[33], PlayerLevel[33], g_MsgHud, g_HudSync, levelUp[33]
new g_XPvalue, g_XPheadshot, g_Bomb, g_XPc4def, g_XPc4pl, g_MinPlayers
new g_Levels
new bonus, g_Smoke, g_Flash, g_He, g_Armor, g_Bonus_Smoke, g_Bonus_Flash, g_Bonus_Flash2, g_Bonus_He, g_Bonus_Armor, g_Money, g_Bonus_Money, g_Lvl_Money, g_Damage, g_Bonus_Damage, g_Health, g_Bonus_Health, g_Block_Map
new Array:g_array_block_bonus
new bool:bonus_blocked
new LEVELS[31]
new const CLASSES[][] = { "I_1", "I_1", "I_2", "I_3", "I_4", "I_5", "I_6", "I_7", "I_8", "I_9", "I_10", "I_11", "I_12", "I_13", "I_14", "I_15", "I_16", "I_17", "I_18", "I_19", "I_20", "I_21", "I_22", "I_23", "I_24", "I_25", "I_26", "I_27", "I_28", "I_29", "I_30" }
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_dictionary("Lite_Rank_System.txt" )
register_logevent( "EventRoundStart", 2, "1=Round_Start" )
register_event( "DeathMsg","EventDeath", "a")
register_event("Damage", "damage_message", "b", "2!0", "3=0", "4!0")
set_task(1.0, "Info", TASKID_INFO, "", 0, "b")
g_MsgHud = CreateHudSyncObj()
g_HudSync = CreateHudSyncObj()
g_array_block_bonus = ArrayCreate(32, 1)
g_Prefix = register_cvar("lrs_prefix","1")
g_AdminGMsg = register_cvar("lrs_adminchat", "1")
g_NoSlesh = register_cvar("lrs_noslesh","1")
g_AllChat = register_cvar("lrs_chat","1")
g_XPvalue = register_cvar("lrs_xp_value", "1")
g_Bomb = register_cvar("lrs_bomb", "1")
g_MinPlayers = register_cvar("lrs_min_players", "3")
g_XPc4def = register_cvar("lrs_xp_c4def", "3")
g_XPc4pl = register_cvar("lrs_xp_c4pl", "3")
g_XPheadshot = register_cvar("lrs_xp_hs", "1")
g_Levels = register_cvar("lrs_levels", "0 10 20 30 50 100 150 200 250 300 350 400 500 600 700 800 1000 1200 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 6500 7000")
bonus = register_cvar("lrs_bonus", "1")
g_Block_Map = register_cvar("lrs_block_map", "1")
g_Smoke = register_cvar("lrs_smoke", "1")
g_Flash = register_cvar("lrs_flash", "1")
g_He = register_cvar("lrs_he", "1")
g_Armor = register_cvar("lrs_armor", "1")
g_Money = register_cvar("lrs_money", "1")
g_Damage = register_cvar("lrs_damage", "1")
g_Health = register_cvar("lrs_health", "1")
g_Bonus_Smoke = register_cvar("lrs_b_smoke", "10")
g_Bonus_Flash = register_cvar("lrs_b_flash", "15")
g_Bonus_Flash2 = register_cvar("lrs_b_flash2", "17")
g_Bonus_He = register_cvar("lrs_b_he", "20")
g_Bonus_Armor = register_cvar("lrs_b_armor", "22")
g_Lvl_Money = register_cvar("lrs_lvl_money", "25")
g_Bonus_Money = register_cvar("lrs_b_money", "1000")
g_Bonus_Damage = register_cvar("lrs_b_damage", "27")
g_Bonus_Health = register_cvar("lrs_b_health", "28")
register_concmd("lrs_lockmap", "MapConst", ADMIN_RCON, "Lock Map. <map>")
gSayText = get_user_msgid ("SayText")
register_clcmd("say", "hookSay")
register_clcmd("say_team", "hookSayTeam")
new configsDir[64]
get_configsdir(configsDir, 63)
server_cmd("exec %s/Lite_Rank_System.cfg", configsDir)
MaxPlayers = get_maxplayers()
set_task(0.1, "BlockMapBonus")
set_task(0.1, "LoadSettings")
set_task(9.0, "regen", _, _, _, "b")
}
public BlockMapBonus()
{
if(get_pcvar_num(g_Block_Map))
{
new Map[32]
get_mapname(Map, 31)
for(new i = 0; i < ArraySize(g_array_block_bonus); i++)
{
new block_bonus[32]
ArrayGetString(g_array_block_bonus, i, block_bonus, 31)
if(equal(Map, block_bonus))
{
bonus_blocked = true
break
}
else
bonus_blocked = false
}
}
}
public MapConst(id, level, cid)
{
if(!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new arg[32]
read_argv(1, arg, 31)
ArrayPushString(g_array_block_bonus, arg)
return PLUGIN_HANDLED
}
public LoadSettings() {
new i
new cvLevels[256], LVL[31][16]
get_pcvar_string(g_Levels, cvLevels, 255)
trim(cvLevels)
parse(cvLevels,
LVL[0], 15, LVL[1], 15, LVL[2], 15, LVL[3], 15, LVL[4], 15, LVL[5], 15, LVL[6], 15, LVL[7], 15, LVL[8], 15, LVL[9], 15,
LVL[10], 15, LVL[11], 15, LVL[12], 15, LVL[13], 15, LVL[14], 15, LVL[15], 15, LVL[16], 15, LVL[17], 15, LVL[18], 15, LVL[19], 15,
LVL[20], 15, LVL[21], 15, LVL[22], 15, LVL[23], 15, LVL[24], 15, LVL[25], 15, LVL[26], 15, LVL[27], 15, LVL[28], 15, LVL[29], 15, LVL[30], 15
)
for (i = 0; i < 30; i++)
LEVELS[i+1] = str_to_num(LVL[i])
return PLUGIN_HANDLED
}
public hookSay(id)
{
if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id) || !get_pcvar_num(g_Prefix))
return PLUGIN_CONTINUE;
new message[192],Len
read_args(message, 191)
remove_quotes(message)
if(is_admin_msg(message))
return PLUGIN_CONTINUE
if(is_empty_message(message))
{
ChatColor(id, "^1[^4%L^1] %L",LANG_PLAYER,"LRS_TAG", LANG_PLAYER,"EMPTY_MSG")
return PLUGIN_HANDLED
}
if(get_pcvar_num(g_NoSlesh))
{
if(is_has_slash(message))
return PLUGIN_HANDLED_MAIN
}
new szName[32]
get_user_name(id,szName,31)
if(get_user_flags(id) & ADMIN_PREFIX)
{
Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1[^4%L^1] [^4%L^1] ", LANG_PLAYER, "ADMIN", LANG_PLAYER, CLASSES[PlayerLevel[id]])
switch(get_pcvar_num(g_AdminGMsg))
{
case 1:
{
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^4%s",message)
}
case 2:
{
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s",message)
}
default:
{
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
}
}
Chat(id,0,get_pcvar_num(g_AllChat))
}
else if(get_user_flags(id) & VIP_PREFIX)
{
Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1[^4%L^1] [^4%L^1] ", LANG_PLAYER, "VIP", LANG_PLAYER, CLASSES[PlayerLevel[id]])
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
Chat(id,0,get_pcvar_num(g_AllChat))
}
else
{
Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1[^4%L^1] ", LANG_PLAYER, CLASSES[PlayerLevel[id]])
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
Chat(id,0,get_pcvar_num(g_AllChat))
}
return PLUGIN_HANDLED_MAIN
}
public hookSayTeam(id)
{
if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id) || !get_pcvar_num(g_Prefix))
return PLUGIN_CONTINUE;
new message[192],Len
read_args(message, 191)
remove_quotes(message)
if(is_admin_msg(message))
return PLUGIN_CONTINUE
if(is_empty_message(message))
{
ChatColor(id, "^1[^4%L^1] %L",LANG_PLAYER,"LRS_TAG", LANG_PLAYER,"EMPTY_MSG")
return PLUGIN_HANDLED
}
if(get_pcvar_num(g_NoSlesh))
{
if(is_has_slash(message))
return PLUGIN_HANDLED_MAIN
}
new szName[32]
get_user_name(id,szName,31)
if(get_user_flags(id) & ADMIN_PREFIX)
{
Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1%L [^4%L] ^1[^4%L^1] ^3%s^1 : ", LANG_PLAYER, "SEND_TEAM", LANG_PLAYER, "ADMIN", LANG_PLAYER, CLASSES[PlayerLevel[id]],szName)
switch(get_pcvar_num(g_AdminGMsg))
{
case 1:
{
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^4%s",message)
}
case 2:
{
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s",message)
}
default:
{
Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
}
}
Chat(id,1,get_pcvar_num(g_AllChat))
}
else if(get_user_flags(id) & VIP_PREFIX)
{
Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1%L [^4%L] ^1[^4%L^1] ", LANG_PLAYER, "SEND_TEAM", LANG_PLAYER, "VIP", LANG_PLAYER, CLASSES[PlayerLevel[id]])
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
Chat(id,1,get_pcvar_num(g_AllChat))
}
else
{
Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1%L ^1[^4%L^1] ",LANG_PLAYER,"SEND_TEAM",LANG_PLAYER, CLASSES[PlayerLevel[id]])
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
Chat(id,1,get_pcvar_num(g_AllChat))
}
return PLUGIN_HANDLED_MAIN
}
stock is_admin_msg(const Message[])
{
if(Message[0] == '@')
return true
return false
}
stock is_empty_message(const Message[])
{
if(equal(Message, "") || !strlen(Message))
return true
return false
}
stock Chat(id,team,chat_type)
{
if(team)
{
if(chat_type)
{
for(new i = 0; i <= MaxPlayers; i++)
{
if(!is_user_connected(i))
continue
if(get_user_team(id) == get_user_team(i))
send_message(gMessage, id, i)
}
} else {
if(is_user_alive(id))
{
for(new i = 0; i <= MaxPlayers; i++)
{
if(!is_user_connected(i) || !is_user_alive(i))
continue
if(get_user_team(id) == get_user_team(i))
send_message(gMessage, id, i)
}
} else if(!is_user_alive(id)){
for(new i = 0; i <= MaxPlayers; i++)
{
if(!is_user_connected(i) || is_user_alive(i))
continue
if(get_user_team(id) == get_user_team(i))
send_message(gMessage, id, i)
}
}
}
} else{
if(chat_type)
{
for(new i = 0; i <= MaxPlayers; i++)
{
if(!is_user_connected(i))
continue
send_message(gMessage, id, i)
}
} else {
if(is_user_alive(id))
{
for(new i = 0; i <= MaxPlayers; i++)
{
if(!is_user_connected(i) || !is_user_alive(i))
continue
send_message(gMessage, id, i)
}
} else if(!is_user_alive(id)){
for(new i = 0; i <= MaxPlayers; i++)
{
if(!is_user_connected(i) || is_user_alive(i))
continue
send_message(gMessage, id, i)
}
}
}
}
}
stock send_message(const message[], const id, const i)
{
message_begin(MSG_ONE, gSayText, {0, 0, 0}, i)
write_byte(id)
write_string(message)
message_end()
}
stock is_has_slash(const Message[])
{
if(Message[0] == '/')
return true
return false
}
public checkLvl(id) {
if(id > 0 && id < 33) {
if (PlayerLevel[id] <= 0)
PlayerLevel[id] = 1
if (PlayerLevel[id] < 30) {
while(PlayerXP[id] >= LEVELS[PlayerLevel[id]+1]) {
PlayerLevel[id]++
levelUp[id] = 1
new Name[32]
get_user_name(id, Name, 31)
if(cs_get_user_team(id) == CS_TEAM_T)
ChatColor(0, "%L %L", LANG_PLAYER,"LRS_TAG", LANG_PLAYER,"NEW_LEVEL", Name, LANG_PLAYER,CLASSES[PlayerLevel[id]])
else
ChatColor(0, "%L %L", LANG_PLAYER,"LRS_TAG", LANG_PLAYER,"NEW_LEVEL", Name, LANG_PLAYER,CLASSES[PlayerLevel[id]])
}
}
}
}
public EventDeath() {
new iVictim = read_data(2)
new iTeam = get_user_team(iVictim)
new iKiller = read_data(1)
new headshot = read_data(3)
if(iKiller != iVictim && get_user_team(iKiller) != iTeam && is_user_connected(iKiller) && PlayerLevel[iKiller] < 30) {
if (get_pcvar_num(g_XPheadshot)) {
if(headshot)
PlayerXP[iKiller] += get_pcvar_num(g_XPvalue) * 2
else
PlayerXP[iKiller] += get_pcvar_num(g_XPvalue)
}
else
PlayerXP[iKiller] += get_pcvar_num(g_XPvalue)
checkLvl(iKiller)
}
return PLUGIN_CONTINUE
}
public EventRoundStart()
{
for(new id = 1; id <= MaxPlayers; id++)
{
if(!is_user_alive(id) || !is_user_connected(id) || !get_pcvar_num(bonus) || bonus_blocked || get_user_flags(id) & ACCESS_DENIED_BONUS)
return
if(get_pcvar_num(g_Smoke) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Smoke))
give_item(id,"weapon_smokegrenade")
if(get_pcvar_num(g_Flash) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Flash))
give_item(id,"weapon_flashbang")
if(get_pcvar_num(g_Flash) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Flash2))
give_item(id,"weapon_flashbang")
if(get_pcvar_num(g_He) && PlayerLevel[id] > get_pcvar_num(g_Bonus_He))
give_item(id,"weapon_hegrenade")
if(get_pcvar_num(g_Armor) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Armor))
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
if(get_pcvar_num(g_Money) && PlayerLevel[id] > get_pcvar_num(g_Lvl_Money))
{
if(cs_get_user_money(id) < 8000)
{
cs_set_user_money(id, cs_get_user_money(id) + get_pcvar_num(g_Bonus_Money))
ChatColor(id, "%L %L", LANG_PLAYER, "LRS_TAG", LANG_PLAYER, "BONUS_MONEY", get_pcvar_num(g_Bonus_Money))
}
}
}
}
public damage_message(id)
{
new attacker = get_user_attacker(id)
new damage = read_data(2)
if(!get_pcvar_num(bonus) || !get_pcvar_num(g_Damage) || get_user_flags(id) & ACCESS_DENIED_BONUS)
return
if (is_user_connected(attacker) && PlayerLevel[attacker] > get_pcvar_num(g_Bonus_Damage))
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(attacker, g_HudSync, "%i", damage)
}
}
public regen(id)
{
for(new id = 1; id <= MaxPlayers; id ++)
{
if(!get_pcvar_num(bonus) || !get_pcvar_num(g_Health) || bonus_blocked || get_user_flags(id) & ACCESS_DENIED_BONUS)
return
if(is_user_alive(id) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Health))
{
new Float:health; pev(id, pev_health, health)
if(health < 100.0)
set_pev(id, pev_health, health + 3.0)
}
}
}
public bomb_explode(id)
{
if(!is_user_connected(id) || !is_user_alive(id) || get_user_team(id) != 1 || get_pcvar_num(g_XPc4pl) < 1 || get_pcvar_num(g_Bomb) != 1)
return
if(get_playersnum() <= get_pcvar_num(g_MinPlayers))
{
ChatColor(id, "%L", LANG_PLAYER,"MIN_PLAYERS")
} else {
PlayerXP[id] += get_pcvar_num(g_XPc4pl)
}
}
public bomb_defused(id)
{
if(!is_user_connected(id) || !is_user_alive(id) || get_user_team(id) != 2 || get_pcvar_num(g_XPc4def) < 1 || get_pcvar_num(g_Bomb) != 1)
return
if(get_playersnum() <= get_pcvar_num(g_MinPlayers))
{
ChatColor(id, "%L", LANG_PLAYER,"MIN_PLAYERS")
} else {
PlayerXP[id] += get_pcvar_num(g_XPc4def)
}
}
public Info() {
for(new id = 1; id <= MaxPlayers; id++) {
if(!is_user_bot(id) && is_user_connected(id)) {
static buffer[192], len
new osef[8]
g_oldrank[id] = get_user_stats(id, osef, osef)
new maxrank = get_statsnum()
if(!is_user_alive(id)) {
new id2 = pev(id, pev_iuser2)
if(id2 > 0) {
new Name2[32]
get_user_name(id2, Name2, 31)
if(PlayerLevel[id2] < 30) {
len = format(buffer, charsmax(buffer), "%L: %s", LANG_PLAYER,"A_NAME", Name2)
len += format(buffer[len], charsmax(buffer) - len, "^n%L:", LANG_PLAYER,"ZVANIE")
len += format(buffer[len], charsmax(buffer) - len, " %L", LANG_PLAYER,CLASSES[PlayerLevel[id2]])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"PL_XP",PlayerXP[id2])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"RANK", g_oldrank[id2])
}
else {
len = format(buffer, charsmax(buffer), "%L: %s", LANG_PLAYER,"A_NAME", Name2)
len += format(buffer[len], charsmax(buffer) - len, "^n%L:",LANG_PLAYER,"ZVANIE")
len += format(buffer[len], charsmax(buffer) - len, " %L",LANG_PLAYER,CLASSES[PlayerLevel[id2]])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %L",LANG_PLAYER,"PL_XP", LANG_PLAYER,"PL_MAX")
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"RANK", g_oldrank[id2])
}
}
else {
if(PlayerLevel[id] < 30) {
len = format(buffer, charsmax(buffer) - len, "%L: %L", LANG_PLAYER,"ZVANIE", LANG_PLAYER,CLASSES[PlayerLevel[id]])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d",LANG_PLAYER,"PL_XP",PlayerXP[id])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"RANK", g_oldrank[id])
}
else {
len = format(buffer, charsmax(buffer) - len, "%L: %L", LANG_PLAYER,"ZVANIE", LANG_PLAYER,CLASSES[PlayerLevel[id]])
len += format(buffer[len], charsmax(buffer) - len, "^n%L",LANG_PLAYER,"PL_MAX")
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"RANK", g_oldrank[id])
}
}
}
else {
if((PlayerLevel[id] < 30) && (is_user_alive(id))) {
len = format(buffer, charsmax(buffer), "%L", LANG_PLAYER,CLASSES[PlayerLevel[id]])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d %L %d", LANG_PLAYER,"PL_XP",PlayerXP[id], LANG_PLAYER,"IZ", LEVELS[PlayerLevel[id]+1])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d %L %d", LANG_PLAYER,"RANK", g_oldrank[id], LANG_PLAYER,"IZ", maxrank)
}
else {
len = format(buffer, charsmax(buffer), "%L",LANG_PLAYER,CLASSES[PlayerLevel[id]])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %L",LANG_PLAYER,"PL_XP", LANG_PLAYER,"PL_MAX")
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d %L %d", LANG_PLAYER,"RANK", g_oldrank[id], LANG_PLAYER,"IZ", maxrank)
}
}
set_hudmessage(255, 255, 255, 0.01, 0.19, 0, 0.0, 1.0, _, _, -1)
ShowSyncHudMsg(id, g_MsgHud, "%s", buffer)
}
}
return PLUGIN_CONTINUE
}
public client_putinserver(id) {
set_task(0.1, "load_client_data", id)
}
public load_client_data(id) {
if(!is_user_connected(id))
return PLUGIN_HANDLED
new stats[8], bodyhits[8], stats2[4]
get_user_stats(id, stats, bodyhits)
if (get_pcvar_num(g_XPc4def))
get_user_stats2(id, stats2)
if (get_pcvar_num(g_XPheadshot))
PlayerXP[id] = ((stats[2]*2 + (stats[0] - stats[2])) + (stats2[1]*3 + stats2[3]*3)) * get_pcvar_num(g_XPvalue)
else
PlayerXP[id] = (stats2[1]*3 + stats2[3]*3 + stats[0]) * get_pcvar_num(g_XPvalue)
for(new i = 1; i <= 30; i++) {
if (i < 30) {
if (PlayerXP[id] >= LEVELS[i] && PlayerXP[id] < LEVELS[i+1])
PlayerLevel[id] = i
}
else {
if (PlayerXP[id] >= LEVELS[30])
PlayerLevel[id] = 30
}
}
return PLUGIN_HANDLED
}
/*public plugin_natives()
register_native("get_user_lvl", "native_get_user_lvl", 1)
public native_get_user_lvl(id)
return PlayerLevel[id]
*/
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!t", "^3") // Team Color
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();
}
}
}
}