El_Vara

31/03/2014 14:22:48

Buenas a todos, pregunté en Clan Dlan y nadie me respondió, por eso, (ante todo buenas y gracias por adelantado) me dirijo a preguntar aquí, espero que no sea algo muy complicado.

Mi idea era simple, se me podría chibar como poner colores a las acciones, pensamientos y a los mensajes off rol.

Muchos saludos.

Cerril

31/03/2014 14:45:45

A que te refieres a colores en los mensages de chat?

El_Vara

31/03/2014 14:57:07

Sí, por ejemplo:
*Se bebe una litrona.* -> Que saliera azul...
(Mmm no se como hacer ésto) -> Que saliera... verde.
//Me tengo que salir... -> Pues rojo mismo...

Cerril

31/03/2014 15:09:56

Es un script con bastante trabajo, así que no te lo voy a scribir, pero te puedo dar algunas claves:

Para empezar los colores del texto:

Para que un texto cambie de color lo que tienes que hacer es anteponer al texto un código que se compone de lo siguiente:

<c***>


Los asteriscos tienes que sustituirlos por un caracter ascii que coincide con el código de color en formato RGB.

Por ejemplo si quieres poner un rojo, tendirias que escribir:

<cÿ >

Este color equivale a un RGB (255, 32,32).

Otro problema que tendrás es que el IDE del aurora no permite caracteres especiales como la ñ, asi que tendrás que guardar los valores o bien en un objeto y extraerlos de él, o modificando el tlk del servidor, en cuyo caso tendrás que distribuirlo entre tus jugadores.

Una vez tengas solucionado el tema de los colores es simplemente capturar el texto escrito, esto se hace en el evento del modulo OnPlayerChat.

y mediante la función
[code:1:0def649b6e]GetPCChatMessage();[/code:1:0def649b6e]

A la que añadiras el prefijo del color que desees, en funcion de lo que se escriba.

El_Vara

31/03/2014 15:12:54

Pfff, si me dejaras el ejemplo de solo las ** podría crear los demás, por desgracia soy nulo en este tipo de cosas, solo se editar... y crear copias, poco más...

Cerril

31/03/2014 15:17:07

Es un script complicadisimo, si no tienes mucha idea, te sugiero que mejor no lo metas en tu mod.

El_Vara

31/03/2014 15:22:16

Uhm, vale ;(

El_Vara

25/04/2014 18:40:04

Siento relevantar el tema, ya me daba por dejarlo. Pero los jugadores me piden los colores a los símbolos como locos... ¿No hay nadie que pueda hacerme solo un símbolo y yo intentar hacer los demás basándome en ese?

ppmateos

27/05/2014 18:47:20

Yo no lo veo muy complicado. Con un script que capture y cree las constantes de los colores y otro que simplemente capture el texto que va entre esos prefijos se podría hacer algo sencillo.

Probaré un poco a ver que me sale.

El_Vara

28/05/2014 02:39:33

Pues si lo consiguieras me harías un favor muy grande y te lo agradecería bastante. :o :)

ppmateos

31/05/2014 23:53:10

Pues la verdad es que no es tan fácil, o al menos mi nivel de scripts no da para más jeje, a ver si alguien se anima y nos lo retoca para que funcione como queremos.

A ver, esto que te pongo ahora funciona, pero para que se coloree el texto primero hay que poner los prefijos (), ** o //

Con las // no hay problema, pero me gustaría que lo que se escriba entre los paréntesis se dibuje de otro color, lo mismo que con los ** y no se como hacerlo, sólo se hacer el script usando prefijos.

Puede valer pero hay que acostumbrar a los jugadores a empezar la frase así y no es plan. Supongo que con algún retoque puede funcionar perfecto, pero ya tengo muchas cosas en la cabeza para seguir con esto jeje.

A ver si Althor o algún experto en scripts nos echa una mano.

Dejo los dos scripts necesarios:

Este primero lo creas y lo compilas y listo:

[code:1:aae02f54b3]// 0_pp_colores
// Reeditado por ppmateos
// Creado en 2014
//
// Este script sirve para crear las constantes de colores, sus funciones y utilizarlas en otros scripts.
// Solo crear el script y compilarlo, no se coloca en ningun sitio.
//
// Si hay que incluirlo en los scripts que necesiten de estas constantes y funciones colocando
// al inicio de cada script #include 0_pp_colores
//
//
// ***************************************************

string sColors = " !!#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ¡¢£¤¥§©©ª«¬­®¯°±²³´µ¶·¸¸º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïñòóôõö÷øùúûüýþþþ";

