GMCP

by Ssaliss

Back to Common Grounds.

Sior2010-11-16 20:32:18
QUOTE (Rampart @ Nov 16 2010, 02:54 PM) <{POST_SNAPBACK}>
I have asked on more than one occasion when improvements will be done to it here and have been told every time that "GMCP is finished" and that "No more support for GMCP will be forthcoming."

Come on guys, seriously? Sort it out.

I'm definitely sure I didn't say this, and I've implemented most of the GMCP related things in Lusternia proper. Did you BUG these issues? Usually when GMCP things appear in the queue I get a notice, and this hasn't happen in a long time.
Unknown2010-11-16 20:37:34
QUOTE (Sior the Anomaly @ Nov 16 2010, 08:32 PM) <{POST_SNAPBACK}>
I'm definitely sure I didn't say this, and I've implemented most of the GMCP related things in Lusternia proper. Did you BUG these issues? Usually when GMCP things appear in the queue I get a notice, and this hasn't happen in a long time.


Yes, my original enquiries surrounding this emanated from a BUG/IDEA. Please forgive me for not being able to recall exactly who replied to it, though it was most definitely a case that no further work would be done on GMCP. (Do you keep an archive of old BUGs and IDEAs? Just check the history on Draylor, maybe?)
Prav2010-11-16 20:38:22
QUOTE (Ssaliss @ Nov 16 2010, 03:05 PM) <{POST_SNAPBACK}>
Vitals is sent multiple times when multiple stats are changed. For instance, by invoking circle you change your health and mana, both triggering a vitals message. Then there's a third when the actual prompt displays. It also sends vitals when regen ticks; it doesn't wait for a new prompt to update. So if you've got a passive ability draining mana and mana regeneration, you'll get plenty of vitals inbetween prompts if you're sitting idle.

Ahh, it all makes sense now! Thanks for the reply, and, this is actually really helpful now that I realize it's not a bug.
Sior2010-11-16 20:42:33
QUOTE (Rampart @ Nov 16 2010, 03:37 PM) <{POST_SNAPBACK}>
Yes, my original enquiries surrounding this emanated from a BUG/IDEA. Please forgive me for not being able to recall exactly who replied to it, though it was most definitely a case that no further work would be done on GMCP. (Do you keep an archive of old BUGs and IDEAs? Just check the history on Draylor, maybe?)

Just checked the resolved queue and I don't see anything like this.
Unknown2010-11-16 21:02:10
It was around three, maybe five weeks ago. Check for a message I sent to Roark about something related. (Sent the same day, I believe.)
Ssaliss2010-11-16 21:11:42
Would it help if all the ideas regarding GMCP is compiled somewhere for you to take a look at? I've got a few myself, and I'm sure other people have theirs.
Sior2010-11-17 00:23:19
QUOTE (Ssaliss @ Nov 16 2010, 04:11 PM) <{POST_SNAPBACK}>
Would it help if all the ideas regarding GMCP is compiled somewhere for you to take a look at? I've got a few myself, and I'm sure other people have theirs.

If you want to compile a list I can take a look at it, but issues beyond our specific implementation (such as new functions) would need to be forwarded up.
Ssaliss2010-11-17 00:27:11
QUOTE (Sior the Anomaly @ Nov 17 2010, 01:23 AM) <{POST_SNAPBACK}>
If you want to compile a list I can take a look at it, but issues beyond our specific implementation (such as new functions) would need to be forwarded up.

Of course.

With that said, if anyone has an idea, send me a PM and I'll add it to the list. I'll also make the list available here.



