LATEST NEWS

WoW-Pro Addon: How to Contribute

img
Jan
09
You are currently viewing a Wiki Page. It can be edited by anyone who is currently logged in. Before you change anything, please make sure to read our FAQ, the editing guidelines of this post as well as its comments.

Table of Contents


What is this about?


For a long time now, Jame has been working tirelessly with the Wow-pro community to create some awesome guides. The latest and in my opinion most innovative addition to the site was made earlier in this month (Jan 2009) by Jahwo, who wrote a wonderful addon to support the guides. This is a hugely exciting thing for me, and I’m sure for others at wow-pro, BUT! Stop for a moment and imagine.

Jame has been writting guides for years. There are pages and pages of them, and all of that content has to be added to the addon, line by line, with coordinates. That is a massive job! Hours and hours of work! Wouldn’t it be great if we could thank both Jame and Jahwo for their contributions by taking some of the weight off and doing some of the work?

So yeah, long story short, I am going to write a short guide that will enable people to help plug the existing guides into the addon in an organised and uniform fashion.


Getting Started


First of all, you should install the addon from here. Play around in one of the finished guides and get a rough idea of how the addon is going to work. 1 minute of playing there will tell you more than 10 minutes of my typing here ever would, so go do that.


Using Notepad++ to edit the addon


Notepad++ is a useful tool for editing code. You can create macros so you can more easily enter color codes for the addon (and anything else really). It’s certainly not required to edit the addon, but it is free and some people may find it helpful.

To get Notepad++, click here, it should start the download for you. For more information about the program, check out it’s website.

Once downloaded, install the program. You can now edit files with it – right click one of Jame’s addon’s files. You should see an “Edit with Notepad++” option. Use this to open the file in Notepad++.

Now comes the important part: making macros. To make macros, you “record” them. This means you CANNOT use cut and paste to do this – doing so will make your macro the paste function instead of your desired color code. Here are the steps to making a macro:

  1. To record a macro, either click the little round red button in the top control bar, or use the macro menu and click “Start Recording”.
  2. Anywhere in the guide, type the color code you want to record, and ONLY that code.
  3. Click the little black square on the control bar, or go to Macro –> Stop Recording.
  4. Click the save macro icon (has a little calculator and a disk) or go to Macro –> Save current recorded macro.
  5. A box will pop up. Enter the name you want the macro to have (I use “Quest” for the yellow, and so forth). Choose a way to activate the macro – I suggest against using CTRL since a lot of built in functions use that. I always use ALT and the letter at the beginning of the macro name.
  6. Click “Okay” when you have it set up. Your macro will now appear in the Macro menu and you can use it using the hotkey you set up.

Repeat this for all the color codes, I also use one for the end code |r but you don’t need to. Set it up however works best for you.

If you make a mistake and need to delete a macro for some reason, Got to Settings –> Shortcut Mapper. There should be a tab for macros. Right click the macro to edit or delete it.

Tip: I always found it helpful to record the macro, that it first cuts out the selected text(Ctrl+X), then writes the color code and pastes(Ctrl+V) the text again. Like that you can first write the unformatted text and quickly select->macro format it afterwards.


Create a new Guide


Inside the addon folder, you will find a folder called “Guides”. Inside this folder you will find lots and the actual guides in a .lua file format. Also there is a file called “Guides.xml”, this is the table of contents, where all the guides for the addon have to be registered.

If you want to add a guide section, then do this:

  • Create a new .lua file, with a filename that does describe what your guideis about. For example “JameHordeDragonblight.lua” for Jame’s Horde Leveling Guide in Dragonblight.Now you have to add the following lines into this file:
    example = {
    
    guide = {
    	
    },
    
    type = "alliance",
    header = "example"
    }
    
    WP_AddGuide(example)	
    

    The things colored in red should be the same as the filename without the .lua. For example JameHordeDragonblight if it’s Jame’s Dragonblight guide.

    You can choose a guide type, this is colored in blue. There are 4 types: alliance, horde, both and other

    The header,i n green, is the actual name of the guide which will be shown in the addon.

  • Add the guide to the table of contents. Just open the Guides.xml file. Add the following line between the and tags.
    <script file="example.lua"/>
    

    The filename in red has to be the filename of your guide file.


Create new steps


A step in the guide looks like this:

{"Text",0.1234,0.5678},

Between the quotation marks is the place, where you can add the description of the step. There are many ways to format this text, which are described further down.

0.1234 represents the x-coordinate of the step.
0.5678 represents the y-coordinate of the step.

Note: It is important to know that the coordinates are not the ones you usually see in addons. Those are the ones blizzard is actually using, which go from 0 to 1. So all you have to do is divide your standard coordinate by 100 to get the one you can use here.

Example: If you want to add the coordinate (43.22|33.96) with the text “Go here” it would look like this:

{"Go here",0.4322,0.3396},

You have to put those steps between the curly brackets after guide =
I think an example shows it best:

guide = {
	{"Step 1",0.1212,0.3434},
	{"Step 2",0.5656,0.7878},
},


Formatting



General

The formatting of the step texts is done by BB-Code like tags. Those look something like this: [tag]
Some of those tags can be opened and closed. This means everything that comes after the opening-tag will be affected until the closing-tag comes. This will look something like this [tag]Text[/tag]

Note: To generate a new line you have to use the code |n . It is not possible to make new lines by pressing enter!



Colors

Colors can generally be created by the tags

[color=RRGGBB]Text[/color] (without spaces)

The color must be given in hexadecimal notation. You can find more information about this here.

There are a few predefined colors, which are inspired by Jame’s Leveling Guides:

  • [q ] [/q ] or [quest] [/quest]
  • [l] [/l] or [location] [/location]
  • [o] [/o] or [objective] [/objective]
  • [i ] [/i ] or
  • [n] [/n] or [npc] [/npc]


Icons

You can add little icons into your guides, to give it a more professional and structured look:

[G] – Get Quest
This is a ! to represent an available quest. Use it at the start of steps that pick up new quests.
[T] – Turn in
This is a ? to represent a completed quest ready to turn in. Use it in steps that turn in quests.
[K] – Kill
This is the crossed-swords icon. Use it when you tell people to go and kill stuff.
[M] – Move
This is the little flight icon and is used to tell you to go somewhere, either by foot, mounted or on a flightpoint taxi.
[L] – Loot
This is the little bag icon, and should be used when you ask people to loot stuff.
[U] – Use
This is a little cog. Use it to show that an item has to be used, for example, items that begin a quest, or items that are used on mobs, corpses, weakened mobs etc for certain quests.
[S] – Speak
This is a little speech bubble. Use it whenever you have to talk to an NPC and either [G], [T] or [M] are inappropriate. For example, when you have to listen to an NPC’s “story” for a quest update, or talk to them to initiate some kind of script.
[H] – Hearthstone
This is a little hearthstone. Use it whenever you have to use the hearthstone or when you need to bind somehwere.


Names of flight paths



Eastern Kingdoms

  • Arathi Highlands
    • Hammerfall – Horde
    • Regufe Pointe – Alliance
  • Badlands
    • Kargath – Horde
  • Blasted Lands
    • Nethergarde Keep – Alliance
  • Burning Steppes
    • Flame Crest – Horde
    • Morgan’s Vigil – Alliance
  • Dun Morogh
    • Ironforge – Alliance
  • Duskwood
    • Darkshire – Alliance
  • Eastern Plaguelands
    • Acherus: The Ebon Hold – Both
    • Light’s Hope Chapel – Both
  • Elwynn Forest
    • Stormwind – Alliance
  • Eversong Woods
    • Silvermoon – Horde
  • Ghostlands
    • Tranquillien – Horde
    • Zul’Aman – Both
  • Hillsbrad Foothills
    • Southshore – Alliance
    • Tarren Mill – Horde
  • Hinterlands
    • Aerie Peak – Alliance
    • Revantusk Village – Horde
  • Loch Modan
    • Thelsamar – Alliance
  • Redridge Mountains
    • Lakeshire – Alliance
  • Searing Gorge
    • Thorium Point – Both
  • Silverpine Forest
    • The Sepulcher – Horde
  • Stranglethorn Vale
    • Booty Bay – Both
    • Grom’Gol – Horde
    • Rebel Camp – Alliance
  • Swamp of Sorrows
    • Stonard – Horde
  • Tirisfal Glades
    • Undercity – Horde
  • Western Plaguelands
    • Chillwind Camp – Alliance
  • Westfall
    • Sentinell Hill – Alliance
  • Wetlands
    • Menethil Harbor – Alliance


Kalimdor

  • Ashenvale
    • Astranaar – Alliance
    • Forest Song – Alliance
    • Splintertree Post – Horde
    • Zoram’Gar Outpost – Horde
  • Azshara
    • Talrendis Point – Alliance
    • Valormok – Horde
  • Azuremyst Isle
    • The Exodar – Alliance
  • Barrens
    • Camp Taurajo – Horde
    • Crossroads – Horde
    • Ratchet – Both
  • Bloodmyst Isle
    • Blood Watch – Alliance
  • Darkshore
    • Auberdine – Alliance
  • Desolace
    • Nijel’s Point – Alliance
    • Shadowprey Village – Horde
  • Durotar
    • Orgrimmar – Horde
  • Dustwallow Marsh
    • Brackenwall Village – Horde
    • Mudsprocket – Both
    • Theramore – Alliance
  • Felwood
    • Bloodvenom Post – Horde
    • Emerald Sanctuary – Both
    • Talonbranch Glade – Alliance
  • Feralas
    • Camp Mojache – Horde
    • Feathermoon Stronghold – Alliance
    • Thalanaar – Alliance
  • Moonglade
    • Moonglade – Both
  • Mulgore
    • Thunder Bluff – Horde
  • Silithus
    • Cenarion Hold – Both
  • Stonetalon Mountains
    • Stonetalon Peak – Alliance
    • Sun Rock Retreat – Horde
  • Tanaris
    • Gadgetzan – Both
  • Teldrassil
    • Rut’theran Village – Alliance
  • Thousand Needles
    • Freewind Post – Horde
  • Un’Goro Crater
    • Marshal’s Refuge – Both
  • Winterspring
    • Everlook – Both


Outland

  • Blade’s Edge Mountains
    • Evergrove – Both
    • Mok’Nathal Village – Horde
    • Sylvanaar – Alliance
    • Thunderlord Stronghold – Horde
    • Toshley’s Station – Alliance
  • Hellfire Peninsula
    • Falcon Watch – Horde
    • Honor Hold – Alliance
    • Shatter Point – Alliance
    • Spinebreaker Post – Horde
    • Temple of Telhamat – Alliance
    • Thrallmar – Horde
    • The Stair of Destiny – Both
  • Nagrand
    • Garadar – Horde
    • Telaar – Alliance
  • Netherstorm
    • Area 52 – Both
    • Cosmowrench – Both
    • The Stormspire – Both
  • Shadowmoon Valley
    • Altar of Sha’tar – Both, Aldor
    • Sanctum of the Stars – Both, Scryer
    • Shadowmoon Village – Horde
    • Wildhammer Strongold – Alliance
  • Terokkar Forest
    • Allerian Stronghold – Alliance
    • Shattrath – Both
    • Stonebreaker Hold – Horde
  • Zangarmarsh
    • Orebor Harborage – Alliance
    • Swamprat Post – Horde
    • Telredor – Alliance
    • Zabra’jin – Horde


Northrend

  • Borean Tundra
    • Amber Ledge – Both
    • Bor’gorok Outpost – Horde
    • Fizzcrank Airstrip – Alliance
    • Tanuka’le Village – Horde
    • Transitus Shield – Both
    • Unu’pe – Both
    • Valiance Keep – Alliance
    • Warsong Hold – Horde
  • Dalaran
    • Dalaran – Both
  • Dragonblight
    • Agmar’s Hammer – Horde
    • Fordragon Hold – Alliance
    • Kor’kron Vanguard – Horde
    • Moa’ki Harbor – Both
    • Stars’ Rest – Alliance
    • Venomspite – Horde
    • Wintergarde Keep – Alliance
    • Wyrmrest Temple – Both
  • Grizzly Hills
    • Amberpine Lodge – Alliance
    • Camp Oneqwah – Horde
    • Conquest Hold – Horde
    • Westfall Brigade Encampment – Alliance
  • Howling Fjord
    • Apothecary Camp – Horde
    • Camp Winterhoof – Horde
    • Fort Wildervar – Alliance
    • Kamagua – Both
    • New Agamand – Horde
    • Valgarde – Alliance
    • Vengeance Landing – Horde
    • Westguard Keep – Alliance
  • Icecrown
    • The Argent Vanguard – Alliance
  • Sholazar Basin
    • Nesingwary Base Camp – Both
    • River’s Heart – Alliance
  • Zul’Drak
    • Ebon Watch – Both
    • Gundrak – Horde
    • Light’s Breach – Both
    • The Argent Stand – Both
    • Zim’Torga – Both


Prerequisites for steps


A new feature in the addon is prerequisites for certain steps; these steps will be shown only if the prerequisites are met, otherwise the step will be skipped. This is mainly for being able to add class and race-specific quests into the guides, but a feature also exists that allows for checking of a certain level.

The following checks are available:

<checkClass=Class Name>
<checkNotClass=Class Name>
<checkRace=Race Name>
<checkNotRace=Race Name>
<checkLevel=Level>
<checkLevel=Level=-x>
<checkLevel=Level=x>
<checkInn=Location>
<checkNotInn=Location>
<checkFlight=Location>
<checkNotFlight=Location>
<checkRepair>
<checkNotRepair>
<checkQuest=Quest>
<checkQuest=Quest=Step>
<checkRep=Faction=Value>
<checkNotRep=Faction=Value>
<checkOnQuest=Quest>
<checkNotOnQuest=Quest>
<checkSkill=Skill>
<checkSkill=Skill=Rank>
<checkNotSkill=Skill>
<checkNotSkill=Skill=Rank>
<checkZone=Zone>
<checkNotZone=Zone>
  • checkClass is available if the class of the player is Class Name
  • checkNotClass is available if the class of the player is not Class Name
  • checkRace is available if the race of the player is Race Name
  • checkNotRace is available if the race of the player is not Race Name
  • checkLevel is a bit more complex; what it checks for is dependent on the version used, although all versions are available if the player has not reached that level/xp yet. The first version just checks if the player has reached a certain level, the second checks if the player has reached enough experience to be x xp away from reaching the level and finally, the third version checks if the player has got x xp over the change of level. Remember that these lines are triggered if the player hasn’t reached the point of check!
  • checkInn checks if the hearthstone is bound to the inn at Location
  • checkNotInn checks if the hearthstone is not bound to the inn at Location
  • checkFlight checks if the flight path to Location is known
  • checkNotFlight checks if the flight path to Location is not known
  • checkRepair checks if the equipped items need to be repaired
  • checkNotRepair checks if the equipped items do not need to be repaired
  • checkQuest checks if the Quest still needs to be completed, or with the optional Step if that step of the quest still needs to be completed
  • checkRep checks if the reputation of the Faction is at least Value
  • checkNotRep checks if the reputation of the Faction is less than Value
  • checkOnQuest checks if the character is on the quest
  • checkNotOnQuest checks if the character is not on the quest
  • checkSkill checks if the character has the skill (of at least rank)
  • checkNotSkill checks if the character doesn’t have the skill or if it is not at least of rank
  • checkZone checks if the character currently is in the zone Zone
  • checkNotZone checks if the character currently is not in the zone Zone


Auto-complete conditions


The addon allows you to add conditions to every step and when those conditions are fulfilled the addon automatically moves to the next step.
Those conditions are, again, added by tags, but this time they look like this:

<regGet=A Threat Within>

This example registers (reg) a condition, that is fulfilled by the time the user gets (Get) the quest A Threat Within

Currently there are 9 possible conditions:

<regQuest=Quest Name>
<regQuest=Quest Name=x>
<regGet=Quest Name>
<regTurn=Quest Name>
<regCoords>
<regLoot=Item Name=x>
<regKill=Mob Name=x>
<regZone=Area Name>
<regZone=Subzone Name>
<regZone=Area Name:Subzone Name>
<regBind=Location>
<regXP=Level>
<regXP=Level=-x>
<regXP=Level=x>
<regFlight=Location>
<regRepair>
<regSpeak=NPC Name>
<regTrain>
<regFaction=Faction=x>
<regSkill=Skill>
<regSkill=Skill=x>
  • regQuest is finished on comleting all objectives of the Quest called “Quest Name
  • regQuest (the second one) is finished on completing the xst objective of the Quest called “Quest Name“. (In the Questlog the first objective is the top one)
  • regGet is finished on getting the Quest called “Quest Name
  • regTurn is finished on turning in the Quest called “Quest Name
  • regCoords is finished on reaching the coordinates given for the step
  • regLoot is finished on looting x Items called “Item Name” (x a is number!)
  • regKill is finished on killing x Mobs called “Mob Name” (x a is number!)
  • regZone is finished on entering the area Area Name, eg. Stormwind City.
  • regZone (the second one) is finished on entering the zone Subzone Name, eg. Brackwell’s Pumpkin Patch.
  • regZone (the third one) is finished on entering the zone Subzone Name in the area Area Name, which can be used to differentiate with The Dead Scar between the one in Eversong Woods and the one in the Ghostlands.
  • regBind is finished on binding at the Location.
  • regXP is finished on reaching level Level.
  • regXP (the second one) is finished on having at most x xp to go to level Level.
  • regXP (the third one) is finsihed on having at least x xp while at least level Level.
  • regFlight is finished on actually opening the flight window when in Location.
  • regRepair is finished on the equipped items being in full repair.
  • regSpeak is finished on speaking with the NPC.
  • regTrain is finished on the training UI window being opened.
  • regFaction is finished when the reputation of Faction is at least x.
  • regSkill is finished when the player has the skill Skill (of at least rank x).

You can add those tags anywhere in the text and you can combine them as much as you want.

Example: We want to go to the next step, after the following objectives:

10 Bears killed
15 Boars killed
8 Meat looted
and Coord (33.44|56.33)

It’s a bit more than you would usually use, but it’s just an example So this would look like this:

{"Kill 10 Bears|nKill 10 Boars|nLoot 8 Meat|nGo to (33.44|56.33) 
<regKill=Bear=10> <regKill=Boar=10> <regLoot=Meat=8> <regCoords>", 0.3344, 0.5633]},

(Remember that you are not allowed to have a newline in your code. I had to do this so it doesn’t kill the page )

Another example, with prerequisites

Say that it’s necessary that the player is at most 850 experience away from level 16 after a certain part of the guide; maybe because you’re far away from a place to train for the most of the time, and now you’re getting close to the trainer and want to make sure the player can train. Let’s suppose you’ve brought the player to a good place for some grinding, as well.

Now you can use code like the following to make sure the player has enough level and experience to be able to follow the guide onward:

{"<checkLevel=16=-850>[K]Grind on the [o]Objective Monsters[/o], until you
are 850 experience points away from reaching level 16.
<regXP=16=-850>",0.,0.}

(Again remember that you are not allowed to have newlines in the code, it’s just necessary on here so that the page won’t be stretched all out of proportions.)

Example of checkRepair, regRepair and regSpeak

{"<checkNotRepair>Sell junk at [n]Jainthess Thelryn[/n].<regSpeak=Jainthess Thelryn>",0.372,0.19},
{"<checkRepair>Repair and sell junk at [n]Jainthess Thelryn[/n].<regRepair>",0.372,0.19},

Note that the order of the two lines is important; if the first line is the one with checkRepair, then both lines will be shown, as the repair check of the second line is triggered when everything is repaired already.


Hosho’s Guide


Revamped with updated info by Gethe

Step 1. Open the .lua file for the guide you wish to add using your favourite text editor. (ie: editplus or notepad for me) I will use the 60-65 horde guide in this example. It will look like this (or similar to this)

example = {

guide = {
	{"Step 1",0.,0.},
	{"Step 2",0.,0.},
},

type = "alliance", -- type can be "alliance", "horde", "both" or "other"
header = "Example Guide" -- The name of the guide that will be shown in the addon
}

WP_AdGuide(example) -- Registers the guide in the addon!

Step 2. Before we start converting the guide we need to change every instance of the word “example” with the name of the guide you are working on, as well as putting in the appropriate type for the guide. For this guide we will be using Jame’s Horde 60-65 guide. This is what our guide looks like after the changes(in bold):

JameHorde6065 = {

guide = {
	{"Step 1",0.,0.},
	{"Step 2",0.,0.},
},

type = "horde", -- type can be "alliance", "horde", "both" or "other"
header = "Jame’s Horde 60-65" -- The name of the guide that will be shown in the addon
}

WP_AdGuide(JameHorde6065) -- Registers the guide in the addon!

Now save the file using the name you used to replace “example”, in this case that would be JameHorde6065.lua. Also, the double hyphens (–) denote a comment and anything after them, on the same line, have no effect on the add-on and can be safely removed if desired.


Step 3. Open the guide in the usual way in your favorite web browser. Read through until you find the first step.

Quote:

Go to the Blasted Lands. Go all the way south in the zone until you find the Dark Portal.
Take the quest [61] Through the Dark Portal from Warlord Dar’toon.

Copy this line.


Step 4. Go back to example.lua file. Find where it says “Step 1” and paste the step inside the quotes so that they look like this:

JameHorde6065 = {

guide = {
	{"Go to the Blasted Lands. Go all the way south in the zone until you find the Dark Portal.
Take the quest [61] Through the Dark Portal from Warlord Dar'toon.",0.,0.},
	{"Step 2",0.,0.},
},

type = "horde",
header = "Jame’s Horde 60-65"
}

WP_AdGuide(JameHorde6065)

The important thing to note is that the }, at the end of the line is still there, I have just moved it onto it’s own line so that it doesn’t get in the way. The } and the , are both important and must remain.

The line “type = …” controls the icon in the middle of the addon’s arrow button. If your guide is a horde guide, set this to “horde”. If it is an alliance guide, set it to “alliance”. If it can be used by both alliance and horde set it to “both”. If it is none of the above set it to “other”. The “Header = …” line controls the header at the top of the addon frame, and should be changed to whatever is appropriate.


Step 5. Now we have a step, but it isn’t a very good one. The biggest thing it is missing is coordinates, but it is also missing the colour and icon information that will really make the addon look professional. Let’s start simple and add coords. So let’s add coords for Warlord Dar’toon, the guy we want to speak to in Blasted Lands.

Head to wowhead. A quick search there tells us that he is at (58.0,55.9). Divide these numbers by 100 to reach the correct number used by blizzard’s map system. The coordinates become (0.58,0.559). Simple! Let’s add these coords into the code, like this:

JameHorde6065 = {

guide = {
	{"Go to the Blasted Lands. Go all the way south in the zone until you find the Dark Portal.
Take the quest [61] Through the Dark Portal from Warlord Dar'toon.",0.58,0.559},
	{"Step 2",0.,0.},
},

type = "horde",
header = "Jame’s Horde 60-65" 
}

WP_AdGuide(JameHorde6065)

BAM! It works. Now let’s jazz it up.


Step 6. These are the colors that are used in the add-on.

Standard Colors

[quest]Quest Name[/quest] will turn things to quest colored text.

[location]Location name[/location] will change the color for places of interest.

[objective]Quest objective[/objective] can be used for mobs you have to kill for a quest.

Item Name Will change the color for items.
Graven’s Note I have found myself using the tag for all clicky items while writing my guide.

[npc]NPC name here[/npc] can be used for NPC’s

[coordinate](0.,0.)[/coordinate] can be used for the display of coordinates

[color=#RRGGBB]text[/color] can be used if you would like to use custom colors

For those that are not familiar with BBCode:

[color=RRGGBB]text goes here[/color]

  • [color=…] tells the addon to change the color of the text.
  • The 6 characters represent normal hex codes for colors, which you can find information about using the internets.
  • The [/color] at the end simply resets the color back to normal.

Step 7. Time to apply what we just learned! Look through the step in your .lua file and pick out any locations, mobs, quests or NPCs and colour them accordingly. What I found in my text was:

  1. Blasted Lands is a location.
  2. [61] Through the Dark Portal is a quest.
  3. Warlord Dar’toon is an NPC.

This gives me..

JameHorde6065 = {

guide = {
	{"Go to the [location]Blasted Lands[/location]. Go all the way south in 
the zone until you find the Dark Portal. Take the quest [quest][61] Through the 
Dark Portal[/quest] from [npc]Warlord Dar'toon[/npc].",0.58,0.559},
	{"Step 2",0.,0.},
},

type = "horde",
header = "Jame’s Horde 60-65"
}

WP_AdGuide(JameHorde6065)

Step 8. Icons!

Icons are a wonderful way to add flavor and a professional look to the addon, and are pretty inspired.

Reference

Update Tags can now also be used to include the icons, to help keep uniformity.

[G]= Get Quest(AvailableQuestIcon)
This is a ! to represent an available quest. Use it at the start of steps that pick up new quests.

[T]= Turn in Quest {ActiveQuestIcon)
This is a ? to represent a completed quest ready to turn in. Use it in steps that turn in quests.

!K or [K]= Kill (battleMasterGossipIcon)
This is the crossed-swords icon. Use it when you tell people to go and kill stuff.

[L]= Loot (VendorGossipIcon)
This is the little bag icon, and should be used when you ask people to loot stuff.

[M]= Move(TaxiGossipIcon)
This is the little flight icon and is used to tell you to go somewhere, either by foot, mounted or on a flightpoint taxi.

[U]= Use (BinderGossipIcon)
This is a little cog. Use it to show that an item has to be used, for example, items that begin a quest, or items that are used on mobs, corpses, weakened mobs etc for certain quests.

[S]= Speak (GossipGossipIcon)
This is a little speech bubble. Use it whenever you have to talk to an NPC and either !G, !T or !M are inappropriate. For example, when you have to listen to an NPC’s “story” for a quest update, or talk to them to initiate some kind of script.

The icons should be added in a similar way to adding colour (that is, without spaces around them, or any other kind of specialness.) You can treat these in a similar way to how you would treat smileys in BBcode.

So plugging those into our code..

  1. [M] to show that we are MOVING to the Blasted Lands.
  2. [M] to show that we are MOVING to the south of the zone.
  3. [G] to show that we are GETTING a quest.
JameHorde6065 = {

guide = {
{"[M]Go to the [location]Blasted Lands[/location]. [M]Go all the way south in 
the zone until you find the Dark Portal.[G]Take the quest [quest][61] Through the 
Dark Portal[/quest] from [npc]Warlord Dar'toon[/npc].",0.58,0.559},
{"Step 2",0.,0.},
},

type = "horde",
header = "Jame’s Horde 60-65"
}

WP_AdGuide(JameHorde6065)

Step 9. THIS STEP IS IMPORTANT.

Read over what you’ve done and think about it. Ideally, play through it and make sure it works 100%. Looking over my first step, is that ok? Well, no. Not really. If you think about it, this step is actually two steps. My first step should actually be to tell people go to the Blasted Lands, and not give coordinates for that objective. Otherwise, their arrow will be pointing to (58.0,55.9) in whichever zone that happen to be in, which isn’t where we want them to go! So let’s get people to the Blasted Lands first.

What changes do we have to make? Well, not much really. Just split the step into two and add icons, curly brackets and commas accordingly.

JameHorde6065 = {

guide = {
	{"[M]Go to the [location]Blasted Lands[/location].",0.,0.},
	{"[M]Go all the way south in the zone until you find the Dark Portal. 
[G]Take the quest [quest][61] Through the Dark Portal[/quest] from [npc]Warlord 
Dar'toon[/npc].",0.58,0.559},
},

type = "horde",
header = "Jame’s Horde 60-65"
}

WP_AdGuide(JameHorde6065)

Step 10. Getting ready for testing!

Find the Guides.xml file and open it in your favorite text editor. It sould look something like this:

<Ui>
	<script file="O_INDEX_GUIDE.lua"/> <!-- do NOT delete this line! -->
	
	<script file="mawhuman112.lua"/>
	<script file="JameHordeDragonblight.lua"/>
	<script file="JameHordeGrizzlyHills.lua"/>
	<script file="JameHordeDeathKnight.lua"/>
	
	<!-- <script file="example.lua"/> -->
</Ui>

Now copy one of the “<script file…>” lines and replace the file name to the name of the guide your converting. This is mine:

<Ui>
	<script file="O_INDEX_GUIDE.lua"/> <!-- do NOT delete this line! -->
	
	<script file="mawhuman112.lua"/>
	<script file="JameHorde6065.lua"/>
	<script file="JameHordeDragonblight.lua"/>
	<script file="JameHordeGrizzlyHills.lua"/>
	<script file="JameHordeDeathKnight.lua"/>
	
	<!-- <script file="example.lua"/> -->
</Ui>

Step 11.Step Completion

The steps that we have are fine right now, but it could be better. By adding a qualifier at the end of a step you can allow the add-on to auto advance to the next step.

This is taken from a comment by Jahwo at the WoW-Pro Add-On page.

Quote:

There are 8 types of those conditions:

– completing a quests’ objectives
– completing one specific quest objective
– getting a quest
– turning a quest in
– looting xx items
– killing xx monsters
– reaching the coordinate
– entering a zone or sub-zone
– binding your hearthstone

the syntax is pretty straightfoward once you’ve seen it, I think:

< regQuest=Quest name> is finished after all objectives for the quest are completed. Use this one instead of regKill, if you want the user to kill xx mobs until a quest is finished.

< regQuest=Quest name=#> This comletes the step when you compete an objective specified by the number.
ex. < regQuest=Quest name=2> will be completed when you complete the second objective.

< regGet=Quest name>

this line registers a get-quest condition. It’s finished if the user get’s the quest with EXACTLY the name after the =.

< regTurn=Quest name> same thing with turn in.

< regLoot=Item name=#> is finsihed after looting the amount after the second equality sign of the item with “Item name”

< regKill=Mob name=#> same thing only with mob names.

< regCoords> is finished if the user is at the coordinates of the step.

< regZone=Zone> This will complete when you enter the specified zone, as seen by the text on you mini-map

< regBind=location> this condition is finished after you set your hearthstone to “location”

Lets see what we can do.

Step one wants us to go to the Blasted Lands so we can set it to advance when we get there.

Step two wants us to pick up a quest so we can set it to advance when we do so.

With that, lets see what we have.

JameHorde6065 = {

guide = {
	{"[M]Go to the [location]Blasted Lands[/location].<regZone=Blasted Lands>",0.,0.},
	{"[M]Go all the way south in the zone until you find the Dark Portal.
[G]Take the quest [quest][61] Through the Dark Portal[/quest] from [npc]Warlord 
Dar'toon[/npc].<regGet=Through the Dark Portal>",0.58,0.559},
},

type = "horde",
header = "Jame’s Horde 60-65"
}

WP_AdGuide(JameHorde6065)

There are also four checks that you can use

<checkClass=Class>
<checkNotClass=Class>
<checkRace=Race>
<checkNotRace=Race>

These tags check if the player has (or has not) the class or race. If this condition is true the step will be shown, else it will be skipped.

Important things to note are:

  • If you want a step to have no coordinates, set the coordinates to “0.,0.”
  • IF you want to take a new line, you can do so using |n at any point in your text.
  • Your syntax is {“STEP TEXT HERE”,0.XX,0.YY}, XX and YY represent coordinates. Note the COMMA at the end.
  • One line of text in the online guide doesn’t mean one step on the addon. Really break it down.
  • Sometimes, the guide tells you to set your hearthstone. MAKE SURE YOU ADD THAT IN THE ADDON. This is for my own personal sanity, as it caught me out on many occasions.

Once you have those basics, you can just about carry on until you get to the end of the guide on the website. Then check it, recheck it, give it to your friends to check, and when it’s done, work out how to get it on here!

Here’s a kinda short example as to how it’s gonna look. Good luck!

JameHorde6065 = {

guide = {
	{"[M]Go to the [location]Blasted Lands[/location].<regZone=Blasted Lands>",0.,0.},
	{"[M]Go all the way south in the zone until you find the Dark Portal.
[G]Take the quest [quest][61] Through the Dark Portal[/quest] from [npc]Warlord 
Dar'toon[/npc].<regGet=Through the Dark Portal>",0.58,0.559},
	{"[M]Zone through the portal.<regCoords>",0.58,0.52},
	{"[T]Turn in [quest][61] Through the Dark Portal[/quest],|n[G]get the 
follow up [quest][61] Arrival in Outland[/quest].
<regGet=Arrival in Outland>",0.874,0.498},
	{"[T][quest][61] Arrival in Outland[/quest],|n[G]get the follow up 
[quest][61] Journey to Thrallmar[/quest].<regGet=Journey to Thrallmar>",0.874,0.482},
	{"[M]Ask the flight master to send you to [location]Thrallmar[/location].",0.,0.},
},

type = "horde",
header = "Jame’s Horde 60-65"
}

WP_AdGuide(JameHorde6065)
  • img
    Jan 30, 2009 @ 18:33 pm

    Another macro that I’ve found usefulAnother macro I’ve found useful is one to put in the base code of the line. The {“”,0.,0.}, to start a new line, then I don’t have to worry about leaving out a comma or something that gives me a headache trying to fix. I personally use alt+v for it, since it’s close to the paste command.

    I hope someone finds this helpful.

  • img
    Jan 30, 2009 @ 9:34 am

    checkFlight/checkNotFlight bugI noticed the same thing last night when I was testing the 21-31 guide. Only after opening a flightmaster window does the AddOn fire correctly on the checkFlight / checkNotFlight.

    If I’m not mistaken this behaviour should happen on all continents (all 4 major FP networks), because the AddOn does not know which FP’s are already known at the beginning of a session (or after a [code]/console reloadUI[/code], which I use quite often during runs :D)

    A simple solution would be to save the known FP’s in a SavedVariables .lua cache as often as possible (per character, just like the guide/step memory currently in use) and load this at start up. Every time a FlightMaster window is openened, this list should get updated with any FP’s newly available.

    (And the opacity should be saved too 😉

    zyzx – Orc Warrior – Wildhammer – Pink n Pwning
    Diskspace – Troll Priest – Wildhammer (guide test char)

  • img
    Jan 30, 2009 @ 2:51 am

    [code][/code] still displayed the step for me even though I have the Auberdine flight path.

    Edit: As soon as I entered Kalimdor, and opened the gossip pane with the flight master, however, the steps with these tags did NOT display. Interesting. And yes, I DID have the flight path already. 😛

  • img
    Jan 29, 2009 @ 10:40 am

    you’re amazingWhahaha lol

    you would have saved me so much headaches 😀

    Don’t worry, I noticed Jawho already added it.

    Thanks!

    zyzx – Orc Warrior – Wildhammer – Pink n Pwning
    Diskspace – Troll Priest – Wildhammer (guide test char)

  • img
    Jan 29, 2009 @ 9:25 am

    OopsieFunny thing: this is already in the addon – I’ve just forgotten to document it on this page!

    You can use [code][/code] and [code][/code], depending on if you want the step to be shown when in a certain zone or when not in it.

    (Since I’m busy irl until the weekend, I likely won’t have the time to actually add it to the documentation until then.)

  • img
    Jan 29, 2009 @ 0:27 am

    I know that feelingThe keyboard I’m on now has a tempermental “N” key. Have to constantly keep checking my spelling.

Leave a Reply

Your email address will not be published.

Archives