Enviar respuesta 
Entendiendo el ChatColor
Autor Mensaje
Mario AR. Sin conexión
Super Mario 64


Plugin developer Donador Medalla de aportes 1k
Mensajes: 1,235
Registro en: Feb 2014
Reputación: 61
Mensaje: #1
Entendiendo el ChatColor
En este tutorial explicaré cada parte del ChatColor con detalles, pues he visto que muchos quieren usarlo sin tener la menor idea de cómo funciona. El principal objetivo no es que quienes lean este tutorial entiendan a la perfección el chatcolor, pero sí que sepan usarlo adecuadamente y dejen de utilizar esos stocks tan horrorosos de chatcolor que andan sueltos por ahí.

Al final del tutorial dejaré una recopilación de diferentes stocks Chatcolor "óptimos", para diferentes usos.

  1. ¿Qué hay en un stock de chatcolor?
    • Veamos un clásico stock chatcolor mal hecho:
      Código PHP:
      stock chatcolor(id, const input[], any:...)
      {
          static 
      countplayers[32], msg[191], msgSayText;
          
      vformat(msg190input3)   
          
          if (!
      msgSayText)
              
      msgSayText get_user_msgid("SayText");

          
      replace_all(msg190"!g""^4")
          
      replace_all(msg190"!y""^1")
          
      replace_all(msg190"!team""^3")
          
          if (
      id)
          {
              
      players[0] = id;
              
      count 1;
          }
          else
              
      get_players(playerscount"c");

          for (new 
      0counti++)
          {
              
      message_begin(MSG_ONE_UNRELIABLEmsgSayText_players[i])
              
      write_byte(players[i]);
              
      write_string(msg);
              
      message_end();
          }



      Las partes del stock
    • Código PHP:
      vformat(msg190input3
      Esta native nos sirve para dar formato a un texto segun una referencia (La referencia es el any:...). Indicamos el string donde obtendremos el texto con el formato, la longitud máxima, el string del texto que se va a formatear y el número del argumento de referencia (la posición del any:...).
    • Código PHP:
      if (!msgSayText)
          
      msgSayText get_user_msgid("SayText"); 
      Aquí se obtiene el ID de los mensajes SayText. Se hace así porque el ID de los mensajes no va a cambiar en medio del juego, no es necesario llamar a la native cada vez que necesitemos este ID, con una vez es suficiente.
    • Código PHP:
      replace_all(msg190"!g""^4"); 
      Esto es algo totalmente inútil a mi parecer, pero muchos lo usan. Simplemente reemplaza todos los '!g' por '^4'. Los mensajes que enviamos por SayText se pueden mostrar en color segun estos carácteres: ^1 (cvar con_color, por defecto amarillo), ^3 (color del team de quien envia el mensaje) y ^4 (color verde).
    • Código PHP:
      get_players(playerscount"c"); 
      Por desgracia esto está presente en muchos stocks de chatcolor, más adelante explicaré por qué no tendría que estar.
    • Código PHP:
      message_begin(MSG_ONE_UNRELIABLEmsgSayText_players[i])
      write_byte(players[i]);
      write_string(msg);
      message_end(); 
      Llegamos a la parte más importante. Esto es el chatcolor, esto envia nuestro mensaje a color, todo lo demás sirve de adorno.

  2. Ahora que conocemos el "verdadero" chatcolor, veamos cómo funciona.
    • Primero, voy a darles una noción básica de los mensajes en HL. Los mensajes son el "lenguaje de comunicación" entre el servidor de HL y los clientes. Lo que hacemos en el stock de chatcolor es enviar un mensaje "SayText". Hay muchos tipos de mensajes que usa HL, conozco 2 que nos pueden imprimir mensajes en el chat, pero "SayText" es el que nos va a permitir mostrar color.
    • Este mensaje tiene 2 argumentos: el "remitente" y el "mensaje". (Sí, como una carta!). El remitente es el índice de un jugador (entre 1 y 32, si usamos 0 el mensaje no tendrá color) (byte) y el mensaje, pues el texto a mostrar ^^ (string).
    • Regresando al tema de los mensajes de HL, los mensajes se pueden enviar a destinos predefinidos por HL. Los principales son: MSG_ONE, MSG_ALL y sus contrapartes en el unreliable channel: MSG_ONE_UNRELIABLE y MSG_BROADCAST. También está MSG_SPEC y otros 4 que no entiendo ni explicaré.
    • Código PHP:
      message_begin(MSG_ONEg_msgSayText_id
      ‪Cuando llamamos a la native message_begin(), le indicamos el destino de nuestro mensaje. Recomiendo usar MSG_ONE_UNRELIABLE y MSG_BROADCAST, ya que la diferencia con sus contrapartes es que estos mensajes se pueden perder en el camino sin generar "daños", mientras si los otros mensajes se pierden (por loss, desconexión) generalmente hacen que el servidor colesione (CRASH).
    • Si ponemos MSG_ONE_UNRELIABLE, tenemos que indicarle un ID de un jugador a quien se va a dirigir el mensaje. Con MSG_BROADCAST, el mensaje va a TODOS O.O, sí, a todos! Por eso no se debería de usar get_players en el stock de chatcolor si con MSG_BROADCAST ya enviamos el mensaje a todos. También podemos usar MSG_SPEC, que enviará el mensaje a los clientes HLTV.
    • message_begin() también nos permite establecer el origen del mensaje, aunque esto no es necesario en absoluto para enviar mensajes de chat.
    • Código PHP:
      write_byte(id
      Vamos otra vez con "SayText". El primer argumento en este mensaje es un byte, que es el ID del jugador que envia el mensaje. El color depende del equipo de este jugador. El id puede ser un jugador no conectado, no tendremos problemas con ello, en este caso el color será el del equipo del último jugador que tuvo ese número de ID.
      DATO (Gracias Destro por la información): Podemos "hacer creer" a los jugadores que el jugador (o entidad) con ID 33, 34, 35, etc pertenece a un equipo, así al utilizar estos IDs en este byte del mensaje obtendremos los colores deseados. (Más info en los stocks).
    • Código PHP:
      write_string(msg
      ‪El segundo argumento es el mensaje, con nuestros códigos de color. El código de color ^3 hace que nuestro mensaje tenga el color del equipo del jugador que envia el mensaje (vease write_byte arriba). Si el jugador no está conectado o está de espectador, nos mostrará gris; si es CT, nos mostrará Azul y si es TT, nos mostrará Rojo.
      Nota: La longitud del mensaje no puede exceder los 189 carácteres, o el servidor colapsará.
    • Código PHP:
      message_end() 
      ‪Luego de haber especificado estos argumentos, enviamos el mensaje con message_end().

  3. Recopilación de Chatcolor
    • Chatcolor simple para mostrar un mensaje a todos los jugadores, sin formato.
      Código PHP:
      stock chatcolor_all(input[])
      {
          static 
      msgSayText;
          
          if (!
      msgSayText)
              
      msgSayText get_user_msgid("SayText");
          
          if (
      strlen(input) >= 190)
              
      input[190] = '^0';
          
          
      message_begin(MSG_BROADCASTmsgSayText);
          
      write_byte(33);
          
      write_string(input);
          
      message_end();


      Modo de uso:
      Código PHP:
      chatcolor_all("^4[AMXX]^1 Bienvenidos a^3 Mi super Server"
      Color verde - ^4
      Color amarillo - ^1
      Color blanco - ^3
    • Chatcolor con formato, para un jugador o para todos.
      Código PHP:
      stock chatcolor(id, const input[], any:...)
      {
          static 
      szMsg[191], msgSayText;
          
          if (!
      msgSayText)
              
      msgSayText get_user_msgid("SayText");
          
          
      vformat(szMsg190input3);

          
      replace_all(szMsg190"!g""^4");
          
      replace_all(szMsg190"!y""^1");
          
      replace_all(szMsg190"!team""^3");
          
          
      message_begin(id MSG_ONE_UNRELIABLE MSG_BROADCASTmsgSayText, .player id);
          
      write_byte(id id 33);
          
      write_string(szMsg);
          
      message_end();


      Modo de uso:
      Código PHP:
      new name[32]; get_user_name(idname31);
      chatcolor(id"!g[AMXX] !yBienvenido a !teamMi super Server, !g%s"name
      Color verde - !g
      Color amarillo - !y
      Color de team - !team

      Si el index es un ID, el color de !team será el de su equipo. Si el index es 0, el color de !team será blanco.
    • Un "chatcolor" más avanzado y elegante (Printf), permite elegir el color (Hecho por [R]ak - Sacado de aquí). Sólo envia un mensaje a un jugador, no index 0.
      Código PHP:
      enum {

          DEFAULT,

          
      RED,

          
      BLUE,

          
      GRAY,

          
      GREEN

      }



      stock printf(idcolor, const msg[], any:...) {
          

          static 
      Buffer[192], MsgSayTextMsgTeamInfoTeam[11]

          
          if(!
      MsgSayText) {

              
              
      MsgTeamInfo get_user_msgid("TeamInfo")


              
      MsgSayText get_user_msgid("SayText")

              
          }
              

          
      vformat(Buffer[1], charsmax(Buffer) - 1msg4)
          

          static const 
      g_Teams[4][11] = {

              
      "UNASSIGNED",

              
      "TERRORIST",

              
      "CT",

              
      "SPECTATOR"

          
      }
          

          if(
      color) {
              

              if(
      color == GREEN) {

                  
                  
      Buffer[0] = 0x04

               
                  message_begin
      (MSG_ONE_UNRELIABLEMsgSayText_id

              
                  
      write_byte(id

              
                  
      write_string(Buffer)   
              

                  
      message_end()

                  
              }

              else {

                  
                  
      Buffer[0] = 0x03

              
                  get_user_team
      (idTeamcharsmax(Team))

                  
                  
      message_begin(MSG_ONE_UNRELIABLEMsgTeamInfo_id

              
                  
      write_byte(id

              
                  
      write_string(g_Teams[color])   

             
                  
      message_end()

                  
                  
      message_begin(MSG_ONE_UNRELIABLEMsgSayText_id

              
                  
      write_byte(id

              
                  
      write_string(Buffer)   

              
                  
      message_end()

              
                  
      message_begin(MSG_ONE_UNRELIABLEMsgTeamInfo_id

              
                  
      write_byte(id

              
                  
      write_string(Team)   

              
                  
      message_end()
                  
              }

          }

          else {
              
              
      Buffer[0] = 0x01

              
              message_begin
      (MSG_ONE_UNRELIABLEMsgSayText_id

              
              
      write_byte(id

              
              
      write_string(Buffer)   

              
              
      message_end()

          }



      Modo de uso:
      Código PHP:
      printf(id, DEFAULT, "%s Acme Inc.- %s"AUTHORPLUGIN// comun
      printf(idRED"%s Acme Inc.- %s"AUTHORPLUGIN// rojo
      printf(idBLUE"%s Acme Inc.- %s"AUTHORPLUGIN// azul
      printf(idGRAY"%s Acme Inc.- %s"AUTHORPLUGIN// gris
      printf(idGREEN"^%s Acme Inc.- %s"AUTHORPLUGIN// verde 
    • El printf del Panda editado para soportar index 0 (Para todos).
      Código PHP:
      enum {

          DEFAULT,

          
      RED,

          
      BLUE,

          
      GRAY,

          
      GREEN

      }

      stock printf(idcolor, const msg[], any:...) {
          
          static 
      Buffer[192], MsgSayTextMsgTeamInfoTeam[32]
          
          if(!
      MsgSayText) {
              
              
      MsgTeamInfo get_user_msgid("TeamInfo")
              
              
      MsgSayText get_user_msgid("SayText")
              
          }
              
          
      vformat(Buffer[1], charsmax(Buffer) - 1msg4)
          
          static const 
      Teams[2][10] = {
              
      "TERRORIST",
              
      "CT"
          
      }

          switch (
      color) {
              
              case DEFAULT: {
                  
                  
      Buffer[0] = 0x01
              
                  printf_do
      (idid id 33BufferMsgSayText)
              }
              
              case 
      GREEN: {
                  
                  
      Buffer[0] = 0x04
                  
                  printf_do
      (idid id 33BufferMsgSayText)
                  
              }
              
              case 
      GRAY: {
                  
                  
      Buffer[0] = 0x03
                  
                  printf_do
      (id33BufferMsgSayText)
                  
              }
              
              case 
      REDBLUE: {
                  
                  
      Buffer[0] = 0x03
                  
                  
      if (id) {
                      
                      if (
      get_user_team(idTeamcharsmax(Team)) == color) {
                          
                          
      printf_do(ididBufferMsgSayText)
                          
                      }
                      else {
                          
                          
      printf_do(ididTeams[color-1], MsgTeamInfo)
                          
                          
      printf_do(ididBufferMsgSayText)
                          
                          
      printf_do(ididTeamMsgTeamInfo)
                          
                      }
                  
                  }
                  
                  else {
                  
                      static 
      Num;
                      
                      
      get_players(TeamNum"e"Teams[color-1]);
                      
                      if (
      Num) {
                          
                          
      printf_do(idTeam[0], BufferMsgSayText)
                          
                      }
                      else {
                          
                          
      get_players(TeamNum"h");
                          
                          if (!
      Num) {
                              
                              return;
                              
                          }
                          
                          
      Num Team[0];
                          
                          
      get_user_team(NumTeamcharsmax(Team));
                          
                          
      printf_do(NumNumTeams[color-1], MsgTeamInfo)
              
                          
      printf_do(idNumBufferMsgSayText)
              
                          
      printf_do(NumNumTeamMsgTeamInfo)
                          
                      }
                      
                  }
                  
              }
              
          }
      }

      printf_do(idsender, const data[], MsgID) {
          
          
      message_begin(id MSG_ONE_UNRELIABLE MSG_BROADCASTMsgID_id
              
          
      write_byte(sender
              
          
      write_string(data)   
              
          
      message_end()
          


      Modo de uso: Igual que el anterior.
    • Stock capaz de mostrar el color deseado de una forma más eficiente (lo hice basándome en este, gracias Destro)
      Código PHP:
      // Va al inicio
      enum Colors
      {
          
      Gris 33,
          
      Rojo,
          
      Azul
      }

      // Si ya tienes client_putinserver, solo agregas la linea
      public client_putinserver(id)
      {
          
      set_task(0.2"chatcolor_send_teaminfo"id);
      }

      // Al final o donde quieras
      stock chatcolor(idColors:colormsg[], any:...)
      {
          static 
      szMsg[191], msgSayText;
          
      #define teaminfo_sent(%0) (TeamInfoSent & (1<<%0))
          
          
      if (!msgSayText)
              
      msgSayText get_user_msgid("SayText");
          
          
      vformat(szMsg190msg4);

          
      replace_all(szMsg190"!g""^4");
          
      replace_all(szMsg190"!y""^1");
          
      replace_all(szMsg190"!color""^3");
          
          
      message_begin(id MSG_ONE_UNRELIABLE MSG_BROADCASTmsgSayText, .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 0pid 3pid++)
          {
              
      message_begin(MSG_ONE_UNRELIABLEmsgTeamInfo, .player id)
              
      write_byte(pid+33)
              
      write_string(pTeams[pid])
              
      message_end()
          }

      Modo de uso:
      Código PHP:
      new name[32]; get_user_name(idname31);

      // Saldrá del color del team de "id"
      chatcolor(idid"!g[ZP]!y Hola y bienvenido, !color%s!"name);

      // Color azul
      chatcolor(idAzul"!g[ZP]!y Hola y bienvenido, !color%s!"name);

      // Color rojo
      chatcolor(idRojo"!g[ZP]!y Hola y bienvenido, !color%s!"name);

      // Color gris
      chatcolor(idGris"!g[ZP]!y Hola y bienvenido, !color%s!"name); 
      Color verde - !g
      Color amarillo - !y
      Color definido - !color



Eso es todo amigos Whatever

(10/05/2019 08:23 PM)Niper.-. escribió:  Trap no son tus putas trap es mi equipo tumbando el foro de amxmodx hey tumbando el foro hey tumbando el foroooo ya saben todos nos llevamos todos los pluginsss..

(18/02/2019 03:08 PM)Neeeeeeeeeel.- escribió:  Shit

(28/02/2015 03:27 AM)sasske escribió:  Vete al diablo detallista de mierda Oh god why

(26/12/2018 02:45 PM)[R]ak escribió:  yo solo te veo en whatsapp agarrando culos.. nose..

(09/06/2017 12:59 AM)kikizon2 escribió:  Quiero que leas las reglas, y si fuese posible que saltaras de un 10mo piso, pls.

(21/04/2017 01:27 AM)Chamo. escribió:  Cuanto hay que pagar para estar en tu firma TrolleyesThats what she said?

(20/04/2017 11:56 PM)matrix123 escribió:  Patrocinas rehlds? Es de lo único que hablas, mañana seguro te llegan remeras de rehlds, mandame una Whatever

(26/04/2017 08:47 PM)Dieguito escribió:  al que me salga con latinservers le meto un sugisaki por el c***

(26/02/2017 08:02 PM)meTaLiCroSS escribió:  La misma aritmetica se aplica con los Strings falsos que inventé ("trivago" y "pajarussel").

(13/02/2017 07:41 PM)Heber[$]ource escribió:  es nuvpawn, nos esta ddoseando con su sega genesis

(06/01/2015 10:47 PM)meTaLiCroSS escribió:  
(06/01/2015 10:40 PM)wiD escribió:  este chileno culiau :whatever;
¿Que?

(29/04/2016 11:44 PM)wiD escribió:  Te juro que si te tengo enfrente primero te piso con el auto y despues te meo en la boca.

(16/07/2014 06:38 PM)wiD escribió:  Mongito dame su name que quiero un chip para pegar todo cocow

(18/03/2015 02:04 PM)ErikMav94 escribió:  
(18/03/2015 02:03 PM)mongito100 escribió:  Son todos putos
escribís como el orto :trolleyes;

[Anti] escribió:Olle tranquilo cerebrito

(03/04/2015 12:16 AM)Treki escribió:  
(03/04/2015 12:11 AM)Sugisaki escribió:  cual plug?, el arkshine o el de arkshine?

Fixed*

(09/03/2015 09:49 PM)Moroha escribió:  Suspendieron al abaricioso platero de kikizon :trolleyes;

(26/05/2014 08:31 PM)ivan escribió:  hola quiero hacer combo para el party uso el de rank

(22/08/2014 11:41 PM)Store.gh escribió:  Join team de jeropito? A vos t hace falta un pito..

(26/02/2015 01:01 AM)meTaLiCroSS escribió:  
(26/02/2015 12:54 AM)sasske escribió:  Salida del horno nueva versión, que obsesionado estoy :3
PD: Me olvide de darle los créditos a metal xD, pobre metal xd
Da igual, dejalo como una enseñanza jejej no te llorare por unos creditos ehhmm hud...

(18/01/2015 12:31 AM)[R]ak escribió:  no me critican.. solo dicen boludeces

(05/01/2015 12:43 AM)roccoxx escribió:  Sentado en dust pensando como fui tan gil ♪
Image
(Este mensaje fue modificado por última vez en: 03/11/2015 06:39 PM por Mario AR..)
16/07/2014 12:26 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Federicomb Sin conexión
Miembro Destacado


Plugin developer Trebol verde Trebol de oro 1k
Mensajes: 1,038
Registro en: Jan 2014
Reputación: 24
Mensaje: #2
RE: Entendiendo el ChatColor
Buen tutorial. Me diste ideas.

Image

Believe, be yourself and don't hold on to just one dream ❤


16/07/2014 01:52 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
AGustiN Sin conexión
Miembro Sr.


Mensajes: 427
Registro en: Jun 2014
Reputación: 8
Mensaje: #3
RE: Entendiendo el ChatColor
Muy buen tutorial.- Proud
16/07/2014 11:34 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Mario AR. Sin conexión
Super Mario 64


Plugin developer Donador Medalla de aportes 1k
Mensajes: 1,235
Registro en: Feb 2014
Reputación: 61
Mensaje: #4
RE: Entendiendo el ChatColor
(16/07/2014 01:52 AM)Federicomb escribió:  Buen tutorial. Me diste ideas.

(16/07/2014 11:34 AM)AGustiN escribió:  Muy buen tutorial.- Proud

Gracias a los 2! ^^
PD: BUMP! Muchos tienen que leer esto Whatdone

(10/05/2019 08:23 PM)Niper.-. escribió:  Trap no son tus putas trap es mi equipo tumbando el foro de amxmodx hey tumbando el foro hey tumbando el foroooo ya saben todos nos llevamos todos los pluginsss..

(18/02/2019 03:08 PM)Neeeeeeeeeel.- escribió:  Shit

(28/02/2015 03:27 AM)sasske escribió:  Vete al diablo detallista de mierda Oh god why

(26/12/2018 02:45 PM)[R]ak escribió:  yo solo te veo en whatsapp agarrando culos.. nose..

(09/06/2017 12:59 AM)kikizon2 escribió:  Quiero que leas las reglas, y si fuese posible que saltaras de un 10mo piso, pls.

(21/04/2017 01:27 AM)Chamo. escribió:  Cuanto hay que pagar para estar en tu firma TrolleyesThats what she said?

(20/04/2017 11:56 PM)matrix123 escribió:  Patrocinas rehlds? Es de lo único que hablas, mañana seguro te llegan remeras de rehlds, mandame una Whatever

(26/04/2017 08:47 PM)Dieguito escribió:  al que me salga con latinservers le meto un sugisaki por el c***

(26/02/2017 08:02 PM)meTaLiCroSS escribió:  La misma aritmetica se aplica con los Strings falsos que inventé ("trivago" y "pajarussel").

(13/02/2017 07:41 PM)Heber[$]ource escribió:  es nuvpawn, nos esta ddoseando con su sega genesis

(06/01/2015 10:47 PM)meTaLiCroSS escribió:  
(06/01/2015 10:40 PM)wiD escribió:  este chileno culiau :whatever;
¿Que?

(29/04/2016 11:44 PM)wiD escribió:  Te juro que si te tengo enfrente primero te piso con el auto y despues te meo en la boca.

(16/07/2014 06:38 PM)wiD escribió:  Mongito dame su name que quiero un chip para pegar todo cocow

(18/03/2015 02:04 PM)ErikMav94 escribió:  
(18/03/2015 02:03 PM)mongito100 escribió:  Son todos putos
escribís como el orto :trolleyes;

[Anti] escribió:Olle tranquilo cerebrito

(03/04/2015 12:16 AM)Treki escribió:  
(03/04/2015 12:11 AM)Sugisaki escribió:  cual plug?, el arkshine o el de arkshine?

Fixed*

(09/03/2015 09:49 PM)Moroha escribió:  Suspendieron al abaricioso platero de kikizon :trolleyes;

(26/05/2014 08:31 PM)ivan escribió:  hola quiero hacer combo para el party uso el de rank

(22/08/2014 11:41 PM)Store.gh escribió:  Join team de jeropito? A vos t hace falta un pito..

(26/02/2015 01:01 AM)meTaLiCroSS escribió:  
(26/02/2015 12:54 AM)sasske escribió:  Salida del horno nueva versión, que obsesionado estoy :3
PD: Me olvide de darle los créditos a metal xD, pobre metal xd
Da igual, dejalo como una enseñanza jejej no te llorare por unos creditos ehhmm hud...

(18/01/2015 12:31 AM)[R]ak escribió:  no me critican.. solo dicen boludeces

(05/01/2015 12:43 AM)roccoxx escribió:  Sentado en dust pensando como fui tan gil ♪
Image
(Este mensaje fue modificado por última vez en: 20/07/2014 03:31 AM por Mario AR..)
20/07/2014 03:31 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Marito Sin conexión
Miembro


Mensajes: 74
Registro en: Mar 2014
Reputación: 0
Mensaje: #5
RE: Entendiendo el ChatColor
Recien lo leo, buen tutorial, no sabia de unas cositas como ^3, Gracias Gran sonrisa... Ya mas adelante lo ponemos en practica Gran sonrisa
20/07/2014 03:53 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
K.-' Sin conexión
Miembro Destacado


Mensajes: 1,409
Registro en: Mar 2014
Reputación: 13
Mensaje: #6
RE: Entendiendo el ChatColor
Como lo uso ? osea para mandar mensajes en verde , amarillo ?

Código PHP:
stock chatcolor_all(input[])
{
    static 
msgSayText;
    
    if (!
msgSayText)
        
msgSayText get_user_msgid("SayText");
    
    if (
strlen(input) >= 190)
        
input[190] = '^0';
    
    
message_begin(MSG_BROADCASTmsgSayText);
    
write_byte(1);
    
write_string(input);
    
message_end();


(10/10/2014 06:38 PM)RauliTop escribió:  
(10/10/2014 04:40 PM)ivan escribió:  no sabía que se podia poner los iconos gestuales cuando das reputacion negativa/positiva.
ui, peligro...
pronto habrán reputaciones de ivan:
hace muy muy muii DafuqYao mingGenius buenos :thatswhatshesaid:tutoriales Proud me encataan Whatever
20/07/2014 04:11 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
CSAxel Sin conexión
Miembro Héroe


Plugin developer 1k
Mensajes: 1,837
Registro en: Dec 2013
Reputación: 40
Mensaje: #7
RE: Entendiendo el ChatColor
(20/07/2014 04:11 AM)K.- escribió:  Como lo uso ? osea para mandar mensajes en verde , amarillo ?

Código PHP:
stock chatcolor_all(input[])
{
    static 
msgSayText;
    
    if (!
msgSayText)
        
msgSayText get_user_msgid("SayText");
    
    if (
strlen(input) >= 190)
        
input[190] = '^0';
    
    
message_begin(MSG_BROADCASTmsgSayText);
    
write_byte(1);
    
write_string(input);
    
message_end();

Código PHP:
chatcolor_all("Hola a todos"// Le envias el mensaje a todos los que esten en el sv 
Exacto.. Es solo para mensajes en color verde y default

Con este soporta index
Código PHP:
stock chatcolor(id, const input[], any:...)
{
    static 
szMsg[191], msgSayText;
    
    if (!
msgSayText)
        
msgSayText get_user_msgid("SayText");
    
    
vformat(szMsg190input3);
    
    
message_begin(id MSG_ONE_UNRELIABLE MSG_BROADCASTmsgSayText, .player id);
    
write_byte(id id 1);
    
write_string(szMsg);
    
message_end();

Y soporta los formates en color del team, verde y default.
20/07/2014 04:21 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
K.-' Sin conexión
Miembro Destacado


Mensajes: 1,409
Registro en: Mar 2014
Reputación: 13
Mensaje: #8
RE: Entendiendo el ChatColor
sisi Genius ya se xD pero osea quisiera saber como mandar esos mensajes , ej :

chatcolor_all(id, "!gColor verde !yColor default") osea nose como mandar los mensajes en color..

(10/10/2014 06:38 PM)RauliTop escribió:  
(10/10/2014 04:40 PM)ivan escribió:  no sabía que se podia poner los iconos gestuales cuando das reputacion negativa/positiva.
ui, peligro...
pronto habrán reputaciones de ivan:
hace muy muy muii DafuqYao mingGenius buenos :thatswhatshesaid:tutoriales Proud me encataan Whatever
20/07/2014 04:23 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Federicomb Sin conexión
Miembro Destacado


Plugin developer Trebol verde Trebol de oro 1k
Mensajes: 1,038
Registro en: Jan 2014
Reputación: 24
Mensaje: #9
RE: Entendiendo el ChatColor
Una pregunta, no es mejor usar charsmax?

Código PHP:
vformat(msg190input3);

replace_all(msg190"!g""^4"); 

-->

Código PHP:
vformat(msgcharsmax(msg), input3);

replace_all(msgcharsmax(msg), "!g""^4"); 

Believe, be yourself and don't hold on to just one dream ❤


20/07/2014 05:02 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
cLAANS Sin conexión
Miembro Sr.


Plugin developer Trebol purpura
Mensajes: 653
Registro en: Oct 2013
Reputación: 16
Mensaje: #10
RE: Entendiendo el ChatColor
(20/07/2014 05:02 AM)Federicomb escribió:  Una pregunta, no es mejor usar charsmax?

Código PHP:
vformat(msg190input3);

replace_all(msg190"!g""^4"); 

-->

Código PHP:
vformat(msgcharsmax(msg), input3);

replace_all(msgcharsmax(msg), "!g""^4"); 

Si, tenes razón.

Lo que hace charsmax es no dejar celdas sin uso ..

Saludos,
cLAANS.-

Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017 09:30 PM)SoundBlaster escribió:  Espera y llamo a los power rangers para que me digan la linea de error
20/07/2014 08:40 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Enviar respuesta 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | Allied Modders en español | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS