|
|
(152 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=
| |
| 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=
| |
| ==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.
| |
| | |
| =Contact=
| |
| | |
| If anybody ever uses this, feel free to contact me at dyrdex@gmail.com about it.
| |