|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4692 Location: Pensacola, FL, USA
|
Posted: Wed Aug 08, 2007 11:04 pm
XML stream |
Is there a way to view raw XML sent by the MUD?
Supposedly that is how GemStoneIV sends the data for its point and click interface FE.
Which i plan on converting to MXP to properly emulate. |
|
_________________ Discord: Shalimarwildcat |
|
|
|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Thu Aug 09, 2007 3:13 am |
Yes, just set your GSL Client type to stormfront (it's listed in Simutronics preferences). Save/apply preferences, close down the character, reopen the character in offline mode, start up logging, then reconnect to the mud. Everything in the mess you now see in the main game window is exactly what's being sent by Simutronics, because CMud doesn't talk to Simutronics to do the MXP prepwork and thus has absolutely no idea what these tags mean (ergo, it's plain text that's left up on the screen for the user to see).
|
|
_________________ EDIT: I didn't like my old signature |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4692 Location: Pensacola, FL, USA
|
Posted: Thu Aug 09, 2007 5:05 am |
I have no StormFront option though i do have a browser_fe, however after closing the session and reopening it, there was no added text show in the log file.
|
|
_________________ Discord: Shalimarwildcat |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu Aug 09, 2007 5:02 pm |
You should be able to enter stormfront into the GSL client field even if it's not in the drop-down menu.
|
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4692 Location: Pensacola, FL, USA
|
Posted: Thu Aug 09, 2007 9:39 pm |
Aha, that did it, now to make sense of the tags they are using.
Oh, and doing this seems to break all GSL triggers. Dunno if that was intentional. |
|
_________________ Discord: Shalimarwildcat |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4692 Location: Pensacola, FL, USA
|
Posted: Thu Aug 09, 2007 11:21 pm |
Another thing.
Apparantly (according to the staff at simultronics) there are still some XML codes that i am not receiving.
The person I talked to was not entirely sure if it was, in fact, being sent.
Some commands (exp, info, cman info) that had output before i switched the GSL type to stormfront are now not giving me any output either, definately something fishy here...
More details as I get them. |
|
_________________ Discord: Shalimarwildcat |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Fri Aug 10, 2007 1:16 am |
Keep in mind that CMUD doesn't currently handle "null" tags that look like <TAG/>. I'm expecting to add this to v2.0 if I have time.
|
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4692 Location: Pensacola, FL, USA
|
Posted: Fri Aug 10, 2007 3:09 am |
I had asked on the GemStone boardss as well about the first such tag i noticed i wasnt getting, and here is the reply i got:
Quote: |
IOI: 3
>If there is any info about the way they are being sent from the game, that would help track it down.
Stamina information is sent in the following tag:
<progressBar id='stamina' value='{percentage}' text='{text value}' left='...' customText='...' top='...' width='...' height='...'/>
{percentage} is an integer saying the percentage of max stamina (so if you had 154 stamina out of 174, it would be '88'). {text value} is something like 'stamina 154/174'. Raw numbers aren't sent, you'll need to parse those out of the text attribute of the tag. The rest of the attributes are instructions on laying out the progress bar.
All of the data you'd typically display in a meter of some kind is reported like that. The ids that are probably useful to you are 'health', 'mana', 'stamina', 'spirit', 'mindState', 'nextLevelPB', and 'pbarStance'.
- Ildran |
I dont see why this text of this tag would have not been sent to me, but for some reason, i never received it.
I already tried turning off my triggers to see if some other setting was gagging the output. |
|
_________________ Discord: Shalimarwildcat |
|
|
|
Fang Xianfu GURU
Joined: 26 Jan 2004 Posts: 5155 Location: United Kingdom
|
Posted: Fri Aug 10, 2007 3:19 am |
Just as an aside, I wish you the best of luck with this, shalimar. Many brave men have fallen before the spam demon that is the Stormfront XML stream.
I remember someone (I believe it was charneus) was tackling this same problem and having lots of difficulty. His approach was different - he'd written his own proxy program that parsed out the XML and printed out MXP for zMUD/CMUD to parse, but the sheer volume of information made it difficult. I'd love to hear if you have any more success. |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4692 Location: Pensacola, FL, USA
|
Posted: Fri Aug 10, 2007 3:22 am |
Another reply i got in the other thread:
Quote: |
The front end I'm writing, ArchLich, updates the stamina bar whenever it receives this line from the StormFront protocol:
Code: |
<dialogData id='minivitals'><progressBar id='stamina' value='100' text='stamina 86/86' left='50%' customText='t' top='0%' width='25%' height='100%'/></dialogData> |
As you can see, it gives the 'value' which is the percentage of the max you have (it is a progress bar, after all) and it gives a flat text that tells you your current and maximum stamina. This has everything to do with the protocol and nothing to do with the FE I've written... so if you're displaying text from the SF protocol, which I assume you are, you should be seeing that data. |
REPEAT: This is text that i am NOT seeing.
P.S. Thanks for the encouragement... I've been wanting to tackle this for awhile now. |
|
_________________ Discord: Shalimarwildcat |
|
|
|
Tech GURU
Joined: 18 Oct 2000 Posts: 2733 Location: Atlanta, USA
|
Posted: Fri Aug 10, 2007 8:57 am |
Since CMUD doesn't handle null tags, as Zugg mentioned earlier, you wouldn't be getting the progressBar XML. And it's possible, since dialogData now looks like an empty tag (other than it's id information) with out the progressBar tag, that it may be getting stripped as well, or at least not displayed since it provides no information.
On the upside 2.0 will be out pretty soon and Uncle Zugg may include support for it. (I'm guessing it's fairly likely since he's done all that XML work for the settings editor. Then again, they could be completely separate components.) |
|
_________________ Asati di tempari! |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4692 Location: Pensacola, FL, USA
|
Posted: Fri Aug 10, 2007 9:15 am |
Yea, I was hoping so too, what with all the XML inport/export stuff, it does seem a prime time to add more XML support.
Though i didn't realize those were null tags since they do have IDs. |
|
_________________ Discord: Shalimarwildcat |
|
|
|
Arminas Wizard
Joined: 11 Jul 2002 Posts: 1265 Location: USA
|
Posted: Fri Aug 10, 2007 12:03 pm |
Null Tags <Text here />
Normal Tags <Text here>Stuff between the tag</Text>
I'm DEFINITELY lacking on the subject but it seams to me that Normal tags look like HTML < ></ > and require an open and closing while a null does not < />. So a null doesn't require a close. Kinda like the BR in HTML did not used to have to have a close <BR> but now needs one <BR/> tells browsers that the BR is a null tag and not to look for a closing tag. Or at least for information between it and a closing tag.
Someone Please shoot me down if I am incorrect as it is morning and I didn't look up a single bit of this information. |
|
_________________ Arminas, The Invisible horseman
Windows 7 Pro 32 bit
AMD 64 X2 2.51 Dual Core, 2 GB of Ram |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4692 Location: Pensacola, FL, USA
|
Posted: Fri Aug 10, 2007 6:11 pm |
Code: |
<popBold/><pushBold/>
You have unread news articles. Type NEWS NEXT to view the first new article.
<popBold/><resource picture="0"/><style id="roomName" />[Ta'Illistim Forging Supply Shop]
<style id=""/><style id="roomDesc"/>A wide haon counter bisects this portico. Standing near the gap in the length of the counter, a tall elf with weathered features and broad shoulders looks ready to assist those wishing to purchase items from the inventory displayed beneath the counter's glaes top, or to collect silvers from aspiring weaponsmiths wishing to use one of the numerous workshops joined to the portico by paved walkways. <style id=""/>You also see a large placard, <pushBold/>the clerk Storien<popBold/> and a wooden sign.
Obvious exits: south
<compass><dir value="s"/></compass><resource/><prompt time="1186694546">></prompt> |
what about the: <dir value="s"/>
That looks like a null tag by your definition as well. Yet it is displaying.
And <popBold/> is the closing tag for <pushBold/> if that makes any sense.
Oh, here is a link i got to many, if not all, of the stormfront XML tags. |
|
_________________ Discord: Shalimarwildcat |
|
|
|
Thinjon100 Apprentice
Joined: 12 Jul 2004 Posts: 190 Location: Canada
|
Posted: Fri Aug 10, 2007 8:50 pm |
By strict XML definition, Arminas is correct, null tags are <tag attribute="value" ... /> while non-null tags are <tag attr="value">contents</tag>.
However, the only true expert on what CMud sees as a null or non-null tag would be Zugg... so the interpretation it uses may be different.
By the above definition:
<popBold />
<pushBold />
<resource ... />
<style ... />
are all "null" tags, while...
<compass>...</compass>
<prompt ...>...</prompt>
are non-null tags.
From your above post, I'm not sure what is or isn't displaying, but it's possible that because it's contained WITHIN a non-null XML, the null <dir /> tag is displaying. |
|
_________________ If you're ever around Aardwolf, I'm that invisible guy you can never see. Wizi ftw! :) |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4692 Location: Pensacola, FL, USA
|
Posted: Fri Aug 10, 2007 8:55 pm |
The <resource> tag is actually closed 4 lines down from it opening, which, if your right about being contained, would explain why the <style> tags (which seem to enclose relevant mapper info) are being displayed.
|
|
_________________ Discord: Shalimarwildcat |
|
|
|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Fri Aug 10, 2007 11:42 pm |
Quote: |
Since CMUD doesn't handle null tags
|
Actually, it does. What it does not handle are the newer formats described by Arnimas. The issue is that Simutronics doesn't use the old formats, which is strictly the change from <tag> to <tag/>.
Quote: |
The <resource> tag is actually closed 4 lines down from it opening, which, if your right about being contained, would explain why the <style> tags (which seem to enclose relevant mapper info) are being displayed.
|
Actually, no. Any time that CMud encounters a possible tag it doesn't recognize it treats it as plain text. It doesn't matter if this tag was found inside valid tags or not. Every tag that Simutronics sends that uses the <tag/> format literally cannot be defined and thus will always be an unrecognized tag. If you aren't seeing it, then either the Hide The Password feature or one of your triggers is matching something in the tag itself and performing the gag there or Simutronics just plain isn't sending it to you.
As for the tag you are not seeing, this is I think this might be a simutronics bug. In DR, we don't get the gauge tags at all until we get injured or otherwise knocked down from 100% and in some cases the tags don't stop coming once we regain full status (I'm under the impression they're supposed to stop, but the bug could itself be related to the tags not being activated at startup). |
|
_________________ EDIT: I didn't like my old signature |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4692 Location: Pensacola, FL, USA
|
Posted: Mon Aug 13, 2007 11:31 pm |
From the Simultronics forum.
player wrote: |
I have no idea how CMUD connects to the GS server... but there are two protocols -- the one for the Wizard (which I know very little about) and the one for StormFront. Using the SGE protocol to log in, you connect to the eaccess.play.net server, port 7900, etc... when choosing a character, the SGE sends a line "L <Character ID> STORM" and that tells the server to use the StormFront protocol... meaning, you get all of the XML data. If whatever you use to connect to GS sends that line before connecting, that means you're getting the right protocol. If it sends something else (Aside from the "STORM" at the end, anyway) then you're getting the Wizard protocol.
If that doesn't help, I've no idea what else to tell you. |
staff wrote: |
Yep, it looks like the implementation you're using doesn't know how to tell the SGE to give it the connection method for SF, and doesn't provide a way for you to override that data. I don't know enough about CMUD to suggest how you'd go about fixing that, unfortunately. |
It looks like i am not fully realizing the SF (stormfront) protocol since I am getting less then half of the tags I am supposed to. I have no idea how i got to be getting one half and not the other. But this is where we stand. |
|
_________________ Discord: Shalimarwildcat |
|
|
|
Fang Xianfu GURU
Joined: 26 Jan 2004 Posts: 5155 Location: United Kingdom
|
Posted: Mon Aug 13, 2007 11:38 pm |
If it means a literal line "L <Character ID> STORM" it shouldn't be too hard to #send it. If they mean telnet codes, it should be possible to find out what they are, either on their forums or with some packet sniffing. Once you know which codes to send, you can use the new #sendraw in version 2.
|
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4692 Location: Pensacola, FL, USA
|
Posted: Mon Aug 13, 2007 11:50 pm |
I think that line is supposed to be part of the URL or whatever line of text it is that is sent to the mud during the connection handshake to simultronics.
|
|
_________________ Discord: Shalimarwildcat |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4692 Location: Pensacola, FL, USA
|
Posted: Tue Aug 14, 2007 12:13 am |
|
|
_________________ Discord: Shalimarwildcat |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Tue Aug 14, 2007 1:40 am |
CMUD already implemented the SGE protocol for Simutronics. See the Simutronics page in the help file for how to set up your hostname and character name for it. The "L" option in CMUD sends whatever text is in the GSL Client box in the GSL options. So just put "STORM" in this field instead of fe_browser and then it should send that to the game.
You should *not* attempt to implement SGE yourself using #SEND commands. It's very difficult, and not necessary with the built-in support for it anyway.
But let me know if this should really be "STORM" rather than "stormfront" as I've got "stormfront" added to the list of options in 2.0 and need to know if this needs to be changed to just "storm". |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4692 Location: Pensacola, FL, USA
|
Posted: Tue Aug 14, 2007 1:43 am |
I have already tried using "Storm" as the GSL CLient and it would not even connect.
|
|
_________________ Discord: Shalimarwildcat |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Tue Aug 14, 2007 2:04 am |
Ahh, OK, I took a look at the CMUD source code and I was wrong. Instead of "L <characterid> STORM" it is sending "L <characterid> PLAY".
Before I change this, I'd like to get some additional confirmation on this. The documentation I have from Simutronics doesn't say anything about the StormFront protocol, but the "L" command isn't where they normally handshake the type of client being used, and the Wiki entry linked above is far from "official".
If someone can get a better confirmation of the "L" command, then I might be able to make a change to this. If this is really how they implemented it, then it won't be possible to use CMUD 1.34 to connect as a stormfront client. |
|
|
|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Tue Aug 14, 2007 3:18 am |
Unless I'm still sitting on some really funky auto-update bugginess issues, Stormfront mode is working perfectly in CMud 1.34 with regards to Dragonrealms. Literally no difference between what happens now and what happens in ZMud.
|
|
_________________ EDIT: I didn't like my old signature |
|
|
|
|
|