Jump to content

Recommended Posts

Posted (edited)

i26 Unbindall (Keybindreset) I use it like it's an attack in the chain. A How to Recover Guide.

by qwy

 

 

Preamble

Personally, I've found using them often means never really needing them. If you're unfamiliar they wipe your active (Client managed) bind file clean. It's all gone. No more binds you had a hand in. No option for recovering them. They have ceased to be.

 

It probably sounds like I was being facetious with the title and first sentence. I wasn't. Commands adside, the result of a glitch, a hiccup loading a bind or even certain input errors can result in the same end effect. I used to use a popular movement based bind set that is constantly loading files. Often, as things started heating up, BOOM! Bindload misfire! Heavily modded keys, all make with the bye bye. Around the 112thteen time, is when I first met unbindall, our eye caught each other across a busy cmdlist. I knew right away, I was on a road to recovery. Of healing. 

 

We got pretty serious, right away. I learned some hard lessons in the beginning but, I kept looking for excuses to get together. Peppering bind files with it like a love struck middleschooler, defacing a textbook with the name of their first crush. The most meaningful of which is a reset on every alt, I hit constantly. The more I'd hit it the fewer problems I'd have. This is typically how I turn off ninja sprint or, beast surge, I can't even remember the last time I even had a problem. Unbindall is the wind that gives my alts wings, their license to soar. 

 

Example

CTRL+R "up 0$$down 0$$forward 0$$backward 0$$left 0$$right 0$$camreset$$unbindall$$bindloadfilesilent @/Global.txt$$bindloadfilesilent @/Rojas/General.txt$$bindloadfilesilent @/1/A.txt$$bindloadfile @/Rojas/1/A/1.txt"

 

1. The First Step

 

Without a few ducks lined up, ahead of time, this command is a bad day, waiting to happen. There's a lot of heads on this hydra. It's a little hard sticking to a single step and have it provide an actual value, on its own.  I'm going to bounce around two key points with this and, recovery methods are going to get the most stage time. The second especially if, like me, you've got mad altoholism, is ongoing to be an evolution. It's certainly, the most daunting step, cultivating a global bind profile. If you just have a couple of characters and playing at lower levels, it's not important yet although, the concepts here will help you save and recover just as well. In all scenarios, knowing what's on the active file, what you actually want on it, what should be accessible to all alts, what the current character needs are, where the hell are all these files and how you're going to get them where they need to be, is a long road but it starts with knowing what you already have. That's where bindsave comes in.

 

2. Active, original and default files

AKA Keybind.txt and the spectors. 

 

Even if you just have one main, getting familiar with some of the inner workings isn't a bad idea, if you've got a lot of advanced level alts, a global bind profile is a really good idea. A hot of the presses copy of the original bind file is a great start. That puts backing up your current active files on the table and of course, methods to back up and load. so, let's start by getting the client interface tools involved. Part way through, we're jumping on the fast track for a comparative argument on the value of this guide.

 

We need to backup the active file and to get a fresh copy of the original file. We can't actually see either, only copies that are first, parsed in an order that's based on numerical values of key ID. More on that later. The one file we can see, is Keybind.txt, aka the default file. There seems to be an artifact of a default version of this file we can't see. It occasionally loads, onselect, of the big dropdown. It might not happen here however, check the work, along the way. It's not a problem these steps won't overcome, incidentally. Keybinds.txt is a long-term committed. love triangle with /bindsave and /bindload. Those commands are almost short enough to be a viable recovery plan using a slashcommand. For one alt, anyway. Navigate to the root of your installation folder. If you're having trouble, search for cityofheroes.exe, it's in the folder we want. Once you find it, copy and paste it right in the root, there. It might not be important, I actually don't even care what's on it. You might later, so, if that happens, there it is. 

 

If you're feeling confident, login an established alt, with lots of work done, or, for the less confident, there should be some of your influence on a new characters bind file if you want to roll a new one. If you're not sure, enter the following bind in to chat. Change CTRL+' , if you already have something on that it. 

 

