-
-
Mírate éste último tutorial de Counter Strike 2🔥
- 11 respuestas
- 1.190 vistas
- Añadir respuesta
- 13 respuestas
- 3.301 vistas
- Añadir respuesta
- 7 respuestas
- 3.699 vistas
- Añadir respuesta
- 6 respuestas
- 2.261 vistas
- Añadir respuesta
- 0 respuestas
- 1.446 vistas
- Añadir respuesta
- 0 respuestas
- 614 vistas
- Añadir respuesta
- 0 respuestas
- 529 vistas
- Añadir respuesta
- 0 respuestas
- 603 vistas
- Añadir respuesta
- 0 respuestas
- 611 vistas
- Añadir respuesta
- 0 respuestas
- 559 vistas
- Añadir respuesta
Deathmatch hopla_terd_islands with rmf file
This map has been on the list of maybe get back to ,but I will not have time
I place it here for you to explore and build upon , I only ask it only be shared here
DOWNLOAD
- Max number of players ( 28 ).
-Fps (as a matter of performance).
-Style Map (dm).
-Weight of .bsp (1647KB).
-Description (a small set of square islands ).
-Link Download (hopla_terd_islands RMF)
[Mapa] aim_ak-colt_mm
Les presento mi nuevo mapa, lo cree para la final del torneo de cs. Es un remake del mapa aim_ak-colt versión Mundo Mapping. Tengo pensado realizar mas remakes.
Autor: ;LeaN
Nombre: aim_ak-colt_mm
Slots: 18 CT, 18 T
Tamaño: Chico
Fps: 100
Peso (bsp): 772 KB
Descarga: Gamebanana
Imagenes:




no me compila el batch compiler (SOLUCIONADO)
hola gente tanto tiempo , volvi con el mapeo y como siempre con problemas jejeje , estoy haciendo un nuevo mapa y al principio me tiro un error de un leak lo solucione y no paso mas , despues me salio un error de que no me funcionaba el vis....descarga todo de aqui configure bien todo el valve y el bath y ahora quiero compilar y no me compila , osea en milesimas de segundos se cierra el bath porque sera ? si a alguien le paso y que me pueda ayudar muy agradecido a otra cosa ( tengo todos los programas mapas , etc en el mismo disco)
minecraft sky
[TUT] Como hacer un menú con for
Nombre: Como hacer un menú con FOR
Author: Kiske(Creador), Neeeeeeeeeel.-(Publicador)
Imágenes:


Fuente: Como hacer un menú con for
Resto del tutorial:
#include <amxmodx>
#define PLUGIN "Menu con For"
#define AUTHOR "Kiske"
#define VERSION "1.0"
#define LISTA_ANIMALES 10 // Ponemos que LISTA_ANIMALES es Igual a 10.
new const Rank[listA_ANIMALES][] = { "Cerdo", "Pajaro", "Pinguino", "Elefante", "Chancho", "Perro", "Gato", "Loro", "Cacatua", "Dinosaurio" }
// Lista de Animales. Tiene que tener la misma cantidad de Lugares, que le asignamos a "LISTA_ANIMALES". En este caso 10.
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /menu", "MenuConFor")
register_clcmd("say_team /menu", "MenuConFor")
}
public MenuConFor(id)
{
new Animales[50], Posicion[10] // Creamos 2 Variables.
new menu = menu_create("\yLista de Animales", "MenuAnimales") // Creamos el Menu con su Nombre.
// Creamos el Loop, y ponemos: "i = 0 [i es igual a 0]", "i < LISTA_ANIMALES [si i es menor a LISTA_ANIMALES(10)]", "i++ [i aumenta en 1]".
for(new i = 0; i < LISTA_ANIMALES; i++)
{
// Creamos un Formatex poniendo que la Variable "Animales" va a ser igual a el TEXTO escrito ahi.
formatex(Animales, charsmax(Animales), "Animal %d: \y%s\w!", i, Rank[i])
num_to_str(i, Posicion, charsmax(Posicion)) // Pasamos un Numero a un String: "i(num) lo pasamos a Posicion(string)".
menu_additem(menu, Animales, Posicion) // Creamos un nuevo Item en el Menu, con el Texto y la Posicion.
}
menu_setprop(menu, MPROP_NEXTNAME, "Pagina Siguiente") // Nombre para pasar la a la Pagina Siguiente.
menu_setprop(menu, MPROP_BACKNAME, "Pagina Anterior") // Nombre para pasar la a la Pagina Anterior.
menu_setprop(menu, MPROP_EXITNAME, "Salir") // Nombre para Salir del Menu.
menu_display(id, menu, 0) // Ponemos que cuando abra el Menu, aparesca en la Pagina 0. DEFAULT!.
return PLUGIN_HANDLED; // Ponemos esto para que no de noticia en el Say que escribimos algo para abrir el menu.
}
public MenuAnimales(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
switch(str_to_num(data))
{
case 1..10: return PLUGIN_HANDLED
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
[TUT] Tutorial completo de menues
Nombre: Tutorial de menues
Author: [Anti]
Imágenes: No hay..
Fuente: [TUT] Tutorial de menues
Resto del tutorial:
Les dejo un tuto de como hacer varios tipos de menu y otras herramientas.
Tienen que tener una base en scripting de pawn.
Creo que esta bastante bien explicado, cualquier duda consulten.
Sistema Nuevo
#include <amxmodx>
public plugin_init()
{
register_plugin("Menu Basico", "1.0", "[Anti]");
register_clcmd( "say /menu", "cmdMenu" );
}
public cmdMenu(id)
{
new gMenu = menu_create("\rHola soy un menu", "handlerMenu")
//creamos el menu en la variable 'Menu' con el titulo 'Hola soy un menu'
//que segun la opcion que elija el usuario va a llamar a la funcion 'handlerMenu'
menu_additem(gMenu, "\wOpcion #1", "1") //Blanco = \w
menu_additem(gMenu, "\dOpcion #2", "2") //Transparente = \d
menu_additem(gMenu, "\yOpcion #3", "3") //Amarillo = \y
//Rojo = \r
//adderimos opciones al menu 'Menu' y le ponemos el numero de opcion
menu_display(id, gMenu, 0)
//aca le mostramos el menu 'Menu' al 'id'(indice de player) que queramos.
//el '0' es la pagina del menu que le vamos a mostrar.
}
public handlerMenu(id, menu, item) //los parametros deben ir en este orden
{
if ( item == MENU_EXIT ) //si el item seleccionado es igual a '0'(Exit[salir])
{
menu_destroy(menu) //destruimos el menu
return PLUGIN_HANDLED; //y returnamos la funcion
}
switch(item) //hacemos un swicheo de los posibles resultados:
{
case 0: //en caso de que precione 1: le mandamos un msj
{
client_print(id, print_center, "HOLA SOY LA OPCION #1.")
}
case 1: //en caso de que precione 2: le mandamos otro msj
{
client_print(id, print_center, "HOLA SOY LA OPCION #2.")
}
case 2: //en caso de que precione 3: le mandamos otro msj
{
client_print(id, print_center, "HOLA SOY LA OPCION #3 MUAJAJAJA(?.")
}
}
return PLUGIN_HANDLED; // returnamos la funcion...
}
Sistema Viejo
#include <amxmodx>
#include <amxmisc>
new KEYSMENU = MENU_KEY_0 | MENU_KEY_1 | MENU_KEY_2;
public plugin_init()
{
register_plugin("Menu con Len", "1.0", "[Anti]");
register_clcmd( "say /menu", "cmdOtroMenu");
register_menu("Menu", KEYSMENU, "HandMenu");
//registramos el menu 'Menu', con las teclas KEYSMENU
//y el handler que al que va a llamar 'HandMenu'
}
public cmdOtroMenu(id)
{
new menu[100], len;
// 'menu' es donde se va a alojar el string del menu,
// en este caso le damos 99 celdas para sus caracteres
len = 0;
len += formatex(menu[len], sizeof menu - 1 - len, "\r Menu:^n");
len += formatex(menu[len], sizeof menu - 1 - len, "\y[1]\wOpcion #1^n");
len += formatex(menu[len], sizeof menu - 1 - len, "\y[2]\wOpcion #2^n^n");
len += formatex(menu[len], sizeof menu - 1 - len, "\r[0]\wSalir");
show_menu(id, KEYSMENU, menu, -1, "Menu");
//mostramos el menu al 'id' deseado, con las teclas ya definidas, el menu 'menu'
//el timpo es lo que tarda el menu en cerrarse en este caso -1 que es infinito, como lo registre en el init 'Menu')
}
public HandMenu(id, keys, menu) //los parametros deben ir en este orden
{
switch(keys) //hacemos un swicheo de los posibles resultados:
{
case 0: client_print(id, print_chat, "HOLA SOY LA OPCION #1"); //en caso de que precione 1: le mostramos el menu 'gMenu', en la pagina '0'
case 1: client_print(id, print_center, "HOLA SOY LA OPCION #2"); //en caso de que precione 2: le mandamos un msj
case 9: menu_destroy(menu) //en caso de que precione 0: le destruimos el menu...
}
}
2 Menús 1 Handled
#include <amxmodx>
public plugin_init()
{
register_plugin( "2 Menus 1 Handled", "1.0", "[Anti]" );
register_clcmd("say /menu", "cmdMenu");
}
public cmdMenu(id)
{
if ( get_user_team(id) == 1 ) //Si es del team TT.
Menu_TT(id); //Mandamos al Menu TT.
else if ( get_user_team(id) == 2 ) //Si es del team CT.
Menu_CT(id); //Mandamos al Menu TT.
}
public Menu_TT(id)
{
new menu = menu_create("\rMenu TT:", "handMenu");
menu_additem(menu, "Opcion 1#", "T");
menu_additem(menu, "Opcion 2#", "T");
menu_additem(menu, "Opcion 3#", "T");
menu_display(id, menu, 0); //Mostramos el menu
}
public Menu_CT(id)
{
new menu = menu_create("\rMenu CT:", "handMenu");
menu_additem(menu, "Opcion 1#", "C");
menu_additem(menu, "Opcion 2#", "C");
menu_additem(menu, "Opcion 3#", "C");
menu_display(id, menu, 0); //Mostramos el menu
}
public handMenu(id, menu, item)
{
if ( item == MENU_EXIT ) //si el item seleccionado es igual a '0'(Exit[salir])
{
menu_destroy( menu ); //destruimos el menu.
return PLUGIN_HANDLED; //Returnamos la funcion.
}
new szData[2];
new item_access, item_callback;
menu_item_getinfo( menu, item, item_access, szData,charsmax( szData ), _, _, item_callback );
//obtenemos informacion del menu y el item elegido.
switch( szData[0] ) //Vemos la letra que hay en la primera celda de szData
{
case 'T': //En este caso si es "T".
{
switch( item ) //Switch del Menu TT
{
case 0: {}// Opcion 1# TT's
case 1: {}// Opcion 2# TT's
case 2: {}// Opcion 3# TT's
}
}
case 'C': //En este caso si es "C".
{
switch( item ) //Switch del Menu CT
{
case 0: {}// Opcion 1# CT's
case 1: {}// Opcion 2# CT's
case 2: {}// Opcion 3# CT's
}
}
}
menu_destroy(menu); //Destruimos el menu
return PLUGIN_HANDLED; //Returnamos el Handled
}
Diferentes natives(solo para el sistema nuevo)
//Establece propiedades en un menu. Propiedades: #define MPROP_PERPAGE /* Numero de items en cada pagina (default 7)*/ #define MPROP_BACKNAME /* Nombre del boton "Back" */ #define MPROP_NEXTNAME /* Nombre del boton "Next" */ #define MPROP_EXITNAME /* Nombre del boton "Exit" */ #define MPROP_TITLE /* Establece el titulo de un menu */ #define MPROP_EXIT /* Establece la funcion del exit con MEXIT_NEVER(no aparece la opcion exit) y MEXIT_ALL(aparece la opcion exit[default]) */ #define MPROP_NOCOLORS /* Establece si los colores son automaticos */ #define MPROP_NUMBER_COLOR /* Establece el color de los numeros(default rojo) */ menu_setprop(menu, prop, ...); //Cancela el menu de un player. menu_cancel(player); //Adiere una linea de texto al menu. menu_addtext(menu, const text[], slot=1); //Adiere un espacio en blanco al menu. menu_addblank(menu, slot=1); //Destruye el menu. menu_destroy(menu); //Establece un texto para un item. menu_item_setname(menu, item, const name[]); //Obtiene el indice de item del menu y la pagina indicada(devuelve menor a 0 si es un item especial como MENU_EXIT) menu_find_id(menu, page, key); //Muestra a una player un menu. menu_display(id, menu, page=0); //Obtiene la cantidad de items en un menu. menu_items(menu); //Obtiene la cantidad de paginas en un menu. menu_pages(menu);
[TUT] Hacer Niveles
Nombre: Hacer Niveles
Author: cLAANS
Imágenes: No hay...
Fuente: Tutorial - Hacer Niveles
Resto del tutoriarl:
#include < amxmodx > // Libreria que siempre y cada uno de nuestros plugins va a nesecitar
#include < hamsandwich > // Libreria que vamos a utilizar para detectar cuando matamos a alguien y cuando revive alguien
#define SetBit(%1,%2) ( %1 |= ( 1 << ( %2 & 31 ) ) ) // Bits, Leer tutorial de rocox para informarce mas
#define ClearBit(%1,%2) ( %1 &= ~ ( 1 << ( %2 & 31 ) ) ) // Bits, Leer tutorial de rocox para informarce mas
#define IsBit(%1,%2) ( %1 & ( 1 << ( %2 & 31 ) ) ) // Bits, Leer tutorial de rocox para informarce mas
#define Siguiente_nivel(%1) %1 * 15 // Macro que se elevara segun otra variable ( Mas abajo lo veran )
#define SLOTS 14 // Los Slots maximos del servidor + 1;
new const VERSION[ ] = "1.0" // Definimos la version del plugin
new g_frags[ SLOTS ]; // Variable que va a almacenar nuestros frags
new g_level[ SLOTS ]; // Variable que va a almacenar nuestros levels
new g_conectado; // Variable que vamos a utilizar para no llamar a una native ( is_user_connected( index ) )
new g_vivo; // Variable que vamos a utilizar para no llamar a una native ( is_user_alive( index ) )
public plugin_init( )
{
register_plugin( "Tutorial para hacer niveles", VERSION, "cLAANS" );
RegisterHam( Ham_Killed, "player", "fw_player_killed" ); // Llamamos a Ham Killed para ver Cuando matamos a alguien
RegisterHam( Ham_Spawn, "player", "fw_player_spawn" ); // Llamamos a Ham Spawn para ver cuando revive un jugador
}
public client_putinserver( id )
SetBit( g_conectado, id );
// Seteamos en true una variable que usaremos despues para verificar si un usuario esta conectado y asi llamar una variable menos
public client_disconnected( id )
{
ClearBit( g_conectado, id );
ClearBit( g_vivo, id );
}
// La varibale que seteamos en true cuando se conecto el usuario la seteamos en false para evitar errores
public fw_player_spawn( id )
if( is_user_alive( id ) ) // Para evitar errores, si el usuario esta vivo
SetBit( g_vivo, id ) // Seteamos en true nuestra variable
public fw_player_killed( victim, attacker )
{
if( !IsBit( g_conectado, victim ) || !IsBit( g_vivo, victim ) || victim == attacker ) // Si no esta conectada la victima, o si no esta viva o si la victima es igual al atacante
return; // Paramos la funcion
/* Si un usuario no esta conectado no podra atacar asi que no verificamos si el atacante esta conectado
* lo mismo cuando algunos verifican si el atacante esta vivo, si no lo esta, pues no atacara */
g_frags[ attacker ]++; // Lo que hacemos aca es aumentar nuestra variable ( g_frags ) +1
/* Hay miles de formas de las que podemos hacer actuar esta variable */
/* SI queremos la aumentamos en 10 */
g_frags[ attacker ] += 10;
ClearBit( g_vivo, victim ); // Seteamos en false la variable "g_vivo" para evitar problemas
chequear_nivel( attacker ); // Chequeamos si nuestros frags son los suficientes para pasar de nivel
}
public chequear_nivel( index )
{
if( g_frags[ index ] >= Siguiente_nivel( g_level[ index ] ) )
// SI nuestros frags son mayores o iguales a los requeridos por nuestra macro
{
g_frags[ index ] = 0 // Seteamos los frags en 0 ( SI QUIEREN )
g_level[ index ]++; // Aumentamos 1 nivel, o los que se les den la gana
}
}
Ahà está todo explicado...
[TUT] Niveles por macro
Nombre: Niveles por macro
Author: Metrikcz
Imágenes: No hay...
Fuente: [TUT] Niveles por macro
Resto del Tutorial:
Bueno aquà les dejo un sistema de levels por macro
Aclaro que este sistema sirve para cualquier MOD
#include <amxmodx>
#include <hamsandwich> // Lo usaremos para registrar el event cuando el jugador muere
#define PLUGIN "Tutorial Levels" // Nombre de plugin
#define VERSION "1.0" // Version
#define AUTHOR "Metrikcz" // Author
// Macro, en este definiremos la cantidad de experiencia que se ocupara para cada nivel, es una operacion
// donde %1 es el level del usuario, Por ejemplo:
// si es level 8 el resultado seria: 640 --- > 8 * 8 * 10 = 640
// El macro ustedes lo pueden definir a como ustedes quieran la operacion, como la sientan mas comoda
#define level_up(%1) (%1 * %1 * 10)
// Variables donde almacenaremos el nivel y experiencia del jugador
new g_level[33], g_exp[33]
// Variable de la cvar
new cvar_expkill, cvar_maxlevel
new menu
public plugin_init()
{
// Registramos el plugin
register_plugin(PLUGIN, VERSION, AUTHOR)
// registramos el evento cuando alguien muere
RegisterHam(Ham_Killed, "player", "fw_playerkilled_post", 1)
// Registramos el comando para que el usuario vea su level y para que vea la exp de cada level
register_clcmd("say /level", "clcmd_saylevel")
register_clcmd("say /levels", "clcmd_saylevels")
// registramos la cvar
cvar_expkill = register_cvar("exp_kill", "25")
cvar_maxlevel = register_cvar("maxlevel", "100")
// Creamos el menu, global porque nunca cambiara amenos que cambien el valor de la cvar de maxlevel
create_menu()
}
create_menu()
{
// Creamos el menu, primer parametro nombre del menu, el segundo es el handler
menu = menu_create("Tutorial Sistema de Levels | Experiencia para cada level", "handler_menu")
//Creamos una variable en la cual guardaremos el valor de el level maximo
new len[40], maxlevel = get_pcvar_num(cvar_maxlevel)
// Lopeamos entre todos los posibles levels
for(new i = 0; i < maxlevel; i++)
{
formatex(len, charsmax(len), "\wLevel: \y%d - \r%i", i+1, level_up(i))
menu_additem(menu, len, "1") // tercer parametro no importa
}
}
// Foward Cuando el usuario entra al servidor
public client_putinserver(id)
{
// Reiniciamos los valores de level y experiencia
g_level[id] = 1
g_exp[id] = 0
}
public fw_playerkilled_post(victim, attacker)
{
// chequeamos si el atacante esta conectado, si no lo esta ignoramos la funcion
if(!is_user_connected(attacker))
return HAM_IGNORED;
// chequeamos si la victima es igual al attacker, osea si el jugador se suicido
if(victim == attacker)
return HAM_IGNORED;
// Llamamos a la funcion donde al atacante le daremos la experiencia de la cvar
// get_pcvar_num(cvar_exp_kill) Obtiene el valor de la cvar para darle la exp de la cvar
// Primer parametro define para quien va la experiencia y el segundo la cantidad
set_exp(attacker, get_pcvar_num(cvar_expkill))
// Le mandamos un mensaje disiendo que gano "X" experiencia por matar
client_print(attacker, print_chat, "Ganas %d Experiencia por Matar", get_pcvar_num(cvar_expkill))
return HAM_IGNORED;
}
set_exp(id, exp)
{
// Le damos al usuario la experiencia del segundo parametro "exp"
g_exp[id] += clamp(exp, 0, level_up(get_pcvar_num(cvar_maxlevel)))
//Llamamos a esta funcion para checar su ha subido de nivel
update_level(id)
}
update_level(id)
{
// Checamos si su experiencia es mayor o igual a la necesaria para su siguiente nivel y si no es el level maximo, por ejemplo:
// Digamos que es level 5, la experiencia necesaria para su siguiente level es 250 deacuerdo al macro (5*5*10=250)
// si su exp es 253 muy bien se cumple la condicion y subira de level
// level_up(g_level[id]) == level_up(5) porque suponiendo que g_level[id] es 5 asi seria
while(g_exp[id] >= level_up(g_level[id]) && g_level[id] < get_pcvar_num(cvar_maxlevel))
{
// Aumentamos su level
g_level[id]++
/* g_level[id] += 1 || es lo mismo que lo de arriba */
// Mandamos un mensaje disiendo que subio de level
client_print(id, print_chat, "Felicidades has ascendido al level: %d", g_level[id])
}
}
public clcmd_saylevel(id)
{
// Mandamos un mensaje mostrando su level y experiencia
client_print(id, print_chat, "Su level: %d / %d| Experiencia: %d / %i", g_level[id], get_pcvar_num(cvar_maxlevel), g_exp[id], level_up(g_level[id]))
// Mandamos un return plugin_handled para que no salga en el say cuando el wey escribe /level
// Regularmente no deberia de salir pero a algunos servers se les bugea el say (zp) y si aparece
return PLUGIN_HANDLED;
}
public clcmd_saylevels(id)
menu_display(id, menu, 0)
public handler_menu(id, menu, item)
{
// si no le pico al 0, osea para salir del menu, le mostraremos el menu de nuevo
if(!(item == MENU_EXIT))
clcmd_saylevels(id)
}
say /level - Vemos el level del usuario y level maximo y tambien vemos su exp y experiencia necesaria para su siguiente level
say /levels - Vemos la lista de levels y la experiencia que se necesita para cada uno!
[N-PLUGIN] Mostrar Vida y Armor por hud
Nombre del plugin: Show HUD Armor & Health
Author: acetatomil
Descripción: con este plugin podremos saber nuestra vida y armor mientras estamos vivos.
Imágenes: No hay...
Fuente: Show Armor & Health
Código:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#define PLUGIN "Show HUD Armor & Health"
#define VERSION "1.0"
#define AUTHOR "acetatomil"
#define TASK_HUD 2100
new SyncHUD
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
SyncHUD = CreateHudSyncObj()
}
public client_putinserver(id)
{
set_task(1.0, "ShowHUD", id+TASK_HUD, _, _, "b")
}
public client_disconnect(id)
{
remove_task(id+TASK_HUD)
}
public ShowHUD(taskid)
{
new id = taskid-TASK_HUD
if (!is_user_alive(id))
{
id = pev(id, pev_iuser2)
if (!is_user_alive(id)) return;
}
set_hudmessage(0, 255, 0, 0.39, 0.8, 0, 6.0, 1.0)
ShowSyncHudMsg(id, SyncHUD, "Heatlh: %d Armor: %d", get_user_health(id), get_user_armor(id))
}
[N-PLUGIN] Mostras Matanzas y Muertes en HUD
Nombre del plugin: Matanzas y Muertes por HUD
Author: K.-'
Descripción: Con este plugin sabremos simpre cuantos frags y muertes tenemos
Imágenes:

Fuente: Show Frags y Muertes por hud
Código:
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "Plugin peruano"
#define VERSION "1.0"
#define AUTHOR "K.-'"
new g_conectado[33]
new g_hud
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
g_hud = CreateHudSyncObj()
}
public client_putinserver(id) /* Cuando el cliente (PLAYER) entra al server : */
{
g_conectado[id] = 1
set_task(2.0,"hud_personal",id+100,_,_,"b"); // Hacemos un hud con "B" , signifca que se actualiza solo cada 2 seg
}
public client_disconnect(id) /* Cuando el cliente se desconecta del server */
{
g_conectado[id] = 0 // Le Seteamos la variable g_conectado[33] en false o 0 , es lo mismo.
}
public hud_personal(taskid) // El hud , registrado cuando el cliente entra al servidor
{
new id = taskid - 100; // Algun dia voy a saber explicar esto
if (!g_conectado[id]) return;
set_hudmessage(85, 255, 212, 0.80, 0.12, 0, 6.0, 12.0) // Las caracteristicas del Hud
ShowSyncHudMsg(id, g_hud, "Matanzas %d^nMuertes %d", get_user_frags(id), get_user_deaths(id))
}