string ASCII(int iAsciiCode) // 0 - 255
{
int ASCIIReturn = iAsciiCode;
if (ASCIIReturn<0) ASCIIReturn = 0;
else if (ASCIIReturn>255) ASCIIReturn = 255;
return GetSubString(sColors,iAsciiCode+1,1);
}

int ASCIIToInt(string sLookup)
{
return FindSubString(sColors, sLookup)-1;
}

string RGB(int iR, int iG, int iB) // 0-255
{
return "<c"+ASCII(iR)+ASCII(iG)+ASCII(iB)+">";
}

const string TEXT_COLOR_RED = "þ ";
const string TEXT_COLOR_ORANGE = "þœ ";
const string TEXT_COLOR_YELLOW = "þþ ";
const string TEXT_COLOR_GREEN = " þ ";
const string TEXT_COLOR_BLUE = " þ";
const string TEXT_COLOR_CYAN = " þþ";
const string TEXT_COLOR_PURPLE = "þ þ";
const string TEXT_COLOR_WHITE = "þþþ";
const string TEXT_COLOR_GREY = "~~~";
const string TEXT_COLOR_CRIMSON = "‘ ";
const string TEXT_COLOR_EMERALD = " ~ ";
const string TEXT_COLOR_BROWN = "Ç~6";
const string TEXT_COLOR_AZURE = "~~þ";

string RGBColorText(string RGBCode, string sText)
{
return "<c"+ RGBCode +">"+ sText +"</c>";
}

string ColorText(string ColorCode, string sText)
{
if (ColorCode == "crimson") ColorCode = "<c‘ >";
else if (ColorCode == "red") ColorCode = "<cþ >";
else if (ColorCode == "plum") ColorCode = "<cþww>";
else if (ColorCode == "tangerine") ColorCode = "<cÇZ >";
else if (ColorCode == "orange") ColorCode = "<cþœ >";
else if (ColorCode == "peach") ColorCode = "<cþÇ >";
else if (ColorCode == "amber") ColorCode = "<cœœ >";
else if (ColorCode == "yellow") ColorCode = "<cþþ >";
else if (ColorCode == "lemon") ColorCode = "<cþþw>";
else if (ColorCode == "emerald") ColorCode = "<c ~ >";
else if (ColorCode == "green") ColorCode = "<c þ >";
else if (ColorCode == "lime") ColorCode = "<cwþw>";
else if (ColorCode == "midnight") ColorCode = "<c t>";
else if (ColorCode == "navy") ColorCode = "<c ‘>";
else if (ColorCode == "blue") ColorCode = "<c þ>";
else if (ColorCode == "azure") ColorCode = "<c~~þ>";
else if (ColorCode == "skyblue") ColorCode = "<cÇÇþ>";
else if (ColorCode == "violet") ColorCode = "<c¥ ¥>";
else if (ColorCode == "purple") ColorCode = "<cþ þ>";
else if (ColorCode == "lavender") ColorCode = "<cþ~þ>";
else if (ColorCode == "black") ColorCode = "<c >";
else if (ColorCode == "slate") ColorCode = "<c666>";
else if (ColorCode == "darkgrey") ColorCode = "<cZZZ>";
else if (ColorCode == "grey") ColorCode = "<c~~~>";
else if (ColorCode == "lightgrey") ColorCode = "<c¯¯¯>";
else if (ColorCode == "white") ColorCode = "<cþþþ>";
else if (ColorCode == "turquoise") ColorCode = "<c ¥¥>";
else if (ColorCode == "jade") ColorCode = "<c tt>";
else if (ColorCode == "cyan") ColorCode = "<c þþ>";
else if (ColorCode == "cerulean") ColorCode = "<cœþþ>";
else if (ColorCode == "aqua") ColorCode = "<cZǯ>";
else if (ColorCode == "silver") ColorCode = "<c¿¯Ç>";
else if (ColorCode == "rose") ColorCode = "<cÎFF>";
else if (ColorCode == "pink") ColorCode = "<cþV¿>";
else if (ColorCode == "wood") ColorCode = "<c‘Z(>";
else if (ColorCode == "brown") ColorCode = "<cÇ~6>";
else if (ColorCode == "tan") ColorCode = "<cß‘F>";
else if (ColorCode == "flesh") ColorCode = "<cû¥Z>";
else if (ColorCode == "ivory") ColorCode = "<cþÎ¥>";
else if (ColorCode == "gold") ColorCode = "<cþ¿6>";
else if (ColorCode == "random")
{
switch (d3())
{
case 1: ColorCode = RGB(Random(128)+128,Random(192)+64,Random(192)+64); break;
case 2: ColorCode = RGB(Random(192)+64,Random(128)+128,Random(192)+64); break;
case 3: ColorCode = RGB(Random(192)+64,Random(192)+64,Random(128)+128); break;
}
}
return ColorCode + sText + "</c>";
}[/code:1:aae02f54b3]