2.1 Test bind

/bind CTRL+' "t $name, I'm a copy of the active file"

 

In all cases, we have our copy of the root, we're logged in on a character, known to have an altered bind, let's save over the keybind.txt. Within the client, navigate to the option menu's, keymapping tab, and hit the top-right, blue button, "save to default". Go back to the game folder and copy and paste it again. Open up the copy, make sure you're seeing what you expected to see. The bind above should be on the second line, if you used it. 

 

So, "save to default", and, "load from default" are keybinds.txt's side pieces. Renaming the file between saves, you could backup all your toons this way. I wouldn't but, you get the idea. On left side of the keymapping tab, is the big dropdown, I mentioned, you could set it to original, hit save to default, go back to the folder, change the name of keybind.txt to global.txt, (this is that thing I keep talking about.) change the name of the copy we made before this one, back to keybinds.txt, navigate back to the options Keymapping tab and hit the second from top blue buttons or, just run this. 

 

2.2 Back on the fast track

/bindsave$$unbindall$$bindsavefile KeybindsNEW.txt$$bindload

 

In fact, we could of skipped this whole thing with;

 

2.3 The step skipper

/bindsavefile c:/CoH/UnbindBackup/Active.txt$$unbindall$$bindsavefile c:/CoH/UnbindBackup/OG-Fresh.txt$$bindload$$bindsavefile c:/CoH/UnbindBackup/OG-Root.txt$$bindloadfile c:/CoH/UnbindBackup/Active.txt

 

The point was, to put in to perspective the difference between commands ready to trigger vs, relying on the interface alone. The keymapping tab's dropdown should probably stay on default however, the deeper down this rabbit hole, the less important the entire tab becomes. The command finished all the heavy lifting. The original copy was made and your active binds have been restored. Let's take a quick look at the new file. It should be in a folder named data with keybind.txt. Although, If you haven't already made a data folder, you don't have one. Make one now, it's good. Unnecessary here but, I'll have more on that in future guides. After you generated the data folder, before opening it, go to the piggs folder. Inside is KeybindsNEW.txt. Move it to the data folder and get familiar with it, before adding to it.

 

Ideally, it grows into something useful for all your toons but, in those catastrophic moments, your binds are going to be down anyway, and this guide is about getting them back. Getting back on track, it's a catastrophe, your binds are down, this file, as it is now, those are the binds in play. Having had that bird's eye view, adds a bit of calm to the situation. Opposed to having your team watch you autorun, full frontal leeerroooyy style, in to the AV, while you're navigating to the blue buttons, let's take a look at some other options.

 

3. Back to the catastrophe

 

The first thing we need is some backups. However, we're going to skip that for the time being. Ideally, they're created with commands, that can easily exceed the chat character limit. This brings popmenu's and custom.windows in to play. So, keep that in mind as we cover the restore options,  below and, grab the commands for save and load, that suit you.

 

With that, partly, out of the way, here are the choices; the big blue buttons, slashcommands, macros, popmenus and custom.windows. 

 

3.1 Macros

If they're already in your tray, it's fixed, game on! Otherwise, you'll have to get them there.


Relative Path
/macroimage "TalonsOfVengeance_MorbidCut" "SuperflySnuka" "camreset$$unbindall$$bindloadfilesilent Binds/global.txt$$bindloadfilesilent Binds/AT/general.txt$$bindloadfilesilent Backups/XXXX/binds.txt"

Absolute Path
/macroimage "TalonsOfVengeance_MorbidCut" "SuperflySnuka" "camreset$$unbindall$$bindloadfilesilent c:/CoX/Binds/global.txt$$bindloadfilesilent c:/CoX/Binds/AT/general.txt$$bindloadfilesilent c:/CoX/XXXX/general.txt$$bindloadfile c:/CoX/XXXX/build2binds.txt"

/macroimage "TalonsOfVengeance_MorbidCut" "Custom Window" "customwindowtoggle ."

