Mushclient Questions

by Esano

Back to Mechanic's Corner.

Zalandrus2010-05-10 16:00:22
A bit of an odd situation: I'm trying out Treant but with Ethelon's GUI plugin still enabled. Things were working peachy fine for a while, but now, while the channel capture and health/mana/ego bars seem to be working, the map won't update itself upon movement. Any ideas? I don't think I did anything significant to cause the change, except perhaps disable the plugin (it later re-enabled).
Unknown2010-05-11 00:18:07
QUOTE (AllergictoSabres @ May 3 2010, 01:47 AM) <{POST_SNAPBACK}>
Hunting would be fine, yeah. I thought he was talking about raids/defending.



Yeah.. I was. That's why I want to know the coding it takes. I'm pretty sure I'd screw something up and end up killing my own team or something. People keep giving me vague clues on how to set up the code, when all I really ask for is just the code itself. That way I don't screw up and end up getting kicked out of whatever city I am a citizen of. It's hard enough to do battle considering that it goes at lightning speed. I can't tell what I'm afflicted with or such in time to realize what to do next. I keep having to cast random spells hoping at least one of them will hit, and if it does, I'm not even sure when it does. I honestly think the people who taunt others for "being total noobs" about this is really immature, due to the fact that it's so complicated to even get set up in the first place. For all we know, they could of bought all there coding, or downloaded it. Not really doing any work themselves yet claiming to be oh so powerful. Yes, you are powerful in the world of make believe. Congrats. Now please let us normal people try to figure out how to even play the damn game without getting slaughtered by random passerby's! 0_E.... sorry about the rant. Needed to be said.
Unknown2010-05-11 00:20:15
QUOTE (Zalandrus Meyedsun @ May 10 2010, 04:00 PM) <{POST_SNAPBACK}>
A bit of an odd situation: I'm trying out Treant but with Ethelon's GUI plugin still enabled. Things were working peachy fine for a while, but now, while the channel capture and health/mana/ego bars seem to be working, the map won't update itself upon movement. Any ideas? I don't think I did anything significant to cause the change, except perhaps disable the plugin (it later re-enabled).


And I believe you just do "config mapview on". Probably not correct, but at least I tried to help?
Unknown2010-05-11 01:44:33
Sweet rant. I had a longer reply composed, but cut it out. I'm curious as to which org you play in (Dunno who your character is) because I've never heard of someone being kicked out for being a poor combatant. 90% of people in the game don't fight seriously to begin with.
Unknown2010-05-11 02:08:41
It's an especially interesting rant given that there is a half decent system available for free with step-by-step illustrated instructions on how to install it. No one said you had to be a programming genius to use it, but a certain level of reading comprehension is required.
Zalandrus2010-05-11 16:18:04
QUOTE (TheSponge @ May 10 2010, 08:20 PM) <{POST_SNAPBACK}>
And I believe you just do "config mapview on". Probably not correct, but at least I tried to help?


<3

Now when did I change that config...
Unknown2010-05-12 06:08:48
QUOTE (Zarquan @ May 11 2010, 02:08 AM) <{POST_SNAPBACK}>
It's an especially interesting rant given that there is a half decent system available for free with step-by-step illustrated instructions on how to install it. No one said you had to be a programming genius to use it, but a certain level of reading comprehension is required.


(I got Treant installed for my defenses, I easily got that installed. Combat on the other hand....)

I'm a visual person really. I can have a textbook of biology and study it and maybe learn some of the vocabulary. I learn by doing. Problem is, I don't know how to do it correctly just once.
It takes a lot of time and work. Those who do it I can applaud, IF they did the work. I just can't spend the hours of time on it when I have other things that need to be done. I don't have the time to learn some LUA format when I'm supposed to be learning about my profession in college. I'm having enough trouble understanding my current classes, so I'd just mix myself up with more things should I try to study this. School comes first. Plus I want a good job, hehe.

