View Single Post
Lt. Commander
Join Date: Dec 2007
Posts: 120
Originally Posted by h3llr4iser View Post
Let's say that upon logging on, a variable gets initialized for your character, let's call it "sRankName":
This explanation is inaccurate given dstahl's explanation of the problem and how the Foundry works: the use of RANKNAME tags in dialog/display text. Using markup like this decouples text and code, preventing the kinds of problems encountered while trying to explain this using variables.

Here's one way tags generally work: A routine parses a block of text for tags. For each tag, it passes the tag name and a context (an ID or reference to the item or character the text is about) to a lookup function. That function returns the display text, and the calling routine replaces the tag with that result. The lookup function is the only place that needs to know the details of how to find the descriptive text for a given tag. Cryptic isn't doing any heavy lifting with their simple tag set, so they're probably using some variation on this approach.

As dstahl described the problem, it will only get worse with time as Cryptic adds new content using the tag. The longer it goes unfixed, the less likely it will ever be fixed. Releasing the Foundry could make the problem much worse; while it's time-consuming and expensive for Cryptic to fix their content, many missions (like blogs) will get created and abandoned as authors come and go from the game. Those missions will never get fixed.

The best way to fix this is to create a new tag for item minimum level right now. For now, use the same lookup logic for it and RANKNAME. Use the new tags in all new item descriptions immediately and begin fixing references in old item text. When the new level/rank implementation is complete and all the item text code remediated, change the lookup function to use the new logic for RANKNAME.

Cryptic is in complete control of the problem if we restrict the changes to item text: players do not create items. New content will be pre-fixed and will behave identically to old text until Cryptic decides to flip the switch. The lookup function is the only place where the dialog/display text and the rank/level implementation intersect; i.e., the solution is orthogonal.

I would hope this includes a larger review of tags. There may be other cases of ambiguous tag names in need of similar fixes.