Showing posts with label tutorial. Show all posts
Showing posts with label tutorial. Show all posts

Tuesday, February 23, 2010

Clique: Not Just For Healers Anymore!

I occasionally like to showcase a mod on my blog that I feel is incredibly versatile and solves a serious problem for all the raiders out there like myself.

My last entry on this subject, PowerAuras: the Best AddOn You've Never Used!, showed off just a small portion of the robust warning system the mod PowerAuras brought to the table. Today, I'll be covering the finer points of the mod titled Clique.

Since I've been spending a bunch of time in the higher end 10 man encounters healing on my shaman I became intimately familiar with this life-saver of an AddOn. I hadn't actually healed full time in a raid since about halfway through the Burning Crusade expansion and Clique severely shortened the re-learning curve for me and, I feel, made me a better healer than I had been in the past relying on keypresses and raid member targeting.

But I LOVE My Keybindings!

I don't blame you. In fact, I wholeheartedly support you in mapping as much as possible to keybindings. Using a keybinding setup for spell casting is far superior to clicking. It increases reaction time, decreases the amount of miscast spells and allows you to focus more on what's happening around you and less on where the mouse pointer is.

However, when you're talking about raid frames and any interaction a player might have with those raid frames be it healing, buffing, decursing or ressurecting... you'll find yourself relying on raid frame mouse clicks one way or another.

This is where clique can help you out the most by not only freeing up keybindings for other spells that would otherwise be devoted to heals or buffs, but by eliminating the targeting step of raid window interaction. It does this by binding spells to mouse clicks instead of keyboard bindings. These mouse click bindings work with any unit frame unless otherwise specified and are independent of any keyboard bindings you may already have for the same spell.

The All-In-One Raid Window Assistant

You probably have, at the very least, a raid window mod if you ever have to mess with the raid windows.

Often pure DPS will have the window hidden or not run with a raid window mod to save on memory and CPU cycles, but most folks will need their raid windows out at one point or another for some reason and regardless of which baseline mod you go with Clique can probably help you perform certain tasks better.

The exception to this are mods like Vuhdo or HealBot, raid window mods that have built in Clique-like functionality that renders Clique itself redundant. The concept and configuration for this functionality between mods, however, is nearly identical.

Some folks also go with mods like Decursive that provide a secondary raid window specifically for purposes of cleansing and other non-healing raid utility like crowd control and buff management.

Keep in mind, though, that clique can bind any spell that is targetable to mouse clicks so all of these other things that redundant raid frame mods take care of can also be taken care of in Clique, streamlining your interface and saving screen real estate.

All of these things (and probably more) can be handled through Clique bindings:
  • Healing
  • Crowd control
  • Cleansing
  • Buffing
  • Intercept
  • Tricks/Misdirect
  • Resurrection
  • Divine Intervention
  • Macros
There is also a custom macro system where you can assign a macro version of a spell without using up one of the limited macro slots provided by the default interface.


Configuration


Clique has a very simple configuration, albeit a very important one. It is extremlely simple to set up, but getting your click-binding priority straight shouldn't be neglected.

Once the mod is installed simply open your spell book in game. You'll see an extra tab which, when clicked, will open up the Clique configuration menu.

Take a moment to notice the dropdown on the top right side of the Clique configuration window. This dropdown controls the conditions of the keybindings. Anything placed in the "default" page will take precedence only when another condition isn't active and/or isn't bound to anything.

To bind a spell to a mouse clock simply browse your spellbook with the Clique config window open and click the spell you want to bind with the mouse click combo you want to use for that spell. For instance, to bind Healing wave to Shift+LeftClick hold shift and left click Healing wave and it will be added to the Clique window.

For example, in the default section of my Clique bindings I have Ancestral Spirit bound to right click. In the "helpful" section of my bindings I have right click bound to Lesser Healing Wave. This means that while I'm clicking a friendly unit frame, right clicking will cast Lesser Healing Wave on the unit. While out of combat, however, the Ancestral Spirit binding will take precedence and will be cast instead of Lesser Healing Wave on right clicks when not in combat.

The Right Frame at the Right Time

It's a good idea to give a little thought to which frames you want to have the Clique bindings work for.

For instance, when I first set up my clique I had completely neglected this part and while clicks were enabled in the player frame I found I was unable to change the difficulty of an instance as right clicks on my player frame were attempting to cast Ancestral Spirit.

