My offense tracker

First off, I want to request that everyone who is interested in this make sure you read the entirety of the instructions, which are included inside of the zip file. 

Secondly,  This is an older copy that I shared with a friend a while ago, so if you run into any issues, let me know and I am sure I already have fixes for it.  The general idea behind the tracking should be spelled out in comments fairly decently, just from me needing to think out loud.  If you need help with any of it, drop me a line and I will see what I can do.  

Lastly,  I will not be charging for this script at all.  It is entirely free to use for as long as it is workable, but if you want to donate credits to me for using this script, I won't complain.  Let's all be honest here, I coded this over a three day weekend whenever I first heard about it, so while it did take some time(and a lot of head smacking/ lua searching in google), and I do think I am going out on a limb sharing, I don't think this or anything that does anything similar will ever be worth 500 credits.  If you disagree, send em on over. 


https://www.dropbox.com/s/oj6o91ssjs65cud/Austere's Opponent Tracking.zip?dl=0

Disclaimer: First time dropbox user/large script sharer, so if this link fails, be patient.  If you do not like the script, or find it ugly, feel free to keep your comments to yourself.  I don't care. 
«134

Comments

  • So what does this script do?  Does it work without affecting SVO?
  • It tracks afflictions and possible afflictions on a target.  You set your attack message to trigger the setting of a variable, using the examples shown.  Whenever your target cures something, the script takes the possible afflictions, divides it by the total possible cures, and comes up with a percentage chance that you have an affliction.   It will require some input on your behalf.  I removed all of my personal affliction combination and strings as I don't believe in bringing the chips AND drinks.  Defenses and possible afflictions, along with chance are displayed on a window(see instructions)

    Example:  Your dstab your target with asthma and sensitivity, giving both afflictions a 100% chance.  If they eat kelp, you know there is a 50% chance they have asthma and a 50% chance they have sensitivity.  If you stab them with asthma and paralysis, before they eat another kelp, you know there is a 100% chance of asthma, 50% chance of sensitivity, and a 100% chance of paralysis.   

    I clear off anything below a 33% threshold and anything that is physically impossible(smoking with asthma). 

    Here is a basic log of what it looks like.   You could change the colour schemes however you liked. 

    https://ada-young.appspot.com/pastebin/b3fc3977
  • I'm struggling a little keeping offensive afflictions counted in my head as a serp, so will give this a go. Thanks :)

    (Party): Mezghar says, "Stop."
  • Hey thank you i will use this. Greatly appreciated
  • No implementation questions so far,  not sure if that is a good thing or a bad thing.  . 
  • Austere said:
    No implementation questions so far,  not sure if that is a good thing or a bad thing.  . 
    Only question I have so far is : 

    In the ReadMe file, it says, "For dstab and dsl, you need to add currentvenom[2] augments in duplicate for everything that is currentvenom[1]."

    Does this mean searching for currentvenom[1] and copying whatever line it contains, changing venom[1] to venom[2] ??

    "You have to learn the rules of the game. And then you have to play better than anyone else."

     -Albert Einstein

  • AustereAustere Tennessee
    edited September 2014
    Pretty much,  yes.  Actually, dsl should work since there are two distint stab lines and you can miss on the first stab.  Just need to feed your rapier stab lines into the attack trigger that is already written, so it can parse each attack. At work,  so I can't guarantee it is in your version,  but I already have all rapier attacks added. 

     I will write up a dstab trigger tonight since I seem to be getting questions about it.  

    Dstab is a special case since it afflicts two venoms in one line and I don't think it can miss.  Currentvenoms is a table for single weapons so dsl would require two tables I am thinking,  so you can accurately keep track of venoms on reach rapier.  If you already have a method of doing that,  the whole process would be easier. 
  • And : The curing (by default) doesn't seem to update. Other than that, looks sharp!

    "You have to learn the rules of the game. And then you have to play better than anyone else."

     -Albert Einstein

  • Aelios said:
    And : The curing (by default) doesn't seem to update. Other than that, looks sharp!
    Explain a little more and I can fix it.  
  • From what I've seen, whenever they eat a cure it's not processing. But I'm working on finding why myself, no luck yet though. Affliction giving part works great though.

  • AustereAustere Tennessee
    edited September 2014
    Will do my best to tear into it tonight and get it fixed up for everyone.  I took mine and butchered all the juicy parts out,  so it is possible I am missing something.

    All the triggers are target variable dependent,  so if they aren't targeted and capitalized,  it won't work. Would be a good place to start in the waiting period. Have to target their full name, also. 

    Edit: I am using drop box folder on my computer to host the script,  so if I change part off it,  will it update or do I need to supply a new link? 
  • KlendathuKlendathu Eye of the Storm
    Austere said:
    Edit: I am using drop box folder on my computer to host the script,  so if I change part off it,  will it update or do I need to supply a new link? 
    It'll auto-update, no need for new links

    Tharos, the Announcer of Delos shouts, "It's near the end of the egghunt and I still haven't figured out how to pronounce Clean-dat-hoo."
  • StrataStrata United States of Derp
    When do we get auto-win?
  • @Strata, Auto-win will be an option in version 4.20.  I will be charging 600 credits per, in order to account for the hundreds of minutes it takes me to write and debug.
  • Okay guys,  updated the dropbox triggers on my end to have a dstab trigger.  Don't have any solid way of testing right now, so if someone can get back to me on whether it works or not, that would be great(You will have to change the dstab trigger to what it actually looks like (I guessed but I don't have a copy of it so my guess is wrong).  Also added a disable/enable for the dodged trigger so other people missing them in the room aren't AS likely to fire.  Again, no reliable way to test, but doing my best for you all.  If anyone can get me a log of the script not parsing cures, I can sort through it and fix it.  
  • StrataStrata United States of Derp
    Pretty sure this is the line: "^You prick (\w+) twice in rapid succession with your dirk\.$" (unlike jabs, dstab is always the same regardless of the type of dirk you have)

    There is a little extra work involved to take rebounding/paralysis/alchemist cutting/etc into account to make it as accurate as possible. For those you can do multi-line triggers.
  • Double post, sorry can't edit.  I noticed i had missed the reset function in the instructions for updating your targetting alias.  It should now include all of this:

    target = matches[2] 
    target = target:title()
    oresetparse ()
    scoreup ()
  • Are you fiajwfoiaw kidding me?! I spend all this time as a serpent getting abusive tells (read as help) from Strata to make and aff tracker, and some aiodjwa (read amazing person) uploads one that works?

    Seriously. I love you. Sorry @rangor going serpent or something again.

    (would this work for Shaman affs because I made a tracker that seemed to work for that and even echoes when to tzantza (auto win not an option as some user input required (most notably type tza for tzantza (it never worked ( I can't code))))
  • AustereAustere Tennessee
    edited September 2014
    If you already have some method to relay your offense to this,  it would work perfect which is why I did not include anything beyond an example there.  The goal is not a cookie cutter offense. All you really need to do is set a variable to 100 (affstrack.score.paralyse = 100 or affstrack.score [matches [2]]= 100 for examples) when you afflict with something. Script will take care of the rest.  If you give this accurate offense information,  it will track accurately.  

    Edit: I did get this working for @Datrius‌last night,  so if anyone else needs input,  I don't mind.  
  • Hey guys,  just a quick update,  I wrote up a much more detailed (and pretty) instruction doc last night as well as fixed a few triggers.  If you have it working,  the doc might still be worth re downloading for. 
  • CaladbolgCaladbolg Campbell County TN
    edited September 2014
    Linking everyone I find who uses afflictions your tracker.

    Edit: Also just for input it works extremely well for serpent from when I was testing it out.

  • If you guys need help implementing,  don't hesitate to let me know.  Probably best to save your own scripts outside of the folder in case I continue to update.  @Caladbolg‌, us Tennessee kids have to stick together.  I won't even charge you the full 500 credits. 
  • KlendathuKlendathu Eye of the Storm
    I've made a start with it for bard, going OK so far, will pick your brains when I catch you IG @Austere

    Tharos, the Announcer of Delos shouts, "It's near the end of the egghunt and I still haven't figured out how to pronounce Clean-dat-hoo."
  • AustereAustere Tennessee
    edited September 2014
    If you guys don't catch me in game,  feel free to drop me a message in game.  I can write up whatever you want when i get off work,  and then send you a pastebin link,  email it,  or include it in the global update.  My play times are wonky sometimes so that is the easiest way too get an answer, demo,  or something custom.  If I forget to do something,  don't hesitate to ask again.  I am spacey at times

    @klendathu
  • KlendathuKlendathu Eye of the Storm
    Austere said:
    If you guys don't catch me in game,  feel free to drop me a message in game.  I can write up whatever you want when i get off work,  and then send you a pastebin link,  email it,  or include it in the global update.  My play times are wonky sometimes so that is the easiest way too get an answer, demo,  or something custom.  If I forget to do something,  don't hesitate to ask again.  I am spacey at times

    @klendathu
    Don't worry about me, got most of it figured out. Need to learn more about bard combat to build in the voicecraft sections, but got the envenomed jab chains sorted, thanks

    Tharos, the Announcer of Delos shouts, "It's near the end of the egghunt and I still haven't figured out how to pronounce Clean-dat-hoo."
  • AustereAustere Tennessee
    edited September 2014
    So I had a request for how to enable a relay this into your prompt.  I don't have any clue how to do it in WunderSys, so here is an Svo version.  Create a script and plop this into it, make sure it is after all the Svo folders to avoid errors.

    Disclaimer(isn't their always one?): I wrote this tonight, but didn't do a lot of extensive testing with it, so no guarantees.  This will echo any affliction that there is a chance that you have.  I commented the section to edit if you only want to echo guaranteed afflictions

    Obligatory log: https://ada-young.appspot.com/pastebin/537db683
    --Add @ml_oprompt to your custom svo prompt
    --Use ^y@ml_oprompt instead for it to be coloured yellow
    function svo.ml_oprompt()
      if not convert then convoset() end
      promptset = {}
      if not target then 
         return "" 
      end
      for k,v in pairs(affstrack.score) do
          if v > 1 and convert[k] then --Change this if you only want to relay guaranteed affs
             table.insert( promptset, convert[k] )
          end
      end
      if promptset ~= {} then
         return table.concat(promptset, " ")--This is the portion that returns the actual data if it is available
      else
         return ""
      end
    end
    
    svo.adddefinition("@ml_oprompt", "svo.ml_oprompt()")
    function convoset() convert = { ["addiction"] = "add", ["agoraphobia"] = "agor", ["anorexia"] = "anor", ["asthma"] = "ast", ["blind"] = "bld", ["bound"] = "bound", ["claustrophobia"] = "claus", ["clumsiness"] = "clum", ["confusion"] = "conf", ["crippledarm"] = "carm", ["crippledleg"] = "cleg", ["darkshade"] = "dark", ["deadening"] = "dead", ["deaf"] = "deaf", ["dementia"] = "dem", ["disloyalty"] = "dloyal", ["disrupt"] = "dis", ["dizziness"] = "diz", ["epilepsy"] = "epi", ["generosity"] = "genor", ["haemophilia"] = "haem", ["hallucinations"] = "hall", ["healthleech"] = "hleach", ["hypersomnia"] = "hyper", ["hypochondria"] = "hypo", ["illness"] = "ill", ["impatience"] = "imp", ["lethargy"] = "leth", ["loneliness"] = "lonl", ["masochism"] = "maso", ["manaleech"] = "mleach", ["nausea"] = "naus", ["pacifism"] = "pac", ["paralyse"] = "para", ["paranoia"] = "prnd", ["recklessness"] = "reck", ["scytherus"] = "scy", ["selarnia"] = "sel", ["sensitivity"] = "sen", ["shyness"] = "shy", ["slickness"] = "slick", ["stupidity"] = "stu", ["transfixed"] = "trans", ["weariness"] = "weari", ["vertigo"] = "vert", ["voyria"] = "voyria", }; end
  • AustereAustere Tennessee
    edited September 2014
    So of course, request was for WunderSys, so here is my attempt at changing the prompt on it.   This one is going to take just a LITTLE more work than the Svo one, but I tried to comment at the top what to change so that when Nemutaur updates, you guys remember how to go in and adjust it.  Also, I went through the aff tracker today and removed or commented out all of the Svo specific things, so it shouldn't error out anymore for non-Svo people.

    As always, if you have any problems with this, let me know and I will do my best.

    Edit:  Also included both of these in the dropbox update.  If you aren't on Svo, the Svo Prompt script will show as having an error.  You can simply delete this script if it bugs you, but it shouldn't matter.

    Edit2:  Forgot to include, if you don't want it to relay ALL the afflictions your opponent has on the prompt, you can delete them from the convoset function.  Useful if you want to avoid having six line prompts for when you and your opponent are both afflicted.
    --Go to this location:--Scripts-WunderSys-Tables-System Table
    
    --Add --["oaff"] = function() return oprompt() end,
    --directly below
    --["affs"] = function() return affTags() end,
    --add @oaff into the prompt wherever you want this to display --wshow display to do this view prompt/edit it
    function oprompt() if not convert then convoset() end promptset = {} if not target then return "" end for k,v in pairs(affstrack.score) do if v > 1 and convert[k] then --Change this if you only want to relay guaranteed affs table.insert( promptset, convert[k] ) end end if promptset ~= {} then return ("<yellow>["..table.concat(promptset, " ").."<yellow>]") -- return table.concat(promptset, " ")--This is the portion that returns the actual data if it is available else return "" end end

    function convoset() convert = { ["addiction"] = "add", ["agoraphobia"] = "agor", ["anorexia"] = "anor", ["asthma"] = "ast", ["blind"] = "bld", ["bound"] = "bound", ["claustrophobia"] = "claus", ["clumsiness"] = "clum", ["confusion"] = "conf", ["crippledarm"] = "carm", ["crippledleg"] = "cleg", ["darkshade"] = "dark", ["deadening"] = "dead", ["deaf"] = "deaf", ["dementia"] = "dem", ["disloyalty"] = "dloyal", ["disrupt"] = "dis", ["dizziness"] = "diz", ["epilepsy"] = "epi", ["generosity"] = "genor", ["haemophilia"] = "haem", ["hallucinations"] = "hall", ["healthleech"] = "hleach", ["hypersomnia"] = "hyper", ["hypochondria"] = "hypo", ["illness"] = "ill", ["impatience"] = "imp", ["lethargy"] = "leth", ["loneliness"] = "lonl", ["masochism"] = "maso", ["manaleech"] = "mleach", ["nausea"] = "naus", ["pacifism"] = "pac", ["paralyse"] = "para", ["paranoia"] = "prnd", ["recklessness"] = "reck", ["scytherus"] = "scy", ["selarnia"] = "sel", ["sensitivity"] = "sen", ["shyness"] = "shy", ["slickness"] = "slick", ["stupidity"] = "stu", ["transfixed"] = "trans", ["weariness"] = "weari", ["vertigo"] = "vert", ["voyria"] = "voyria", }; end
  • You're the man.

    "You have to learn the rules of the game. And then you have to play better than anyone else."

     -Albert Einstein

  • great piece of coding -accurate, fast and neat.

    I hope some of you users see fit to donate to him for his work!

    Good job.
  • First, thanks, Austere. It looks neat.

    I'll be tinkering on it off and on as I can. I'm not a fan of the auto-offensive, but that's mostly because I've been in too many instances of "Oh shit, evadeevadeEVADEVEVADEEEVADE-", but I like the concept of being able to press a single alias/key and doing stabs based on a set plan and my opponent's curing. If I come across anything relevant, I'll gladly ship it. Thanks again.



Sign In or Register to comment.