/macroimage "TalonsOfVengeance_MorbidCut" "my pop" "popmenu NameOfWindow"

 

The first one works for a basic global environment. It grabs the global bind file, a bind file, unique to that AT and another one unique to the active environment (build, interface or play style) Edited for your situation, it's like nothing even happened. The other two, just move the situation to step 2. Without the legwork upfront, none of them excel.

 

 

3.2 Popmenu and, why not?

2.1 True, the bindload option requires a reboot. But, if you command the command to command chat to write the command...         


Relative Path:
Option "Recover" <&show chat$$beginchat /"chatloadfile Backups/XXXX/chat.txt$$optionloadfile Backups/XXXX/options.txt$$wdwloadfile Backups/XXXX/wdw.txt$$bindloadfile Binds/global.txt$$bindloadfile Binds/AT/general.txt$$bindloadfile Backups/XXXX/binds.txt"&>

Option "Bu&tton Machine" "show chat$$beginchat /bindloadfile binds/Macros.txt"
---
Absolute Path:
Option "Recover" <&show chat$$beginchat /"chatloadfile  c:/CoX/XXXX/chat.txt$$optionloadfile  c:/CoX/XXXX/options.txt$$wdwloadfile  c:/CoX/XXXX/wdw.txt$$bindloadfile  c:/CoX/Binds/global.txt$$bindloadfile  c:/CoX/Binds/AT/general.txt$$bindloadfile c:/CoX/XXXX/binds.txt"&>

Option "Bu&tton Machine" "show chat$$beginchat /bindloadfile c:/CoX/binds/Macros.txt"

...and, press enter. Voila! The first option loads the window preferences, chat setup, options settings and the 3  bind files for the global scenario I mentioned above. With the character limit raised, we're far from having to worry about command lengths.

 

The second, a macro button machine file (patent pending).  WIth this idea, once this file is loaded, the keys will generate macros that perform whatever variety of commands you can think of. Here's an example.

            1 macroimage Brawling_ComboLevel1 Melee "powexectray 2 5$$gototray 9$$bindloadfilesilent @/!/152.txt"
            3 macroimage Brawling_ComboLevel3 Range "powexectray 1 5$$gototray 9$$bindloadfilesilent @/!/352.txt"
            Q "macroimage TalonsOfVengeance_MorbidCut Q targetcustomnext enemy Quantum"
            E "macroimage v_archetypeicon_stalker E beginchat /bind E targetcustomnext notteammate notmypet base "

  Example macros were readily available for cut and paste. they're kind of useless here      

 

        

2.2 Popmenu/sub menu

Here's an example submenu with a reset macro to restore individual alts?  

Menu "Oh yes"
{
	Divider
	Title "- There Here-"
	Title "The Dream Team is Here"
	Divider
	Divider
	Option "Super Fly Snuka" <&macroimage TalonsOfVengeance_MorbidCut "Super fly" "bindloadfilesilent @/Global.txt$$bindloadfilesilent @/Snuks/General.txt$$bindloadfilesilent @/Snuks/RelevantPathStuff/binds.txt"&>
	Option "Jack the Snake" <&macroimage TalonsOfVengeance_MorbidCut "Jake the Snake" "bindloadfilesilent @/Global.txt$$bindloadfilesilent @/Snakie/General.txt$$bindloadfilesilent @/Snakie/RelevantPathStuff/binds.txt"&>
	Option "Iron Shiek" <&macroimage TalonsOfVengeance_MorbidCut "Iron Shiek" "bindloadfilesilent @/Global.txt$$bindloadfilesilent @/Shiknessest/General.txt$$bindloadfilesilent @/Shiknessest/RelevantPathStuff/binds.txt"&>
  	Divider
  }

In all cases, access to a popmenu, is going to need a non-bind solution to make it pop (Read, Macro). With the potential of hotkeys though, once it's open, it's got a bunch of potential to help keep you alive until binds are back up. Either way, not a bad option to keep in your back pocket.

 