That being said, even showing the right click menu can be remapped to another click-binding through Clique.

Monday, January 4, 2010

Blue Buttons: Making Your Interface look "Cool"

I recently posted a new "mod" that some folks on wowinterface.com are thoroughly enjoying. I hesitate to call it a mod, however, because there's no code, no AddOn to enable or disable, and the amount it interacts with the rest of the interface is minimal.

What is it? Blue Buttons.

Less of a mod and more of a skin, Blue Buttons simply provides a host of textures that skin the blizzard interface buttons to be a different color. I've long detested the "angsty red", as OarisJM posted, and liked the idea of changing the skin to be something different. I'd sifted through a handful of UI compilations at one point in search of a skin for the entire interface, but what I found were either incomplete panel skins or button skins that looked out of place against the rest of the UI textures.

So I set out with a simple goal: skin the in game interface buttons to be blue, like those found on the login screen. The solution is rather simple, and can be accomplished easily with just a few free tools. My version of the blue buttons is posted at the link above, ready for download, but what if you want the buttons to be green? or orange for cataclysm?

The following tutorial will show you how.

First, you'll need to download a few Programs:
  • Custom UI ToolKit: This is Blizzard's own custom UI toolkit, although it's not so much a toolkit as a set of resource files. Once you download it, run the installer and tell it to install the interface art. You can have it install the interface data as well if you like, but those files are not necessary for this tutorial.
  • BLP2PNG: Blizzard uses the file extension blp for it's textures, but this isn't an easily edited format, so to convert the files into something we'll be able to edit we need this command line software. It come in a zip file and doesn't need to be installed. Simply extract the folder to some place you can get to easily like your desktop. NOTE: If you are working on a system whose desktop does not reside on the hard drive(for instance if you are on a computer that is part of a domain and uses roaming profiles) you'll want to place this in a location on the hard drive like the root of your C: or system drive.
  • Paint Shop Pro free trial: This is the software we'll use to change the color of the buttons. It is a paid program but offers a free 30 day trial. I personally own my copy and have found many miscellaneous uses for it over the years. If you have another photo editing suite that has a color changer tool you may be able to use it instead, just make sure it will change a range of color in a region and not only one contiguous shade.
Once you have all those things go to your WoW directory and you should find an interface art folder that the Custom UI Toolkit left for you.

Inside that folder open the BUTTONS folder and copy the file named UI-Panel-Button-Up.blp to the folder with the BLPConverter in it.

Next, right click a blank space in the same folder and create a new text file named whatever you like (for this one I use the file name 'topng' since this batch file will convert textures from the blp format to the editable png format). Open the text file and type in the following:

BLPCONVERTER -m UI-Panel-Button-Up.blp

Then save the file as a batch file. To do so, go to File -> Save As. In the save dialog box change the file type to all files and put the extension .bat at the end of the file name.

Once you've got the batch file in your BLP Converter folder double click it and it will briefly flash a command line window as it performs the conversion. Once the command line window disappears you should see a new file in your BLP Converter folder. This is the file we can now edit in Paint Shop Pro.