Char.Vitals:
  • Add all the flags that can be gotten in prompts (armbalance, psi-channels, balance, eq, blind, deaf, kafe, prone. Others?).
  • Change for demis/ascendants: Get essence in the Vitals message instead of XP to next level.
  • Add reserves, esteem, karma to the list (not strictly prompt-related, but it's things that change fairly often and can be gotten without requiring balance/EQ).
  • If possible, send only the stats that change when Vitals-messages are sent on regen etc (basically all vitals that aren't immediately connected to a prompt). Perhaps skip some of them entirely?
    • An example for this one, I think. This is how it currently looks when I use Shadowdance Garb (or basically anything that takes mana or such):
      QUOTE
      6014h, 6825m, 7920e, 10p, 21898en, 32400w
      Char.Vitals { "hp": "6014", "maxhp": "4810", "mp": "6825", "maxmp": "6900", "ego": "7920", "maxego": "6000", "pow": "10", "maxpow": "10", "ep": "21898", "maxep": "21900", "wp": "32400", "maxwp": "32400", "nl": "0", "string": "NL:0/100 H:6014/4810 M:6825/6900 E:7920/6000 P:10/10 N:21898/21900 W:32400/32400 " } ex-
      Char.Vitals { "hp": "6014", "maxhp": "4810", "mp": "6745", "maxmp": "6900", "ego": "7920", "maxego": "6000", "pow": "10", "maxpow": "10", "ep": "21898", "maxep": "21900", "wp": "32400", "maxwp": "32400", "nl": "0", "string": "NL:0/100 H:6014/4810 M:6745/6900 E:7920/6000 P:10/10 N:21898/21900 W:32400/32400 " }
      Char.Vitals { "hp": "6014", "maxhp": "4810", "mp": "6745", "maxmp": "6900", "ego": "7920", "maxego": "6000", "pow": "10", "maxpow": "10", "ep": "21898", "maxep": "21900", "wp": "32390", "maxwp": "32400", "nl": "0", "string": "NL:0/100 H:6014/4810 M:6745/6900 E:7920/6000 P:10/10 N:21898/21900 W:32390/32400 " }
      You hug yourself, causing shadows to fly out from your grip and swathe you like a clinging cloak.
      6014h, 6745m, 7920e, 10p, 21898en, 32390w
      Char.Vitals { "hp": "6014", "maxhp": "4810", "mp": "6745", "maxmp": "6900", "ego": "7920", "maxego": "6000", "pow": "10", "maxpow": "10", "ep": "21898", "maxep": "21900", "wp": "32390", "maxwp": "32400", "nl": "0", "string": "NL:0/100 H:6014/4810 M:6745/6900 E:7920/6000 P:10/10 N:21898/21900 W:32390/32400 " } x-

      The first Vitals-message is from the first prompt. Okay, nothing wrong there.
      The second Vitals-message is me losing 80 mana.
      The third Vitals-message is me losing 10 willpower.
      The fourth Vitals-message is an exact copy of the third.
      I think both of the intermediary messages could be taken out entirely or modified to only send Char.Vitals { "mp": "6745", "wp": "32390" } Of course, they should still be there when you regenerate or lose mana due to a passive defense, but not when there'll be a prompt directly after it (if it's possible to make that distinction).

Comm.Channels:
  • I bugged this but it wasn't fixed (nor did I get any feedback), so I'm tossing it in here. Outgoing tells don't trigger the Comm.Channel.Start/End messages, only incoming tells do.
  • Add what is said to the GMCP-message as well; i.e. Comm.Channels.Start { "channel" : "market" , "message" : "(Market): X says, \\"Selling credits\\"" } (I figure adding it to the Start message would be easier than making a new GMCP-message, but a completely new GMCP-message would probably be better, like Comm.Channels.Message or some such)

Not sure where to put it (likely under Char.x though), but a complete WHO-list from GMCP would be nice. Comm.Channels only shows who you share a channel with (which is useful in its own right).
Unknown2010-11-17 09:31:18
Just make it so the data is never sent twice on the same prompt. Problem solved.
Ssaliss2010-11-17 11:04:44
QUOTE (Rampart @ Nov 17 2010, 10:31 AM) <{POST_SNAPBACK}>
Just make it so the data is never sent twice on the same prompt. Problem solved.

That would, however, stop the vitals sent on passive regen, something at least I (and probably at least also Vadi) is keen on keeping.
Unknown2010-11-17 11:16:23
QUOTE (Ssaliss @ Nov 17 2010, 11:04 AM) <{POST_SNAPBACK}>
That would, however, stop the vitals sent on passive regen, something at least I (and probably at least also Vadi) is keen on keeping.


Oh, likewise, naturally. The issue here is the fact we are receiving multiple strings per prompt, right? I am really just theoreticising here, though mid-combat, how many prompts are we getting? The sheer number would make such things as passive regen a complete non-issue from what I can see.

I am not suggesting a complete disregard for 'surplus' strings, but rather that they are added to a queue to be sent as soon as an available prompt is ready.
Ssaliss2010-11-17 11:21:06
QUOTE (Rampart @ Nov 17 2010, 12:16 PM) <{POST_SNAPBACK}>
Oh, likewise, naturally. The issue here is the fact we are receiving multiple strings per prompt, right? I am really just theoreticising here, though mid-combat, how many prompts are we getting? The sheer number would make such things as passive regen a complete non-issue from what I can see.

I am not suggesting complete disregard for 'surplus' strings, but rather add them to a queue to be sent as soon as an available prompt is ready to be sent.

Mid-combat it wouldn't be much of an issue, no (and if you save them to be sent at the next prompt, you might as well disregard them entirely), but if you've got a passive mana drain and you're just standing around, you want to know you lose mana even if you don't get any prompts so you can fix it.
Unknown2010-11-17 11:24:01
QUOTE (Ssaliss @ Nov 17 2010, 11:21 AM) <{POST_SNAPBACK}>
Mid-combat it wouldn't be much of an issue, no (and if you save them to be sent at the next prompt, you might as well disregard them entirely), but if you've got a passive mana drain and you're just standing around, you want to know you lose mana even if you don't get any prompts so you can fix it.


You make a very valid point on the 'standing around' part, sure. I was thinking of a wholly combatative scenario here, myself.
Vadi2010-11-17 13:21:36
Why not have both... passive drains generate events and that would generate a GMCP send, which is fine. Multiple stat changes in one paragraph, however, shouldn't send GMCP right away, but when all processing is one - so one event is sent.
Ssaliss2010-11-17 13:26:00
QUOTE (Vadi @ Nov 17 2010, 02:21 PM) <{POST_SNAPBACK}>
Why not have both... passive drains generate events and that would generate a GMCP send, which is fine. Multiple stat changes in one paragraph, however, shouldn't send GMCP right away, but when all processing is one - so one event is sent.

Right; that's what I suggested in my post. Sorry if it wasn't clear. Feel free to suggest a rewrite to make it more clear smile.gif
Ssaliss2010-11-17 14:03:07
Oh, and one thing I bugged but wasn't fixed; outgoing tells don't get the Comm.Channels package wrappings. Only incoming tells do.
Vadi2010-11-17 14:51:31
The idea of these 'wrappings' to begin with is completely wrong with... the data should be inside GMCP, not GMCP serving as start and end tags. But that's not something Sior can fix.
Ssaliss2010-11-17 14:53:54
QUOTE (Vadi @ Nov 17 2010, 03:51 PM) <{POST_SNAPBACK}>
The idea of these 'wrappings' to begin with is completely wrong with... the data should be inside GMCP, not GMCP serving as start and end tags. But that's not something Sior can fix.

Doesn't hurt to add it... Can't say more than no. You mean something along the lines of Comm.Channels.Message { "channel" : "market" , "message" : "Selling credits" } ?
Vadi2010-11-17 15:20:01
Right.
Ssaliss2010-11-17 16:03:52
Added it (with a minor modification).