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

CMUD Help

Does anyone know how to capture the Gmcp.Char.Skills in Cmud? so I can work of it..

I'm wanting to put it within a Variable so I can detect what I can and can not do skill wise...

Thanks in advance.

Comments

  • DaskalosDaskalos Credit Whore Extraordinare Rolling amongst piles of credits.
    #VA skills %gmcp.char.skills ?

    image

    image


    Message #17059 Sent By: Oleis           Received On: 1/03/2014/17:24
    "If it makes you feel better, just checking your artifact list threatens to crash my mudlet."

  • yeah but that will add it into a stringlist like this

    1 ""name=Vision|rank=Transcendent 100%""
    2 ""name=Avoidance|rank=Transcendent 100%""

    etc etc.. so how would you call that?



  • yeah, I had a thing set up to do that. Problem is it isn't pretty and slows your system down heavily.

    If you just wanna see the skills you have you can do this...

    #forall %gmcp.char.skills.groups {#local $temp;#var $temp %i;#additem skills $temp.name}

    If you want your rank as well and skills to be a database do something like this

    #forall %gmcp.char.skills.groups {#local $temp;#var $temp %i;#addkey skills $temp.name $temp.rank}

    If you want a list of skills for each there's a way to do it. I'll post in a few again with a brief script.
    image
    image
  • MoireanMoirean Chairmander Portland
    Alternatively, you can just put each guild's settings into different classes and make an alias to set your currently active class. Have that alias set all your other guild variables  to 0 and enable/disable classes as appropriate.

    Eg 

    #t- indorani
    #t- teradrim
    #t+ carnifex
    indorani=0
    teradrim=0
    carnifex=1

    Then for specific settings that you want to adjust based on what class you are in, just do something like this:

    #if @carnifex=1 {soul consume for health}
    #if @indorani=1 {vigour}

    It's not fancy at all, but it's easy as pie to code and it's probably a lot less stress on your system.
  • edited May 2013
    Here we go. Paste this in where you want it. Get_skills works it.


    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <cmud>
      <class name="Skills" copy="yes">
        <class name="Trigs" enabled="false" copy="yes">
          <trigger type="GMCP" priority="200" prompt="true" copy="yes">
            <pattern>Char.Skills.List</pattern>
            <value>#forall %gmcp.char.skills.list.list {#additem skills.%gmcp.char.skills.list.group %i}</value>
          </trigger>
          <var name="skill_get" type="Record" copy="yes">
            <value>group=Fumology|name</value>
            <json>{"group":"Fumology","name":""}</json>
          </var>
          <trigger priority="290" copy="yes">
            <pattern>(^*)</pattern>
            <value>#gag</value>
          </trigger>
        </class>
        <alias name="get_skills" copy="yes">
          <value>skills=""
    skills_list=""
    #forall %gmcp.char.skills.groups {
      #local $temp
      #var $temp %i
      #additem skills_list $temp.name
      }
    #class Skills|Trigs 1
    get_temp=""
    #additem skills_list End
    #forall @skills_list {#if (%i!="End") {
        #addkey skill_get group %i
        #addkey skill_get name ""
        #sendgmcp Char.Skills.Get @skill_get
        #send ""
        } {#alarm +1 {#class Skills|Trigs 0}}}</value>
        </alias>
        <var name="skills" type="Literal" usedef="true" copy="yes"/>
        <var name="skills_list" type="Literal" usedef="true" copy="yes"/>
      </class>
    </cmud>

    image
    image
  • edited May 2013
    Pwned! Best implementation:

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <cmud>
      <class name="Get Skills" copy="yes">
        <alias name="get_skills" copy="yes">
          <value>#T+ trig_skills_groups
    #var skill_list %null
    #sendgmcp {Char.Skills.Get} %null
    #cr</value>
        </alias>
        <trigger name="trig_skills_groups" type="GMCP" param="201" priority="35780" enabled="false" copy="yes">
          <pattern>Char.Skills.Groups</pattern>
          <value>#T- trig_skills_groups
    #local $message
    #forall %gmcp.Char.Skills.Groups {
      #addkey $message "group" %db(%i, "name")
      #sendgmcp {Char.Skills.Get} $message
      }
    #cr</value>
        </trigger>
        <trigger name="trig_skills_list" type="GMCP" param="201" priority="35790" copy="yes">
          <pattern>Char.Skills.List</pattern>
          <value>#forall %db(%gmcp.Char.Skills.List, "list") {
      #additem skill_list %i
      }</value>
        </trigger>
        <var name="skill_list" usedef="true" copy="yes"/>
      </class>
    </cmud>
  • Yours didn't do anything for me. Win? >.>
    image
    image
  • I admit defeat.
    image
    image
  • MoireanMoirean Chairmander Portland
    With gmcp, does that trigger constantly get and parse info? How much delay does it add to a system? Never used gmcp.
  • DaskalosDaskalos Credit Whore Extraordinare Rolling amongst piles of credits.
    Everytime the game sends you a line of any sort, GMCP data is transmitted, which means GMCP info fires a lot more than a prompt trigger and can induce bits of lag. What I do for GMCP is I grab it when needed instead of capturing and using it in a variable, that way it just uses the last received line.

    image

    image


    Message #17059 Sent By: Oleis           Received On: 1/03/2014/17:24
    "If it makes you feel better, just checking your artifact list threatens to crash my mudlet."

  • Those triggers only fire on specific gmcp messages, though. Those two specifically are only sent when requested.
  • Thanks for the script it works perfect..

    BUT.. I do have another GMCP Issue with right_arm and left_arm ....

    You have recovered balance on your left arm.
    leftarm 1 : rightarm 1
    combo Eld sdk ucp ucp
    You have recovered balance on your right arm.
    combo Eld sdk ucp ucp

    Any one know why right_arm and left_arm are both showing as 1, even tho I don't have balance on the right arm... or is it because both are sent within the same prompt that it messes things up?

    And, anyone know a way around this besides triggering my stuff from prompt?

  • Yeah I believe it's because they're both sent at the same time. Just put a half second cooldown on how many times you can combo a target?
    image
    image
  • edited May 2013
    The gmcp vitals message is sent once every prompt. Aetolia might also send it at the top of the paragraph, I don't remember. But anyhow, the vitals message has already been processed by the time cmud processes either one of those two messages for trigger matching.

    So, really, just make that a pattern prompt trigger, or a gmcp trigger.
  • Thanks, none of them worked.. I'll just make my own arm balance thing to use :/ ..

    Thanks again

  • SOOO Instead of making a new post, since it falls into the 'CMUD HELP' Catagory..

    How do people handle balances while in blackout? Im currently using GMCP and it just stops working while in blackout..

    Any one have ideas on how to handle balances (bal/eq/herb/salve/etc)  since GMCP does't like to work.. ?

  • I'd make a backup class that's turned on only when in blackout to specifically capture the lines and turn off gmcp handling.
    image
    image
  • hmm, so, what would be the point in using gmcp and not just use them captured lines...

    Guess I'll make a if in blackout stuff.. Thanks :/

  • You don't have to do that. Should be gathering your info off a gmcp trigger and dumping it into a variable. Then all you have to do is name the gmcp trigger so when you get blackout you just do: #t- "gmcp_trig" #class blackout 1 That way you don't have redundant/too many triggers to slow your system down. When you cure blackout have it do the opposite. #t+ "gmcp_trig" #class blackout 0 You're just alternating how you gather the info. 1 trigger versus the million needed for balance lines.
    image
    image
Sign In or Register to comment.