And Zarquan, I am VERY grateful that you are even sharing your defense coding. That's a lot of work and time spent well. It's annoying to have people buy your services and claim themselves to be powerful.
Unknown2010-05-12 06:10:26
QUOTE (AllergictoSabres @ May 11 2010, 01:44 AM) <{POST_SNAPBACK}>
Sweet rant. I had a longer reply composed, but cut it out. I'm curious as to which org you play in (Dunno who your character is) because I've never heard of someone being kicked out for being a poor combatant. 90% of people in the game don't fight seriously to begin with.


I've accidentally targeted my own city mates once in a battle. I don't want to do that again, on the risk of getting kicked out is what I was saying.
Felicia2010-05-12 10:05:16
I think people who are programmers and/or long-time veterans of MUD PK sometimes forget that the learning curve for combat in a game like Lusternia is astronomical. The text flashes by in a blink, and not only do you need hundreds of aliases, triggers, and variables, you need to 1.) know what many of them do from memory, and 2.) know how to apply their functions properly in the heat of battle.

I'm a pianist in real life, and it's almost impossible for me to imagine what it would be like to "start over" again. I simply take a seat and begin playing complex songs, no sweat. It seems incredibly easy while I'm doing it, so easy that I sometimes think a friend or relative could work out the song I'm playing by ear in half an hour or so (but they never progress beyond "tink, tink, tink" in most cases).

It's like that, pretty much, except with MUD combat instead of the piano.
Rael2010-05-12 13:15:11
QUOTE (Felicia @ May 12 2010, 04:05 AM) <{POST_SNAPBACK}>
I think people who are programmers and/or long-time veterans of MUD PK sometimes forget that the learning curve for combat in a game like Lusternia is astronomical. The text flashes by in a blink, and not only do you need hundreds of aliases, triggers, and variables, you need to 1.) know what many of them do from memory, and 2.) know how to apply their functions properly in the heat of battle.

I'm a pianist in real life, and it's almost impossible for me to imagine what it would be like to "start over" again. I simply take a seat and begin playing complex songs, no sweat. It seems incredibly easy while I'm doing it, so easy that I sometimes think a friend or relative could work out the song I'm playing by ear in half an hour or so (but they never progress beyond "tink, tink, tink" in most cases).

It's like that, pretty much, except with MUD combat instead of the piano.


In my opinion the greatest barrier to an IRE mud like Lusternia is the lack of good client/system/good book which make combat all but inaccessible except to those who have lots of free time (it looks like ~5 years to me) and a willingness to learn. If it weren't for projects like Treant there would be very few combatants indeed.

Tweaking a system, creating aliases & triggers are also not particularly interesting and a programmer might have better things to do. The learning curve borders on ridiculous but the fact that you can spend years and still have things to do/improve keeps the game interesting. Personally I can't even keep up with the envoy changes/master my own skills.
Razenth2010-05-12 18:46:43
I would've never gotten into combat without Treant.
Ardmore2010-05-13 00:19:41
Okay, this is going to be a big post... At the moment, I have an auto-targeter for everything I hunt (much faster than typing mantekarr!)
To add new things, I manually go into my script and add them by hand. Here is my target list:

CODE
target = {
    { target="adorath", regex="^\\"adorath\\\\d+\\"\\\\s+a slimy\\, amphibious adorath$", threat=4 },
    { target="mantekarr", regex="^\\"mantekarr\\\\d+\\"\\\\s+a mantis-like mantekarr$", threat=3 },
    { target="fisher", regex="^\\"cave-fisher\\\\d+\\"\\\\s+a hard-shelled\\, many-legged cave-fisher", threat=4 },
    { target="centipede", regex="^\\"centipede\\\\d+\\"\\\\s+a giant centipede$", threat=0 },
    { target="basidion", regex="^\\"basidion\\\\d+\\"\\\\s+a multi-stemmed fungoid basidion$", threat=0 },
    { target="braineater", regex="^\\"braineater\\\\d+\\"\\\\s+a braineater parasite$", threat=0 },
    { target="beetle", regex="^\\"beetle\\\\d+\\"\\\\s+an inferno beetle$", threat=0 },
    { target="phycomid", regex="^\\"phycomid\\\\d+\\"\\\\s+an algae-like phycomid$", threat=0 },
    { target="solifugid", regex="^\\"solifugid\\\\d+\\"\\\\s+a large\\, hairy solifugid$", threat=0 },
    { target="spidion", regex="^\\"spidion\\\\d+\\"\\\\s+a skittering spidion$", threat=0 },
    { target="urchin", regex="^\\"urchin\\\\d+\\"\\\\\\s+a land urchin$", threat=0 },
    { target="rockeater", regex="^\\"rockeater\\\\d+\\"\\\\s+a deepstone rockeater$", threat=0 },
    { target="asconoid", regex="^\\"asconoid\\\\d+\\"\\\\s+a floating\\, puffball fungal asconoid$", threat=0 },
    { target="basidion", regex="^\\"basidion\\\\d+\\"\\\\s+a multi-stemmed fungoid basidion$", threat=0 }    ,
    { target="garghast", regex="^\\"garghast\\\\d+\\"\\\\s+a garghast$", threat=3 },
    { target="garghoul", regex="^\\"garghoul\\\\d+\\"\\\\s+a festering garghoul$", threat=3 },
    { target="garshade", regex="^\\"garshade\\\\d+\\"\\\\s+a shadowy garshade$", threat=3 },
    { target="garwight", regex="^\\"garwight\\\\d+\\"\\\\s+a spectral garwight$", threat=3 },
    { target="lizard", regex="^\\"lizard\\\\d+\\"\\\\s+a small ember lizard$", threat=0 },
    { target="coeurl", regex="^\\"coeurl\\\\d+\\"\\\\s+a spotted coeurl$", threat=0 },
    { target="kephera", regex="^\\"kephera\\\\d+\\"\\\\s+a kephera convoy leader$", threat=0 },
    { target="kraken", regex="^\\"kraken\\\\d+\\"\\\\s+a titanic\\, fearsome kraken$", threat=0 },
    { target="eel", regex="^\\"eel\\\\d+\\"\\\\s+an albino electric eel$", threat=0 },
    { target="cestode", regex="^\\"cestode\\\\d+\\"\\\\s+an odious cestode$", threat=4 },
    { target="parasite", regex="^\\"parasite\\\\d+\\"\\\\s+a horrific\\, diseased parasite$", threat=4 },
    { target="symbiote", regex="^\\"symbiote\\\\d+\\"\\\\s+a gangrenous symbiote$", threat=0 },
    { target="nematode", regex="^\\"nematode\\\\d+\\"\\\\s+an undulating nematode$", threat=0 },
    { target="necrotroph", regex="^\\"necrotroph\\\\d+\\"\\\\s+a foul necrotroph$", threat=0 },
    { target="trematode", regex="^\\"trematode\\\\d+\\"\\\\s+a titanic trematode$", threat=0 },
    { target="globule", regex="^\\"globule\\\\d+\\"\\\\s+a putrescent globule$", threat=0 },
    { target="spider", regex="^\\"spider\\\\d+\\"\\\\s+a furry red spider$", threat=0 },
    { target="spider", regex="^\\"spider\\\\d+\\"\\\\s+a large yellow spider$", threat=0 },
    { target="freak", regex="^\\"freak\\\\d+\\"\\\\s+a grotesque crystalline freak$", threat=0 },
    { target="kephera", regex="^\\"scout\\\\d+\\"\\\\s+a kephera scout$", threat=0 },
    { target="golem", regex="^\\"golem\\\\d+\\"\\\\s+a gargantuan crystal golem$", threat=0 },
    { target="hog", regex="^\\"hog\\\\d+\\"\\\\s+a flame hog$", threat=0 },
    { target="crawler", regex="^\\"crawler\\\\d+\\"\\\\s+a cinder crawler$", threat=0 },
    { target="mantis", regex="^\\"mantis\\\\d+\\"\\\\s+a fire mantis$", threat=0 },
    { target="stalker", regex="^\\"stalker\\\\d+\\"\\\\s+an aerial stalker$", threat=0 },
    { target="carrion", regex="^\\"carrion\\\\d+\\"\\\\s+a cloud carrion$", threat=0 },
    { target="stormeater", regex="^\\"stormeater\\\\d+\\"\\\\s+a curlicued stormeater$", threat=0 }
}


