What would you like to see in GMCP?

1235

Comments

  • KerocKeroc A small cupboardMember, Administrator, Immortal Posts: 364 admin
    Unless the information is time sensitive, as in, it's information that can change a lot within a couple of prompts, I'm probably not going to add it to GMCP.

  • NalorNalor UKMember Posts: 774 ✭✭✭
    Keroc said:

    Unless the information is time sensitive, as in, it's information that can change a lot within a couple of prompts, I'm probably not going to add it to GMCP.

    So the 'soul' as I mentioned before? as that changes alot and you got to soul gaze to see what level its at

    The tattoo one was just a wide idea I had written down from weeks ago and forgot to post it.
    Mudlet Bashing System for sale. Message if interested
  • KerocKeroc A small cupboardMember, Administrator, Immortal Posts: 364 admin
    Nalor said:

    Keroc said:

    Unless the information is time sensitive, as in, it's information that can change a lot within a couple of prompts, I'm probably not going to add it to GMCP.

    So the 'soul' as I mentioned before? as that changes alot and you got to soul gaze to see what level its at

    The tattoo one was just a wide idea I had written down from weeks ago and forgot to post it.
    There can be multiple instances of people having lost soul, so I can't really add it.

  • NalorNalor UKMember Posts: 774 ✭✭✭
    I meant the soul needed for defenses?

    I thought the only instance of losing soul was, like necromancy using skills and essence is on gmcp :/ or am I missing other ways people can lose soul?
    Mudlet Bashing System for sale. Message if interested
  • NalorNalor UKMember Posts: 774 ✭✭✭
    @Whoever

    Any chance of getting the different fishing hole types adding like darkness/light etc in the gmcp.Room.Info.details to show like "Shallow", "mud", "river" etc. to save on ALOT of time using fishing discern

    if you're just looking for a fishing hole off a specific type. You'd still have to discern to see what fish are in that hole.
    Mudlet Bashing System for sale. Message if interested
  • AoiAoi Member Posts: 34 ✭✭
    gmcp.CombatMessage design makes it highly unusable for coding purposes.

    This is an example of the way it sends information:
    { ["skill ability"] = { target = "enemy's full name", message = [[Verbose attack name, as seen by 3rd party.]], caster = "Whomever used it" } }
    It doesn't seem to update for any tekura abilities and it also updates for anyone in the room. If at all possible, could this be reorganized to just be CombatMessage, with sub categories as ability, target, message, caster? or if grouping them, could the Caster be the group rather than the skill ability?
    gmcp.CombatMessage["Aoi"].target etc? Or if there's a better way than currently that you can think up, because I really like this gmcp option.
    image
  • AnfiniAnfini Member Posts: 24 ✭✭✭
    Where is the difficulty coming from? You're meant to use each message on an event-by-event basis - if you're wanting a big table of simultaneous listed by player, that's easy to do on your side.
  • AoiAoi Member Posts: 34 ✭✭
    Anfini said:

    Where is the difficulty coming from? You're meant to use each message on an event-by-event basis - if you're wanting a big table of simultaneous listed by player, that's easy to do on your side.

    As I stated in my post, the difficulty comes from this GMCP failing to fire for a number of abilities and its organization is ill-suited to coding.

    You can't use gmcp.CombatMessage.blah , you have to use gmcp.CombatMessage["Skillname Ability"].blah. This requires you to know exactly what skill and ability you're looking for each time, but you can't know which abilities it doesn't track. Aside from testing every ability in the game, I can't see a way to make this useful and reliable.

    Organizing this information by caster, rather than the way it is currently done, would allow you to follow a single person. Keep in mind, this is not creating a long list. It updating a solitary message each time, keeping no record of previous messages it replaces. The user's end will have to record/use this information.

    I do not understand exactly what you mean, but what I want is simply a way to track when I do certain abilities and likewise when they're done to me. I will most likely use it during bashing to check targets for other information systems I have running (like mob health, threat level, etc.).
    image
  • AnfiniAnfini Member Posts: 24 ✭✭✭
    I think I get it, now. The issue is with the weird organization, which is something I totally agree with. Here's how I chose to re-organize it:
    local CombatMessageHandler = function (...)
    	-- Why is the combat message table so weird.
    	for skill, _ in pairs(gmcp.CombatMessage) do
    		cd.combatMessage.skill = skill
    		cd.combatMessage.message = gmcp.CombatMessage[skill].message
    		cd.combatMessage.target = gmcp.CombatMessage[skill].target
    		cd.combatMessage.caster = gmcp.CombatMessage[skill].caster
    	end
    end
    Obviously, you'll want to replace "cd.combatMessage" with whatever container you choose for your system. This makes it a little more sane to read, however: a master table with the skill's name laid out alongside the rest of the data.

    As for missing skills, that's to do with each attack in the game using an old routine to display on-screen - the only thing you can do is BUG each missing attack so they can update it to use combat messages.

    Hopefully my totally unhelpful response is now only mildly unhelpful!
  • AoiAoi Member Posts: 34 ✭✭
    I do appreciate the help and I'm going to try that method you described. I'm still a bit unclear on what you mean by a master table, but I'll try to figure it out! I'm still learning this(thinking like a coder) and a lot of the concepts don't come easy(or at all) to me. As for the missing skills, I'll be sure to bug it as I see them.

    I've something to work with, so this was helpful!
    image
  • DraimanDraiman Dr. Drai Member Posts: 1,094 ✭✭✭✭✭
    Class Curing (blood leech, purify blood, shaman pancake, fool tarot, etc) balance. And fitness.
    "You ever been divided by zero?" Nia asks you with a squint.



    Ishin
  • AarbrokAarbrok Breaking things...For Science Portland, OregonMember Posts: 1,405 ✭✭✭✭✭
    ...Shaman pancake (I needed that giggle this morning)

  • EocisEocis Member Posts: 18
    pets/warhounds/minions; The ability to determine (for example) which warhounds you have out and which one is active. Currently with how the hound list is set up there's no way for a trigger to retrieve which hound is active out of the ones that are out, even switching them gives no usable trigger. For now the only solution is to pull the list's colours which is not ideal.
  • ZsadistZsadist Member Posts: 815 ✭✭✭✭
    Cooldowns.
    (Oasis): Benedicto says, "There was like 0.5 seconds between "Oh hey, they're in area. That was quick." and "OMFG THEY'RE IN THE AREA STAHP STAHP!""


  • ReuxReux Member Posts: 251 ✭✭✭
    I can't find an example of the player's level listed just with the level. What I expect to see somewhere:

    "level": "100"

    In all the places I've found in the different tables, the number is always muddled with more information, and still requires me to change the variable to just to get the number I want.

    Examples:

    Char.Vitals {"charstats": [ "Level: 138" ]}
    Char.Status {"level": "138 (21)"}

    Am I missing it?
    I mean, you know, an amount.


  • IshinIshin Retired Lurker VirginiaMember, Guildmaster Posts: 1,748 ✭✭✭✭✭
    edited January 2016
    Reux said:

    I can't find an example of the player's level listed just with the level. What I expect to see somewhere:

    "level": "100"

    In all the places I've found in the different tables, the number is always muddled with more information, and still requires me to change the variable to just to get the number I want.

    Examples:

    Char.Vitals {"charstats": [ "Level: 138" ]}
    Char.Status {"level": "138 (21)"}

    Am I missing it?

    Status = {
    unread_msgs = "1",
    guild = "Syssin",
    unread_news = "228",
    explorer = "a Wayfarer",
    class = "Syssin",
    bank = "453007",
    city = "Spinesreach",
    order = "(None)",
    race = "Idreth",
    name = "Ishin",
    gold = "14845",
    status = "Living",
    level = "118 (58)",

    gmcp.Char.Status
    Tell me and I forget, teach me and
    I remember, involve me and I
    learn.
    -Benjamin Franklin
  • ReuxReux Member Posts: 251 ✭✭✭
    The example I posted, that also includes % to the next level.
    I mean, you know, an amount.


  • IshinIshin Retired Lurker VirginiaMember, Guildmaster Posts: 1,748 ✭✭✭✭✭
    edited January 2016
    Reux said:

    The example I posted, that also includes % to the next level.

    The 58 IS the %.

    It just seems to be rounded to the nearest whole #.
    Tell me and I forget, teach me and
    I remember, involve me and I
    learn.
    -Benjamin Franklin
  • ReuxReux Member Posts: 251 ✭✭✭
    edited January 2016
    To expound, the admins are surprised people don't JSON GMCP information more, because it's convenient to do so. Most people take the string provided by GMCP and 'trigger' through it.

    Whelp. I started JSONing, instead of using regex against the full thing. However, I can't just do that with level. I STILL have to break down items that include level information, because there is no thing that only has the level number.

    AKA:
    ExampleGMCP = '{ "hp": "6761", "maxhp": "6761", "mp": "5066", "maxmp": "5066", "ep": "31903", "maxep": "29400", "wp": "24695", "maxwp": "23400", "nl": "21", "xp": "4669421", "maxxp": "22125634", "blood": "100", "bleeding": "0", "blind": "0", "deaf": "0", "prone": "0", "cloak": "0", "fangbarrier": "0", "phased": "0", "elevation": "ground", "herb": "1", "salve": "1", "pipe": "1", "elixir": "1", "moss": "1", "tree": "1", "renew": "1", "affelixir": "1", "focus": "1", "writhing": "0", "fallen": "0", "soul": "100", "residual": "19", "madness": "0", "balance": "1", "equilibrium": "1", "ability_bal": "1", "left_arm": "1", "right_arm": "1", "wield_left": "empty", "wield_right": "banded shield7663", "mounted": "0", "vote": "0", "string": "H:6761/6761 M:5066/5066 E:31903/29400 W:24695/23400 NL:21/100 ", "charstats": [ "Level: 138", "Bleeding: 0" ] }'

    local Vitals = json.decode(ExampleGMCP)

    for k, v in pairs(Vitals) do
    if type(Vitals[k]) == "table" then
    for key, value in pairs(Vitals[k]) do Note( "" ..k.. "."..key.. " = " ..value) end
    end
    end
    What you get is:

    charstats.1 = Level: 138
    charstats.2 = Bleeding: 0

    If I want that level, I have to still run something to extract just the level number.
    REXParseLevel = rex.new ("Level\: ([0-9]+)", rex.flags ().ANCHORED)

    local charstats = {}
    s, e, charstats = REXParseLevel:match (Vitals.charstats[1])
    Status["Level"] = tonumber(charstats[1])
    tl;dr Making a person do a thing that you're avoiding is counter-intuitive.

    Or am I still missing something @Ishin ?
    Post edited by Reux on
    I mean, you know, an amount.


  • IshinIshin Retired Lurker VirginiaMember, Guildmaster Posts: 1,748 ✭✭✭✭✭
    I dunno, I just use normal GMCP? Like uh...

    Trigger is a return isprompt, lua function type. Then down below I have like..

    beast.vitals.curhp = tonumber(gmcp.Char.Vitals.hp)
    beast.bal = toBoolean(tonumber(gmcp.Char.Vitals.balance))


    I'm not sure if that's regex or not, but it works really well for what I need it to do.
    Tell me and I forget, teach me and
    I remember, involve me and I
    learn.
    -Benjamin Franklin
  • IrruelIrruel Member Posts: 650 ✭✭✭✭
    As far as I know, Mudlet does the JSON stuff out of the box.
    Correct me if I'm wrong, but other clients don't offer the same GMCP experience as Mudlet - at least not without doing some wizardry first.
  • SivekuiSivekui Member Posts: 72 ✭✭
    status.stats = gmcp.Char.Vitals.charstats

    status.level = status.stats[1]:gsub("Level: ", "")

    is how I did it in Mudlet @Reux
    MayhemHunting - Discord Chat - CLANHELP MAY (ingame)

  • SivekuiSivekui Member Posts: 72 ✭✭
    @Keroc / @whoever it applies to,

    Any chance of getting like a gmcp.Char.Vitals.heritage .. to list what heritage you have? if endgame
    MayhemHunting - Discord Chat - CLANHELP MAY (ingame)

  • ZsadistZsadist Member Posts: 815 ✭✭✭✭
    Can we get unread changelogs input into gmcp, much like news and messages are input?
    (Oasis): Benedicto says, "There was like 0.5 seconds between "Oh hey, they're in area. That was quick." and "OMFG THEY'RE IN THE AREA STAHP STAHP!""


  • KerocKeroc A small cupboardMember, Administrator, Immortal Posts: 364 admin
    Sivekui said:

    @Keroc / @whoever it applies to,

    Any chance of getting like a gmcp.Char.Vitals.heritage .. to list what heritage you have? if endgame

    Zsadist said:

    Can we get unread changelogs input into gmcp, much like news and messages are input?

    I've added both of these. You can find them in Char.Status.

    Zsadist
  • SivekuiSivekui Member Posts: 72 ✭✭
    thanks :) I dont think the changelog one is updating as it's still reading 5 for me even tho I did changelog readall
    MayhemHunting - Discord Chat - CLANHELP MAY (ingame)

  • KerocKeroc A small cupboardMember, Administrator, Immortal Posts: 364 admin
    Should be fixed now!

    Zsadist
  • ZsadistZsadist Member Posts: 815 ✭✭✭✭
    Is it possible to put your current experience bonus from Audit into GMCP?
    (Oasis): Benedicto says, "There was like 0.5 seconds between "Oh hey, they're in area. That was quick." and "OMFG THEY'RE IN THE AREA STAHP STAHP!""


  • SivekuiSivekui Member Posts: 72 ✭✭
    edited May 2016
    @keroc any chance to get - gmcp.Char.Status.level = "132 (39%)" .. changed to be just "132" without the percentage? so its just level = "132" .. or get another gmcp for it since its seems to be removed from .charstats
    Post edited by Sivekui on
    MayhemHunting - Discord Chat - CLANHELP MAY (ingame)

  • ReuxReux Member Posts: 251 ✭✭✭
    Since I've seen it suggested by a number of people, can we get lists prone to inconvenient truncating delivered raw by GMCP and available by request to the server?
    I mean, you know, an amount.


Sign In or Register to comment.