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.
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.
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.
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.
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.
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.
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.).
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!
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.
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.
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.
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.
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
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.
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
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.
@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
MayhemHunting - Discord Chat - CLANHELP MAY (ingame)
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?
Comments
The tattoo one was just a wide idea I had written down from weeks ago and forgot to post it.
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?
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.
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.
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.).
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!
I've something to work with, so this was helpful!
"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?
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
I remember, involve me and I
learn.
-Benjamin Franklin
It just seems to be rounded to the nearest whole #.
I remember, involve me and I
learn.
-Benjamin Franklin
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:
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
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.
local charstats = {}
s, e, charstats = REXParseLevel:match (Vitals.charstats[1])
Status["Level"] = tonumber(charstats[1])
Or am I still missing something @Ishin ?
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.
I remember, involve me and I
learn.
-Benjamin Franklin
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.
status.level = status.stats[1]:gsub("Level: ", "")
is how I did it in Mudlet @Reux
Any chance of getting like a gmcp.Char.Vitals.heritage .. to list what heritage you have? if endgame