There was never anything productive about this thread in the first place.
"On the battlefield I am a god. I love war. The steel, the smell, the corpses. I wish there were more. On the first day I drove the Northmen back alone at the ford. Alone! On the second I carried the bridge! Me! Yesterday I climbed the Heroes! I love war! I… I wish it wasn’t over."
Sethren convinced me to try again. He had to get me drunk to do it. And I did, and I had fun. And I kept at it for awhile. At that particular time, if you actively participated -ever-, you could expect absolutely no peace -ever-.
Anyway, it does sound like PK in Imperian used to be horrible - another person just recently made a similar comment about it being very much "dip your toe in, get swallowed whole", and that's pretty much how I think all IRE games started out. Right now, Imperian is probably the best game to be a sucky would-be combatant in, though - at least in that respect (which is a pretty important one)!
@Iniar I can't tell if you're complaining because most guilds/cities don't have OOC resources or if you are complaining because we haven't taken the time to compile all the existing resources into a mega list to take away the huge work it takes to google "very basic guide to cmud", or if you are complaining because neither circle has a free kill-button system available? The resources are EVERYWHERE. Khizan, you, and myself have all written out lengthy introductions to various aspects of coding and IRE specific things, from basic alias tutorials, to regex information, to basic combat primers, to the basics of aff-tracking. This information is all out there, and every possible coding question has been asked somewhere, you just have to put in a modicum of effort to look for it. Hell, there are resources in all the major combat clans I've been in(including the general Magick combat clan), in the MUDLET clan, and in other clans like MK. I don't active ask all my novices "Hey, do you need help with any coding/scripting/aliasing/triggering/mudletting concerns?", but I have never turned away anybody that has asked for help, and I usually only get impatient with people when they show a complete unwillingness to put in even the slightest bit of effort to figure it out or find the answer on their own.
As far as giving out pre-built systems, if you're asking me to give out a system basic enough for people with 0 ability to code and 0 interest to learn, I've got 0 interest in giving out an F1 kill button. If you want get the tools to Ranger or Druid well enough to be useful in teams, all you need is a single alias or macro. I'll tell novices to "tipslash <target> strychnine"(superior dps to qjab and less of a loss when you hit rebounding/shield) or "evoke wisp metallic glowing <target>|evoke empower rockfall|quarterstaff stab <target> strychnine|naturebind shred <target>" all day, but giving out a system that does that for them is taking away their opportunity to learn the single most basic part of mudding, which is building an alias. That is ONE alias, but with the other changes we've seen(autocuring, etc) it's all they need to participate in team combat. If someone is unwilling to learn how to set up that ONE alias in the client that they've chosen(with the seemingly unlimited about of support that is available in game from people like myself or in various forms should they have the capability to google), they are not putting in any effort and I'm not going to reward that kind of attitude.
If you're asking me or Khizan or Edmund to put out our own Eden, I've personally never liked the idea of giving out entire combat systems. I'll export my aff-tracker, druid tracking triggers, etc and teach people how to use it with simple conditionals all day, but I've given out my full Druid system twice, and I regret it in both situations. Part of the "skill" requirement for having a solid offense beyond the limb-break classes is learning how to track things like poisonwisp and avoid repeating them. If you do ALL of that work for someone, you're elevating them from one-button Druid to (not quite) Eldreth for nothing, and demeaning all the work that anyone who has put in to get to that point. Giving out entire Fazlee F1 systems or Iluv Next-Dstab systems to people ruins the part of combat where people have to actually put in effort to be good at what they do. Sure, you get a significant head-start if you already know how to code, but that's the nature of MUD combat. If you take that away from MUD combat, what you're left with is a bunch of people pushing their killbutton with no idea what is even happening, and THAT(in my eyes), is scarier than losing the few novices that have absolutely no willingness to put any effort at all into understanding the game and the environment that they play it in.
If for some reason someone is unable to handle googling "basic tutorial for <client>", here are some things I found in 10 minutes of looking(also some posts and comments from this very same forum, for people that are unwilling to use the search feature):
Edit: Might I also point out that in this day and age, there are even video tutorials for those that need something more advanced than a text tutorial. If you would prefer to spend <x> minutes on the forum ranting about your inability to code an alias and can't be bothered to spend those few minutes instead watching someone explain it to you, there's not much that can be done to help you.
That is a nice list. When I get back to the mainland we should make a pinned topic with all that information in the post.
Okay, so I read most of this thread and I get the major points from both sides I think.
I am not 100% sure what I make of it all yet. Matt and I are sitting here talking about it though, and it is something that we have talked about a lot for many years. Basically, the learning curve for PvP is pretty high.
I don't think I am against creating some built in aliases for new players to help them get started. That is some work to figure out what aliases should be done for each profession.
I am not a fan of a push button auto attack with an affliction tracker.
I am 100% for making the in game alias system better and I will look into that when I get back.
I really want a better document for helping people learn to create their own systems, written in layman terms. This is not a small task, but needs to be done. We would probably only do the html client.
Okay, so I read most of this thread and I get the major points from both sides I think.
I really want a better document for helping people learn to create their own systems, written in layman terms. This is not a small task, but needs to be done. We would probably only do the html client.
Jeremy said:I am not a fan of a push button auto attack with an affliction tracker.
I still have no idea where that came from. I don't think anyone suggested it, and literally everyone was against it, but somehow it was still a topic of contention.
@Jeremy You didn't mention anything about the 'combat tips' from Wysrias or better options for stock highlighting and echoes. Do you have any interest in doing that?
@Linslet - Wasn't really in reference to you, just an attitude overall by a lot of old school fighters. There's resistance to the idea of making things easier in part because learning to code is seen as a right of passage. At least it sure seems that way. And yea, that's why I apologized. I should know never to post anything with a migraine.
@Jeremey - All about built-in aliases, particularly if they auto populate to the web-based client buttons. That would be beautiful. As would better documentation from/for the web-based client.
@Jules - I don't get the reference with regard to Sethren. I am pop culture illiterate. But yea, the PK culture seems leaps and bounds better now, and it used to be terribad.
I am not a fan of a push button auto attack with an affliction tracker.
I still have no idea where that came from. I don't think anyone suggested it, and literally everyone was against it, but somehow it was still a topic of contention.
Yeah, I just wanted to be clear.
@Jeremy You didn't mention anything about the 'combat tips' from Wysrias or better options for stock highlighting and echoes. Do you have any interest in doing that?
Combat tips could be very hard to do, depending on how indepth it goes. Not against it, but it feels like a huge project.
I would like better options for highlighting and echoes. I assume you mean in game ones.
I don't have time to go back and point it out, but Gurn mentioned aliases doing minor afflicting in their own as well as others indirectly mentioning the same idea. But yes, I am glad Jeremy still made that clear.
A numbing energy runs up your limbs as your attack rebounds off of blah. [Combat Tip]: Your opponent has a protective shield active! Use (ALIAS) to shatter it!
@Jeremy Yep! It does seem like it would be a bit of work, but as I said earlier, that would feel like a major graphics update in a standard game. If combat here had pretty colors built in (the generic lines being sort of okay examples), it'd be leagues over the others out of the box.
I like the basics of it. Wouldn't mind some more coloring, but as something clearly more intended for nubs, it looks like it will at least help when they read back through it.
Just as a heads up, I just put in a feature request on the Mudlet.org forums for functionality similar to the ability in CMUD and MUSH to copy and paste the XML source of aliases/triggers/etc. Even if it took a few months to actually pop up in a public release of Mudlet, it'd be a massive boon in trying to set novices up with basic aliases and triggers. Cutting out the external links and potential user error when making your own triggers from the details you provide in a CLANHELP file would be amazing. =D
Hint: if you have a Mudlet.org account, you should go second my request. You know having a CLHELP BASIC MUDLET TRIGGERS scroll that novices could just copy/paste what they want from would be amazing. =P
A numbing energy runs up your limbs as your attack rebounds off of blah. [Combat Tip]: Your opponent has a protective shield active! Use (ALIAS) to shatter it!
Yeah, this is cool, although and very hard to do. We would have to do most skills in the game, and then customise the messages based on the skills the player has to defend against that skill with.
That being said, I will probably do something like this at a very basic level for newbies to deal with some basic effects in the game. I will have to think about the best way to attack it.
A numbing energy runs up your limbs as your attack rebounds off of blah. [Combat Tip]: Your opponent has a protective shield active! Use (ALIAS) to shatter it!
Yeah, this is cool, although and very hard to do. We would have to do most skills in the game, and then customise the messages based on the skills the player has to defend against that skill with.
That being said, I will probably do something like this at a very basic level for newbies to deal with some basic effects in the game. I will have to think about the best way to attack it.
Why not just ask for input from the players to write the messages?
Well, if nothing good comes of all this except for Jeremy making everyone's dreams come true, you need to at least watch Mean Girls, Krysaliss.
p.s. mostly just the way you'd worded it made it sound hilarious to me (especially if you delete a word or two, because I'm a bad person)
The sad part is that I have. I just have -the worst memory- in the world. Kabaal regularly makes pop culture related jokes and they -all- fly over my head. It's sad making.
On the plus side, I can rewatch a movie after like half a year and it's all new again! :P
@Jeremy You mentioned an interest in fixing up the built in alias system. I think three things would be necessary to make it powerful enough to actually be usable in combat, and in turn powerful enough for me to write out aliases for my novices using it instead of teaching them to use these aliases.
1.) Make setalias handle separators in the same manner as the QUEUE system. If there has already been a separator before the SETALIAS line, treat all separators as normal separators and end the SETALIAS command with the character before the next separator. If the SETALIAS command is the first command, it automatically escapes(or ignores, whatever it looks like server-side) the separators and it eats the rest of that command, including separators, to create that alias.
2.) Allow use of a pre-set variable(presumably something like &args or &0) so that you can alias things that have static parts at the end. As a simple example, you CAN alias "affliction show <affname>" but you CANNOT alias "artifact <number> show" (see footnote 1). As is, the closest you can get to aliasing the second example would be aliasing a shortcut(example: af) to "artifact " then doing "af <number> show". There are also several places in combat where you might want to be able to fill in something in the middle of the output with user input without having to settarget first, (like an alias to sleep a target, so that you could easily use it on cleavers without changing your current target). Having something like &0 for all the information after the alias and &1, &2, &3, etc for the single words after the alias would be, IMO, the best way to handle this, as it would be a pretty big jump up in functionality.
3.) Increase the cap on aliases from 100. Even with the lackluster state of the alias system right now, and my familiarity with coding and my client, I still use it a lot for simple things that I don't want to have dependent on my system. I've been at 100 aliases for a VERY long time with Baasche, and I've been checking through ALIASLIST. In a game with as much to do as Imperian, 100 is a very low limit for aliases, and if we want to encourage novices to make use of this system, it'd be great to give them room to use it for a long time, instead of having to warn them ahead of time that they will hit a limit(and soon) which will force them to switch over to client aliases or force them to delete some of the aliases they might still be using.
[1] I'd also suggest changing the syntax on "artifact <number> show" anyway, so that the variable part
of the sentence isn't in the middle. When doing something like looking through a list of things with a syntax like that, being able to just hit end, backspace through the number, and typing a new number is a lot less work than manually selecting and deleting/replacing just the number, and quicker than hitting end, backspacing through the number and SHOW, then retyping both the number and SHOW each time.
@Cassius - That would probably not work. We are talking about hundreds and hundreds of lines that would have to be custom written while coding. The line is not the problem as it would be as simple as possible. The problem is finding all these spots in the code and adding the message in. This would not be a small project at all. A coder would probably spend a couple solid months doing nothing but this.
Often, a coder writing a tutorial will give an example of something incredibly basic, but then gloss over "next step" concepts as though "everyone knows this". In short, one of the hardest places to be is right after you have a basic understanding of a few simple things, but no idea where everything goes from there.
I'm intrigued, @Jules. Cite 3 examples of each sentence.
Often, a coder writing a tutorial will give an example of something incredibly basic, but then gloss over "next step" concepts as though "everyone knows this". In short, one of the hardest places to be is right after you have a basic understanding of a few simple things, but no idea where everything goes from there.
I'm intrigued, @Jules. Cite 3 examples of each sentence.
I'll look for some after school today. Hopefully won't be hard to find :P
So, I wanted to be able to def myself up and have some kind of reasonable way of putting defs back up if they got stripped. By the way, I ended up using this:
I'm just not-dumb enough that I managed to change everything I needed to in its guts to make it work for a Templar, and I even separated the defs into two aliases, so I wouldn't try to put up deathsight back up in the middle of a fight, but I would try to put up, say, inspiration!
But before that... people did really really try to help me, and Ultrix told me about this mystical creature called a push table. It is a creature I still want to hunt down and keep in my personal code bestiary!
The concept is something I can understand. You have a list of things. You can add to this list of things. As you do each thing, you "pop" it out of the list somehow. When you lose a def, say in combat, it would get added back yet again, presumably. Sounds awesome. So I read this tutorial:
and by read, I mean that my brain said "WTF is this? No". So, I did a lot of google searches, but this kind of table actually seems to be pretty obscure.
So, I thought, hrm, I should just start at the beginning:
"As a slightly more complex example, the following program defines a function to compute the factorial of a given number, asks the user for a number, and prints its factorial:
-- defines a factorial function
function fact (n)
if n == 0 then
return 1
else
return n * fact(n-1)
end
end
print("enter a number:")
a = io.read("*number") -- read a number
print(fact(a))"
Me: Print("**** you Lua") I sifted through more, baffling pages.
Another example, I guess is the aff tracker thread. I understand Khizan's post:
By the way, it is the *only* post there I really understand, and I had to stare at it. What I don't understand is how to make it work with the table it's supposed to serve (but that was not the question he was answering).
Okay, another example I had mentioned in one of my original posts was Vadi's great gmcp tutorial:
On page 4, he starts talking about sending gmcp, but you need to "put it in a script". Okay, so, I can see in mudlet where you store a script, and I figure maybe I can dink around with this and figure out how to stick it in there, but now what? All of a sudden we've gone from (I'm sure from any coder's view) excruciating step by step instructions to something I don't have the other "pieces" to understand. The other thing about that tutorial, much as I love it, is that the step by step really is just that. I get the idea that there is this great secret treasure trove of information running under the hood of my MUD, but I still don't really understand much more about how to parse it, trigger off it, store it... I don't know the rules for "talking" to it. I know how to do *exactly* what Vadi has shown me to do.
I hope that gets across what it looks like for me. If not, I'll try again in a few days. Honestly, if there are resources worth *buying* I'm not on a strict budget, nor am I one of those people who has an aversion to paying for any and all intellectual property, but I'd want to have at least some hope that it wouldn't trick me into thinking I was getting somewhere and the suddenly leave me in the dust.
As far as dealing with double sided queues like in that first link, that's buckets more complex than you need for what you're doing. Here's a more appropriate example:
missingDefs = missingDefs or {} --if there is no table named missingDefs, make a blank one
--on losing cloak table.insert(missingDefs, "cloak") --just adds an item called "cloak" to the missingDefs list
--to check if you're missing defences and attempt to put one back up if #missingDefs > 0 then --using # before a table returns the number of items in it if missingDefs[1]=="cloak" then --is the first defence in the missingDefs list cloak? send("queue eqbal touch cloak") --try to put it back up elseif missingDefs[1]=="alertness" then --this defence isn't cloak, is it alertness? send("queue eqbal alertness on") --try to put alertness back up else --don't have an elseif statement for this type of def echo("Unhandled defence called: " .. missingDefs[1]) --inform us we don't handle it yet end else --all defences are up? cecho("<white>(<green>All Defs Up!<white>)") --let's echo it so we know that! end
--to remove a defence from the missingDefs list if table.contains(missingDefs, "cloak") then --if cloak was one of the missing defences table.remove(missingDefs, table.index_of(missingDefs, "cloak")) --find the index of "cloak" in missinDefs and remove it end
I have read through this thread, and I kind of feel like I have been on both sides of the cannot/do not feel like coding portion of the populace. There are days when I get on raring to go, and can make a tiny bit of progress, and some days where I just trash everything and give it up for a time.
I love asking for help (just ask @Mathiaus), and I am aware of my limitation as far as coding. For one, I use a rediculous client, because no good manuals of Blowtorch exist, and Mathiaus is one of only three people I know that have ever used it. I HAVE a computer, and Mudlet, and even systems for Mudlet given to me by bunches of people to give me examples on what to do, but as most people know, I am never at home to take advantage and try to code for it. I like being mobile, it allows me to actually play MORE, though certainly at a disadvantage in combat situations.
My main roadblock is a lack of a reliable tracker available for my client, and to have one server-side available to use would be a nice thing to have, even if it were voluntary.
Also, much love to anyone who has helped out with coding of any kind, and especially to anyone who has given insight for Blowtorch. You know who you are and be on the look out soon for a great big thank you present.
People do not join Imperian because they hear it has really complex combat. People join MUDs because they're free, they like RPGs, and they don't require a good computer to run.
People join Imperian because they want to fight, they want to get better at code, they want to become better writers, they want to use their imagination, they want to gain gold (aka @Gurn), they want to interact with like-minded people, and the list goes on. Imperian is incredibly useful for the real world too. Everyone has their own reason(s). You don't have to hardcore code to play Imperian unless you just want to fight, and if that's your only reason for playing then you should go play LoL, because frankly people who are just here for PK are in the wrong game. It still leaves endless possibilities even if you don't PK.. Imperian is like writing a book alongside everyone else, and the story never ends. Combat is just one, small facet.
(Ring): Lartus says, "I heard Theophilus once threw a grenade and killed ten people." (Ring): Lartus says, "Then it exploded."
(Ring): Zsetsu says, "Everyone's playing checkers, but Theophilus is playing chess."
Comments
There was never anything productive about this thread in the first place.
"On the battlefield I am a god. I love war. The steel, the smell, the corpses. I wish there were more. On the first day I drove the Northmen back alone at the ford. Alone! On the second I carried the bridge! Me! Yesterday I climbed the Heroes! I love war! I… I wish it wasn’t over."
https://www.youtube.com/watch?v=tjt-irRCZEs
I still have no idea where that came from. I don't think anyone suggested it, and literally everyone was against it, but somehow it was still a topic of contention.
@Jeremey - All about built-in aliases, particularly if they auto populate to the web-based client buttons. That would be beautiful. As would better documentation from/for the web-based client.
@Jules - I don't get the reference with regard to Sethren. I am pop culture illiterate. But yea, the PK culture seems leaps and bounds better now, and it used to be terribad.
Hint: if you have a Mudlet.org account, you should go second my request. You know having a CLHELP BASIC MUDLET TRIGGERS scroll that novices could just copy/paste what they want from would be amazing. =P
Why not just ask for input from the players to write the messages?
On the plus side, I can rewatch a movie after like half a year and it's all new again! :P
1.) Make setalias handle separators in the same manner as the QUEUE system. If there has already been a separator before the SETALIAS line, treat all separators as normal separators and end the SETALIAS command with the character before the next separator. If the SETALIAS command is the first command, it automatically escapes(or ignores, whatever it looks like server-side) the separators and it eats the rest of that command, including separators, to create that alias.
2.) Allow use of a pre-set variable(presumably something like &args or &0) so that you can alias things that have static parts at the end. As a simple example, you CAN alias "affliction show <affname>" but you CANNOT alias "artifact <number> show" (see footnote 1). As is, the closest you can get to aliasing the second example would be aliasing a shortcut(example: af) to "artifact " then doing "af <number> show". There are also several places in combat where you might want to be able to fill in something in the middle of the output with user input without having to settarget first, (like an alias to sleep a target, so that you could easily use it on cleavers without changing your current target). Having something like &0 for all the information after the alias and &1, &2, &3, etc for the single words after the alias would be, IMO, the best way to handle this, as it would be a pretty big jump up in functionality.
3.) Increase the cap on aliases from 100. Even with the lackluster state of the alias system right now, and my familiarity with coding and my client, I still use it a lot for simple things that I don't want to have dependent on my system. I've been at 100 aliases for a VERY long time with Baasche, and I've been checking through ALIASLIST. In a game with as much to do as Imperian, 100 is a very low limit for aliases, and if we want to encourage novices to make use of this system, it'd be great to give them room to use it for a long time, instead of having to warn them ahead of time that they will hit a limit(and soon) which will force them to switch over to client aliases or force them to delete some of the aliases they might still be using.
[1] I'd also suggest changing the syntax on "artifact <number> show" anyway, so that the variable part of the sentence isn't in the middle. When doing something like looking through a list of things with a syntax like that, being able to just hit end, backspace through the number, and typing a new number is a lot less work than manually selecting and deleting/replacing just the number, and quicker than hitting end, backspacing through the number and SHOW, then retyping both the number and SHOW each time.
missingDefs = missingDefs or {} --if there is no table named missingDefs, make a blank one
--on losing cloak
table.insert(missingDefs, "cloak") --just adds an item called "cloak" to the missingDefs list
--to check if you're missing defences and attempt to put one back up
if #missingDefs > 0 then --using # before a table returns the number of items in it
if missingDefs[1]=="cloak" then --is the first defence in the missingDefs list cloak?
send("queue eqbal touch cloak") --try to put it back up
elseif missingDefs[1]=="alertness" then --this defence isn't cloak, is it alertness?
send("queue eqbal alertness on") --try to put alertness back up
else --don't have an elseif statement for this type of def
echo("Unhandled defence called: " .. missingDefs[1]) --inform us we don't handle it yet
end
else --all defences are up?
cecho("<white>(<green>All Defs Up!<white>)") --let's echo it so we know that!
end
--to remove a defence from the missingDefs list
if table.contains(missingDefs, "cloak") then --if cloak was one of the missing defences
table.remove(missingDefs, table.index_of(missingDefs, "cloak")) --find the index of "cloak" in missinDefs and remove it
end
I love asking for help (just ask @Mathiaus), and I am aware of my limitation as far as coding. For one, I use a rediculous client, because no good manuals of Blowtorch exist, and Mathiaus is one of only three people I know that have ever used it. I HAVE a computer, and Mudlet, and even systems for Mudlet given to me by bunches of people to give me examples on what to do, but as most people know, I am never at home to take advantage and try to code for it. I like being mobile, it allows me to actually play MORE, though certainly at a disadvantage in combat situations.
My main roadblock is a lack of a reliable tracker available for my client, and to have one server-side available to use would be a nice thing to have, even if it were voluntary.
Also, much love to anyone who has helped out with coding of any kind, and especially to anyone who has given insight for Blowtorch. You know who you are and be on the look out soon for a great big thank you present.
(Ring): Lartus says, "Then it exploded."
(Ring): Zsetsu says, "Everyone's playing checkers, but Theophilus is playing chess."