3.3 custom.window

By far, the best choice, in this particular circumstance, in my opinion. No need to look for it, no confusing it with something else and depending on a couple of other factors, a character limit, well above anything we'd want here.

Window . 0 0 100 150
	Button "" ""
	Button Apps "macro_image GenericPower_AutoOverlay APPS popmenu APPS"
	Button "" ""
	Button ToonLaunch3000 ""
	Button Relative "unbindall$$bindloadfilesilent XXXX/global.txt$$chatloadfile XXXX/chat.txt$$optionloadfile XXXX/options.txt$$wdwloadfile XXXX/wdw.txt$$bindloadfilesilent Binds/AT/XXXX.txt$$bindloadfilesilent XXXX/General.txt$$bindloadfilesilent XXXX/build1binds.txt"
	Button "" ""
	Button "" ""
	Button Absolute "unbindall$$bindloadfilesilent c./CoX/XXXX/global.txt$$chatloadfile c./CoX/XXXX/chat.txt$$optionloadfile c./CoX/XXXX/options.txt$$wdwloadfile c./CoX/XXXX/wdw.txt$$bindloadfilesilent c./CoX/Binds/AT/XXXX.txt$$bindloadfilesilent c./CoX/XXXX/General.txt$$bindloadfilesilent c./CoX/XXXX/build1binds.txt"
	Button --- ""
	Button Macros ""
	Button "Super Fly Snuka" <&macroimage TalonsOfVengeance_MorbidCut "Super fly" "bindloadfilesilent @/Global.txt$$bindloadfilesilent @/Snuks/General.txt$$bindloadfilesilent @/Snuks/RelevantPathStuff/binds.txt"&>
	Button --- ""
	Button "" ""
	Open 0
End

Example: Snipped from custom.window. Yea, I named it, ".".        

 

 

4. Adding the ability to use Custom and Pop menus

The stickied guides for adding these menus are great! Easy to understand and the options themselves, won't require as many steps as I've got here. I've got a lot to learn. I'm more inclined to experiment. Blowing up stuff is more fun than documenting an explosion. I've really got a lot to learn... Check out those guides, if you haven't. Then, set yourself up with a couple of options to restore.  

 

5. Generating the backups to load

So, the commands that save are the same as the  ones to load, the only difference, is the actual word, "save" and "load". Once you've decided which option you'd like to use, edit the paths, "XXXX" as the character name and make a copy of it. From there, change the, "loads" to, "save" or the, "saves" to, "load", leaving you with a matched set.  Don't forget to save after big changes, high holidays and on leap years. Get a real text editor, if you don't have one and lookout for future guides, exploring the potential of file managed, global profiles. 

 

6. Anti-climatic conclusion 

and... unbindall, the reason it hasn't stomped out my spirit? Combined with a following bindload, or series of bindloads, in a single command, they all happen around the same time. You always want to write them in the order you want to execute. Consider the last string in section 2, there would have been no need to go to the install folder at all, it generates an archive folder and saves the active bind file, unbinds everything and saves a copy of it in the new folder, and uploads the original keybind.txt and saves a copy to the new folder and than loads the original active bind file like nothing even happened. As I was writing this out, I decided to test  what would happen if I shuffled the order, some of the results were unexpected so, it never hurts to test things under controlled environments. Ultimately, the first pass was the plan I was trying to execute and in that order, it did exactly that.  

 

 

Disclaimer

If any additions, corrections, errors or elaboration stand out, let me know. If anyone recognizes work that should be contributed to another author, I'm more than happy to remove, extend credit or take whatever steps are appropriate to remedy the situation.

 

Hope this is helpful. 

 

 

 

Edited by qwy

Guides

MMPetMouseExpanded MM Numpad Controls | Chain Attack Assitant | Load/SaveFile - Relative Paths | KeyBindReset - Basics Of Going Global.

SGMusic.mnu - Popmenu Audio Player for your SG Base

See my profile for some of my other projects.  

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...