Y este lo pones en el onplayerchat:

[code:1:aae02f54b3]// 0_pp_playerchat
// Reeditado por ppmateos
// Creado en 2014
//
// Este script sirve para colorear los comandos de chat (), ** y //
// Colocar en el evento "OnPlayerChat" del modulo.
//
// Para que funcione el script, el PJ debe empezar escribiendo los prefijos indicados seguidos del texto a elegir.
// Se necesita tener incluido el script 0_pp_colores para que funcione. Se pueden elegir los colores de ese script.
//
//
//
// EJEMPLO DE FUNCIONAMIENTO:
// El PJ escribe en el chat --> ()que calor hace --> Aparecera en color rosa en el chat --> (que calor hace)
// El PJ escribe en el chat --> **cogiendo flores --> Aparecera en color rojo en el chat --> *cogiendo flores*
// ***************************************************

#include "0_pp_colores"

void main()
{
object oSpeaker = GetPCChatSpeaker();
string sMessage = GetPCChatMessage();
string sEmoteText = "";
string sEmoteText2 = "";
string sEmoteText3 = "";
string sSpeakerName = GetName(oSpeaker);

// Creacion de los prefijos
string sPrefix1 = "()"; //Para pensamientos
string sPrefix2 = "//"; //Para las barras offrol
string sPrefix3 = "**"; //Para las acciones

// Comprobacion que lo que se ha escrito viene despues del prefijo:

// Prefijo 1
if (GetStringLeft(sMessage, GetStringLength(sPrefix1)) == sPrefix1)
{
sEmoteText = GetStringRight(sMessage, GetStringLength(sMessage) - GetStringLength(sPrefix1));
}

// Prefijo 2
if (GetStringLeft(sMessage, GetStringLength(sPrefix2)) == sPrefix2)
{
sEmoteText2 = GetStringRight(sMessage, GetStringLength(sMessage) - GetStringLength(sPrefix2));
}

// Prefijo 3
if (GetStringLeft(sMessage, GetStringLength(sPrefix3)) == sPrefix3)
{
sEmoteText3 = GetStringRight(sMessage, GetStringLength(sMessage) - GetStringLength(sPrefix3));
}

// Si la accion esta bien escrita, procede a colorearla
if (sEmoteText != "")
{
// Seleccionamos el color, como queda la frase y quien la dice
AssignCommand(oSpeaker,SpeakString(ColorText("pink","("+""+ sEmoteText + ")")));
//La siguiente linea es por si quieres que lo que dicen lo vean los DM
//SendMessageToAllDMs(sSpeakerName + " " + sEmoteText);

// Borra el texto para que aparezca el texto coloreado y no se duplique
SetPCChatMessage("");
}

if (sEmoteText2 != "")
{
AssignCommand(oSpeaker,SpeakString(ColorText("green","//"+""+ sEmoteText2)));
//SendMessageToAllDMs(sSpeakerName + " " + sEmoteText2);
SetPCChatMessage("");
}

if (sEmoteText3 != "")
{
AssignCommand(oSpeaker,SpeakString(ColorText("red","*"+""+ sEmoteText3 + "*")));
//SendMessageToAllDMs(sSpeakerName + " " + sEmoteText3);
SetPCChatMessage("");
}
}[/code:1:aae02f54b3]

Espero te sirva de ayuda y si das con lo que queremos me avises.

Cerril

01/06/2014 04:09:36

[quote:cd547146fc="ppmateos"]Con las // no hay problema, pero me gustaría que lo que se escriba entre los paréntesis se dibuje de otro color, lo mismo que con los ** y no se como hacerlo, sólo se hacer el script usando prefijos.[/quote:cd547146fc]

Es tan sencillo como revisar el primer y último caracter de la cadena de texto utilizando las funciones


[code:1:cd547146fc]//Para extraer caracteres por la izquierda
string GetStringLeft(string sString, int nCount);

//Para extraer caracteres por la derecha
string GetStringRight(string sString, int nCount);[/code:1:cd547146fc]