So, in short, I do IH, and if my auto-basher is on, it will match the regex (in this order, it's prioritized), uses threat gauge so it won't start attacking 5 fishers because 5x4=20 and that's over my threat threshold.

What I want to do is move away from this direction, and have it all client based. An alias that I can... I don't know. 'addtarget rose \\"rose\\\\d+\\"\\\\s+a brilliant white rose$ 4' or something like that, and it will add to a table that I can save.

I don't know how that works though. If anyone would be kind enough to enlighten me on how to store a 'table' in Mush, and be able to load/save it that'd be cool.
Sylphas2010-05-13 00:43:03
I'd do it like this:

CODE
function addtarget(name, regex, threat)
  newtar = {
     = name,
     = regex,
     = threat
  }
  table.insert(target, newtar)
end


Eldanien2010-05-13 00:59:52
There was a forum post on the MUSHclient forums about serializing (might be the wrong word for it) tables into MUSH variables and back. I want to say there's code in one of the lua files that ships with MUSH which handles this need.
Unknown2010-05-13 01:24:14
Ardmore2010-05-13 01:39:56
So there's nothing that will physically add it to my ardmore.lua file, where my target table is?

Don't get me wrong - I can live with it being all in-client, I just find debugging and such easier if it's on a physical file. I know I can just open it up c&p it in, then look at what's wrong, but I'm just curious.
Sylphas2010-05-13 01:59:52
QUOTE (Ardmore @ May 12 2010, 09:39 PM) <{POST_SNAPBACK}>
So there's nothing that will physically add it to my ardmore.lua file, where my target table is?

Don't get me wrong - I can live with it being all in-client, I just find debugging and such easier if it's on a physical file. I know I can just open it up c&p it in, then look at what's wrong, but I'm just curious.


I am sure there is a way to edit files with Lua. I just don't it off the top of my head.
Razenth2010-05-13 02:12:51
It looks like Lua has io functions. You could like, have it open a seperate file that contains your data when the client loads, populate a table with the contents of the file, and then when you log off, rewrite the table back into the file. During gameplay, your alias could just update the table that's in client, that will eventually be written back onto disk. Just a thought.

EDIT: Alternatively, you could have your script open and read ardmore.lua... but if you're using that as your script file, I don't know if it would allow itself to do that.
Unknown2010-05-13 02:50:46
QUOTE (Felicia @ May 12 2010, 10:05 AM) <{POST_SNAPBACK}>
I think people who are programmers and/or long-time veterans of MUD PK sometimes forget that the learning curve for combat in a game like Lusternia is astronomical. The text flashes by in a blink, and not only do you need hundreds of aliases, triggers, and variables, you need to 1.) know what many of them do from memory, and 2.) know how to apply their functions properly in the heat of battle.

I'm a pianist in real life, and it's almost impossible for me to imagine what it would be like to "start over" again. I simply take a seat and begin playing complex songs, no sweat. It seems incredibly easy while I'm doing it, so easy that I sometimes think a friend or relative could work out the song I'm playing by ear in half an hour or so (but they never progress beyond "tink, tink, tink" in most cases).

It's like that, pretty much, except with MUD combat instead of the piano.


YES!! AND THE TRUTH, SHALL SET YOU FREE!!

T_T

Thank you for making a very good comparison. I haven't been able to come up with any good examples but.. BAM! Bravo bravo! Wooh!
Unknown2010-05-13 05:06:10
QUOTE (Ardmore @ May 13 2010, 01:39 AM) <{POST_SNAPBACK}>
So there's nothing that will physically add it to my ardmore.lua file, where my target table is?

Don't get me wrong - I can live with it being all in-client, I just find debugging and such easier if it's on a physical file. I know I can just open it up c&p it in, then look at what's wrong, but I'm just curious.

I don't know about editing the script file itself. Methinks you'd have to reload it on changes anyway, which would be annoying. Razenth has it right. Look at io functions in Mushclient. You can then write/read the table to a txt file that you can store in the same folder as your lua file. Specifically for the actions you'll need, look at: io.open, read, write, serialize, flush, and close.