15/05/2019, 12:52 AM
hola buenas si se fijan en tema de abajo es de mis apuesta de mis frags
tonces tengo unos problemas con mis 2 plugins que me ayudaron los amigos
el plugins de apuesta
1 - no me descuenta los frags , perdidos
2 - no tienen cordinacion con plugins de rangos si en los frags que salen que tengo 40 frags [al poner /rango salen los frags que tengo son 40]
quiero apostar 6 frags me sale que no tengo frags sufuciente
me gustaria que me ayuden arreglar esto
este es mi plugins de rango
este plugins hay que arreglar unos detallitos
1 - quitar 2 frags por cuchillo
2- quitar 2 frags por matar de hs
solo dejar 1 frags , de la forma que mate a cualquier player solo cuenta como 1 frags
este es mi plugins de apuesta
el plugins de apuesta
1 - no me descuenta los frags , perdidos
2 - no tienen cordinacion con plugins de rangos si en los frags que salen que tengo 40 frags [al poner /rango salen los frags que tengo son 40]
quiero apostar 6 frags me sale que no tengo frags sufuciente
me gustaria que me ayuden arreglar esto
tonces tengo unos problemas con mis 2 plugins que me ayudaron los amigos
el plugins de apuesta
1 - no me descuenta los frags , perdidos
2 - no tienen cordinacion con plugins de rangos si en los frags que salen que tengo 40 frags [al poner /rango salen los frags que tengo son 40]
quiero apostar 6 frags me sale que no tengo frags sufuciente
me gustaria que me ayuden arreglar esto
este es mi plugins de rango
este plugins hay que arreglar unos detallitos
1 - quitar 2 frags por cuchillo
2- quitar 2 frags por matar de hs
solo dejar 1 frags , de la forma que mate a cualquier player solo cuenta como 1 frags
Código PHP:
/* -----------------------------------------
Creditos: Solo para Raulitop, por el hook say :3
Version Con Guardado NFVAULT
------------------------------- */
#include <amxmisc>
#include <fakemeta>
#include <nfvault>
new const PLUGIN[] = "Rangos CS:GO"
#define VERSION "1.0"
new const AUTHOR[] = "kikizon"
/* =============================================
|= [EMPIEZA SECCION MODIFICABLE] =|
==============================================*/
/* ====================================
*[CONSTANTES]*
=====================================*/
new const Prefijo[] = "!g[RANGOS]!y" // Prefijo en say
new const Sonido[] = "rango/powerup.wav" // Sonido Rango UP
/* ====================================
*[CONST NOMBRES DE RANGOS]*
=====================================*/
enum _:DATA
{
NOMBRE[30],
FRAGS
}
new const Rangos[][DATA] = {
{ "[topo]", 200 },
{ "[chchi]", 400 },
{ "[feli]", 500 },
{ "[tol]", 700 },
{ "[666]", 800 },
{ "[anues]", 1000 },
{ "[luli]", 1500 },
{ "[lego]", 2000 },
{ "[maisis]", 3000 },
{ "[trico]", 4000 },
{ "[corazon]", 5000 },
{ "[mamita]", 8000 },
{ "[papito]",9000 },
{ "[feliz]", 20000 }
}
/* =============================================
|= [TERMINA SECCION MODIFICABLE] =|
==============================================*/
/* ====================================
*[VARIABLES]*
=====================================*/
new g_rango[33], g_frags[33]
new g_maxplayers, g_msgTeamInfo, g_msgSayText, g_playername[33][32];
#define TASK_HUD 2100
#define ID_HUD (taskid - TASK_HUD)
#define XD is_user_connected(id) || !is_user_bot(id) || !is_user_hltv(id)
new VaultRango[128], szRangos[180], szKey[30]
/* ====================================
*[Cvars]*
=====================================*/
new cvar_knifex2, cvar_hsx2
/* ====================================
*[INIT]*
=====================================*/
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_concmd("dar_frags", "cmdFrags", ADMIN_RCON, "- <Nombre> <Cantidad> Vende y/o Regala Frags a un Users")
register_event("DeathMsg", "Event_DeathMsg", "a")
register_logevent("logevent_round_end", 2, "1=Round_End")
register_event("DeathMsg", "Event_DeathMsg", "a")
register_logevent("logevent_round_end", 2, "1=Round_End")
// este tenia que ir primero
register_clcmd("say /rango", "ver_rango")
register_clcmd("say", "message_saytext")
register_clcmd("say_team", "message_sayteam")
/* =============================================
|= [EMPIEZA SECCION MODIFICABLE] =|
==============================================*/
cvar_knifex2 = register_cvar("rangos_knifex2", "0") // 1 - x2 frags con knife | 0 - ÑO :v
cvar_hsx2 = register_cvar("rangos_hsx2", "0") // 1 - x2 frags de HeadShot | 0 - ÑO :v
/* =============================================
|= [TERMINA SECCION MODIFICABLE] =|
==============================================*/
g_maxplayers = get_maxplayers()
g_msgTeamInfo = get_user_msgid("TeamInfo")
g_msgSayText = get_user_msgid("SayText")
nfv_file("Ranguitos.txt", VaultRango, charsmax(VaultRango))
}
/* ====================================
*[PRECACHE]*
=====================================*/
public plugin_precache()
precache_sound(Sonido)
/* ===================================
*[VER RANGO]*
=====================================*/
public ver_rango(id) {
chatcolor(id, "!g%s!y |!tRango Actual: !y%s|!tFrags: !y%d|", Prefijo, Rangos[g_rango[id]][NOMBRE], g_frags[id])
chatcolor(id, "!g%s!y |!tProximo Rango: !y%s|!tFrags Restantes: !y%d|", Prefijo, Rangos[g_rango[id]+1][NOMBRE], Rangos[g_rango[id]][FRAGS] - g_frags[id])
}
/* ==================================
[PUTINSERVER]
===================================*/
public client_putinserver(id) {
get_user_name( id, g_playername[ id ], charsmax( g_playername[ ] ) );
g_rango[id] = 0
g_frags[id] = 0
Cargar(id)
}
/* ==================================
[DISCONNECT]
===================================*/
public client_disconnect(id) {
if(XD) Guardar(id);
}
/* ==================================
[ROUND END]
===================================*/
public logevent_round_end() {
for(new id = 1; id <= g_maxplayers; id++) {
if(XD)
Guardar(id);
}
}
/* ==================================
[DEATHMSG]
===================================*/
public Event_DeathMsg() {
new attacker = read_data(1)
new victim = read_data(2)
new hs = read_data(3)
new weaponid = get_user_weapon(attacker)
if(victim == attacker) return;
if(is_user_alive(attacker)) {
g_frags[attacker]++
if(get_pcvar_num(cvar_knifex2)) {
if(weaponid == CSW_KNIFE)
g_frags[attacker]++
}
if(get_pcvar_num(cvar_hsx2)) {
if(hs) g_frags[attacker]++
}
AumentarRango(attacker)
}
}
/*========
cmdFrags| aca Registramos el evento de Dar Frags
==========*/
public cmdFrags(id, level, cid) {
if(!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED;
new name[32]; read_argv(1, name, charsmax(name))
new player = cmd_target(id, name, CMDTARGET_ALLOW_SELF)
if(!player)
return PLUGIN_HANDLED;
new num[10]; read_argv(2, num, charsmax(num))
g_frags[player] += str_to_num(num)
new nameuser[32], nameadmin[32]
get_user_name(id, nameadmin, charsmax(nameadmin))
get_user_name(player, nameuser, charsmax(nameuser))
client_print(0, print_chat, "[AMXX] Administrador %s: Regalar %s Frags a %s", nameadmin, num, nameuser)
AumentarRango(player)
return PLUGIN_HANDLED;
}
/* ================================
[UPDATE RANGO]
=================================*/
AumentarRango(id) {
new Aumento = false
while(g_frags[id] >= Rangos[g_rango[id]][FRAGS]) {
Aumento = true
g_rango[id]++
}
if(Aumento) {
chatcolor(id, "%s Felicidades subiste al rango: !g[ %s ]", Prefijo, Rangos[g_rango[id]][NOMBRE])
client_cmd(id, "spk %s", Sonido)
Aumento = false
}
}
/*=====================================
*[SAY]*
=====================================*/
public message_saytext(id) {
static said[192]
read_args(said, charsmax(said))
remove_quotes(said)
if (said[0] == '@' || said[0] == '%' || said[0] == '/' || said[0] == '.' || said[0] == '!' || equal (said, ""))
return PLUGIN_HANDLED
if (!ValidMessage(said, 1)) return PLUGIN_CONTINUE;
static color[11], name[32], alive[11]
get_user_team(id,color,charsmax(color))
get_user_name(id,name,charsmax(name))
if (is_user_alive (id)) {
alive = ""
} else {
alive = "[Muerto]"
}
if (is_user_admin(id)) {
if (get_user_flags(id) & ADMIN_KICK)
format(said, charsmax(said), "^x01%s^x04%s ^x03%s ^x04: %s", alive, Rangos[g_rango[id]][NOMBRE], name, said)
} else {
format(said, charsmax(said), "^x01%s^04%s ^x03%s ^x01: %s", alive, Rangos[g_rango[id]][NOMBRE], name, said)
}
static i, team[11]
for (i = 1; i <= g_maxplayers; i++) {
if (!is_user_connected(i)) continue
get_user_name(id,name,charsmax(name))
if (is_user_admin(i) || is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i)) {
get_user_team(i, team, charsmax(team))
changeTeamInfo(i, color)
writeMessage(i, said)
changeTeamInfo(i, team)
}
}
return PLUGIN_HANDLED_MAIN;
}
public message_sayteam(id)
{
static said[192]
read_args(said, charsmax(said))
remove_quotes(said)
if (said[0] == '@' || said[0] == '%' || said[0] == '/' || said[0] == '.' || said[0] == '!' || equal (said, ""))
return PLUGIN_HANDLED
if (!ValidMessage(said, 1)) return PLUGIN_CONTINUE;
static playerTeam, playerTeamName[19]
playerTeam = get_user_team(id)
switch (playerTeam) {
case 1: copy (playerTeamName, 6, "TE")
case 2: copy (playerTeamName, 8, "CT")
default: copy (playerTeamName, 11, "SPEC")
}
static color[11], name[32], alive[11]
get_user_team(id,color,charsmax(color))
get_user_name(id,name,charsmax(name))
if (is_user_alive (id)) {
alive = ""
} else {
alive = "[MUERTO]"
}
if (is_user_admin(id)) {
if (get_user_flags(id) & ADMIN_RCON)
format(said, charsmax(said), "^x01%s [ %s ] ^x04%s ^x03%s ^x04: %s", alive, playerTeam, Rangos[g_rango[id]], name, said)
} else {
format(said, charsmax(said), "^x01%s [ %s ] ^04%s ^x03%s ^x01: %s", alive, playerTeam, Rangos[g_rango[id]],name, said)
}
static i, team[11]
for (i = 1; i <= g_maxplayers; i++) {
if (!is_user_connected(i)) continue;
get_user_name(id,name,charsmax(name))
if (get_user_team(i) == playerTeam || is_user_admin(i)) {
if (is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i)) {
get_user_team(i, team, charsmax(team))
changeTeamInfo(i, color)
writeMessage(i, said)
changeTeamInfo(i, team)
}
}
}
return PLUGIN_HANDLED_MAIN;
}
public changeTeamInfo(player, team[]) {
message_begin(MSG_ONE, g_msgTeamInfo, _, player)
write_byte(player)
write_string(team)
message_end()
}
public writeMessage(player, message[]) {
message_begin(MSG_ONE, g_msgSayText, {0, 0, 0}, player)
write_byte(player)
write_string(message)
message_end()
}
/* ===================================
*[GUARDADO]*
=====================================*/
Guardar(id) {
formatex(szKey, charsmax(szKey), "data_rangos")
formatex(szRangos, charsmax(szRangos), "%d %d", g_frags[id], g_rango[id])
nfv_set_data(VaultRango, szKey, g_playername[id], szRangos)
}
Cargar(id) {
new g_load_c1[25], g_load_c2[25]
formatex(szKey, charsmax(szKey), "data_rangos")
if(!nfv_get_data(VaultRango, szKey, g_playername[id], szRangos, sizeof(szRangos) - 1)) return;
parse(szRangos, g_load_c1, charsmax(g_load_c1), g_load_c2, charsmax(g_load_c2))
g_frags[id] = str_to_num(g_load_c1)
g_rango[id] = str_to_num(g_load_c2)
}
/* ===================================
*[STOCKS]*
=====================================*/
// stock de chatcolor
stock chatcolor(id, const input[], any:...) {
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^4"); // Verde
replace_all(msg, 190, "!y", "^1"); // Default
replace_all(msg, 190, "!t", "^3"); // Color del Equipo
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();
}
}
}
}
public plugin_natives()
{
register_native("rangos_get_user_frags", "get_Frags", 1)
register_native("rangos_set_user_frags", "set_Frags", 1) // Solo resta y suma.
}
public get_Frags(id)
{
return g_frags[id];
}
public set_Frags(id, frags)
{
g_frags[id] = frags;
return g_frags[id];
}
// Stock para Saber Si el mensaje es valido
stock ValidMessage(text[], maxcount) {
static len, i, count
len = strlen(text)
count = 0
if (!len)
return false;
for (i = 0; i < len; i++) {
if (text[i] != ' ') {
count++
if (count >= maxcount)
return true;
}
}
return false;
}
este es mi plugins de apuesta
el plugins de apuesta
1 - no me descuenta los frags , perdidos
2 - no tienen cordinacion con plugins de rangos si en los frags que salen que tengo 40 frags [al poner /rango salen los frags que tengo son 40]
quiero apostar 6 frags me sale que no tengo frags sufuciente
me gustaria que me ayuden arreglar esto
Código PHP:
#include <amxmodx>
#include <cstrike>
new const Ganar[] = { "events/enemy_died.wav" } // Ganar una apuesta
new const Perder[] = { "events/friend_died.wav" } // Perer una apuesta
enum Colors
{
Gris = 33,
Rojo,
Azul
}
enum _DATA_BET { BET_AMOUNT, BET_MULTIPLIER };
new const g_PluginInfo[][] = { "Betting System", "v1.0", "RusselNight", "AMXX" };
new const g_BetAmounts[][_DATA_BET] =
{
{ 2, 1 },
{ 4, 2 },
{ 6, 3 },
{ 8, 4 }
};
new bool:g_bPlayerBetting[33] = false, g_iBetAmount[33], Float:g_fTimeBetProgress = 5.0, g_iPozo, g_iMinAmountDoN;
new bool:g_bFirstRound = true;
native rangos_get_user_frags(id);
native rangos_set_user_frags(id, frags);
public plugin_init()
{
register_plugin(g_PluginInfo[0], g_PluginInfo[1], g_PluginInfo[2]);
register_event("HLTV", "ev_NewRound", "a", "1=0", "2=0");
register_clcmd("say /ganar", "clcmd_Bet");
register_clcmd("say /ganartodo", "clcmd_Bet");
register_clcmd("say /bono", "clcmd_Pozo");
}
public plugin_precache()
{
precache_sound(Ganar)
precache_sound(Perder)
}
public client_disconnect(id)
{
g_bPlayerBetting[id] = false;
g_iBetAmount[id] = 0
}
public ev_NewRound()
{
if(g_bFirstRound)
{
g_iPozo = 10;
g_iMinAmountDoN = 100;
g_bFirstRound = false;
}
}
public clcmd_Bet(id)
{
Show_BetM(id);
return PLUGIN_HANDLED;
}
public Show_BetM(id)
{
static szText[256], iMenu, i;
formatex(szText, charsmax(szText), "Menu de Suerte");
iMenu = menu_create(szText, "Handled_BetM");
for(i = 0; i < sizeof(g_BetAmounts); i++)
{
formatex(szText, charsmax(szText), "%d frags - x%d (Multiplicar ganancia por x%d)" , g_BetAmounts[i][BET_AMOUNT], g_BetAmounts[i][BET_MULTIPLIER], g_BetAmounts[i][BET_MULTIPLIER]);
menu_additem(iMenu, szText);
}
if(rangos_get_user_frags(id) >= g_iMinAmountDoN)
{
menu_additem(iMenu, "\wJugar\y ME LA JUEGO");
}
else
{
formatex(szText, charsmax(szText), "\dJugar ME LA JUEGO \y[Necesitas %d Frags]", g_iMinAmountDoN);
menu_additem(iMenu, szText);
}
menu_setprop(iMenu, MPROP_EXITNAME, "\d[\rCerrar Menu\d]");
menu_display(id, iMenu);
return PLUGIN_HANDLED
}
public Handled_BetM(id, iMenu, iItem)
{
new szName[32];
get_user_name(id, szName, charsmax(szName));
if(iItem == MENU_EXIT)
{
menu_destroy(iMenu);
return PLUGIN_HANDLED;
}
if(g_bPlayerBetting[id])
{
ChatColor(id, Azul, "!g[%s]!y Ya estas!g realizando una apuesta.", g_PluginInfo[3]);
return PLUGIN_HANDLED;
}
if(iItem >= sizeof(g_BetAmounts))
{
if(rangos_get_user_frags(id) < g_iMinAmountDoN)
{
ChatColor(id, Azul,"!g[%s]!y No tienes!g suficientes frags.", g_PluginInfo[3]);
return PLUGIN_HANDLED;
}
ChatColor(0, Azul, "!g[%s]!t %s!y aposto todos sus frags!g (%d)!y en!g Me la juego!!", g_PluginInfo[3], szName, rangos_get_user_frags(id));
set_task(g_fTimeBetProgress, "Bet_DoN_Result", id);
}
else
{
if(get_user_frags(id) < g_BetAmounts[iItem][BET_AMOUNT])
{
ChatColor(id, Azul, "!g[%s]!y No tienes!g frags suficientes!.", g_PluginInfo[3]);
return PLUGIN_HANDLED;
}
ChatColor(0, Azul, "!g[%s]!t %s!y - aposto!g %d frags.", g_PluginInfo[3], szName, g_BetAmounts[iItem][BET_AMOUNT]);
set_task(g_fTimeBetProgress, "Bet_Result", id);
}
g_bPlayerBetting[id] = true;
g_iBetAmount[id] = iItem;
return PLUGIN_HANDLED;
}
public Bet_Result(id)
{
if(!is_user_connected(id))
return;
new szName[32];
get_user_name(id, szName, charsmax(szName));
switch(random_num(1, 103))
{
case 1..25:
{
ChatColor(0, Azul, "!g[%s]!t %s!y - Gano!g %d Frags...", g_PluginInfo[3], szName, g_BetAmounts[g_iBetAmount[id]][BET_AMOUNT]);
client_cmd(id, "spk %s", Ganar)
rangos_set_user_frags(id, (rangos_get_user_frags(id) + g_BetAmounts[g_iBetAmount[id]][BET_AMOUNT]));
}
case 26..85:
{
ChatColor(0, Azul, "!g[%s]!t %s!y perdio!g %d Frags!", g_PluginInfo[3], szName, g_BetAmounts[g_iBetAmount[id]][BET_AMOUNT]);
client_cmd(id, "spk %s", Perder)
g_iPozo += (g_BetAmounts[g_iBetAmount[id]][BET_AMOUNT]/4);
}
case 86:
{
ChatColor(0, Azul, "!g[%s]!t %s -!g GANO EL POZO! - !y%d Frags!", g_PluginInfo[3], szName, g_iPozo);
client_cmd(id, "spk %s", Ganar)
rangos_set_user_frags(id, (rangos_get_user_frags(id) + g_iPozo));
g_iPozo = 10;
}
case 87..90:
{
ChatColor(0, Azul, "!g[%s]!t %s!y Gano!g %d Frags X%d!!g ( +%d Frags)", g_PluginInfo[3], szName, g_BetAmounts[g_iBetAmount[id]][BET_AMOUNT], g_BetAmounts[g_iBetAmount[id]][BET_MULTIPLIER], g_BetAmounts[g_iBetAmount[id]][BET_AMOUNT]*g_BetAmounts[g_iBetAmount[id]][BET_MULTIPLIER]);
rangos_set_user_frags(id, rangos_get_user_frags(id) + g_BetAmounts[g_iBetAmount[id]][BET_AMOUNT] * g_BetAmounts[g_iBetAmount[id]][BET_MULTIPLIER])
client_cmd(id, "spk %s", Ganar)
}
case 91..94:
{
ChatColor(0, Azul, "!g[%s]!t %s!y Gano!g 16x%d Frags (+%d Frags)", g_PluginInfo[3], szName, g_BetAmounts[g_iBetAmount[id]][BET_MULTIPLIER], (16*g_BetAmounts[g_iBetAmount[id]][BET_MULTIPLIER]));
client_cmd(id, "spk %s", Ganar)
rangos_set_user_frags(id, rangos_get_user_frags(id) + g_BetAmounts[g_iBetAmount[id]][BET_MULTIPLIER]*16);
}
case 95..98:
{
ChatColor(0, Azul, "!g[%s]!t %s!y Gano!g 32x%d Frags!g (+%d Frags)", g_PluginInfo[3], szName, g_BetAmounts[g_iBetAmount[id]][BET_MULTIPLIER], (32*g_BetAmounts[g_iBetAmount[id]][BET_MULTIPLIER]));
client_cmd(id, "spk %s", Ganar)
rangos_set_user_frags(id, rangos_get_user_frags(id) + g_BetAmounts[g_iBetAmount[id]][BET_MULTIPLIER]*32);
}
case 99..102:
{
ChatColor(0, Azul, "!g[%s]!t %s!y Gano!g 88x%d Frags!g (+%d Frags)", g_PluginInfo[3], szName, g_BetAmounts[g_iBetAmount[id]][BET_MULTIPLIER], (88*g_BetAmounts[g_iBetAmount[id]][BET_MULTIPLIER]));
client_cmd(id, "spk %s", Ganar)
rangos_set_user_frags(id, rangos_get_user_frags(id) + g_BetAmounts[g_iBetAmount[id]][BET_MULTIPLIER]*88);
}
case 103:
{
ChatColor(0, Azul, "!g[%s]!t %s!y Gano!g 160x%d Frags!g (+%d Frags)", g_PluginInfo[3], szName, g_BetAmounts[g_iBetAmount[id]][BET_MULTIPLIER], (160*g_BetAmounts[g_iBetAmount[id]][BET_MULTIPLIER]));
client_cmd(id, "spk %s", Ganar)
rangos_set_user_frags(id, rangos_get_user_frags(id) + g_BetAmounts[g_iBetAmount[id]][BET_MULTIPLIER]*160);
}
}
g_bPlayerBetting[id] = false;
g_iBetAmount[id] = 0;
}
public Bet_DoN_Result(id)
{
if(!is_user_connected(id))
return;
new szName[32];
get_user_name(id, szName, charsmax(szName));
switch(random_num(1, 100))
{
case 1..20:
{
ChatColor(0, Azul, "!g[%s]!t %s!y gano el!g DOBLE DE SUS FRAGS!! !g(+%d Frags)", g_PluginInfo[3], szName, get_user_frags(id));
rangos_set_user_frags(id, rangos_get_user_frags(id) * 2);
}
case 21..100:
{
ChatColor(0, Azul, "!g[%s]r!t %s!y perdio todos sus!g FRAGS !yen el!g Me la juego!! (-%d Frags)", g_PluginInfo[3], szName, get_user_frags(id))
client_cmd(id, "spk %s", Perder)
g_iPozo += (rangos_get_user_frags(id) / 4);
rangos_set_user_frags(id, 0);
}
}
g_bPlayerBetting[id] = false;
g_iBetAmount[id] = 0;
}
public clcmd_Pozo(id)
{
ChatColor(id, Azul, "!g[%s]!y Frags acumulados en el!g POZO: %d", g_PluginInfo[3], g_iPozo);
return PLUGIN_HANDLED;
}
stock ChatColor(id, Colors:color, msg[], any:...)
{
static szMsg[191], msgSayText;
#define teaminfo_sent(%0) (TeamInfoSent & (1<<%0))
if (!msgSayText)
msgSayText = get_user_msgid("SayText");
vformat(szMsg, 190, msg, 4);
replace_all(szMsg, 190, "!g", "^4");
replace_all(szMsg, 190, "!y", "^1");
replace_all(szMsg, 190, "!t", "^3");
message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, msgSayText, .player = id);
write_byte(color ? (_:color) : 33);
write_string(szMsg);
message_end();
}
public chatcolor_send_teaminfo(id)
{
if (!is_user_connected(id))
return;
static msgTeamInfo;
if (!msgTeamInfo)
msgTeamInfo = get_user_msgid("TeamInfo");
static const pTeams[][] = { "", "TERRORIST", "CT" };
for (new pid = 0; pid < 3; pid++)
{
message_begin(MSG_ONE_UNRELIABLE, msgTeamInfo, .player = id)
write_byte(pid+33)
write_string(pTeams[pid])
message_end()
}
}