Next, open the new PNG file in Paint Shop Pro and use the scroll wheel to zoom in on it. Choose the color changer tool from the toolbox (if you can't find a color changer tool it shares a button with the bucket flood fill tool; mousover the bucket icon and click the arrow beside it to get a drop down and select the color changer tool).

Now, with the color changer tool selected you can click on the red background to change the color of the button. Make sure to set your foreground color on the upper right corner of the screen. The RGB values I use for the Blue Buttons are: red 38, green 66, blue 143. If you accidentally color the wrong section the key combination ctrl+z is a quick way to undo your last change. As a side note when editing the remaining textures later on, I came across a texture or two that didn't cooperate with the color changer tool as well. For these textures you may have to experiment with coloring different regions of the image to get the desired effect.

Feel free to play around with different colors but keep in mind that any text placed over the button will come up yellow, so if you use the wrong color you may not be able to see what the button actually says! Once you're satisfied with how your new button looks save the file.

The next step is to make another batch file just like the one above with one exception: change the .blp extension to .png so your new batch file should look like this:

BLPCONVERTER -m UI-Panel-Button-Up.png

I name this one 'toblp'. Regardless of what you name your batch file, make sure to get the old blp file out of the folder before you convert (to prevent corruption of the file) by either deleting it or, preferably, moving it to another folder for backup purposes.

That's it!

Now that you've successfully skinned the button you can add it to your interface. To do so, copy it it your WoW directory under Interface\Buttons. If the folder is not there go ahead and create it. What happens in game is that WoW loads and extracts all these textures from it's MPQ files to a hidden directory in Interface\Buttons. You can't see these directories, but while the game is loaded they are effectively there. By creating a skinned button with the same name and placing it in the same directory our skinned button takes precedence over the default textures. This works for any texture you can find in the interface art folder created by the Custom UI Toolkit.

OK, so I lied. That's not completely 'it'. There are actually a ton of files you would need to skin like above to get the desired effect on all the UI buttons. Conveniently enough, all of the buttons that you'd need to skin are located in the same Buttons folder in interface art:

CancelButton-Down.blp
CancelButton-Highlight.blp
CancelButton-Up.blp
UI-DialogBox-Button-Down.blp
UI-DialogBox-Button-Highlight.blp
UI-DialogBox-Button-Up.blp
UI-MinusButton-Down.blp
UI-MinusButton-Up.blp
UI-Panel-BiggerButton-Down.blp
UI-Panel-BiggerButton-Up.blp
UI-Panel-Button-Down.blp
UI-Panel-Button-Highlight.blp
UI-Panel-Button-Up.blp
UI-Panel-CollapseButton-Down.blp
UI-Panel-CollapseButton-Up.blp
UI-Panel-ExpandButton-Down.blp
UI-Panel-ExpandButton-Up.blp
UI-Panel-HideButton-Down.blp
UI-Panel-HideButton-Up.blp
UI-Panel-MinimizeButton-Down.blp
UI-Panel-MinimizeButton-Highlight.blp
UI-Panel-MinimizeButton-Up.blp
UI-Panel-QuestHideButton.blp
UI-Panel-SmallerButton-Down.blp
UI-Panel-SmallerButton-Up.blp
UI-PlusButton-Down.blp
UI-PlusButton-Hilight.blp
UI-PlusButton-Up.blp
UI-ScrollBar-ScrollDownButton-Highlight.blp
UI-ScrollBar-ScrollUpButton-Highlight.blp

Additionally, you'll need to edit your batch files (right click the batch file icon -> Edit) in order to convert the entirety of the files for skinning. You can add as many files as you want for skinning with the same batch file, simply tack another name on to the end of the line with a space in between each file name. For ease of conversion I'm including the full batch files i use below for your copy and pasting pleasure. Happy skinning!

toblp.bat

BLPCONVERTER -m CancelButton-Down.png CancelButton-Highlight.png CancelButton-Up.png UI-DialogBox-Button-Down.png UI-DialogBox-Button-Highlight.png UI-DialogBox-Button-Up.png UI-MinusButton-Down.png UI-MinusButton-Up.png UI-Panel-BiggerButton-Down.png UI-Panel-BiggerButton-Up.png UI-Panel-Button-Down.png UI-Panel-Button-Highlight.png UI-Panel-Button-Up.png UI-Panel-CollapseButton-Down.png UI-Panel-CollapseButton-Up.png UI-Panel-ExpandButton-Down.png UI-Panel-ExpandButton-Up.png UI-Panel-HideButton-Down.png UI-Panel-HideButton-Up.png UI-Panel-MinimizeButton-Down.png UI-Panel-MinimizeButton-Highlight.png UI-Panel-MinimizeButton-Up.png UI-Panel-QuestHideButton.png UI-Panel-SmallerButton-Down.png UI-Panel-SmallerButton-Up.png UI-PlusButton-Down.png UI-PlusButton-Hilight.png UI-PlusButton-Up.png UI-ScrollBar-ScrollDownButton-Highlight.png UI-ScrollBar-ScrollUpButton-Highlight.png

topng.bat

BLPCONVERTER -m CancelButton-Down.blp CancelButton-Highlight.blp CancelButton-Up.blp UI-DialogBox-Button-Down.blp UI-DialogBox-Button-Highlight.blp UI-DialogBox-Button-Up.blp UI-MinusButton-Down.blp UI-MinusButton-Up.blp UI-Panel-BiggerButton-Down.blp UI-Panel-BiggerButton-Up.blp UI-Panel-Button-Down.blp UI-Panel-Button-Highlight.blp UI-Panel-Button-Up.blp UI-Panel-CollapseButton-Down.blp UI-Panel-CollapseButton-Up.blp UI-Panel-ExpandButton-Down.blp UI-Panel-ExpandButton-Up.blp UI-Panel-HideButton-Down.blp UI-Panel-HideButton-Up.blp UI-Panel-MinimizeButton-Down.blp UI-Panel-MinimizeButton-Highlight.blp UI-Panel-MinimizeButton-Up.blp UI-Panel-QuestHideButton.blp UI-Panel-SmallerButton-Down.blp UI-Panel-SmallerButton-Up.blp UI-PlusButton-Down.blp UI-PlusButton-Hilight.blp UI-PlusButton-Up.blp UI-ScrollBar-ScrollDownButton-Highlight.blp UI-ScrollBar-ScrollUpButton-Highlight.blp

Thursday, September 24, 2009

Hello World! - Your First AddOn

It's no secret that I'm a UI nut. I redesign my UI constantly, trying out new mods that will help me react faster, make the UI look more streamlined or just reduce the lag my UI imposes on my computer. One thing that may not be as well known is that I run my own personal AddOn that isn't published on it's own anywhere to help accomplish many trivial things that I don't want to download a bloated AddOn to do.

This AddOn is called OobieUtil and it does everything for me from automatically repairing my gear to rewriting my bandage macro to use the highest bandage available and automatically accepting invites from the guild leader during raid times.

OobieUtil does next to nothing graphically speaking, but it keeps my UI running smoothly - like engine oil as it were. I code into this mod many repetitive or convoluted procedures that clutter up the UI, distract me from the game or just plain annoy me.

To me, OobieUtil is as indispensable as DeadlyBossMods or a good action bar AddOn - I can't imagine playing without it. With a little inscturction anybody can accomplish much of what I do in my utility AddOn, it just takes a bit of copy/paste action and the right resources.

In this first tutorial I'll go over the basics of what you need for an AddOn... the basic infrastructure that you'll need to start coding modifications into your UI to streamline it. Here are some examples of things I do with this utility:

OobieUtil
  • Provides notifications when my character is running low on ammunition i.e. Hunter ammo pouch or Warlock soul bag is below a certain percent full.
  • Rewrites a bandage macro to use the highest available bandage. All characters share the same macro and it's automatically rewritten on character changes and inventory updates.
  • Rewrites an assist macro via a slash command - more advanced version scans a party and automatically find the tank and rewrites the macro.
  • Automatically watches a faction you've recently gained reputation with.
  • Automatically repairs gear at a vendor using guild funds if the option is available.
  • Rewrites a macro that will equip a lance or the weapon equipped at the time the lance was picked up. Knows which lance you picked up and adjusts the macro accordingly.
My current iteration of the utility does more than the above, but these are examples of some repetitive tasks that can be accomplished with just a little knowledge. And without further adieu here is a step by step guide to creating your first AddOn...

Note: This tutorial is for Windows PCs, though AddOns for Mac follow the same format some specific instructions in terms of how you interact with your OS may not translate properly.

HelloWorld

If you already know a bit about programming chances are that you've made a "Hello World" program before. It's generally the first program written when learning a new language - but don't let that intimidate you. There are a small handful of programming techniques that will help accomplishing certain tasks in an AddOn but for the most part the WoW API is very user friendly and a great deal of things can be accomplished without advanced programming techniques.

For this tutorial, however, I won't be talking about any techniques, just the framework needed for an AddOn.

The first step is to create a folder for your AddOn. Whatever name you use for the folder will be the name of the AddOn, but for this tutorial we'll stick with 'HelloWorld'.

Next you'll want to open Notepad or another text editor of your choice. Stay away from Office products when editing AddOn files, though. They tend to add unnecessary formatting tags that could cause your AddOn to not work properly. My own personal favorite is Notepad++.

Type or copy/paste the following into your text editor of choice:
## Interface: 30200
## Title: HelloWorld

HelloWorld.lua
Once you have this much typed in save the file with the name 'HelloWorld.toc' inside the folder we made earlier. Before you save make sure to change drop down menu below the file name box to say 'All Files' otherwise you may end up accidentally saving the file with an extra file extension, which WoW will not know what to do with.

Next, open a new text file and type in the following:
print("Hello World!")
Once that's done save the file in the same folder with the name 'HelloWorld.lua'.

That's it! Make sure the AddOn folder is nestled into your AddOns directory along with the other mods you use and log in to the game, the end result is that the words in quotes are printed to the chat window. Generally this is a technique used when a mod author wants to post a message to chat that the AddOn has been loaded.

For the AddOn to do anything really meaningful in the game world you need to get into registering and handling events but that, dear reader, is for another tutorial.


Monday, August 24, 2009

PowerAuras, the Best AddOn You've Never Used!

Some time back I was doing research for the boss Prime has been stuck on (and is still stuck on) for the past couple months: Yogg-Saron. Now that the new raid is out we've been getting even less time with this old God and our attempts lately have been... well... see for yourself.


To be fair though, that was a wipe and we were running around purposefully tapping the clouds to see how many we could spawn at once! We are actually finally making solid progress on the boss, which makes me happy.

But I digress. In the video I watched, there was an AddOn that periodically flashed on screen that caught my eye. Here is the video in question, and the flash I'm talking about is the red swath that periodically frames the person filming at around 1:55.



Meghan helped me identify what was going on, since she also plays a mage named Fawynd. It turns out the mage in the video was proccing free pyroblasts and the indicator was meant to warn her so she could react without having to watch a buff list like a hawk.

The AddOn(mod) providing these warnings was called PowerAuras, and it can be found here.

So I went about setting these up on a couple of my characters. The menus weren't exactly user friendly but with a little exploration I was quickly able to figure them out. The end result is that I can focus more of my attention on what is going on in the game and less on my interface.

For my shaman, I set up a blue indicator midscreen to warn me when my mana regeneration buff, Water Shield, was inactive and a smaller fiery indicator on top of my screen when my weapon was no longer buffed with Flametongue weapon. I got even better results with my death knight tank, setting up a large indicator for when Rune Strike was usable, when a free Howling Blast procced and another to warn me about when Horn of Winter wasn't active much like the Flametongue warning for my shaman.

The uses are endless, really. You can configure them to warn you about anything from being stunned or silenced to when valuable procs are active like Clearcasting or a trinket buff. The most creative of uses I've seen was posted in the UI section of the official World of Warcraft forums.

If you've ever played Gears of War you'll recognize what he did with PowerAuras in the following image links:

Light Damage
Moderate Damage
Heavy Damage
Dead

The different indicators were displays of how much damage the player had taken. This would be an excellent means of tracking health without having to constantly glance back down at your unit frames. Odds are slim that a player would miss that giant red splotch midscreen on low health, but it can be quite a surprise when you get your face planted in the dirt after neglecting to check a player frame tucked away in a far corner of the screen.

I feel that the only real drawback to this mod is the configuration. It has an amazing number of options packed into a small space and it can be offputting in the beginning, but once you get it set up properly it can be one of the most unintrusive and informative mods at your fingertips. To that end, I've set up a short tutorial below.

Tracking a Buff With PowerAuras

Once PowerAuras is installed and you've loaded up the game, type in the slash command /powa to open the list of effects. You'll see that I've already set up a couple for my shaman but I'll be setting up another here to display when my Water Shield buff is not active. This is a simple and easy use for PowerAuras as Water Shield is a buff I like to have on myself as much as possible. The spell itself does have a visual cue in game in the form of an orb of water orbiting my character, but in the heat of combat when the spells are flyin' it's much easier to see a PowerAuras indicator than the in game orbs.


To create a new effect click the new button.

The options can be confusing at first, but I promise there isn't much here that isn't some other AddOn's configuration menu. Whenever you are at this window it will only affect a single effect, so you'll need to edit each one individually to your tastes.

Effects are also saved on a per-character basis so you won't see a warning you set up on your mage clogging your screen on your rogue.

Focusing on only the top half of the menu first, I'll pick a texture. You can adjust the highlighted slider to scroll through the available textures or, for more advanced users, set your own textures for use. The textures have the .tga extension and can be edited in GIMP.


For this example I'm going to use a shield texture, since it will be the Water Shield Buff. I'll also adjust the color to blue to represent water.

On the bottom half of the options menu is where you link the texture to the correct conditions. For this example I'll set it to display when the buff called Water Shield is not active.

And the end result is that when the Water Shield buff is active nothing is displayed. But when the buff needs to be re-applied a blue shield centered on the screen will display. This will be an easy visual cue during a heated battle that my mana regeneration buff has faded and should be recast when I have a free second to do so.