|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4691 Location: Pensacola, FL, USA
|
Posted: Sat Aug 15, 2009 12:39 am
Stormfront Emulation |
Alright... so I've been looking over this once more... trying to get the handshaking going down right..
But it seems it just doesn't respond to normal MXP triggers as i had hoped.
Code: |
<trigger type="MXP" priority="10" id="1">
<pattern>prompt</pattern>
<value>#SAY %1</value>
</trigger>
<trigger type="MXP" priority="10" id="1">
<pattern>prompt time="(%d)"</pattern>
<value>#SAY %1</value>
</trigger>
|
Might this be from the MXP elements having parameters?
Here is some of the actual output I recieve.
Code: |
Welcome to GemStone IV (R) v5.10
Copyright 2009 Simutronics Corp.
All Rights Reserved
<component id='room players'></component>
<prompt time="1250295453">></prompt>
<popStream/><prompt time="1250295455">></prompt>
<dialogData id='encum'><progressBar id='encumlevel' value='80' text='Very Heavy' top='5' left='-5' align='n' width='160' height='15'/><label id='encumblurb' value='It is difficult to move quickly as your legs strain under your load.' top='10' left='0' align='n' width='160' height='50' justify='0' anchor_top='encumlevel'/></dialogData><pushBold/>A <a exist="56272642" noun="kobold">kobold</a><popBold/> swings a short sword at you!
You skillfully interpose your <a exist="56276491" noun="longsword">longsword</a> between yourself and the incoming strike, deflecting it harmlessly to the side!
<prompt time="1250295457">></prompt>
<dialogData id='combat'><dropDownBox id='dDBTarget' value="none" cmd="target %dDBTarget%" tooltip='Select Target' content_text="none,kobold,kobold" content_value="target help,#56272630,#56272642" anchor_left='cmdTarget' anchor_right='cmdAttack' height='20' width='80' top='93' left='0' align='n'/></dialogData>
<component id='room objs'> You also see<b> <pushBold/>a <a exist="56272630" noun="kobold">kobold</a><popBold/></b>,<b> <pushBold/>a <a exist="56272642" noun="kobold">kobold</a><popBold/></b> and a <a exist="56263387" noun="truffle">spotted truffle</a>.</component>
<pushBold/>A <a exist="56272630" noun="kobold">kobold</a><popBold/> just arrived.
<prompt time="1250295457">></prompt>
<popStream/><prompt time="1250295465">></prompt>
<popStream/><prompt time="1250295466">></prompt>
<clearStream id="spellfront"/><pushStream id="spellfront"/>Armor Support
Strength
<popStream id="spellfront"/>
<prompt time="1250295471">></prompt>
<popStream/><prompt time="1250295472">></prompt>
<component id='room objs'> You also see<b> <pushBold/>a <a exist="56272630" noun="kobold">kobold</a><popBold/></b> and a <a exist="56263387" noun="truffle">spotted truffle</a>.</component>
<pushBold/>A <a exist="56272642" noun="kobold">kobold</a><popBold/> heads <d>southwest</d>.
<prompt time="1250295473">></prompt>
<component id='room objs'> You also see a <a exist="56263387" noun="truffle">spotted truffle</a>.</component>
<pushBold/>A <a exist="56272630" noun="kobold">kobold</a><popBold/> heads <d>southwest</d>.
<prompt time="1250295473">></prompt>
<popStream/><prompt time="1250295474">></prompt>
<popStream/><prompt time="1250295481">></prompt>
<popStream/><prompt time="1250295483">></prompt> |
Code: |
<a exist="-10509842" noun="Alisse">Alisse</a> gestures.
<clearStream id="spellfront"/><pushStream id="spellfront"/>Armor Support
Elemental Defense III
Mass Blur
Natural Colors
<popStream id="spellfront"/>
A brilliant luminescence surrounds you.
<clearStream id="spellfront"/><pushStream id="spellfront"/>Armor Support
Elemental Defense III
Mass Blur
Natural Colors
<popStream id="spellfront"/>
<prompt time="1250296090">J></prompt>
<dialogData id='combat'><dropDownBox id='dDBTarget' value="none" cmd="target %dDBTarget%" tooltip='Select Target' content_text="none,mountain spirit" content_value="target help,#56197771" anchor_left='cmdTarget' anchor_right='cmdAttack' height='20' width='80' top='93' left='0' align='n'/></dialogData>
<component id='room objs'> You also see<b> <pushBold/>a <a exist="56197771" noun="spirit">fierce mountain spirit</a><popBold/></b> that is flying around, a <a exist="56297020" noun="bread">loaf of dark crusty ale bread</a>, the <a exist="55292422" noun="disk">blue Iekid disk</a>, the <a exist="55296450" noun="disk">Litle disk</a>, the <a exist="55030974" noun="disk">Valamerie disk</a>, the <a exist="56222556" noun="disk">Talnin disk</a>, the <a exist="56121575" noun="disk">Ironoma disk</a>, a <a exist="56096411" noun="chest">corroded iron chest</a>, <a exist="55540984" noun="haphip">some ground haphip</a>, a <a exist="55758292" noun="pelt">rolton pelt</a>, a <a exist="55512082" noun="potion">rose-marrow potion</a> and <a exist="23085" noun="benches">some ornate wrought-iron benches</a>.</component>
<pushBold/>A <a exist="56197771" noun="spirit">fierce mountain spirit</a><popBold/> floats in, following <a exist="-10951632" noun="Deleyli">Deleyli</a>.
<prompt time="1250296091">J></prompt>
<clearStream id="spellfront"/><pushStream id="spellfront"/>Armor Support
Elemental Defense III
Mass Blur
Natural Colors
<popStream id="spellfront"/>
<prompt time="1250296091">J></prompt>
<a exist="-10922038" noun="Bordald">Bordald</a> makes a nearly imperceptible motion while whispering a soft phrase...
<a exist="-10922038" noun="Bordald">Bordald</a> gestures.
<a exist="-10922038" noun="Bordald">Bordald</a> is surrounded by a writhing barrier of sharp thorns.
<prompt time="1250296091">J></prompt>
<component id='room players'>Also here: <a exist="-10970360" noun="Iars">Iars</a>, Lord <a exist="-10870736" noun="Iekid">Iekid</a>, <a exist="-10726233" noun="Quilton">Quilton</a>, <a exist="-10068897" noun="Vadril">Vadril</a>, <a exist="-10782920" noun="Litle">Litle</a>, <a exist="-10838226" noun="Valamerie">Valamerie</a>, <a exist="-10916149" noun="Talnin">Talnin</a>, Lady <a exist="-10464117" noun="Fernalee">Fernalee</a>, <a exist="-10133199" noun="Aliria">Aliria</a>, <a exist="-10922038" noun="Bordald">Bordald</a>, <a exist="-10509842" noun="Alisse">Alisse</a>, Lady <a exist="-10213594" noun="Raindove">Raindove</a>, <a exist="-10970119" noun="Ironoma">Ironoma</a> who is sitting, <a exist="-10969386" noun="Tlandro">Tlandro</a></component>
Great Lady <a exist="-10951632" noun="Deleyli">Deleyli</a> just went <d cmd='go west'>west</d>.
<prompt time="1250296094">J></prompt>
<component id='room objs'> You also see a <a exist="56297020" noun="bread">loaf of dark crusty ale bread</a>, the <a exist="55292422" noun="disk">blue Iekid disk</a>, the <a exist="55296450" noun="disk">Litle disk</a>, the <a exist="55030974" noun="disk">Valamerie disk</a>, the <a exist="56222556" noun="disk">Talnin disk</a>, the <a exist="56121575" noun="disk">Ironoma disk</a>, a <a exist="56096411" noun="chest">corroded iron chest</a>, <a exist="55540984" noun="haphip">some ground haphip</a>, a <a exist="55758292" noun="pelt">rolton pelt</a>, a <a exist="55512082" noun="potion">rose-marrow potion</a> and <a exist="23085" noun="benches">some ornate wrought-iron benches</a>.</component>
<pushBold/>A <a exist="56197771" noun="spirit">fierce mountain spirit</a><popBold/> hurriedly flits out of sight. |
Code: |
<compDef id='room players'></compDef>
<compDef id='room exits'>Obvious exits: <d>west</d>, <d>out</d></compDef>
<compDef id='sprite'></compDef><popStream id='room'/>
<component id='room players'></component>
<resource picture="0"/><nav/><style id="roomName" />[Grocer's, Front Room]
<style id=""/><style id="roomDesc"/>The front room of the grocer's is filled with shoppers toting bundles or hefting sacks over their shoulders. Young lads swarm around, offering to help carry your goods for a few spare coppers. From the west wafts an aroma of fresh foods, meats, cheeses and breads that causes your mouth to water. Off in a <a exist="-3959" noun="corner">secluded corner</a> you see an area where a table has been surrounded by some partitions, affording some privacy for customers who choose to dine here.<style id=""/>
Obvious exits: <a exist="-10592651" coord="2524,1864" noun="west">west</a>, <a exist="-10592651" coord="2524,1864" noun="out">out</a>
<compass><dir value="w"/><dir value="out"/></compass><prompt time="1250296193">></prompt>
<openDialog id='quick-simu' location='quickBar' title='information'><dialogData id='quick-simu' clear='true'><link id='1' value='policy' cmd='policy' echo='policy'/><sep/><link id='12' value='news' cmd='news' echo='news'/><sep/><link id='2' value='forums' cmd='bbs' echo='bbs'/><sep/><link id="3" value="calendar" cmd="url:/gs4/events/feeds.asp?game=GS4"/><sep/><link id='13' value='documentation' cmd='url:/gs4/info/index_of_docs.asp'/><sep/><link id='5' value='premium' cmd='premium' echo='premium'/><sep/><link id='6' value='platinum' cmd='url:/gs4/platinum/'/><sep/><link id='7' value='box office' cmd='url:/gs4/boxoffice.asp'/><sep/><link id='8' value='maps' cmd='url:/gs4/index_documents/geography.asp'/><sep/><link id='9' value='version notes' cmd='url:/gs4/play/sf/notes.asp'/></dialogData></openDialog>
<switchQuickBar id="quick-simu"/>
<dialogData id='combat'><dropDownBox id='dDBTarget' value="none" cmd="target %dDBTarget%" tooltip='Select Target' content_text="none" content_value="target help" anchor_left='cmdTarget' anchor_right='cmdAttack' height='20' width='80' top='93' left='0' align='n'/></dialogData>
<streamWindow id='main' title='Story' subtitle=" - Grocer's, Secluded Corner" location='center' target='drop'/><streamWindow id='room' title='Room' subtitle=" - Grocer's, Secluded Corner" location='center' target='drop' ifClosed='' resident='true'/><clearStream id='room'/><pushStream id='room'/><compDef id='room desc'>Here in this secluded corner you find a <a exist="-27406" noun="table">small table</a> covered with a red checkered tablecloth. It is kept spotless and clean. Gathered fabric covers portable screens that have sectioned off this area from the sales area of the store, and serve double duty by muffling your conversation. Your vantage spot here allows you to spot anyone approaching your table.</compDef><compDef id='room objs'></compDef>
<compDef id='room players'></compDef>
<compDef id='room exits'>Obvious exits: <d>out</d></compDef>
<compDef id='sprite'></compDef><popStream id='room'/>
<component id='room players'></component>
<resource picture="0"/><nav/><style id="roomName" />[Grocer's, Secluded Corner]
<style id=""/><style id="roomDesc"/>Here in this secluded corner you find a <a exist="-27406" noun="table">small table</a> covered with a red checkered tablecloth. It is kept spotless and clean. Gathered fabric covers portable screens that have sectioned off this area from the sales area of the store, and serve double duty by muffling your conversation. Your vantage spot here allows you to spot anyone approaching your table.<style id=""/>
Obvious exits: <a exist="-10592651" coord="2524,1864" noun="out">out</a>
<compass><dir value="out"/></compass><prompt time="1250296194">></prompt> |
|
|
_________________ Discord: Shalimarwildcat |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4691 Location: Pensacola, FL, USA
|
Posted: Tue Aug 18, 2009 4:51 pm |
I have eyeballed and figured out some of the tags:
pushStream = reroutes text to the window in its id (effectively #C+ id) [seems to always miss the first value]
popStream = reroutes text back to the main window (#C-)
clearStream = clear the given window id (#CLR id)
a = any manipulative object or mob, not sure how i can use the number field given
dialogData = seems to be a button/panel
progressBar = gauges
component = arrays for room contents |
|
_________________ Discord: Shalimarwildcat |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Tue Aug 18, 2009 5:07 pm |
I'll copy a response from another post here in case someone else reads this and tries to figure it out:
-----
You'll need to set up a bunch of <!ELEMENT> MXP statements to define the XML tags that you want to recognize from the MUD. Remember that the MUD isn't actually supporting MXP...they are just sending raw XML data. So usually in a onLoad or onConnect event, you need to use the #MXP command to send <!ELEMENT> commands to CMUD to define each tag. See the MXP Spec for documentation on the <!ELEMENT> tag. |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4691 Location: Pensacola, FL, USA
|
Posted: Wed Aug 19, 2009 10:29 am |
Okay... I'm not exactly sure how to define them, I have tried entering
Code: |
<!ELEMENT prompt 'time=%1' OPEN> |
at the command line, but it gets sent verbatim to the MUD
I have no clue if thats even the proper syntax for what im trying to process:
Code: |
<prompt time="1250295453">></prompt> |
but the documentation is not very clear (to me).
Examples are lovely. |
|
_________________ Discord: Shalimarwildcat |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4691 Location: Pensacola, FL, USA
|
Posted: Wed Aug 19, 2009 11:20 am |
The following to bits of code seem to give me a crash after the tag appears when used together:
Code: |
#MXP <!EL prompt ''>
<trigger type="MXP" priority="50" enabled="true" id="5">
<pattern>prompt</pattern>
<value>#SAY %1</value>
</trigger>
|
|
|
_________________ Discord: Shalimarwildcat |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Aug 19, 2009 8:58 pm |
I'm not getting any crashes, so post your crash dump for me to see it.
I'll look into this more next week when I can spend time looking at the MXP code. Your example of
#MXP <!EL prompt ''>
should be fine. But technically you are supposed to also give the allowed attribute list, like this:
#MXP <!EL prompt att="time">
But I can't get your trigger to fire here either, so I'm not sure what is wrong. I'll have to get into the code to find out...it's been a *long* time since I played with this, so maybe something has gotten broken. Sorry the !ELEMENT syntax is a bit odd...it's not something we invented ourselves for MXP, it's something that comes from XML DTD definition files. |
|
|
|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Wed Aug 19, 2009 9:58 pm |
I believe you need to include the OPEN keyword on account that MXP is put into some default secure mode that essentially prevents user tags from working. Since Simutronics isn't communicating with CMud about MXP, all the tags have to be specified as okay for the user to use.
Another thing I noticed (but this was way back in ZMud) was that the element definitions weren't resulting in recognizable tags in the data stream until I included TAG info. |
|
_________________ EDIT: I didn't like my old signature |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4691 Location: Pensacola, FL, USA
|
Posted: Thu Aug 20, 2009 1:32 am |
So would i be correct to assume that multiple attributes would be:
#MXP <!EL a att="exist|coord|noun"> //coord is not always used
Also, this command seems not to work, and i see now that is because this is already a system element.
Is there a way to augment the system version to catch these as well? |
|
_________________ Discord: Shalimarwildcat |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu Aug 20, 2009 4:15 pm |
You cannot redefine system elements. Elements such as A for tags should automatically be handled if you just enable MXP secure mode (you can use the #PUEBLO command to enable MXP-secure all-the-time mode). No MUD should be stupid enough to try and use a well-known HTML tag such as A for a different purpose.
The OPEN tag shouldn't be needed if you use the command:
#MXP 1 <prompt time="123"></prompt>
to send the MXP command. The argument 1 tells the #MXP command to send it to the screen in secure mode. But this doesn't work, which is why I think there is a bug somewhere. The MXP trigger still doesn't fire (although the MXP command is no longer echoed to the screen).
As far as specifying multiple attributes, see the <!ATTLIST> MXP command for the syntax on this. You use spaces between the attributes, not | characters. Remember that these commands come from XML, and the use of | for lists is more of a zScript syntax and not an XML syntax. |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4691 Location: Pensacola, FL, USA
|
Posted: Fri Aug 21, 2009 9:35 am |
I don't suppose you could add an option to ignore/override system elements like you can with other predefined aliases and keys?
Or perhaps you could augment it at the build level to include this abnormality?
I will try and talk to the admins, but I doubt Simu will be willing to budge.
I would hate to have to give this project up just because of the 'a' tag. |
|
_________________ Discord: Shalimarwildcat |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Fri Aug 21, 2009 3:49 pm |
I doubt they will change anything. In fact, they probably did it to make it harder for MXP clients to emulate to force you into using their client. They stopped caring about clients such as CMUD and zMUD several years ago when certain people left. To change it would require that they change their own client and do it in a backwards compatible way with their users. Chance of that happening is probably zero.
MXP elements are not saved as "settings" in CMUD, so there is no mechanism for doing overrides like with aliases and keys. The MXP/HTML parsing is done at a very low level and allowing override of the A tag is not a simple fix. I'll add this to the to-do list, but you probably won't see it happening for a long time. I just can't put that much work into a MUD-specific fix when that MUD isn't even helping to support Zuggsoft anymore. |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4691 Location: Pensacola, FL, USA
|
Posted: Fri Aug 21, 2009 6:50 pm |
Understood. Why did they stop anyhow?
I've heard you mention your trail account got revoked, buts that about it. |
|
_________________ Discord: Shalimarwildcat |
|
|
|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Fri Aug 21, 2009 8:44 pm |
The stated reason from Simu was that there was not enough of an advertisement improvement to justify the cost. They've used this reason on pretty much all the mudlist sites like mudconnector.
|
|
_________________ EDIT: I didn't like my old signature |
|
|
|
|
|