Si el primer caracter izquierdo y el primer caracter derecho son *, pues pitas del color de acciones.

Lo mismo para los parentesis de pensamientos.

Cerril

01/06/2014 04:14:39

Puede ocurrir que algún listillo utilice los pensamientos y hable en la misma frase de chat en plan:

Buenos días caballero (que raro viste este tio).

En este caso deberías crear un bucle para que revise caracter a caracter e insertar la marca de color donde te convenga. Pero esta clase de script los desaconsejo, pues elevarían demasiado uso del procesador al ser tan repetitivos.

ppmateos

01/06/2014 11:03:03

Pues esa es la idea sí.

Intentaré a ver si puedo arreglar algo pero ya le he dado varias vueltas al script y ya lo que consigo es que no me funcione.

Aunque consuma recursos me gustaría saber como hacerlo.

AlthorDeMalavir

01/06/2014 11:48:26

No hacen falta bucles, usa esta función para encontrar los simbolos y aislarlos

[code:1:9f54e7fada]
// Find the position of sSubstring inside sString
// - nStart: The character position to start searching at (from the left end of the string).
// * Return value on error: -1
int FindSubString(string sString, string sSubString, int nStart=0)
[/code:1:9f54e7fada]

ppmateos

01/06/2014 13:13:16

Gracias Althor, voy a ver que consigo hacer con eso.

Cerril

01/06/2014 15:13:18

[quote:83488e284a="AlthorDeMalavir"]No hacen falta bucles, usa esta función para encontrar los simbolos y aislarlos

[code:1:83488e284a]
// Find the position of sSubstring inside sString
// - nStart: The character position to start searching at (from the left end of the string).
// * Return value on error: -1
int FindSubString(string sString, string sSubString, int nStart=0)
[/code:1:83488e284a][/quote:83488e284a]

Esa no la conocia, pero cuidado con ella, porque devuelve solo la posición del caracter dentro de la cadena, sigues necesitando intertar entre medias la etiqueta de color.

ppmateos

01/06/2014 15:43:13

He conseguido esto, pero le pone el mismo color rojo tanto a pensamientos como acciones. ¿Que podria hacer para que salgan en distinto color?

[code:1:40c3a25390]void main()
{

object oPC = GetPCChatSpeaker();
string sText = GetPCChatMessage();
string sFinal = "";
int iAmPepe = TRUE;


int iStart = FindSubString(sText, "*", 0);
if (iStart == -1) {iStart = FindSubString(sText, "(", 0); iAmPepe = FALSE;}
if (iStart == -1) return;


int iEnd;
if (iAmPepe) iEnd = FindSubString(sText, "*", iStart+1);
else iEnd = FindSubString(sText, ")", iStart+1);


sFinal += GetSubString(sText, 0, iStart) + "<cþ >";
if (iEnd>-1) sFinal += GetSubString(sText, iStart, iEnd+1 - iStart) + "</c>";
else iEnd = iStart -1;
sFinal += GetSubString(sText, iEnd+1, GetStringLength(sText) - iEnd+1);


SetPCChatMessage(sFinal);
}[/code:1:40c3a25390]

Solo seria poner este script en el onplayerchat y listo, ya casi está a falta de eso

El_Vara

03/06/2014 14:37:19

Uhm, como avanza ésto jajaja, muchas gracias por la preocupación :) Lo de los colores iguales... quizás Arthor pueda guiarte un poco, esperaré por si acaso :)

AlthorDeMalavir

03/06/2014 14:55:29

Mañana le echo un ojo

ppmateos

03/06/2014 18:06:41

Estupendo Althor, lo esperamos.

El script está muy bien por que colorea sólo lo que escribas entre paréntesis o asteriscos. Puedes escribirlos en cualquier parte de la frase y sólo el fragmento entre los símbolos se coloreará.

He actualizado el script para añadir también los símbolos de las barras offrol.

[code:1:eacfe4e7ad]void main()
{

object oPC = GetPCChatSpeaker();
string sText = GetPCChatMessage();
string sFinal = "";
int iAmPepe = TRUE;


int iStart = FindSubString(sText, "*", 0);
if (iStart == -1) {iStart = FindSubString(sText, "(", 0); iAmPepe = FALSE;}
if (iStart == -1) {iStart = FindSubString(sText, "//", 0); iAmPepe = FALSE;}
if (iStart == -1) return;


int iEnd;
if (iAmPepe) iEnd = FindSubString(sText, "*", iStart+1);
else iEnd = FindSubString(sText, ")", iStart+1);


sFinal += GetSubString(sText, 0, iStart) + "<cþ >";
if (iEnd>-1) sFinal += GetSubString(sText, iStart, iEnd+1 - iStart) + "</c>";
else iEnd = iStart -1;
sFinal += GetSubString(sText, iEnd+1, GetStringLength(sText) - iEnd+1);


SetPCChatMessage(sFinal);
}[/code:1:eacfe4e7ad]

