Welcome to the Achaea Forums! Please be sure to read the Forum Rules.

Can't code worth a damn: Where do I start?

SylvariaSylvaria Member Posts: 215 ✭✭✭ - Distinguished
So I'm trying to get my foot into the door for combat, 1v1 arena and raiding, but I can't code worth a damn, mostly because I don't enjoy it as much as I used too (if I already had a system to tweak and make perfect for me I'd be fine but building from the bottom up seems REALLY daunting for some reason!)

Any tips on where to start and how to move up from the start? Consider this from an omnitrans (got lessons just haven't sat on to use them) priest/bard and soon to be runewarden. Which one should I sit on and start? Do I need to sit in the arena with a dummy for hours to just start building a system?

Thanks in advance!
Exelethril

Comments

  • SzanthaxSzanthax San DiegoMember Posts: 1,906 @ - Epic Achaean
    pray...



  • CynlaelCynlael Member Posts: 3,257 @@ - Legendary Achaean
    Priest requires the least 'thorough' coding of those three.

  • AtalkezAtalkez Member, Secret Squirrel Posts: 5,216 @@ - Legendary Achaean
    Have to disagree there. Runewarden can smash stuff with just a few simple aliases and not much else. Priest isn't quite that easy.


    You hug Aurora compassionately.
  • CynlaelCynlael Member Posts: 3,257 @@ - Legendary Achaean
    edited February 2016
    I dunno what priest you're playing there. Aetolia Priest? 
    Priest is close to, if not the easiest class to code a full offence for, solely because of balance-less diagnose every few seconds. Used to be even /easier/ with it on every balance.

    Also I said thorough coding. As in, to account for all possible things. Priest can get by with just a few simple aliases, just as easily as any other class can. Can 1/2-button every class with enough work though. Priest definitely the easiest to learn and 'git gud' with.

  • AtalkezAtalkez Member, Secret Squirrel Posts: 5,216 @@ - Legendary Achaean
    Nah you're making it out to be much simpler than it really is. Balanceless diagnose isn't going to help you stick afflictions, let alone actually capitalize on those afflictions. Unartied priest is too slow to stick anything realistic versus good curing, so knowing that they have spirit disrupt instead of air disrupt still doesn't let you kill anyone. 

    Unartied priest struggles immensely to really do anything, especially if they don't have Mind Warden to lead into balanceless contemplate. 

    My Serpent offense is three aliases and a function. My Paladin offense is two aliases. Priest takes quite a bit more than that to fight.


    You hug Aurora compassionately.
    Dochitha
  • DochithaDochitha Member Posts: 1,415 @ - Epic Achaean
    Atalkez said:
     

    My Serpent offense is three aliases and a function. My Paladin offense is two aliases. Priest takes quite a bit more than that to fight.
    Autolkez.

    My dstab is one alias. But a tonne of others to move, pinshot, hyp, evade, shoot etc.
  • CynlaelCynlael Member Posts: 3,257 @@ - Legendary Achaean
    edited February 2016
    If you're not 80 (the only real reason I can think of, that you wouldn't have mind warden), I can't think of why you're a Priest in the first place.

    Priest can literally be 1 button, if you have triggers to alter variables. Balance-less diag alone isn't gonna help you stick affs, no.  But it solidifies your ability to, because any aff you might have miscalculated, is gonna be fixed on the next bal anyway.

    Unartied priest struggling, is about as true as unartied apostate struggling. Traelor did perfectly fine with it, pre-arti mace.. Ripped harder with it, when he got that. How many times have you come to me for coding help? Yet you still refute. C'mon man.

    Priest > Runewarden > Bard, in that list. 100%.

  • AtalkezAtalkez Member, Secret Squirrel Posts: 5,216 @@ - Legendary Achaean
    edited February 2016
    You can't compare unartied Priest to unartied Apostate. Not even in the same realm of effectiveness. Apostate doesn't need arties, and there are none to augment it's offense. Not the same thing at all.

    I'm not sure who Traelor is, but I can safely say that he wasn't doing anything as Priest in the last year, because I've never fought him. So that isn't a good example.

    The only way an unartied priest can win right now is with jab/chasten, which most likely isn't going to be viable for much longer anyway. Classleads coming up should see some small QoL updates for Priest on the low end. The only person that has played unartied Priest and did okay was @Xinna and she did it with jab/chasten. Not stock Priest skillset, because it's very very very hard to do.

    I'm not sure how asking your advice on code a handful of times has any bearing on the topic at hand, but alright. 

    Runewarden is the easiest class to code for in that list, in my opinion.


    You hug Aurora compassionately.
  • SylvariaSylvaria Member Posts: 215 ✭✭✭ - Distinguished
    Ok so from what I can gather sort out a full set of offensive buttons/macros/aliases and just pinpoint add things as I go? I just worry since I read so many logs and it seems like so much set up that I need to have to compete.

    also I don't know which of those classes was "easiest" when I picked them, but if bard is the hardest I want to use it the most, honestly I just knew that runie was simple and a good class for me to learn the ropes. I don't want to be a one button win whore, I'd love to just start so I can be competent and improve from there.
  • SylvariaSylvaria Member Posts: 215 ✭✭✭ - Distinguished
    Klendathu said:
    Firstly, namespace (ringfence) all of your code and variables, it'll ensure you don't interfere with third-party scripts you might import. It's easily done: assuming you want to namespace using syl just put:
    syl = syl or {}
    at the top of the first script block containing any of your code (can put it at the top of every script block if you wish with no noticeable degradation to performance

    Here's something for bard:
    syl.haveVoiceBalance = function()
    if table.contains(gmcp.Char.Vitals.charstats, "Voice: Yes") then
    return true
    else
    return false
    end
    end

    You can use the command haveVoiceBalance() in any script and it will check if (no prizes for guessing here) you have voice balance.

    As you're multiclassed, you're going to be checking your class fairly frequently so you can re-use the same aliases for different abilities, that's in gmcp.Char.Status.class. Some abilities will prevent you checking gmcp (blackout, for example), so it's worth writing it to a separate clientside variable:
    syl.updateMyClass = function()
    syl.myClass = gmcp.Char.Status.class or syl.myClass
    end

    registerAnonymousEventHandler("gmcp.Char.Status.class", "syl.updateMyClass")
    The anonymous event handler means that the variable will be automatically updated whenever there's an event that affects gmcp.Char.Status.class, such as changing class!

    (You will also need to add something in to set the variable on log-in)

    Sorry if this is not quite what you were after. The best advice I can give is to take it slowly, define what you want scripts to do before you start working on them, see where you can re-use code and separate those parts into sub-routines that can be called from multiple scripts (like the haveVoiceBalance function above), and set small, incremental, achievable goals.
    Great! Thanks! Anything to get me started really, I'm sure I'll have a system in no time but the start is the toughest, mostly because If I can hold up a modicum of offense I can force more situations to arise to help build my system, dying to dsb every spar because I suck helps no one but probably @Xaden since he likes to feel like a winner :)
  • JovoloJovolo EnglandMember Posts: 3,270 @@ - Legendary Achaean
    Xinna did well as unartied priest on her alt, I did pretty good on mine too. You really don't need artefacts to excel as that class. Jab was good because it meant you could reliably afflict a high priority herb affliction to stick asthma for a hellsight focus lock and people didn't expect it. The coding for it is quite easy too admittedly. I think Runewarden is easier to code an offence for, totally, while Bard is the hardest (of those 3 choices). Priest is more time consuming than Runewarden but not much more difficult. 

    Almost the only scripting you really need to do is automating what you do on your heal balance. 
  • SylvariaSylvaria Member Posts: 215 ✭✭✭ - Distinguished
    Jovolo said:
    Xinna did well as unartied priest on her alt, I did pretty good on mine too. You really don't need artefacts to excel as that class. Jab was good because it meant you could reliably afflict a high priority herb affliction to stick asthma for a hellsight focus lock and people didn't expect it. The coding for it is quite easy too admittedly. I think Runewarden is easier to code an offence for, totally, while Bard is the hardest (of those 3 choices). Priest is more time consuming than Runewarden but not much more difficult. 

    Almost the only scripting you really need to do is automating what you do on your heal balance. 
    This reminds me that I have a reply for your message but been playing so much on my phone that I haven't sent it. Thanks for the input too!
  • TaelTael Member Posts: 1,197 @ - Epic Achaean
    edited February 2016
    1. You don't really need to code many things to fight at an entry/midbie level, especially with serverside curing. There are even high-tier combatants who don't really do much coding.
    2. Are you using Mudlet or Nexus? Thus far people have been making suggestions for coding in Mudlet, but things are quite different in Nexus. Either of them is absolutely viable these days. Mudlet is more popular among coders, but there's a lot to like about the new client and, personally, I actually prefer JavaScript to Lua, though that's probably a rare opinion.
    3. If you want to learn to code, do it relatively methodically. Learning some basics like how functions and lists/arrays/objects work and spending an afternoon learning regex is infinitely more useful than learning a smattering of discrete solutions to particular problems.
    4. Once you understand some basics, apply it by working on a smattering of discrete solutions to particular problems.
    Utianima
  • SylvariaSylvaria Member Posts: 215 ✭✭✭ - Distinguished
    Tael said:
    1. You don't really need to code many things to fight at an entry/midbie level, especially with serverside curing. There are even high-tier combatants who don't really do much coding.
    2. Are you using Mudlet or Nexus? Thus far people have been making suggestions for coding in Mudlet, but things are quite different in Nexus. Either of them is absolutely viable these days. Mudlet is more popular among coders, but there's a lot to like about the new client and, personally, I actually prefer JavaScript to Lua, though that's probably a rare opinion.
    3. If you want to learn to code, do it relatively methodically. Learning some basics like how functions and lists/arrays/objects work and spending an afternoon learning regex is infinitely more useful than learning a smattering of discrete solutions to particular problems.
    4. Once you understand some basics, apply it by working on a smattering of discrete solutions to particular problems.
    I use Mudlet but I should use nexus and take your offer!
  • TaelTael Member Posts: 1,197 @ - Epic Achaean
    There are definitely more people coding in Mudlet, but I'm happy to help people learn how to set things up in Nexus. I've been thinking about starting a guide to learning to code in it anyway and I can usually respond to questions.
    SylvariaUtianima
  • AtalkezAtalkez Member, Secret Squirrel Posts: 5,216 @@ - Legendary Achaean
    Unartied priest, it's extremely hard to win against decent curing without jab. It being viable with jab isn't the same as the class being viable out of the box with no arties like Apostate. 

    You're welcome go roll a tri trans, no artie priest with no jab to try to prove me wrong. You're going to struggle versus anyone with a clue about priest.


    You hug Aurora compassionately.
    Tesha
  • TeshaTesha Member Posts: 2,956 @@ - Legendary Achaean
    edited February 2016
    @Sylvaria Priest: I can help you strategy wise in-game sometime, for the most part you don't really need to be an exceptional coder. You do need a few things that I can guide you through. Priest isn't too bad once you get the essentials set up, it's all about practice. Bard: Bard requires some precise timing. You can automate it and do fairly well, but if you're just starting out I'd recommend Priest or Runewarden first. Runewarden: This would be a good stepping stone to Bard, and let you learn how to analyse how your opponent is curing and capitalize on it. We can talk more about it ingame - you're in Targ's combat house, use it! I remember you asking me about Priest once when I was pretty busy but there are plenty of people who can help. Don't be shy!

    @Cynlael Priest definitely requires a bit more complex coding than the standard aff class, but you probably wouldn't see why if you look at it from the point of view of the average affliction class. Priest needs different information and a way to utilize that information quickly. Priest doesn't really need to know which afflictions a target has like other classes, Priest needs to know exactly how many and exactly how much mana the target has. The difficulty isn't in delivering the afflictions, it's in turning that into a kill when you have the opportunity. It's for spiritlash and checking for inquisition/absolve potential. A good example is seeing they have 6 afflictions and 85% mana while you have healing balance and eq/bal for spiritlash/inquisition. You'd have to make a splitsecond judgment about whether you can spiritlash/inquisition, and it has to be fast enough that their affliction count and mana value doesn't change in the time it takes you to react. Personally out of all the classes I have played, Priest is the class that has necessitated the most coding, both in single and group. I could code an offense for most other classes without much trouble at all.

    Also, unartied priest is definitely a lot weaker right now than it was when the previously mentioned unartied priests were fighting. The change to disrupt earth hurt really, really badly, and it's currently bugged to hurt even worse than it should. Jab was severely nerfed a very long time ago, you can't use weaponry when off healing balance and you can't use healing balance when off balance from using weaponry.

     i'm a rebel

  • SylvariaSylvaria Member Posts: 215 ✭✭✭ - Distinguished
    @Tesha I always feel I am being a nuisance and a pain though, part of my anxiety. I'll ask more questions though, just a bit nervous is all, making this thread made me feel stupid enough! :D
  • TeshaTesha Member Posts: 2,956 @@ - Legendary Achaean
    Nah, you asked legitimate questions, don't feel stupid. See you in game! :)

     i'm a rebel

  • DaeirDaeir AustraliaMember Posts: 6,296 @@ - Legendary Achaean
    Sylvaria said:
    @Tesha I always feel I am being a nuisance and a pain though, part of my anxiety. I'll ask more questions though, just a bit nervous is all, making this thread made me feel stupid enough! :D
    You're not - any coder worth their salt will be thrilled to help a person trying to get something working if they're polite and engaged about it.
  • XadenXaden Member Posts: 2,315 @@ - Legendary Achaean
    Sylvaria said:
    Great! Thanks! Anything to get me started really, I'm sure I'll have a system in no time but the start is the toughest, mostly because If I can hold up a modicum of offense I can force more situations to arise to help build my system, dying to dsb every spar because I suck helps no one but probably @Xaden since he likes to feel like a winner :)

    Oi! Don't drag me into this! We haven't even sparred yet :(

         He is a coward who has to bring two friends as backup to jump people hunting.

  • AntoniusAntonius Member Posts: 4,991 @@ - Legendary Achaean

    Expanding on what Klendathu said, once you start juggling multiple classes I've found it's useful to have an event you can attach event handlers to for when you've changed class, so that you can bind event handlers in other scripts you write. I have something like this, though I have an event handler for gmcp.Char.Status that updates a lot of different things:

    syl.updateMyClass = function()
        local oldClass = syl.myClass
        syl.myClass = gmcp.Char.Status.class
        -- if we aren't first setting our class in a new Mudlet session, report a class change if it's different
        if oldClass and oldClass ~= syl.myClass then
            raiseEvent("syl class changed", syl.myClass, oldClass)
        end
    end
    
    registerAnonymousEventHandler("gmcp.Char.Status.class", "syl.updateMyClass")
    

    Then in other scripts you can use it like so:

    syl.doSomethingOnClassChange = function(event, newClass, oldClass)
        -- do something, like maybe change priorities or wear the right armour for the new class
    end
    
    registerAnonymousEventHandler("syl class changed", "syl.doSomethingOnClassChange")
    
  • XinnaXinna Member Posts: 691 ✭✭✭✭✭ - Grand Achaean
    Tesha said:
    @Sylvaria Priest: I can help you strategy wise in-game sometime, for the most part you don't really need to be an exceptional coder. You do need a few things that I can guide you through. Priest isn't too bad once you get the essentials set up, it's all about practice. Bard: Bard requires some precise timing. You can automate it and do fairly well, but if you're just starting out I'd recommend Priest or Runewarden first. Runewarden: This would be a good stepping stone to Bard, and let you learn how to analyse how your opponent is curing and capitalize on it. We can talk more about it ingame - you're in Targ's combat house, use it! I remember you asking me about Priest once when I was pretty busy but there are plenty of people who can help. Don't be shy!

    @Cynlael Priest definitely requires a bit more complex coding than the standard aff class, but you probably wouldn't see why if you look at it from the point of view of the average affliction class. Priest needs different information and a way to utilize that information quickly. Priest doesn't really need to know which afflictions a target has like other classes, Priest needs to know exactly how many and exactly how much mana the target has. The difficulty isn't in delivering the afflictions, it's in turning that into a kill when you have the opportunity. It's for spiritlash and checking for inquisition/absolve potential. A good example is seeing they have 6 afflictions and 85% mana while you have healing balance and eq/bal for spiritlash/inquisition. You'd have to make a splitsecond judgment about whether you can spiritlash/inquisition, and it has to be fast enough that their affliction count and mana value doesn't change in the time it takes you to react. Personally out of all the classes I have played, Priest is the class that has necessitated the most coding, both in single and group. I could code an offense for most other classes without much trouble at all.

    Also, unartied priest is definitely a lot weaker right now than it was when the previously mentioned unartied priests were fighting. The change to disrupt earth hurt really, really badly, and it's currently bugged to hurt even worse than it should. Jab was severely nerfed a very long time ago, you can't use weaponry when off healing balance and you can't use healing balance when off balance from using weaponry.
    Umm. Jab/chasten/disrupt didn't exist when @Jovolo and I were priest. Jab/chasten still works. That being said, you're both ignoring the most significant nerf to unartied priest since we both played it: the removal of peace.
    Tesha
  • JovoloJovolo EnglandMember Posts: 3,270 @@ - Legendary Achaean
    Peace was pretty OP tbf
  • CynlaelCynlael Member Posts: 3,257 @@ - Legendary Achaean
    r.i.p siren seduce/jab para/chasten, and seduce/chasten/disrupt

  • DortheronDortheron Member Posts: 343 ✭✭✭✭ - Eminent
    Tael said:

    If you want to learn to code, do it relatively methodically. Learning some basics like how functions and lists/arrays/objects work and spending an afternoon learning regex is infinitely more useful than learning a smattering of discrete solutions to particular problems.
    Bu-bu-bu...that's how (almost) everyone learns coding! If you're not cobbling together half-baked triggers with functions stolen and slightly modified with barely any idea on their logic or purpose, you're doing it wrong!

    (But really, listen to @Tael and the others and do the reading. Will save you hours of saying "wtf?!? WHY AREN'T YOU WORKING!!!" because of a single spelling/syntax mistake)
    You know, that one thing at that one place, with that one person.

    Yea, that one!
  • MatiasMatias Member Posts: 73 ✭✭✭ - Distinguished
    I would suggest learning about regex, tables, functions, and using some creativity to make it all come together. I am sure my systems are not made the best way, but they work, and my mudlet isn't dying so I call that a win.
  • TaelTael Member Posts: 1,197 @ - Epic Achaean
    Expanding a little bit: I would say that probably the most important thing to really understand is functions. It's not that complicated, but remarkably many people don't understand what functions are or how they work. Lists, tables, arrays, dictionaries (whatever the language calls them) are also important, but pretty intuitive. Functions are where it's at.

    Regex is also pretty huge for triggers and aliases. You can easily learn it in an afternoon.

    Also, a sort of esoteric thing worth noting - if you're using Nexus and will thus be coding in JavaScript, you need to understand what a "closure" is. Again, it's not actually that complicated a feature, but it's pretty mind-warping when you first learn about it. But you can be pretty much guaranteed that if you don't eventually learn about it, you will eventually manage to write something in JavaScript that will behave weirdly and you won't be able to figure out why.
Sign In to Comment.