Hey all!
My goal this weekend is to finish learning my second class, and set up my combat for it. I suppose I just have a couple of questions regarding how some of you coded multiclass.
1.) Did you make a separate mudlet profile for each class? My OCD tells me to do this, but I know it would be a pain when I make small tweaks/updates/misc. triggers/etc.
2.) I use SVO, so how did you handle the need for two different versions (one for each class)?
3.) Any advice, tricks, etc. that you used or found helpful for the process?
Thanks!
0
Comments
Tip: Run enable/disable alias groups on class change. This allows you to use the same alias keys to do the same thing despite being different syntaxes.
E.G.
if gmcp.Char.Status.class == "Magi" then
send("staffstrike "..target.." left air")
else
send("combo "..target.." sdk ucp ucp")
end
OR
if gmcp.Char.Status.class == "Magi" then
enableTrigger("Magi Class Triggers")
disableTrigger("Monk Class Triggers")
end
That way you can use the same basic packages for each, make sure you make it all in one subfolder, then when you make any big changes you can just export the folders (aliases, scripts, buttons, timers and triggers), zip them, then install them on the new profile.
You could also just uninstall svof on the package manager and install the new class each time. Your settings are saved in a seperate file, so it shouldn't be too much of an issue.
Another decent idea if you want to stay svo is to use modules to link your core stuff through dropbox. I can help with this too!
Before multiclass, I built my own system to run alongside server-side curing because Svo did a lot of things that I didn't like; some things flat out didn't work properly when I made the switch to using server-side curing (before Svo actually had a server-side mode) so I've been gradually replacing them with my own implementations. When multiclass came around, I ended up creating a system where each class has its own set of modes. Each mode has its own distinct set of affliction priorities, sip configurations, defence priorities, and defup and keepup configurations. I've also recently updated my affliction priority switching system so I can add class-specific swaps in.
When I just had dual cutting Paladin, I had aliases that would set the two venoms to use, aliases to set which limb (if any) I'm targetting, etc. then an alias that would actually attack (using the values that were set with the other aliases). That attack alias had optional modifiers for combining extra things that can be done off-balance/in combination with doubleslash, such as d to lay rite of demons, h to lay rite of healing, i for intimidate, etc.
Multiclass was then just a natural extension of that. The alias to pick venoms became an alias to pick dual afflictions (for dual aff classes), with some additions to handle non-venom afflictions like impatience; then each class determines how it needs to handle them - alchemist uses them as they are for truewrack, Bard converts to a combination of a song and a venom, dual cutting and serpent converts them both to venoms, and sword and shield converts them to a combination of a venom and shield attack.
Each class has its own namespace, and part of that is an 'attack' function, which will take that optional modifier the attack alias recognises. The base attack alias calls a general function which looks like this:
As you can see, each class has its own namespace, and each of those namespaces has an attack function which takes the modifier and returns a list of commands to run. It passes that list to another function (antonius.get_commands) which just appends common things to the start such as STAND, switching parry, vaulting onto my mount, getting vials or pipes out of containers, etc. Here's an example of one of those class namespaces:
Results of disembowel testing | Knight limb counter | GMCP AB files
And you won't understand the cause of your grief...
...But you'll always follow the voices beneath.
Beyond that, you're going to miss gotop, ndb, and the queue system. Wsys' queue is nicer in a lot of ways, it just takes some getting used to and it does have it's limitations
I run into problems with defup though because sometimes it resets the serverside defences and stuff to the new class... sometimes it dont.
Never really saw the point of trying to run it off of one profile.
GMCP documentation: https://github.com/keneanung/GMCPAdditions
svof github site: https://github.com/svof/svof and documentation at https://svof.github.io/svof