Looking for more active discussion? Join our Discord at https://discord.gg/x2s7fY6

Gmcp, is this a Cmud or Gmcp issue

at present im using GMCP to capture stuff like Recon/focus/tree/eating etc so is this just me or a whole GMCP issue?

H:5834 (100) M:6139 (95)
touch tree
Your tree tattoo tingles slightly.

H:5834 (100) M:6139 (95)
reconstitute
You have recovered equilibrium.

H:5834 (100) M:6139 (95)
outc bladder_slice
eat bladder_slice
You may consume another curative.



... Is it suppose to send GMCP before I even get the line that I can eat/recon/tree again?

Last Night I had full health/mana and went hunting, the First creature I hit, and this happens (my system became physic)


H:5834 (100) M:6405 (100) E:94% W:67% B:100 S:100 Xp:0.57% [csdb eb] Ess:100
stick analeptic
outc kidney_slice
eat kidney_slice

A darkling swings an obscured black limb towards you, and its shadowy mass impacts with your chest, knocking the wind from you and sending rivulets of cold through your blood. (lost)
Health Lost: 597, asphyxiation.
Health Lost: 387, cold.
Stinking sewer. (Ruins of Farsai.)
 You see exits leading north and southwest.
H:4850 (83) M:6405 (100) E:94% W:67% B:100 S:100 Xp:0.57% [csdb eb] Ess:100(southwest)


Any input would be good on this as if thats true means I got to redo all my coding so I stop spamming! This is currently on Cmud..

