Skip to content

Split discussion: Improving Imperian - server-side offense

124»

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."

  • Krysaliss said:

    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-.  

    Was Sethren like a more diabolical, more inappropriate version of Regina George?

    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)!  


  • IniarIniar Australia
    Jeremy said:
    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.
    This would be awesome++
    wit beyond measure is a Sidhe's greatest treasure
  • edited January 2015
    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?
  • edited January 2015
    @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. 
  • 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)
  • Gurn said:
    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.
    Yeah, I just wanted to be clear.

  • Kabaal said:
    @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.

  • MathiausMathiaus Pennsylvania
    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.
    image
  • @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.
  • edited January 2015
    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
    image
  • Iniar said:
    Wysrias said:

    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!
    image

    image


    Some of the 'tips' are pretty horrible :3
    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.

  • Jeremy said:


    Iniar said:


    Wysrias said:

    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!

    image

    image


    Some of the 'tips' are pretty horrible :3

    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?
  • Jules said:
    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
  • edited January 2015
    @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.
    image
  • @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.

  • IniarIniar Australia
    Jules said:

    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.
    wit beyond measure is a Sidhe's greatest treasure
  • Iniar said:

    Jules said:

    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:


    "print("Hello World") " 

    Okay... whatever, even I know this.

    Then it goes right to this:

    "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("Fuck 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.  
  • edited January 2015
    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
    image
  • 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.
  • Gurn said:



    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."
Sign In or Register to comment.