meaglyn wrote...
Thanks Funky. I did not mean to sound doubtful, but that was a pretty blanket statement that contradicted my experience so I wanted to dig further. Were you using a wide range of custom colors? There are apparently some color codes which should not be used.* I have a small range of basic colors (16 or so) and they are all tuned not to use any of the ones that are suspect.
I honestly don't remember, though I'm pretty confident that acaos was aware of that info when he was troubleshooting. We have an include for colors separate from the SIMTools colors, which I'm pasting here, though I don't remember if these were actually the codes we used. If they have problem characters, that strengthens the case for that being the issue, but again, doesn't make it certain. We use them for ingame chat/server messages, mostly.
const string C_GENERATOR = " !0@P`p€ °ÀÃà ðþ";
const string C_END = "</c>";
const string C_DARK_GREY = "<c@@@>";
const string C_MED_GREY = "<cppp>";
const string C_LIGHT_GREY = "<c >";
const string C_PALE_GREY = "<cÃÃÃ>";
const string C_WHITE = "<cþþþ>";
const string C_BLUE = "<c þ>";
const string C_DARK_BLUE = "<c p>";
const string C_MED_BLUE = "<c >";
const string C_LIGHT_BLUE = "<c ð>";
const string C_PALE_BLUE = "<c€°ð>";
const string C_BLUE_PURPLE = "<cÂþ>";
const string C_PALE_BLUE_PURPLE = "<cÀ°þ>";
const string C_GREEN = "<c þ >";
const string C_DARK_GREEN = "<c p >";
const string C_MED_GREEN = "<c ° >";
const string C_LIGHT_GREEN = "<c ð >";
const string C_PALE_GREEN = "<c°ð`>";
const string C_SEA_GREEN = "<cÂp>";
const string C_CYAN = "<c þþ>";
const string C_DARK_CYAN = "<c!pp>";
const string C_MED_CYAN = "<c0°°>";
const string C_LIGHT_CYAN = "<c0ðð>";
const string C_PALE_CYAN = "<cÂð>";
const string C_RED = "<cþ >";
const string C_DARK_RED = "<cp >";
const string C_MED_RED = "<c° >";
const string C_LIGHT_RED = "<cð >";
const string C_PALE_RED = "<cð@p>";
const string C_PALE_RED_ORANGE = "<cþ~P>";
const string C_YELLOW = "<cþþ >";
const string C_DARK_YELLOW = "<c€€!>";
const string C_MED_YELLOW = "<c°°0>";
const string C_LIGHT_YELLOW = "<cðð0>";
const string C_PALE_YELLOW = "<cðð€>";
const string C_PURPLE = "<cþ þ>";
const string C_DARK_PURPLE = "<cÂ!Â>";
const string C_MED_PURPLE = "<c°0°>";
const string C_LIGHT_PURPLE = "<cð0ð>";
const string C_PALE_PURPLE = "<cÃ`ð>";
const string C_RED_PURPLE = "<cÀ p>";
const string C_BROWN = "<c€@ >";
const string C_MED_ORANGE = "<cÀ`>";
const string C_LIGHT_ORANGE = "<cð€>";
const string C_PALE_ORANGE = "<cðÌ€>";
const string C_TEAL = "<c >";
const string C_PINK = "<cð€Ã>";
const string C_GOLD = "<cþðP>";
const string C_SUCCESS = "<c!Ã !>";
const string C_FAILURE = "<cÀ!!>";
const string C_UNKNOWN_SPELL = "<cÌ™>";
const string C_SERVER_MESSAGE = "<c°°°>";
const string C_DAMAGE_SELF = "<c™þþ>";
const string C_DAMAGE_OTHER = "<cÌ™Ì>";
const string C_DAMAGE_PHYSICAL = "<cþf>";
const string C_DAMAGE_ACID = "<c þ >";
const string C_DAMAGE_COLD = "<cÂþþ>";
const string C_DAMAGE_ELEC = "<c!`þ>";
const string C_DAMAGE_FIRE = "<cþ >";
const string C_DAMAGE_SONIC = "<cþ™>";
const string C_DAMAGE_DIVINE = "<cþþ>";
const string C_DAMAGE_MAGICAL = "<cÌwþ>";
const string C_DAMAGE_NEGATIVE = "<c™™™>";
const string C_DAMAGE_POSITIVE = "<cþþþ>";
const string C_DAMAGE_ECTO = "<cÀÀÀ>";
const string C_DAMAGE_PSIONIC = "<cà !P>";
const string C_DAMAGE_SACRED = "<cðð€>";
const string C_DAMAGE_VILE = "<c € >";
const string C_DAMAGE_INTERNAL = "<c€ >";
const string C_DAMAGE_PRIMAL = "<cÂÀÂ>";
const string C_DAMAGE_ANARCHIC = "<cÀÂÀ>";
const string C_DAMAGE_AXIOMATIC = "<cÂÀÀ>";
const string C_DAMAGE_SUBDUAL = "<cþÂÂ>";
const string C_DAMAGE_SP_DESICCATION = "<c°°`>";
const string C_DAMAGE_SP_FORCE = "<cÂ0À>";
const string C_DAMAGE_SP_RAW_NATURE = "<c à >";
const string C_DAMAGE_SP_VENOM = "<cÂÀ0>";
const string C_FUNKY_DM = "<c Ãð>";
const string C_FUNKY_ERROR = "<cþ<<>";
const string C_FUNKY_SHOUT = "<cþðP>";
const string C_FUNKY_NAME = "<c þ>";
Note that some of the characters don't paste properly into this board.
'> If anyone knows why and how to fix it,
As for digging up a problem convo, I'd have to dig through years worth of rars looking. If you're not having issues, I wouldn't sweat it; just don't be surprised if a convo with color codes starts throwing fits. In the code I'm about to link, you'll see that we replaced them with [Action] markers and the like.
Here's the dynconv system I promised:
Click MeIt includes a bunch of mod resources, as well as a txt file explaining how things related, which I'm pasting below.
Funky
START PASTE
NOTE: These files are not erf'd because the scripts are too complex, breaking the erf compiler. You'll need to use a custom compiler like Skywing's to compile these scripts, and you will have to copy/paste or unrar these files directly into the temp0 folder if you want to add them to a module.
===============
ac_dynconv_0.dlg through ac_dynconv_19.dlg : these are the 20 conversations available to the dynamic convo system (allowing up to 20 simultaneous convos (same or different controller scripts)) - all are identical, but included to save hassle should you try to use the system; it uses the following scripts:
ac_dynconv_menu.nss
ac_dynconv_main.nss
ac_dynconv_resp.nss
ac_dynconv_cond.nss
ac_dynconv_end.nss
they all share the same two includes:
hg_inc.nss : (NOT INCLUDED) our catchall include for frequently used functions - let me know if you need to see anything from it
ac_dynconv_inc.nss : core include for the dynamic convo system
=====
tsk_tinker.utc : task-giver - shows how dynamic convos launched from creatures by variable;
conv_by_tag.nss : script fired by tsk_tinker npc; highlights problem with dynconv system failing to pass npc speaker; NB: I'm not including the dynamic convo script itself, as it's quite long - instead, I'm giving you hgll and our bardsong convos - LMK if you want it
=====
hgll_start_dlg.nss : script fired from chat event to begin hgll levelup convo - code below is from chat event, showing how launched
ExecuteScript("hgll_start_dlg", oCPC);
//where oCPC is the pc speaker
includes in hgll_start_dlg:
aps_include.nss : (NOT INCLUDED) no longer the standard aps include, but a redirect to our custom databasing functions, only tangentially relevant
ac_dynconv_inc.nss : per above
zdlg_include_i.nss : pspeed include; at this point in time, I no longer have any idea if we've modified this particular include - I'm not even certain it's used in the system anymore, though I suspect acaos piggybacked some of its listing functionality, which is why I'm including it
hgll_func_inc.nss : modified hgll include - at this point, there's a lot of dead code which nwnx allowed us to simplify, and a fair bit of redone code
=====
dc_hgll.nss : controlling script for the hgll system dynamic conversation
includes in dc_hgll:
hg_inc.nss : per above
ac_dynconv_inc.nss : per above
dc_simple_inc.nss : include to simplify/make more intuitive the convo system; more like the bioware system people are used to, but totally unnecessary to function of system - it's basically a conceptual reordering of the core include functions
hgll_func_inc.nss : per above
hg_epicspell_inc.nss: (NOT INCLUDED) our epic spells include, referenced in the levelup process, and only tangentially relevant to the system as a whole
=====
dc_bardsong.nss : controlling script for our customizable bardsong conversation - much simpler than hgll, and easier to piece together the convo 'tree'