A ver si podemos hacer entre todos que cada símbolo aparezca de un color distinto.

AlthorDeMalavir

04/06/2014 11:17:31

Según está el script tiene la limitación de que no se puede poner, por ejemplo,

(que feo es) *se tira un pedo*

dos tipos de mensaje al mismo tiempo, pero bueno, es un script básico que es funcional.

Aquí está con las // ya que había que modificar un poco el script para que realmente funcionase, y con los colores, ya le ponéis los colores que queráis.

[code:1:757a542c51]
void main()
{

object oPC = GetPCChatSpeaker();
string sText = GetPCChatMessage();
string sFinal = "";
int iAmPepe = TRUE;
int iStart = -1;
int iEnd;
string ColorCode;


if (iStart == -1) {iStart = FindSubString(sText, "*", 0); iAmPepe = FALSE;}
if (iStart == -1) {iStart = FindSubString(sText, "(", 0); iAmPepe = FALSE;}
if (iStart == -1) {iStart = FindSubString(sText, "//", 0); iAmPepe = FALSE;}
if (iStart == -1) return;

if(FindSubString(sText, "*", 0) > -1)
{
iEnd = FindSubString(sText, "*", iStart+1);
ColorCode = "<cþœ >"; //Color para *
}
if(FindSubString(sText, "(", 0) > -1)
{
iEnd = FindSubString(sText, ")", iStart+1);
ColorCode = "<cþþ >"; //Color para ( )
}
if(FindSubString(sText, "//", 0) > -1)
{
iEnd = GetStringLength(sText);
ColorCode = "<c þþ>"; //Color para //
}

sFinal += GetSubString(sText, 0, iStart) + ColorCode;
if (iEnd>-1) sFinal += GetSubString(sText, iStart, iEnd+1 - iStart) + "</c>";
else iEnd = iStart -1;
sFinal += GetSubString(sText, iEnd+1, GetStringLength(sText) - iEnd+1);


SetPCChatMessage(sFinal);
}

/*
if (ColorCode == "crimson") ColorCode = "<c‘ >";
else if (ColorCode == "red") ColorCode = "<cþ >";
else if (ColorCode == "plum") ColorCode = "<cþww>";
else if (ColorCode == "tangerine") ColorCode = "<cÇZ >";
else if (ColorCode == "orange") ColorCode = "<cþœ >";
else if (ColorCode == "peach") ColorCode = "<cþÇ >";
else if (ColorCode == "amber") ColorCode = "<cœœ >";
else if (ColorCode == "yellow") ColorCode = "<cþþ >";
else if (ColorCode == "lemon") ColorCode = "<cþþw>";
else if (ColorCode == "emerald") ColorCode = "<c ~ >";
else if (ColorCode == "green") ColorCode = "<c þ >";
else if (ColorCode == "lime") ColorCode = "<cwþw>";
else if (ColorCode == "midnight") ColorCode = "<c t>";
else if (ColorCode == "navy") ColorCode = "<c ‘>";
else if (ColorCode == "blue") ColorCode = "<c þ>";
else if (ColorCode == "azure") ColorCode = "<c~~þ>";
else if (ColorCode == "skyblue") ColorCode = "<cÇÇþ>";
else if (ColorCode == "violet") ColorCode = "<c¥ ¥>";
else if (ColorCode == "purple") ColorCode = "<cþ þ>";
else if (ColorCode == "lavender") ColorCode = "<cþ~þ>";
else if (ColorCode == "black") ColorCode = "<c >";
else if (ColorCode == "slate") ColorCode = "<c666>";
else if (ColorCode == "darkgrey") ColorCode = "<cZZZ>";
else if (ColorCode == "grey") ColorCode = "<c~~~>";
else if (ColorCode == "lightgrey") ColorCode = "<c¯¯¯>";
else if (ColorCode == "white") ColorCode = "<cþþþ>";
else if (ColorCode == "turquoise") ColorCode = "<c ¥¥>";
else if (ColorCode == "jade") ColorCode = "<c tt>";
else if (ColorCode == "cyan") ColorCode = "<c þþ>";
else if (ColorCode == "cerulean") ColorCode = "<cœþþ>";
else if (ColorCode == "aqua") ColorCode = "<cZǯ>";
else if (ColorCode == "silver") ColorCode = "<c¿¯Ç>";
else if (ColorCode == "rose") ColorCode = "<cÎFF>";
else if (ColorCode == "pink") ColorCode = "<cþV¿>";
else if (ColorCode == "wood") ColorCode = "<c‘Z(>";
else if (ColorCode == "brown") ColorCode = "<cÇ~6>";
else if (ColorCode == "tan") ColorCode = "<cß‘F>";
else if (ColorCode == "flesh") ColorCode = "<cû¥Z>";
else if (ColorCode == "ivory") ColorCode = "<cþÎ¥>";
else if (ColorCode == "gold") ColorCode = "<cþ¿6>";
*/
[/code:1:757a542c51]

