|
|
(148 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| Realms tintin++ package by Dyrdex. I have no idea what I'm doing, this is my first foray into programming of any sort. Please forgive my terrible terrible coding!
| | This has all changed significantly. I'm now building a new version and will have documentation and a download coming soon. maybe. |
|
| |
|
| =Get the files=
| | -mike |
| You can curl or wget this stuff. I update it too frequently to keep a tar.gz up there. Should probably switch to github.
| |
| http://dyrdex.com/tinrod/
| |
| | |
| =Setup=
| |
| ==Quick==
| |
| 1. Edit tinrod/main.tin
| |
|
| |
| Edit line 26: path to the tinrod directory on your system (i.e. just 'tinrod' if you've got it at ~home/tinrod) and execute tt++ from ~home
| |
| Edit line 32 with your password where it says PASSWORD_HERE
| |
| | |
| 2. Run tintin++ along with the main.tin file, you'll probably want to set a shell alias for this:
| |
| /path/to/tt++ /path/to/tinrod/main.tin
| |
| | |
| 3. Connect to the mud using the alias 'go CHARNAME'
| |
| | |
| 3. Use the 'menu' alias to view the Main Menu. Set at least these minimum options (required for autofight)
| |
| pset lowbie - sets up your prompt
| |
| clearinv - 0's out inventory count variables
| |
| recalls scroll - set's up 'recall' alias to find a recall and recite it.
| |
| springs potion - set's up your spring creation tool as the potions for that.
| |
| minhealth ### - where ### is the minimum hp you would drop to before you start healing)
| |
| hitis HITNAME - set's your hit variable, ex: hitis swat
| |
| manaoff - disables automatic mana potion quaffing for now.
| |
| | |
| 4. Setup your weapon keyword for use in Disarm trigger:
| |
| eqset a rusty machete
| |
| keyis machete
| |
| | |
| 5. Set your potion and item container variables, set your inventory counts
| |
| (there is automation for this when using certain AV containers, but not for lowbies using lowbie containers yet)
| |
| #var pot_con my.chest (or my.sack or my.rune or whatever)
| |
| #var item_con my.chest (as a lowbie, you probably have 1 container for both purposes, so set them identically)
| |
| setinv
| |
| setinv (yes, run it twice the first time, after that just once will update it if things get off)
| |
| | |
| 6. Save this configuration (this autosaves frequently anyways, but I like to explicitly save it the first time)
| |
| saveconf
| |
| | |
| You are now good to go. General gameplay workflow:
| |
| go dyrdex - logs in dyrdex
| |
| fighton - enables autofight
| |
| go on a murderous rampage
| |
| See "Features: Quick View" below for help on what else is built in here.
| |
| | |
| ==Full==
| |
| 1. Edit tinrod/main.tin
| |
|
| |
| Edit line 26: path to the tinrod directory on your system (i.e. just 'tinrod' if you've got it at ~home/tinrod) and execute tt++ from ~home
| |
| Edit line 32 with your password where it says PASSWORD_HERE
| |
| | |
| 2. Run tintin++ along with the main.tin file, you'll probably want to set a shell alias for this:
| |
| /path/to/tt++ /path/to/tinrod/main.tin
| |
| | |
| 3. Connect to the mud using the alias 'go CHARNAME'
| |
| | |
| 4. Setup your character config.
| |
|
| |
| 4a: run 'menu' to see all configurable character options.
| |
| NOTE: After setting the 'affiliation' option (to 'ds' presumably) do 'reload'.
| |
| This loads in the current file, and prevents you from overwriting it with a blank one later.
| |
| 4b: set your containers and inventory counts by running 'setinv' TWICE (yes do it twice initially)
| |
| | |
| 5. Setup your equipment damage tracking (or at LEAST setup your weapon, as its required for the disarm trigger).
| |
| Run the following aliases:
| |
| 5a: eqon
| |
| 5b: (id a piece of equipment via any means)
| |
| 5c: keyis KEYWORD
| |
| 5d: (repeat id and keyis for every piece of eq)
| |
| 5e: eqoff
| |
|
| |
| 5f: NOTE: for lights and weapons you must manually enter the AC since its not present in 'identify' output.
| |
| After id'ing, do:
| |
| itemac 20 (for lights, and 12 for weapons).
| |
| 5g: acset
| |
| | |
| At this point you should be basically good to go. Most of the other features should 'just work'.
| |
| | |
| I guess, I need to tell you what all those features are....
| |
| | |
| =Features=
| |
| | |
| ==The Main Menu==
| |
| [[Image:Menu.png]]
| |
| Alias: menu
| |
|
| |
| Displays config options for your char.
| |
| | |
| All of the options for each settings are also shown, so for example:
| |
| Prompt: nomana pset <mana|nomn|blood|lowbie>
| |
| | |
| Means that you can set your prompt with the 'pset' alias followed by any of those 4 options (i.e. pset mana)
| |
| | |
| ===Player Config===
| |
| Name: Each character reads its own specific config from /tinrod/characters/..
| |
|
| |
| Class: All chars of a given Class read the shared Class config for the Class. How Classy.
| |
| | |
| Affliation: Only ds is really setup right now. ALWAYS do 'reload' if you set/change this option.
| |
|
| |
| Prompt: Currently, you've got mana, no-mana, blood, and lowbie. If you wanna change em, good luck, it's a bitch.
| |
| NOTE: the prompts also 'do' some important stuff as far as setting variables. So be careful mucking around.
| |
|
| |
| Bot Type: Currently 4 options: mage, cleric, immob, tank.
| |
| Bot Status: Botting is NOT enabled unless you do 'boton'
| |
|
| |
| The mage/cleric bots do what you think, but, those scripts also suck and are currently broken. Sorry!
| |
| The immob bot will just keep immo'ing whatever you hit with immob once.
| |
| The tank bot will, if you ALSO enable autofighting, only heal, and never hit. (so do both: boton;fighton)
| |
| | |
| ===Item Config===
| |
| Setup which items you prefer to use for recalls/springs/dispels/fly
| |
| | |
| ===Fight Config===
| |
| See Autofighting section below. Setup your autofight preferences.
| |
|
| |
| Note that Sanctuary on/off is now obsolete because autofighting enforces sanc to be ON while fighting.
| |
|
| |
| Truesight however is still up to you, so set 'trueon' if you want that.
| |
| | |
| ===Restock Config===
| |
| Only works with 'affiliation ds' characters at the moment. Set your stock quotas for the listed items.
| |
| | |
| ==Stuff in main.tin==
| |
| 1. Quick Connect/Reconnect, Saving of stuff to your configs.
| |
| | |
| 2. TinTin options
| |
| | |
| 3. Multi-Session control
| |
| | |
| 4. Speech Logging
| |
| | |
| 5. MSDP Support
| |
| | |
| 6. Inventory Tracking
| |
| | |
| 7. Gameplay options (trigger on/offs)
| |
| | |
| 8. Gameplay automation
| |
| | |
| 9. EQ Tracking
| |
| | |
| 10. Mob Tracking
| |
| | |
| 11. Run Scripting
| |
| | |
| ===Quick Connect===
| |
| Alias: go %0
| |
|
| |
| This is how you connect. Type 'go dyrdex' for example.
| |
| All your chars need to share the same password (which is hardcoded into main.tin line 32)
| |
| | |
| Alias: quit
| |
|
| |
| The word 'quit' is aliases to write out all your configs before actually quitting the mud.
| |
| This writes: character, class, affiliation, and mobs list to the appropriate configs upon quit.
| |
| | |
| Alias: saveconf
| |
|
| |
| This does the same thing as 'quit' but without quitting.
| |
| | |
| ===TinTin Config Options===
| |
| | |
| Nothing fancy here, just your basic tintin config options. Set as desired.
| |
| | |
| ===Multi-Session Config===
| |
| | |
| Alias: (shorthand) (session name)
| |
| | |
| Since tintin allows you to multi sessions in the background, these let you switch to, or send commands to, bg'd sessions quickly:
| |
| Since each session we open is named a character name, you can type that character to control that session.
| |
| We can then setup aliases to shorthand those session names even further.
| |
| | |
| Probably best to just look at this section of main.tin to understand this better
| |
| You'll want to setup a shorthand for each character.
| |
| | |
| So, for example, setting this up;
| |
| #ALIAS {dym} {#dymrex}
| |
| | |
| Allows me to control Dymrex, when he is 'backgrounded', by doing:
| |
| dym say hello
| |
| | |
| If you want to foreground Dymrex, just do:
| |
| dym
| |
| | |
| You can also setup quick connect aliases here to log groups/armies, etc.
| |
| | |
| Alias: groupall %0
| |
|
| |
| Allows you to have all your sessions follow %0 and has %0 group them.
| |
| | |
| Alias: regroup
| |
|
| |
| Does the same as groupall, but does it again.
| |
| | |
| === Speech Logging ===
| |
| | |
| Log: ~tinrod/speech_logging.tin
| |
| | |
| This needs work, but for now it just grabs certain channels/socials and logs them.
| |
| Open a second terminal and tail -f /path/to/tinrod/speech_logging.tin
| |
| | |
| Alias: savelog %0
| |
|
| |
| Will write out your entire buffer to a log file named %0.
| |
| NOTE: writes to your current working directory, not within the tinrod directory.
| |
| | |
| === MSDP Support ===
| |
| | |
| This *should* 'just work' automatically upon login at this point. If it doesn't, use this alias to 'start' it:
| |
| Alias: msdp_report
| |
| | |
| MSDP Var's Further detail. For use in your own scripting, call msdp stuff as follows:
| |
| All variable: $msdp_info
| |
| All variables + their values: $msdp_info[]
| |
| One thing: $msdp_info[THING] (note caps is required)
| |
|
| |
| For all affects: $msdp_info[AFFECTS]
| |
| For ONE affect: $msdp_info[AFFECTS][sanctuary]
| |
|
| |
| If you're unsure, play around with #showme $msdp_info[THING] and whatnot till you find what you need, or email me.
| |
| | |
| === Inventory Tracking ===
| |
| | |
| I identify a potion container and an item container and save those as variables.
| |
| I track a select group of potions/items within those containers and adjust values as used/stocked.
| |
| Values of the most useful potions are displayed in the prompt.
| |
| | |
| Important to note that these counts get integrated into 2 other scripts/purposes.
| |
| 1. In the 'ds' affiliation script, there is a 'restock' alias. Set your preferred levels via the 'menu' alias options.
| |
| 2. Potion quaffing is tracked, and this used by the autofight script, so that you always drink spring after 8 potions (when fighting).
| |
| | |
| Alias: clearinv
| |
|
| |
| Clears inventory tracking values.
| |
| | |
| Alias: setinv (also invset, because I can never remember which way it goes, so just setup both!)
| |
|
| |
| This uses 'finditem' to find a heal and a recall, and sets your container variables accordingly.
| |
| Then, it examines those containers to get counts on the things it tracks upon the sight of them.
| |
| Then the 'at sight' triggers are disabled so further examinations don't adjust levels anymore.
| |
| There are also manual controls, listed below:
| |
| | |
| Alias: potcon %0
| |
|
| |
| Sets your potions container to %0 (use the keyword for the object)
| |
| | |
| Alias: itemcon %0
| |
|
| |
| Sets your item container to %0 (use the keyword for the object)
| |
| | |
|
| |
| === Gameplay Options ===
| |
| | |
| These are a bunch of things you might want to turn on/off here and there for whatever purposes.
| |
| | |
| Alias: teston / testoff
| |
|
| |
| This is for developing new stuff quickly. It reads in (or kills) whatever you have written in /tinrod/scripts/test_script.tin
| |
| | |
| Alias: eqon / eqoff
| |
|
| |
| Toggles the equipment tracking triggers. Turn on before id'ing gear. Turn off after. Explained above.
| |
| | |
| Alias: immobon / immoboff
| |
|
| |
| This will enable/disable re-immobilize triggers. This is actually redundant now because you can set this up elsewhere.
| |
| See the 'menu' options for Bot Type, set 'bot tank' then 'boton' and you get the same thing.
| |
| | |
| Alias: glasson / glassoff
| |
|
| |
| For Fathomer glasseye skill, redo upon expiration.
| |
| | |
| Alias: shieldson / shields off
| |
|
| |
| Upon expiration, request fresh e-shields from your mage bot. Adjust this for your own chars and bot aliases.
| |
| | |
| Alias: celeston / celestoff
| |
|
| |
| For cleric celestial might... I never use this, but did once for about 5 minutes so its setup.
| |
| | |
| === Gameplay Automation ===
| |
| | |
| This section contains a ton of misc stuff to auto-do-stuff in the game.
| |
| | |
| Auto-style/search/dig/fly/track, etc.
| |
| Anti-Idle (auto-save every 500 seconds)
| |
| | |
| Aliases......Results:
| |
| supcor supplicate corpse, get all, wear all.
| |
| trackgo %0 track mob named %0 and automatically continue to track/move/track/move
| |
| stoptrack stop tracking
| |
| heal quaff 1 heal
| |
| heal4 quaff 4 heals
| |
| heale quaff 8 heals
| |
| blue quaff a ds orchid mana potion
| |
| blueup quaff orchids until mana is full
| |
| qtank quaff a tankset
| |
| drotank drop a tankset
| |
| shockstick use shockshield stick
| |
| cameo use iceshield cameo
| |
| firestick use fireshield staff
| |
| goneut use a pillow to get align back within +/- 80 of 0.
| |
|
| |
| Also various 'target setting' aliases, but this is pretty much taken care of automatically now by the mob tracking system.
| |
| But, in case you just wanna manually set your target variable, check out this section for options, there's a lot.
| |
|
| |
| Also Dh potion buying, if you have a potion buyer, just put a small birch chest on him and give him 1m.
| |
| | |
| === Equipment Damage Tracking ===
| |
| | |
| This has already been explained above, but, process is:
| |
| 1. eqon
| |
| 2. (id a piece of gear)
| |
| 3. keyis KEYWORD
| |
| (3a. IF light/weapon: itemac 20/12 respectively)
| |
| 4. eqoff
| |
| | |
| To view your current eq stats:
| |
| eqstat
| |
| | |
| To remove a piece of gear from the eq db:
| |
| remeq a weapon of striking (use the full name of the object)
| |
| | |
| To reset damage values to 0:
| |
| acset
| |
| | |
| To find a specific piece of gear only
| |
| itemfind %0 (case sensitive)
| |
| | |
| | |
| | |
| === Run Scripting ===
| |
| | |
| These are each kinda their own beast. For when general autofighting doesn't work well.
| |
| | |
| I would just suggest reading each one. They're not great yet, just all kinda 'in the works'.
| |
| <pre>
| |
| Bishop/Krakov are basically flee then healup scripts.
| |
| Collosus is kinda the same, very unfinished
| |
| Edo Dragon heads are useful for having your ranger snipe heads from above to aggro them.
| |
| Mithril Hall isn't totally automated, just some time saving stuff in there.
| |
| Seth sets up some stuff to track who is tanking and when he chills, but not anything else (like hitting).
| |
| </pre>
| |
| | |
| == AutoFight ==
| |
| | |
| Configurable via the options shown in 'menu'
| |
| | |
| Uses a 'minhealth' variable, under which you will heal up. Above which you will hit.
| |
| | |
| Without going into 'how it work' let's just get to 'how to use'
| |
| | |
| Gonna use these aliases:
| |
| hitis HITNAME
| |
| minhealth #####
| |
| manaoff or manaon
| |
| fighton / fightoff to enable/disable autofighting.
| |
| pause to totally pause this stuff
| |
| resume to restart
| |
|
| |
| So, first set those all up. Some notes on that:
| |
| A: For spells, do hitis {c 'vindur gong'} in curly brackets like that.
| |
| B: If your 'hit' uses mana, do 'manaon'. If it does not, go 'manaoff'.
| |
| C: If things get screwed up, just type 'pause' to pause the whole thing. Some conditions do this automatically.
| |
| D: Use 'resume' to restart everything.
| |
| | |
| The logic follows as such:
| |
| If you have not already triggered this check, and
| |
| If the check has not failed for some reason already (meaning it would continue to fail infinitely), and
| |
| If the autofight system is not purposefully paused, and
| |
| If you aren't at 8 potions in the stomach, and
| |
| If you won't be blind once truesight expires, and
| |
| If you don't have a remainder of heals to quaff from a previous healup run, and
| |
| If you have the sanctuary spell (or sacral divinity, or holy sanctity), and
| |
| If your health is above the minhealth value you setup in your menu, and
| |
| If you are not configured as a tank (who doesn't hit), and
| |
| If you are not a vampire in need of blood, and
| |
| If you are not a mana user
| |
| Then Hit the Target, and re-run this check.
| |
| (If you ARE a mana user, and mana is under 200, then Hit the Target and sip 4 mana pots until within 200 of full mana.)
| |
| | |
| | |
| If any of those fail, rectify them, and recurse:
| |
|
| |
| If this check has already been fired: do nothing
| |
| If this check has already failed: echo alert, echo vars, disable autofighting.
| |
| If the system is paused, echo as such.
| |
| If you ARE at 8 potions: drink spring (if you can't find it, make one, if you can't make one, say 'no spring!')
| |
| If you WILL be blind when true runs, quaff cure blind now. (and if you fail, say 'blind' and pause the system until cured)
| |
| If you have remaindered heals to quaff, quaff them.
| |
| If you don't have sanc, quaff it (and if you fail, echo that, set an override, and recheck)
| |
| If your health isn't up to snuff, heal up to full, recheck.
| |
| If you are a tank, don't even hit, just pass all if-checks and then recurse and recheck. (never hit)
| |
| If you are a vamp with under 20 blood, feed, recheck.
| |
| If you are a mana user, and mana is under 200, sneak in 4 mana pots with each hit.
| |
|
| |
| Also: if you are EVER blinded in a fight:
| |
| The system is paused, you 'say blind' and upon that blindness expiring you will automatically quaff truesight and turn 'trueon'.
| |
| | |
| === Debugging ===
| |
| | |
| Currently there are debugging echo's built into the check which you will see if you enable this. This helps me develop it.
| |
| | |
| You can edit out all the #SHOWME lines to get rid of those, but be warned, it's a bitch to debug without them.
| |
| | |
| === Hit Support ===
| |
| | |
| The whole thing works based on your hit message triggering the recursion. So, ALLLL hit messages have to trigger that.
| |
| | |
| So far I have a lot, but not all setup. See the bottom of the tinrod/scripts/autofighting.tin file, it should be obvious what I mean.
| |
| | |
| If your autofight isn't working, or it only seems to fire 'once' make sure your hit message is setup in that file like all the others.
| |
| | |
| === Target Support ===
| |
| | |
| The AF script always hits a specific target. This data is pulled from the mob tracking system, so read on below:
| |
| | |
| == Mob Tracking ==
| |
| | |
| Everytime you fight anything, you can capture the mob data from msdp and set a mob keyword.
| |
| | |
| Those keywords become the 'target' variable when autofighting is enabled.
| |
| | |
| If a mob is not already setup in the mob tracking db, you will be prompted to enter the keyword with this alias:
| |
| | |
| mobkey %0 (i.e. mobkey demon)
| |
|
| |
| Note: upon entering the mobkey, autofighting is automatically restarted.
| |
| NOTE: DO NOT TYPE MOBKEY BEFORRREEE YOU (or your group) is ready to start the fight: Cuz you WILL $hit $target and start it.
| |
| | |
| To view the entire mob database:
| |
| Alias: mobstat
| |
|
| |
| Note: I also started saving mob level as well, seems like it could be useful for future leveling purposes.
| |
| | |
| == Speedwalk ==
| |
| | |
| There's a ton of places already aliased for speedwalking, and a way to search for those too.
| |
| /tinrod/scripts/dirslist.tin
| |
| | |
| All speedwalking directions start from dh[]
| |
| | |
| All my speedwalk aliases are like goHERE
| |
| NOTE: Notice the difference between these two similar, but different aliases:
| |
| go HERE (attempts to connect to the mud as character name 'HERE')
| |
| gohere (attempts to speedwalk to 'HERE')
| |
| | |
| All the place names are shorthanded to my own liking. How would you know what I've setup? I'm glad you asked:
| |
| Alias: finddir %0
| |
|
| |
| Searchs dirs list for the shorthand code for the place you wanna go:
| |
| | |
| finddir tree
| |
|
| |
| #NOP Tree of Life = tol
| |
| #ALIAS {gotol} {#50 w;#5 s;#3 w};
| |
| | |
| You then know the shorthand for Tree of Life is 'tol' and can do 'gotol' or even consult the actual dirs if you're walking already
| |
| | |
| | |
| == Affiliation Config ==
| |
| | |
| I've only setup 'ds' so far, but you could do the same for guilds or barbs or pk.
| |
| | |
| Just sets up things relevant to headquarters, and our potion names. Mainly: restocking.
| |
| | |
| Use the 'menu' to set your stock values. Then go into donation room and do 'restock'. Done.
| |
| | |
| Also tracks recalls and auto-buys more when you are down to 1.
| |
| | |
| Also automatically says 'town' in the portal to town.
| |
| | |
| = Bugs =
| |
| | |
| Configuration Overwrite
| |
| Configs are loaded upon login, and written out upon quit.
| |
| If you log in/out too quickly, then you may 'quit' before anything was loaded.
| |
| Thus, you will write out empty config files. Most frequently happens with the affiliation config for some reason.
| |
| --OR--
| |
| After initially setting up a character. If you set the affiliation to ds, you MUST 'reload' to read in the current file.
| |
| Otherwise, when you quit, you try to write that class to that file, and, you write nothing cuz nothing was ever loaded.
| |
| Thus, you've wiped out the /affiliation/ds config.
| |
|
| |
| Solution: I keep a copy of the ds config, it seems to be the one I overwrite the most. Just recopy it into place again:
| |
| cp /tinrod/affiliations/ds.orig /tinrod/affiliations/ds
| |
| Make sure to 'reload' your chars before quitting them.
| |
| | |
| | |
| Autofight Failover
| |
| There can become a conflict between the 'fightcheck' and 'healup' aliases, since they each call the other.
| |
| If 'fightcheck' thinks it's time to heal, and 'healup' thinks its time to fight -- infinite loop, big problem.
| |
| This is failsafed to just alert and disable autofight, otherwise it crashes tintin completely.
| |
|
| |
| Why: Most likely the issue is that your minhealth value cannot be achieved.
| |
| (mostly: You removed eq and max hp is now lower than your minhealth value.)
| |
|
| |
| Solution: Always set minhealth to at LEAST 101 hp below your max hp. Also try to account for removed eq.
| |
| My suggested minhealth is -400 from max hp. Thats 4 quaffs, 1 round, half-stomach, works out well in testing.
| |
| | |
| | |
| Auto-Cure-Blind problem
| |
| For some reason right now this is broken for mana-characters. It works perfect for vamps for some reason... gotta debug more.
| |
| | |
| | |
| =Contact=
| |
| | |
| If anybody ever uses this, feel free to contact me at dyrdex@gmail.com about it.
| |