Comments

  • ArbreArbre Arbrelina Jolie Braavos
    I think it's neither GMCP or cMUD, but an Aetolia config option itself.  It was suddenly turned on for me too.
  • edited June 2013
    which config option???

    i only get this issue with my gmcp system... not with my normal variable system

    Anyone else have any input on this? Or the @Admin who works with Gmcp/Coding Aetolia?

    Granted that might be too much to ask but is it normal for GMCP to be sent before I get the balance back?

    I can post a better log if needs be?



  • LinLin Blackbird The Moonglade
    When Aetolia pushes a GMCP event, it will do it in this order:

    1. Main GMCP event. (Char.Vitals, Char.Items.List, etc.)
    2. Subevents (Char.Items.List.Add, Comm.Channel.Start, etc.)
    3. The actual message related to the event.
    4. The prompt.
    I don't recommend using the actual GMCP events to fire any scripts that require your character to take action, for this very reason - any network latency will usually see you missing a lot of stuff!

    You're best served by GMCP if you simply use it to collect information, e.g. using it to keep track of your health/balances. I still think that using the prompt or another regular occurrence is the best method to handling curing.
  • edited June 2013
    I'm using GMCP to capture tree/recon/eat/salve in a @vitals variable which fires of prompt with my curing..

    so, nothing fires unless I get a prompt..

    the trigger/gmcp im using is something like this

    Char\.Vitals

    #local $localvitals;$localvitals=%json(%0)
    #if (%iskey($localvitals, prone)) {vitals.prone = $localvitals.prone} {vitals.prone = 0}
    #if (%iskey($localvitals, balance)) {vitals.bal = $localvitals.balance} {vitals.bal = 0}
    #if (%iskey($localvitals, equilibrium)) {vitals.eq = $localvitals.equilibrium} {vitals.eq = 0}
    #if (%iskey($localvitals, bleeding)) {vitals.bleed = $localvitals.bleeding} {vitals.bleed = 0}
    #if (%iskey($localvitals, herb)) {vitals.herb = $localvitals.herb} {vitals.herb = 0}
    #if (%iskey($localvitals, salve)) {vitals.salve = $localvitals.salve} {vitals.salve = 0}
    #if (%iskey($localvitals, pipe)) {vitals.pipe = $localvitals.pipe} {vitals.pipe = 0}
    #if (%iskey($localvitals, focus)) {vitals.focus = $localvitals.focus} {vitals.focus = 0}
    #if (%iskey($localvitals, tree)) {vitals.tree = $localvitals.tree} {vitals.tree = 0}
    #if (%iskey($localvitals, renew)) {vitals.renew = $localvitals.renew} {vitals.renew = 0}
    #if (%iskey($localvitals, cloak)) {vitals.cloak = $localvitals.cloak} {vitals.cloak = 0}
    #if (%iskey($localvitals, fangbarrier)) {vitals.fangbarrier = $localvitals.fangbarrier} {vitals.fangbarrier = 0}
    #if (%iskey($localvitals, deaf)) {vitals.deaf = $localvitals.deaf} {vitals.deaf = 0}
    #if (%iskey($localvitals, blind)) {vitals.blind = $localvitals.blind} {vitals.blind = 0}
    #if (%iskey($localvitals, moss)) {vitals.moss = $localvitals.moss} {vitals.moss = 0}

    #math vitals.hp %gmcp.char.vitals.hp
    #math vitals.maxhp %gmcp.char.vitals.maxhp
    #math vitals.mp %gmcp.char.vitals.mp
    #math vitals.maxmp %gmcp.char.vitals.maxmp
    #var vitals.currenthp (@vitals.hp*100/@vitals.maxhp)
    #var vitals.currentmp (@vitals.mp*100/@vitals.maxmp)
    #var vitals.soullost %gmcp.Char.Vitals.soul

    and @vitals.tree etc is what I use in a curebalance which goes into my prompt

  • LinLin Blackbird The Moonglade
    Huh, that's really weird! I'm afraid that in that case, I probably can't help you out. Doesn't help that I don't use Cmud. :(
  • well, I think I should redo my cantree caneat canrecon canfocus stuff..

    prompt /
    outc castorite_slice
    eat castorite_slice (this sets caneat = 1)
    You may consume another curative. (sets caneat = 0)
    outc castorite_slice
    eat castorite_slice (since I didn't eat gmcp is still saying I can eat so my caneat check reset to say it can eat also.. )
    prompt /


    Thanks for the help tho @Lin, :)

  • OleisOleis Producer Emeritus Administrator, Immortal
    edited June 2013
    Snip. Lin knows something I implemented better than I do. I am overcome with shame.
    You say to Slyphe, "You're so freaking smart."
    [---]
    "^," Slyphe agrees with you.
  • LinLin Blackbird The Moonglade
    On Mudlet I'm actually getting them before the message! Are you sure that's not intentional? Because as it is now, it allows me to actually have the CombatMessages data pre-stored, so I can simply substitute the "So-and-so used Such-and-such" message when it arrives.
  • edited June 2013
    What you're seeing is the difference in displaying comparing to registering. GMCP sends the message you have balances, and you eat for it. This happens before your computer is able to display the message, which is honestly pretty common as it's infinitely faster to handle something internally than to display it. 
  • okay GMCP Is annoying, no matter what checks I do its spamming........ because its sending the herb=1 before I get the line back to say I can eat again!

    Does anyone know a way around this? or do I have to go back to using vairables?

  • Can't you just use another variable for eating? Something like: if (caneat and !eating) eat; Then for your eat: if(!eating) {eating = true; send("eat whatever")}
  • edited June 2013
    I am, but I'll explain..

    outc bladder_slice
    eat bladder_slice
    Sets Caneat to 1 ...

    You may consume another curative.
    sets caneat to 0


    H:5834 (100) M:6405 (100) E:100% W:99% B:98 S:100 Xp:1.18% [csdb -b] Ess:outc bladder_slice
    eat bladder_slice
    sets caneat to 1

    My code is

    #if (@vitals.herb = 1 and @caneat = 0) {eat slice}

    since GMCP isn't set to herb = 0 on the first outc as its all sent before a prompt... it still eats as caneat gets reset to 0..

    its a silly thing just wondering how do other people do this? as only way I can think of is deleting the caneat from the You can eat again line...



    Amelas thanks, Seems deleting the caneat from the you can eat again line, seems to have fixed the spam error..

  • @azton  Yea, what happens is GMCP gives back herb bal, then the line trigs to do the same thing. Anothe way to fix it is to set caneat to true on the "You eat..." line, since the herb bal will be false by that time.
  • edited August 2014
    try running it on a telnet trigger. Gmcp comes both in band and out of band. So you actually get char.vitals twice. Or is that just me?

    (Edit) don't drink and post.
Sign In or Register to comment.