Free - Influencing and Bashing System

edited June 2014 in Mechanic's Corner
Bashing and Influencing System

Right, I'm releasing a bashing and influencing system to the forums, it should work for absolutely any class. Anyone is welcome to use it but I do need to make a few things clear. First, I will not support this system. Second, I WILL NOT SUPPORT THIS SYSTEM. This means don't message me in game about it, don't send me tells asking me questions and don't send me forum messages. If you do pester me with questions in game I'm likely to snub you. (Note: Doesn't apply to beta testers :p)

Ok, on to the good part!

Requirements:

m&m
A beast trained with the aggressive ability
Appropriate scabbards/frogges if you're a monk/knight with a whip
An acquisitio enchantment or something similar

Features:

1.) Separate autotarget tables for influencing and bashing
2.) Automatic applying of influencing oils to boost attacks
3.) Automatic wearing/removing of scarecrow hats if you own one
4.) An autoget system with it's own configurable table
5.) Automatic detection of divinus, fire and excorable whips
6.) Can configure up to two attack types - i.e. cast blast and point staff
7.) Can configure damage types for attacks
8.) The system automatically detects weaknesses for most creatures and switches attacks accordingly
9.) If you own one or more whips it will sheathe/wield/unwield items appropriately and attack with the correct whip if the creature is weak to that damage type
10.) Automatic detection of damage enhancement curios
11.) Automatic switching of damage enhancement curios
12.) A custom prompt which is only active when the basher/influencer is switched on, it has tags to show which features are active
13.) Toggleable squad calling for targets during group bashes
14.) An ignore mode for the basher and influencer so it will not attempt to bash or influence if another person is in the room - this is toggleable
15.) Shield tracking and shield breaking for mobs during bashing
16.) The autoinfluencer system will not attempt to reinfluence a mob until 3800 seconds (1hr 3 mins 20 seconds) have passed to prevent spam

Installation:

Download the Bashing System.zip file and install it via Package Manager in Mudlet.

Aliases:

Note: All aliases need to be used in lowercase, they're given in uppercase here for emphasis.

Installation Alias: BSINSTALL

Use this to install the system, it has an installer similar to the one in m&m which will ask you a series of questions.

Note: If you own a whip and want to use that as your primary attack method you need to set your class to OTHER and set your main bashing attack command to WHIP. Otherwise it will only use your whip if you are bashing something which is weak to the whip. I do not recommend doing this if you are a knight or monk unless you're willing to adapt the code. If you are a druid and do this, you won't be able to use the POISON/LIGHTNINGBUGS version of your cudgel attack so if you want to do this you may also have to edit the code.

Manually set your target: M <TARGET>

Use this if you wish to manually set a target for influencing or bashing, usually only used if the thing you want to influence/bash is not in the autotarget tables. Good for event mobs or things you influence/hunt rarely.

Bashing Mode On Alias: BASHON or BS ON

Turns the bashing system on and switches the influencing system off. This also turns on the custom prompt if you've specified this during the installation. It puts the basher in manual attack mode which means it will try to use your bashing attack every time you stand up, recover balance, recover equilibrium, writhe, cure aeon, come out of blackout etc.

Bashing Mode Off Alias: BASHOFF or BS OFF

Turns the bashing AND influencing system off and restores your norml prompt.

Bashing Attack Alias: BASH

Sends your bashing attack (or secondary attack if the creature is weak), this is only needed in manual bashing mode.

Autotarget On Alias: ATON

Turns on the autotarget system, in autotarget mode the basher will automatically attack creatures in the targeting table (found in the get_target script) on room entry. If another player is in the room and not in your ignore list it will not attack. If you turn on the custom prompt a green t will appear in the prompt to show autotargeting is active. In autotarget mode the basher will only activate on balance recovery/aff curing if there is something to attack, if there is nothing to attack it will not do anything.

Note: The autotarget system will only attack if you have already done BASHON (or BS ON), if bashing mode is off it will not attack. You can easily check if you're in bashing mode if you turn the custom prompt on during installation.

Autotarget Off Alias: ATOFF

Turns off the autotarget system and puts the basher back into manual mode. The green t in the prompt will be removed to show autotargeting has been turned off.

Autoget On Alias: GETON

This turns the autoget system on, it will attempt to pick up any items on the ground which are in the autoget table (called get_item in scripts). A green g will appear in the custom prompt to show this is active. This will work when the bashing and influencing systems are turned off, but you won't have the custom prompt to show it's active.

Autoget Off Alias: GETOFF

Turns off the autoget system.

Influencing Mode On Alias: INF ON

Switches off manual bashing mode, turns on manual influencing mode. This will also activate the custom prompt.

Influencing Mode Off Alias: INF OFF

Switches off the influencer AND basher, restores your prompt to normal.

Influence Type Alias: INFM <TYPE>

Sets the influencing mode to use during manual influencing. Choices are: weakening|paranoia|empowering|charity|village|seduction.

Influence Alias: INF

This sends your influence attack if you are in manual mode. Unlike the basher this does not send your influence ability on every equilibrium recovery. You can semi-automate this by using the DOR alias included in m&m i.e. DOR INF. To stop this you would type UNDOALL.

Note: You set your target in manual mode using the same alias as the bashing targeting alias i.e. M MONK if you're influencing Tosha.

Auto Influencing On Alias: AION

Turns on autoinfluencing mode, a green c will appear in your custom prompt to show it is active. This mode is similar to the autotarget mode in that it will automatically influence anything in the room on entry if it is in the autotarget table. In autoinfluence mode the influencer will attempt to influence every time you recover equilibrium. The autotarget table can be found in the get_influence script.

Auto Influencing Off Alias: AIOFF

Turns off autoinfluencing mode, similar to ATOFF. The green c will disappear from your custom prompt.

Auto Switch Influencing Oils On Alias: INF OILS ON

This will automatically apply the correct influencing oils when necessary, for this to function properly you will need a vial of every type of influencing oil.

Note: Turned off by default, once you turn it on it will remember this setting through mudlet closing and restarting.

Auto Switch Influencing Oils Off Alias: INF OILS OFF

This will turn off applying influencing oils. 

Note: This setting will be remembered through mudlet restarts.

Reset Influenced Mobs Table Alias: INF RESET

This resets the table of influenced mobiles in case they open to influencing before the hour is out.

Ignore Mode Alias: BSI

If you want to ignore the fact that other people are in the room and influence or bash then you need to use the BSI alias (it's a toggle). A red i will appear in your custom prompt to show that ignore mode has been activated.

Note: Useful during astral bashes or when influencing guards at the nexus.

Ignore All Players in Room: BS IGNORE ROOM or BSI ROOM

Useful if you want to keep the ignore mode active so you're not rude when wandering through the UV  tunnels etc. This will ignore all of the players in your current room but respect any other players.

Note: Ignored players will last until mudlet is restarted.

Ignore an Individual Player: BS IGNORE PLAYER <NAME>

Useful if you want to ignore specific players.

Note: Ignored players will last until mudlet is restarted.

Reset Ignored Players: BSCONFIG IGNORE RESET

Resets the table of ignored players if you finish your round of hunting or influencing.

Squad Calling On Alias: BSCONFIG SQUADCALL ON or BSC SQ ON

Use this if you want to call out your new target on your squad channel, it will only call when targets are changed.

Squad Calling Off Alias: BSCONFIG SQUADCALL OFF or BSC SQ OFF

Use this to turn off automatic calling of targets on your squad channel.

Astral Linking On Alias: ASTRAL LINKING ON

Use this to turn on the urBash linking system. You must remember to SQUAD MUSTER, get people to add themselves to the squad by telling you "Squad me". This requires stratagems to work.

Astral Linking Off Alias: ASTRAL LINKING OFF

Use this to turn off the urBash linking system.

Astral Linking Configuration Alias: ASTRAL LINKING 1, 2 or 3

Use this to configure how many astral mobs you're willing to allow in the room before you unlink. It's based on group size. 2 is a good starting setting, 3 if everyone seems to be doing fine. If it starts to get a bit hectic drop it back down to 2. You'll figure out which nodes you can safely use setting 3 on and which nodes require setting 2 with some experimentation. Setting 1 is useful if you've got really small people in your group.

«13

Comments

  • I think you might want to list weapon-appropriate scabbards as requirement for weapon users as you can't use sheathe without and it messes things up. Other than that, I just want to say this is a great system, and huge props to you for sharing the code with everyone for free. More demigods can only be a good thing, right? 
    image
    You have received a new honour! Congratulations! On this day, you have shown your willingness to ensure a bug-free Lusternia for everyone to enjoy. The face of Iosai the Anomaly unfolds before you, and within you grows the knowledge that you have earned the elusive and rare honour of membership in Her Order.
    Curio Exchange - A website to help with the trading of curio pieces in Lusternia.
  • edited February 2014
    Yeah, that's a very good point Rialorm.

    When switching whips, weapon specific scabbards are an absolute must otherwise you'll get stuck in a loop and probably die. Only necessary if you own a whip though.

    As for releasing it, most of the older players in the game probably already have something similar and Lusternia is fairly difficult to get started in already. So I thought I'd be nice to the newer players who may not have access to something like this. Bash/Influence your way to Demigod and get involved in combat :p.

    PS: If you don't own m&m and have some coding ability this system wouldn't be that difficult to convert to work on any mudlet system. If someone wants to do that and release the code onto the forums I'd be more than happy for that to happen.
  • TarkentonTarkenton Traitor Bear
    I do hope this doesn't fall under the category of support, but I was wondering if your bashing as is are capable of supporting attacks with split damage, like Nightkiss with 50% asphyx and 50% cold.
    image
  • KarlachKarlach God of Kittens.
    It doesn't, you have to select which you believe is more likely to be a useful source. Considering the number of fire weak/cold resistant targets out there, go with Asphyx for NK.

    The divine voice of Avechna, the Avenger reverberates powerfully, "Congratulations, Morkarion, you are the Bringer of Death indeed."

    You see Estarra the Eternal shout, "Morkarion is no more! Mourn the mortal! But welcome True Ascendant Karlach, of the Realm of Death!


    image
  • Tarkenton said:
    I do hope this doesn't fall under the category of support, but I was wondering if your bashing as is are capable of supporting attacks with split damage, like Nightkiss with 50% asphyx and 50% cold.
    Nah that doesn't fall under support Tark, I don't mind questions when I've forgotten to include something in the documentation!
  • TarkentonTarkenton Traitor Bear
    Thing works great. Only thing to watch out for is it will eat your custom prompt if you use one in m&m. Edit the influence on alias to change the prompt to whatever you like. Some time today I'm going to write an alias to let you define the custom prompt you want it to use, and will post it here.
    image
  • Awesome, thanks Tark
  • Updated the bashing system:

    Major fix is for bards, the system didn't bash at all for them.

    Changes:

    Added bards to the correct table to allow them to attack properly
    Optimised the autotarget, autoinfluence and autoget scripts so they don't run as often to save on client lag
  • TarkentonTarkenton Traitor Bear
    Alias for setting your own custom prompt.

    Name: Whatever
    Pattern: ^bsconfig mycustomprompt (.+)$
    In the big box: bsprompt = matches[2]bsprompt = matches[2]

    In a script file
    bsprompt = ""

    In the influencing on alias:

    bashing = false

    mm.echof("Influencing on!")

    if bscustomprompt and armprompt and not bashingprompt then

    expandAlias("mmconfig customprompt " .. bsprompt, false)

    bashingprompt = true

    elseif bscustomprompt and psiprompt and not bashingprompt then

    expandAlias("mmconfig customprompt " .. bsprompt, false)

    bashingprompt = true

    elseif bscustomprompt and normalprompt and not bashingprompt then

    expandAlias("mmconfig customprompt " .. bsprompt, false)

    bashingprompt = true

    end


    Chade's extra prompt bits that you can use:

    @target

    @fullprone

    @mobile

    @autotarget: shows a green t when when autotargetting is on

    @autoget: shows a green g when automatically getting things is turned on

    @autoinf: shows a green c when auto influencing is on.

    @ignore: shows a red i if you are ignoring other people in the room.





    image
  • TarkentonTarkenton Traitor Bear
    If you want to use the same custom promo at all times, then just paste it into the value for the bsprompt variable. Though I imagine Chade could make it save the value :-)
    image
  • Since I'm inactive for a few months I won't be posting any updates to this any time soon, if someone wants to take over maintaining it they're more than welcome too!

    As a note, the ignore mode for the influencer isn't working currently. I THINK you need to change the registered event handler in the get_influence script from what it is currently to room_players_check but I haven't tested this, so make a note of the current event handler and change it back if this doesn't work.

    Once I'm back and working on this again I'll post updates.
  • TarkentonTarkenton Traitor Bear
    The above does work, tested today.
    image
  • I can't seem to get the manual bash alias to actually do anything. I know Chade isn't offering support/is going to be away, but would any other Mudlet users be able to help me? I can't code my way out of a wet paper bag.
  • Tajalli said:
    I can't seem to get the manual bash alias to actually do anything. I know Chade isn't offering support/is going to be away, but would any other Mudlet users be able to help me? I can't code my way out of a wet paper bag.
    You need to set up the target getting part of the get_target script. It's a giant table, really.

    As for the custom prompt @Tarkenton, you can just change the BS OFF alias to change it back to your normal prompt, which m&m keeps inside of MMCONFIG2, instead of having it disable the custom prompt entirely.
  • Tajalli said:
    I can't seem to get the manual bash alias to actually do anything. I know Chade isn't offering support/is going to be away, but would any other Mudlet users be able to help me? I can't code my way out of a wet paper bag.
    I am on an older version still, but my manual bashing alias has this:

    if specToFunc[knight] then

    tempTimer(0, specToFunc[knight])

    end


    Obviously that is not going to work for non-knights. Replace knight by your class, you might need to surround it with double quotes too. That is how I got it to work. And use m <tar> to set up your mobile target, and have auto-targeting off.


    image
    You have received a new honour! Congratulations! On this day, you have shown your willingness to ensure a bug-free Lusternia for everyone to enjoy. The face of Iosai the Anomaly unfolds before you, and within you grows the knowledge that you have earned the elusive and rare honour of membership in Her Order.
    Curio Exchange - A website to help with the trading of curio pieces in Lusternia.
  • Tajalli said:
    I can't seem to get the manual bash alias to actually do anything. I know Chade isn't offering support/is going to be away, but would any other Mudlet users be able to help me? I can't code my way out of a wet paper bag.
    Hi Tajalli,

    It's because I forgot to update that alias (I never use it). Delete everything inside it and paste this into it:

    tempTimer(0, specToFunc[bsclass])
  • edited February 2014
    Bashing system update: 

    https://www.dropbox.com/s/a1ln2nsmscgo8uy/Bashing System.zip 

    Fixes: 
    Fixed the ignore mode not working for influencing mode 
    Fixed the bash alias so it now properly sends attacks 

    Update Note: 

    Remember to copy your tables before updating, and paste them back in once the update is done. You won't have to redo the BSINSTALL process, it should remember all your settings.
  • Thanks, Chade!
  • Thank you! It works peachy now, I'm so excited. 
  • Tajalli said:
    Thank you! It works peachy now, I'm so excited. 
    Glad you're excited!

    If you start updating the tables, as described in the second post, you'll get a LOT more out of the system. If anything breaks all you have to do is uninstall and reinstall via package manager, so don't be afraid to experiment.
  • TurnusTurnus The Big Bad Wolf
    So how well does it work without using an aggressive trained beast?

    ~--------------**--------------~

    The original picture of Turnus is still viewable here, again by Feyrll.
  • edited February 2014
    It works, you just bounce off shields. You'll notice it more if you're a knight/monk. You could edit the code quite easily to remove the beast-mastery aggressive stuff. Check the specToFunc script to see which bashingattack() script your class calls, then take a look in there and change this line to:

    if gmcp.Char.Vitals.beastbal == "1" etc. to:

    if gmcp.Char.Vitals.beastbal == "99" etc.

    That'll prevent it from using the beast and default to normal behaviour, so for knights it'll always cleave, for bards it'll blanknote, for monks it'll raze and for everyone else it'll wait a lil bit then attack in the hopes that the critters shield has dropped.

    Do make sure to start building the tables of things you want to bash, influence or automatically pick up though. The system is at its best when those are up to date and being used properly.
  • @Rialorm has just helped me track down a bug that was making the system not work properly for a small number of people.

    If you have the Force Compression Off option ticked under Mudlet > Settings > Special Options you'll need to uncheck this as it prevents the canBash() function from working properly. After you've unchecked it please make sure to restart Mudlet.
  • TurnusTurnus The Big Bad Wolf
    I know Chade said he won't be supporting this anymore, but maybe somebody else can help. I finally installed this and was giving it a try, just with manual bashing to start. And I keep getting this error when trying out the bash command.

    Lua error:[string "function dpveAttacks()..."]:17: attempt to concatenate global 'bashattacktype' 
    (a boolean value)

    I have curios and a divinus whip if that has something to do with it?

    ~--------------**--------------~

    The original picture of Turnus is still viewable here, again by Feyrll.
  • KarlachKarlach God of Kittens.
    There is a bug with the whip that's been bothering me for a while, Chade's aware of it, but the root cause seems to be tricky to find.

    From my experience it seems to be a Knight issue, as it couples with an error for your razing attack. Just do a bsinstall to reset your base settings as a temporary fix, it should work after that.

    The divine voice of Avechna, the Avenger reverberates powerfully, "Congratulations, Morkarion, you are the Bringer of Death indeed."

    You see Estarra the Eternal shout, "Morkarion is no more! Mourn the mortal! But welcome True Ascendant Karlach, of the Realm of Death!


    image
  • TurnusTurnus The Big Bad Wolf
    edited March 2014
    I found the issue, it was a hartstone specific one.

    In the alias "Specify which type of druid you are"  line 5 needs to be changed to: elseif matches[2] == "hartstone" then

    Will play around with this now and may have more questions.

    Edit: I kind of want to play around with disabling the auto weapon swapping and manually doing it with aliases TBH. But will see how this goes first.

    ~--------------**--------------~

    The original picture of Turnus is still viewable here, again by Feyrll.
  • This is awesome, um but I am having a issue with the fact I am a blademaster. So far, I am only using the one that I put in when I did the bsinstall. And I know I should have figured it out, but can someone help me get it to allow for the second weapon, please and thank you!

    Currently Playing in: The doctors office. One more needle and I might just lose it again.
  • KarlachKarlach God of Kittens.
    You should only need to set one of your weapons as the razing weapon, and set the other as a bashing weapon.

    The divine voice of Avechna, the Avenger reverberates powerfully, "Congratulations, Morkarion, you are the Bringer of Death indeed."

    You see Estarra the Eternal shout, "Morkarion is no more! Mourn the mortal! But welcome True Ascendant Karlach, of the Realm of Death!


    image
Sign In or Register to comment.