Jump to content

Tailcoat

Members
  • Posts

    118
  • Joined

  • Last visited

Everything posted by Tailcoat

  1. Thanks! I just learned how to manually fix that. I chose version 0.1.1 as the default download since it was the last stable version. However, the unfinished newer version's files are still available on the Files page to help with the development of the newer bind manager app "BindControl".
  2. Does your directory look like the image below? There is no install prompt and I'm not sure if the original v0.76 app even had one. Installation is just unzipping the files to your desired folder and double-clicking on CityBinder.exe. Also, there's a similar app also based on CityBinder v.0.76 called "BindControl". Since I don't have time to keep up with my version of CB, I gave my notes to that author. I don't know if it has the same functionality since I haven't played CoH in over a year, but here's a link to the thread about it in case you find it useful:
  3. I think it would be really great and useful for a bind app to gain as much traction as Mid's Reborn.
  4. Thank you! I wish I could've gotten more done on updating this, but I started working full-time and couldn't keep up. The LUA language wasn't handling all the stuff that I wanted it to do, and as a hobbyist, I couldn't be as efficient and knowledgeable as a trained programmer. If it helps, another user has taken up the mantle and made a similar app with Python called "BindControl". I don't know what the status of it is (I've been away from COH for a while), but it works on other systems besides Win10 and I sent over my various notes and ideas for the project to continue. Here is a link to the thread for that:
  5. Ooh, it'd be nice if the Naga tray had 12 power spaces instead of just 10. I don't know if 12 thumb-side buttons is standard for MMO mice, but I could imagine that adding more spaces could break things in the code. If it's possible to open multiple Naga trays, that could help. When I've got a character fully stocked with powers, the 3 default trays end up full of buttons, so I need to see a lot more than just 10 spaces at a time.
  6. Ok, I see that the weird tray alignment of not being in an even grid was the issue. It's been a while since I played. I wish I could have a power tray of 12 buttons in a grid, but I do like A.I.D.A.'s idea.
  7. I don't know if this has been looked at since I haven't played in a while, but I'd love an option to arrange the power tray in a 3x4 configuration. I wanted to jump into the game again, but since I started using one of those MMO mice with the 12 side buttons, I can't go back to clicking on the power tray buttons or hunting-and-pecking number keys. I tried arranging the trays in the same way as those buttons so I could learn to use my MMO mouse with it, but I couldn't replicate that 3x4 grid, so I thought I'd suggest it as an option here.
  8. If it helps, here are the basics of what CB did using a complex bind I set up that makes the character do a different dance every time the user presses "Y". The Complex Bind button pulls up a table (I'd recommend adding a pale background color to every other row to make it clearer to the user that each row is associated with the keybind at the start of it). I entered "Y" for the bind and added a different dance emote command to each space in that row. I chose 8 that I felt segued decently into each other (In CB, you can add up to 599 commands to a row, which I think is overkill!). Pressing the ">>" button lets the user view any other user-defined Complex Binds that may've been imported into the profile (in this case, there are 4 Complex Binds loaded and the dance cycle is the first). You can have one "page" with multiple Complex Binds on it too by using more than one row. Here's a screencap of how the dance bind cycle looks in CB: When the user hits the Generate Bindfiles button, CB makes TXT files for the game to read which include the "bindloadfilesilent" command after the dance command. CB generates numerical number names for them in a subfolder called "cbinds". I'm thinking that the first number in the file name is taken from the "page" number of the Complex Bind, then the second number comes from the "Cycle" column. This is in the folder for the default profile I set up for CB, which contains multiple Complex Binds. Here's a screen of how those look in file explorer, plus the opened TXT files: CB uses its own file extension ".cbm" for imported/exported binds. The extension ".cbp" is for profiles. The .cbm files can be opened in Notepad. Here's what the exported dance cycle Complex Bind looks like: I wasn't aware of all the workings of how CB generated binds, but skimming through some files, I think a lot of that stuff is in the file "cbutility.lua" if you want to check it out. EDIT: If you do check out the CB files I worked on, just be aware that there will be differences between the files contained in the last stable version of CB4H and the unfinished v0.2 version. "cbutilityUI.lua" contains code related to import/export buttons, which must link back to cbutility.lua. The Complex Bind module file, "complexbinds.lua" could be especially useful for ideas. Here's the code for that: local module = {} local function addCBind(cbinds,n,profile) -- this returns an IUP vbox/hbox to be inserted into the CBind Dialog box local cbind = cbinds[n] local bindtext = iup.label{title = ""; SIZE = "100X"} local function matrix_value(_,l,c) if l == 0 then -- return the titles of columns if c == 0 then return "" elseif c == 1 then return "Bindkey" else return "Cycle "..(c - 1) end elseif c > 0 then -- return the values of the bindkeys if cbind[l] == nil then return "" end if c == 1 then return cbind[l].bindkey or nil else return cbind[l][c-1] or nil end end end local function matrix_value_edit(_,l,c,newval) cbind[l] = cbind[l] or {} if newval == "" then newval = nil end if c == 1 then cbind[l].bindkey = newval else cbind[l][c-1] = newval end profile.modified = true return iup.DEFAULT end local function matrix_entercell(_,l,c) if cbind[l] == nil then bindtext.title = "" else if c == 1 then bindtext.title = cbind[l].bindkey or "" else bindtext.title = cbind[l][c-1] or "" end end return iup.DEFAULT end local altBGcolor = 50, 50, 50 local matrix = iup.matrix{numcol="600";numlin="50";numcol_visible="5";numlin_visible="10"; height0=8;value_cb = matrix_value; value_edit_cb = matrix_value_edit; enteritem_cb = matrix_entercell} for i = 2,600 do matrix["alignment"..i] = "ALEFT" end local delbtn = cbButton("Delete This Bind",function() if iup.Alarm("Confirm Deletion","Are you sure you want to delete this bind?","Yes","No") == 1 then table.remove(cbinds,n) cbinds.curbind = cbinds.curbind - 1 if cbinds.curbind == 0 then cbinds.curbind = 1 end cbinds.dlg:hide() --cbinds.dlg:destroy() cbinds.dlg = nil module.createDialog(cbinds,profile) cbShowDialog(cbinds.dlg,nil,nil,profile,cbinds.dlg_close_cb) profile.modified = true end end,125) local exportbtn = cbButton("Export...",function() cbExportModuleSettings(profile,n,cbinds,"ComplexBind") end,125) return iup.frame{iup.vbox{bindtext,matrix,iup.fill{rastersize="x10"},iup.hbox{delbtn,exportbtn,margin="0x0"},iup.fill{rastersize="x10"},alignment="ACENTER"},cx = 0, cy = 65 * (n-1)} end local function newCBind() -- this returns the default empty Simple Bind table to be inserted into SBinds local t = {} return t end function module.createDialog(cbinds,profile) local box = {} for i = 1,table.getn(cbinds) do table.insert(box,addCBind(cbinds,i,profile)) end cbinds.curbind = cbinds.curbind or 1 local newbindbtn = cbButton("New Complex Bind", function() table.insert(cbinds,newCBind()) cbinds.curbind = table.getn(cbinds) cbinds.dlg:hide() --cbinds.dlg:destroy() cbinds.dlg = nil module.createDialog(cbinds,profile) cbShowDialog(cbinds.dlg,nil,nil,profile,cbinds.dlg_close_cb) profile.modified = true end,125) local importbtn = cbButton("Import Complex Bind",function() local newcbind = newCBind() -- we will be filling this new BBind up. table.insert(cbinds,newcbind) local newcbind_n = table.getn(cbinds) if cbImportModuleSettings(profile,newcbind_n,cbinds,"ComplexBind") then cbinds.curbind = table.getn(cbinds) cbinds.dlg:hide() cbinds.dlg = nil -- Resolve Key COnflicts. cbResolveKeyConflicts(profile,true) module.createDialog(cbinds,profile) cbShowDialog(cbinds.dlg,nil,nil,profile,cbinds.dlg_close_cb) profile.modified = true else -- user cancelled, remove the new table from bbinds. table.remove(cbinds) end end,125) local sbEnablePrev = "NO" local sbEnableNext = "NO" local okbtn = cbOKbutton() if cbinds.curbind > 1 then sbEnablePrev = "YES" end cbinds.prevbind = cbButton("<<",function(self) cbinds.curbind = cbinds.curbind - 1 cbinds.zbox.value = box[cbinds.curbind] cbinds.poslabel.title = cbinds.curbind.."/"..table.getn(cbinds) local sbEnablePrev = "NO" if cbinds.curbind > 1 then sbEnablePrev = "YES" end cbinds.prevbind.active=sbEnablePrev local sbEnableNext = "NO" if cbinds.curbind < table.getn(cbinds) then sbEnableNext = "YES" end cbinds.nextbind.active=sbEnableNext end,25,nil,{active=sbEnablePrev}) if cbinds.curbind < table.getn(cbinds) then sbEnableNext = "YES" end cbinds.nextbind = cbButton(">>",function(self) cbinds.curbind = cbinds.curbind + 1 cbinds.zbox.value = box[cbinds.curbind] cbinds.poslabel.title = cbinds.curbind.."/"..table.getn(cbinds) local sbEnablePrev = "NO" if cbinds.curbind > 1 then sbEnablePrev = "YES" end cbinds.prevbind.active=sbEnablePrev local sbEnableNext = "NO" if cbinds.curbind < table.getn(cbinds) then sbEnableNext = "YES" end cbinds.nextbind.active=sbEnableNext end,25,nil,{active=sbEnableNext}) cbinds.poslabel = iup.label{title = cbinds.curbind.."/"..table.getn(cbinds);rastersize="50x";alignment="ACENTER"} box.value = box[cbinds.curbind] cbinds.zbox = iup.zbox(box) cbinds.dlg = iup.dialog{iup.vbox{cbinds.zbox,iup.fill{rastersize="10x"},iup.hbox{cbinds.prevbind;newbindbtn;importbtn;cbinds.poslabel;cbinds.nextbind;alignment="ACENTER",margin="0x0"};iup.fill{rastersize="10x"};okbtn;alignment="ACENTER"};title = "General : Complex Binds",maxbox="NO",resize="YES",icon = appicon,parentdialog=cbdlg,mdichild="YES",margin=dlgMargins} okbtn.action = function() cbinds.dlg:hide() end cbinds.dlg_close_cb = function(self) cbinds.dlg = nil end end function module.bindsettings(profile) local cbinds = profile.cbinds if cbinds == nil then cbinds = {} profile.cbinds = cbinds end if cbinds.dlg then cbinds.dlg:show() else module.createDialog(cbinds,profile) cbShowDialog(cbinds.dlg,nil,nil,profile,cbinds.dlg_close_cb) end end local function maxKeys(cbind) local maxK = 0 for n = 1,600 do if cbind[n] then if cbind[n].bindkey and not (cbind[n].bindkey == "") then maxK = n end end end return maxK end local function maxCycles(cbind,maxK) local maxC = 0 for m = 1,maxK do for n = 2,600 do if cbind[m][n] and not (cbind[m][n] == "") then if n > maxC then maxC = n end end end end return maxC+1 end local function writeBind(file,cbinds,key,cycle,bindset,maxC,profile) local nextCycle = cycle+1 if nextCycle > maxC then nextCycle = 1 end local k = cbinds[bindset][key].bindkey local cmd = '' if cbinds[bindset][key][cycle] and not (cbinds[bindset][key][cycle] == "") then cmd = cbinds[bindset][key][cycle].."$$" end cmd = cmd.."bindloadfilesilent "..profile.base.."\\cbinds\\"..bindset.."-"..nextCycle..'.txt' cbWriteBind(file,k,cmd) end function module.makebind(profile) local resetfile = profile.resetfile local cbinds = profile.cbinds local cbindfile local maxK local maxC cbMakeDirectory(profile.base.."\\cbinds") for k = 1, table.getn(cbinds) do -- for each complex bind set maxK = maxKeys(cbinds[k]) maxC = maxCycles(cbinds[k],maxK) --print("maxK = "..maxK..", maxC = "..maxC) for j = 1, maxC do -- for each cycle in this bindset, counting the first one twice --create a new bindfile if cycle is 2+ if j > 1 then cbindfile = cbOpen(profile.base.."\\cbinds\\"..k.."-"..(j-1)..".txt","w") --print("created "..profile.base.."\\cbinds\\"..k.."-"..(j-1)..".txt") end for i = 1,maxK do -- for each key in the bindset if j == 1 then writeBind(resetfile,cbinds,i,j,k,maxC-1,profile) else writeBind(cbindfile,cbinds,i,j-1,k,maxC-1,profile) end end if j > 1 then cbindfile:close() --print("closed "..profile.base.."\\cbinds\\"..k.."-"..(j-1)..".txt") end end end end function module.findconflicts(profile) local resetfile = profile.resetfile local cbinds = profile.cbinds for k = 1, table.getn(cbinds) do -- for each complex bind set local maxK = maxKeys(cbinds[k]) for i = 1,maxK do -- for each key in the bindset cbCheckConflict(cbinds[k][i],"bindkey","Complex Bind "..k) end end end function module.bindisused(profile) if profile.cbinds == nil then return nil end return table.getn(profile.cbinds) > 0 end cbAddModule(module,"Complex Binds","General")
  9. When updating CityBinder, I considered a couple of ways of making it easier for players to add and share modules. As mentioned, I did include a bunch of snippets, although those files only work with CityBinder, but could provide useful material to adapt for BindControl. They're in the "Sample_Binds" folder included in my SourceForge uploads, which only work with CityBinder's modules for Simple (in the "Custom Binds" section), Complex (binds requiring multiple txt files), and Ultra binds. I never figured out Ultra binds and it wasn't documented much, so that file is just what was included in the original CityBinder just in case anyone else could figure it out. I think Ultra binds were meant to help people make more complex modules w/o needing to know coding? It's an interesting idea. Below, I've included some screenshots of the kinds of binds I included. Several are movement related, so would best be incorporated into a movement module if that hasn't been done already. I can explain what they are if anything interesting jumps out. The other thing I started to make modules shareable (but wasn't able to finish in the last stable version of CB. However, it should work in the unfinished v0.2 files I uploaded to SourceForge.) was instead of hard-coding the modules into the script that loads them up, I had it check its current directory for a subfolder called "modules" and load up the .lua files in there. Within that folder was another called "inactive" so files can easily be taken out of rotation without deleting them (it was useful for bug testing). In those LUA files, I added some more variables to help categorize the modules into a tree and also generate credit info in a popup if the user clicks the button for that. Including the last update as a variable could also help authors (should they change how their code works) find and update things used in previous versions of the app (or it may make more sense to focus on versions of the module itself instead). I pasted an image of the text next to the popup to illustrate my attempt at improving user-friendliness to encourage people to make and share their own modules. I even worked on trying to de-hard-code the interface colors and turn them into variables in an attempt to create a dark mode option (and down the road, potentially programming in customization options for interface colors), but I just couldn't get Lua to do what I wanted consistently!
  10. The citybinder.lua file should be in the same directory as the .exe file. If it still gives you trouble, I've since passed on my work to a more-experienced developer. I don't know how far the app has progressed, but the thread about the "BindControl" app is here:
  11. I meant allow the user to specify a full path for the profiles anywhere. Personally, I never save anything to the default C:\Documents folder and I keep gaming stuff in a separate folder. I've been keeping my binds and profiles in character-specific subfolders like this: The idea about subfolders I had was separate from that but similar to your first idea. If I made a new profile for my character Erasyerhead (or a general profile called Warshade Binds) and entered that as the profile's name then hit "Save As", if the app didn't detect a pre-existing folder called "Erasyerhead" in my chosen directory, it could ask to create one, then save the binds or profiles inside.
  12. I've been wondering if it would be useful if users could choose separate paths for saving profiles vs. generated files. It'd be convenient for an app to be able to take the profile's name and create a folder with that name when the profile is saved. It could be an optional setting.
  13. I don't know if this helps anything, but I made pop-up menus for a handful of my characters to help manage their teleport (and related things like jaunt, translocate, and mystic flight) and targeted AOE powers. Then I bound that menu to the E key. Here's the content of one of the files: // Menu Erasyerhead { Title "Teleport" Divider Option "&A Combat TP to Target" <&powexec_location target Combat Teleport&> Option "&S Retreat" <&powexec_location back:60 Combat Teleport$$face&> // Since I plan on using this in combat, // I want the bonus that Combat Teleport gives. This is for when you port right to an enemy, execute a melee attack like Sands of Mu, then want to jump back to use ranged attacks. "Face" is necessary to keep toon facing same direction. // Without it, character will turn 180 degrees, which would be disorienting, unless you plan on running away. Option "&D TP Target to Self" <&tell $target, I'm teleporting you to my location...$$powexec_location forward:10 Teleport Target&> Option "&F TP to Target" <&powexec_location target Teleport&> Option "&R TP Ring" <&powexecname Teleport&> Divider Option "&W Up And Away!" <&powexec_location up:max Teleport&> Option "&E BUG OUT!" <&powexec_location back:max Teleport&> // When you want to turn and run in opposite direction. Turn 180 degrees and teleport far away. } I found it useful to make the character-specific pop menu key and "BUG OUT!" key the same since if I'm panicking and need to get away ASAP, I can't always remember which menu key to press. This way, I don't have to since I just have to hit "E" twice to try escaping certain death. I couldn't get the turn-around command to work with (IIRC... been a while) teleport-adjacent powers like Jaunt. I also made a bunch of .cbm simple bind files for CityBinder containing various commands like that. If you don't want to grab them from a .zip file, you can find the loose files here: https://sourceforge.net/projects/citybinder-for-homecoming/files/unfinished_CB4H_v0.2/Sample_Binds/Simple/ I didn't really use CityBinder's SoD module since it was clunky and confusing, so I can't say how useful or not it'd still be since the travel power update, but maybe the module could have separate tabs for each type of movement (especially if you'd like to offer different uses like in the menu above). I wonder if having Kheldian settings as its own module would make more sense than how CityBinder did it as a section that only appears in SoD if you select one of those Archetypes.
  14. @emersonrp Ok, I've uploaded my unfinished CityBinder for Homecoming v0.2 files here: https://sourceforge.net/projects/citybinder-for-homecoming/files/unfinished_CB4H_v0.2/ I added a bunch of notes in the Documentation folder on changes I made since 0.76, some issues to resolve, and ideas I wanted to implement. My LUA files contain various notes explaining things I did, keeping in mind helping potential programmers (or my future self) looking at them. I suffixed them with "-TC". Some of the original author notes are in there too (they're unlabeled). A couple of files in my project folders relate to an unsuccessful attempt to build a 32-bit version of it in order to reach a wider audience, but that stuff got waaaay too technical for me. The version my .exe file works for is Win10, 64-bit. If you find any of the info in my SourceForge project's help files useful for explaining features, feel free to recycle it! I'd hoped in the future to perhaps create a how-to video on using it. The tooltips are kind of weird and don't always pop up over sections that would intuitively make sense. Let me know if you have any questions!
  15. Would you want my notes on new things I was working on for CityBinder? I could upload the unfinished 4K version if you want to recycle that. I've been haunted by my inability to at least finish that version and I've wanted to pass it on to someone more knowledgeable in programming (my field is art, so I focused a lot on making the UI visually clean and intuitive. I also made the icons). I haven't been able to work on it in about a year because I started working full-time and often had difficulty getting Lua to do what I want. I think Python is a much better choice for today since it's well-documented, but I don't know Python and forgot most of Lua (I only learned it because I really liked CityBinder 😅 and programming is interesting. I wouldn't mind learning some Python to tinker with modules, but I can't handle making a full-on complicated app such as CityBinder like a dedicated programmer could. I could never figure out how to generate .exe files for systems other than my own Win10 64-bit) In the unreleased version of CB4HC, I figured out a way to make the app populate a tree of modules based on what's in a folder rather than hardcoding what's available. I figured that would allow the user to easily swap in and out what they wanted (if they aren't sure, they can put those module files into a different folder). The app can also grab some info from a module file and make an info window from it. I wanted to make it easier for people to make and add their own modules. Modules can also be enabled or disabled from the module tree since I wanted to be able to keep the app from generating unnecessary text in the files it spits out. I was also able to add some QOL fixes like some shortcuts, links to useful sites, clear binds options, and I updated the pop-up keyboard to take keyboard input. I was hoping since the beginning of CB4HC to be able to create a feature where the user could select from a grid of icons in order to generate the code to paste into the game to generate image macros w/o having to go to a site and find the image name, but that proved difficult with Lua. I managed to make a little test file with a couple of icons. I wanted to be able to have it organizable by hue, symbols, stuff like that. My favorite module is Inspiration Popper, which I'd started reworking with more options (ex. dual inspirations, team inspirations, and a thing where you can use a key to swap whether you consume the big ones or little ones first). I think "Last Resort" is pretty cool since it allows you to enable consumption of a dual inspiration if you run out of the regular inspiration and push its key bind. I used that a lot while playing. EDIT: I also added an option to let a player add their Global Name to the beginning of a chat. There's a camera settings module too-- sure, the options are in the game, but if a player wants to keep all their options in one profile and use it as a default for other characters, it's convenient to have it all in one place. My files also have some new powers, emotes, and commands since 0.76. They were a PITA to copy and organize, so if you need that info, it might save you some time to grab it from them. It wouldn't have anything new from the past year though. @emersonrp Please let me know if you need anything to help make the app!
  16. That is true. I hadn't touched the Speed on Demand module. I'm wondering if there's anyone that I could pass on this project to. Ever since I got full-time work, I haven't had the energy to do anything with this and I feel bad about that since I had a nicer interface thing going and a lot of ideas, but it's not cohesive enough for me to be able to upload that version in its current state.
  17. That's a good question. I haven't touched the app in several months since I got a job that takes up more of my time, and I've been taking time off CoH to play a different game lately, but I keep thinking about wanting to at least finish that 4K revamp. I want to say that it's not possible (unless anything has changed in the past few months), but if the issue is using the same commands over and over, you can use CB to save a profile of the default commands you like to use, set it to be the default profile when you make a new one, then if you need to make any character-specific changes, you can do that and save it as a separate profile. Multiple characters can use the same binds text file. Binds can also be made that will load up other bind files too.
  18. Some updates for the future 0.2 update: * The virtual keyboard will now highlight selected keys * It will now accept typing input in addition to the original input of clicking on the buttons * For duplicate keys (like numpad, shift, alt, ctrl), IUP can't differentiate numpad keys from normal ones and isn't recognizing left vs. right modifier keys, so if you want to assign those keys by typing, an extra key press will give a third option. Ex. Press "1" once for "1", again for "NUMPAD1", and again for neither. * A "Clear Binds" button makes unassigning binds faster and easier * A new logo! Each dialog window displays it as well. * To create an ICO file holding multiple sizes, I used Visual Studio 2022: * I chose a UWP template, added an icon to the ".rc" folder, cleaned out the default images (right click>Delete Image Type), and added the icon sizes and bit-depths I needed (Add Image Type) * Apparently, 32-bit images can't be edited in VS's icon editor, so I used 24-bit for the biggest, most polished icon (256px), and since the rest were much smaller, I had no need for more than 8-bit (256 colors). The VS icon editor seemed unable to handle partial transparency, so the anti-aliased edges would show up with 100% opacity, creating some speckles around the edge. I edited all my icon images to use aliased edges. * You can paste the icon image into each "Image Type" in the .ico file, but VS screwed up the colors of 8-bit ones that had custom 256-color palettes (I used Photoshop to reduce the colors), so I used a Photoshop extension to save each icon as it's own .ico file (it can't save multiple sizes in one) and then load them into VS. From VS, I saved the icon's color palette (from the icon editor) and loaded it in my multi-size icon in the appropriate Image Type. Then pasting the icon image might work, but sometimes didn't and I wasn't sure how I fixed it. * Once I saved the icon, renamed it to citybinder.ico, put it in the "src" folder and recompiled the app, I had to update Windows' "icon cache" to make the change show up.
  19. I just noticed that Tuatha have hooves not available as costume parts. Since they don't seem to move much differently from other bipeds, I wonder if it would be relatively straight-forward to add them as costume parts for monstrous legs. The higher-tier one's antlers would be cool too, and I'm sure people would find use if their deer tails were available as a costume part.
  20. Still working on the version 0.2 overhaul (I'm a hobbyist, so it's slow going having to learn and experiment a lot. I'm currently adding more functionality to Inspiration Popper so you can set binds for team insps), but in the meantime, I did upload a version 0.1.1 here (https://sourceforge.net/projects/citybinder-for-homecoming/files/CB4H_v0.1.1/ ) that has a few features not in 0.1 like... a module to set basic camera commands these can be changed directly in the game's settings, but if you already have a bunch of binds and want to keep them in the same text file to avoid potentially accidentally overwriting key binds (CB will check bind keys for conflicts) or whatever, now you can set the settings here some camera commands with more options in the Power Binder (accessed via Simple Binds module) option to add your Global handle to the beginning of chats started by shortcuts defined in the "Typing" module All 3 quit commands are now available via Power Binder under "quit" If anyone out there has an interest in helping develop this app and is familiar with Lua and the IUP library, I'd love to collaborate.
  21. Let me guess, your character was charged with the crime of purple-shorts-wearing while green? 😏 I do wish there was more flexibility in skin color choice though. It can be difficult matching monstrous legs to thighs without an obvious seam (especially hooves). I also wish that Spectrum worked on more things, like monstrous legs, tails and non-human ears.
  22. You'll probably have to rechoose your AT (since adding Sentinel changed the order) and powers (so many additions there and when I tested loading a default profile with a misspelled power name, that power was left off the list). However, if you export the options for the modules you've used, those rely on fewer variables (you can open them or Lua files in Notepad if you ever want to check them out), so maybe you could start with a clean profile (if you delete the default.lua file and open the app, it will copy stddefault.lua to create a new default.lua with standard options) and then load up the .cbm files you have for each module, and if you want, you can hit the button to save this new version to default.lua. I've been keeping this in mind for v0.2 and adding code that checks for old variables to update.
  23. You bet I changed that! Did a mass search and replace. Also added missing powers and ATs (the recently added Stone powers and innertube emotes need to be added in 0.2). You can see other changes I made in CB4H 0.1 here: https://sourceforge.net/p/citybinder-for-homecoming/wiki/Change Log/#top and below that are some upcoming changes, which I need to update. I went quiet for a few months because I was struggling to learn and figure out a bunch of new stuff. Is Speed on Demand the really spammy module? I thought I saw a crazy amount of files I think were related to normal WASD movement and I wondered why, but it was a while ago when I checked.
  24. You could use the image macro command if you're talking about using the same image, but would have to know the power icon's file name. The wiki should have that info. The disadvantage is that you won't get that cooldown timer like the actual power icon. If you need to see the timer, maybe you could put the actual icon in a spare power tray off to the side so you can glance at it to check the timer, and put the macro version in your normal power tray.
×
×
  • Create New...