ppmateos

04/06/2014 12:20:09

Estupendo Althor, luego lo pruebo.

Lo ideal sería poner en una misma frase () y ** y se colorearan como dices. Está claro que puede hacerse por que lo hemos visto en otros servidores.

Si algún día doy con la manera de hacerlo pondré aquí el script.

El_Vara

04/06/2014 13:59:23

Bueno ya es algo funcional y básico es cuestión mejorarlo, aún así gracias mejor que nada es :)

Cerril

15/06/2014 15:00:05

chicos si importais la libreria de nwn x3_inc_string tendreis acceso a una serie de funciones entre las que destaca la siguiente:



[code:1:44d0999beb]// FILE: x3_inc_string FUNCTION: StringToRGBString()
//
// This function will make sString be the specified color
// as specified in sRGB. RGB is the Red, Green, and Blue
// components of the color. Each color can have a value from
// 0 to 7.
// Ex: red == "700"
// green == "070"
// blue == "007"
// white == "777"
// black == "000"
// The STRING_COLOR_* constants may be used for sRGB.
string StringToRGBString(string sString, string sRGB);
[/code:1:44d0999beb]

El_Vara

09/09/2014 18:02:35

Aún no he sabido ni he encontrado el sistema, si alguien pudiera facilitarlo sería de gran ayuda, no se donde buscar ni a quien preguntar.

AlthorDeMalavir

09/09/2014 21:56:01

Pero si tiene sun script funcional aquí mismo, solo tienes que colocarlo en el evento OnPlayerChat

El_Vara

09/09/2014 23:07:29

Sí pero ese es funcional, no se puede poner por ejemplo:
(Creo que esta bien...) *Mirando al norte.*

AlthorDeMalavir

09/09/2014 23:56:10

Ah, vale, te pongo el que he programado para mi servidor, aunque no está testeado 100% porque todavía no he subido los últimos cambios que he andado haciendo.

[code:1:f61a1d8a20]
void main()
{
string sChat = GetPCChatMessage();
int nCaracteres;
int nLongitudChat = GetStringLength(sChat);
string sCaracter;
string sChatFinal;
int nInicioColor;

for(nCaracteres = 0; nCaracteres <= nLongitudChat; nCaracteres++)
{
sCaracter = GetSubString(sChat, nCaracteres, 1);

if(sCaracter == "*")
{
if(nInicioColor == 0)
{
nInicioColor = 1;
sChatFinal = sChatFinal + "<cþ¿6>"; //Color para *
sChatFinal = sChatFinal + sCaracter;
}
else
{
nInicioColor = 0;
sChatFinal = sChatFinal + sCaracter;
sChatFinal = sChatFinal + "</c>";
}
}
else if(sCaracter == "(")
{
sChatFinal = sChatFinal + "<cþ~þ>"; //Color para (
sChatFinal = sChatFinal + sCaracter;
}
else if(sCaracter == ")")
{
sChatFinal = sChatFinal + sCaracter;
sChatFinal = sChatFinal + "</c>";
}
else if(GetSubString(sChat, nCaracteres, 2) == "//")
{
sChatFinal = sChatFinal + "<c þþ>"; //Color para //
sChatFinal = sChatFinal + GetSubString(sChat, nCaracteres, 2);
nCaracteres++;
}
else sChatFinal = sChatFinal + sCaracter;
}

SetPCChatMessage(sChatFinal);
}
[/code:1:f61a1d8a20]

El_Vara

10/09/2014 22:37:21

Lo pruebo y te digo :) Muchas gracias!

EDITO:
FUNCIONA PERFECTO MIL GRACIAS!