Difference between revisions of "DBEditor:Spells"
John adams (talk | contribs) (→New Spell Editor Layout) |
John adams (talk | contribs) |
||
| Line 1: | Line 1: | ||
The Spells Editor needed to be redesigned due to the 48,000 or so spells+tiers we're trying to manage, the old filters weren't displaying enough data, and were confusing. In this revamp, I've basically broken down the spells into "filters" based on SOE's '''types and classifications''' system. | The Spells Editor needed to be redesigned due to the 48,000 or so spells+tiers we're trying to manage, the old filters weren't displaying enough data, and were confusing. In this revamp, I've basically broken down the spells into "filters" based on SOE's '''types and classifications''' system. | ||
| − | + | == Filter: Lookup == | |
There are two ways to get at the spell data now... one is the Filters listed below, the other is a direct query of the Spell Names via a "Google-like" search suggestion script. | There are two ways to get at the spell data now... one is the Filters listed below, the other is a direct query of the Spell Names via a "Google-like" search suggestion script. | ||
| Line 12: | Line 12: | ||
| − | + | == Filter: Type == | |
The second option is to Filter the data using Type, Classification and Class. When you first select '''Spells''' from the menu, you now must pick a "'''Type'''" - that being Spell, Art, Ability, Tradeskill or PC Innate -- | The second option is to Filter the data using Type, Classification and Class. When you first select '''Spells''' from the menu, you now must pick a "'''Type'''" - that being Spell, Art, Ability, Tradeskill or PC Innate -- | ||
| Line 20: | Line 20: | ||
| − | + | == Spell Selection Grid == | |
[[File:SpellEditor2.jpg|800px]] | [[File:SpellEditor2.jpg|800px]] | ||
| Line 40: | Line 40: | ||
You can begin to edit the spell data by clicking the Spell ID value on the left-most column. | You can begin to edit the spell data by clicking the Spell ID value on the left-most column. | ||
| − | + | == Filter: Classification == | |
[[File:SpellEditor3.jpg|800px]] | [[File:SpellEditor3.jpg|800px]] | ||
| Line 63: | Line 63: | ||
| − | + | == Filter: Class == | |
Not to be confused with '''classification''', Class is the actual player class itself -- Guardian, Templar, etc. | Not to be confused with '''classification''', Class is the actual player class itself -- Guardian, Templar, etc. | ||
| Line 78: | Line 78: | ||
There is one ''special'' Class: All. This is a filter to show you all the spells/arts that ALL classes can utilize - and in our EQ2Emulator database, that is signified by the `spell_classes`.`adventure_class_id` = 255, for all classes. This is not a list of ALL spells, so do not be alarmed when you do not see many records. Another term for these might be "Commoner" abilities. | There is one ''special'' Class: All. This is a filter to show you all the spells/arts that ALL classes can utilize - and in our EQ2Emulator database, that is signified by the `spell_classes`.`adventure_class_id` = 255, for all classes. This is not a list of ALL spells, so do not be alarmed when you do not see many records. Another term for these might be "Commoner" abilities. | ||
| − | == | + | |
| + | == Spells Tab == | ||
I have cleaned up the layout of the Spells Editor tabs, making them actual tabs finally (after 5 years :)). To enter the Spell Editor screen, click the link on the left-most column which is the EQ2Emulator Spell ID column - in the above example, that would be the number '''8018'''. | I have cleaned up the layout of the Spells Editor tabs, making them actual tabs finally (after 5 years :)). To enter the Spell Editor screen, click the link on the left-most column which is the EQ2Emulator Spell ID column - in the above example, that would be the number '''8018'''. | ||
| Line 123: | Line 124: | ||
You then click the "Re-Index" button and the script moves the spell, cleaning up the player and other associated tables to the new ID, then drops you in the editor at the new spell_id. | You then click the "Re-Index" button and the script moves the spell, cleaning up the player and other associated tables to the new ID, then drops you in the editor at the new spell_id. | ||
| − | === Conclusion | + | |
| + | == Tiers Tab == | ||
| + | The Tiers tab should be pre-populated with all known (SOE) tiers for each spell/ability. If there are no tiers defined, then SOE didn't have one (which is unlikely). You can insert/delete tiers here, or update existing ones since most SOE feeds do not contain the details we need to make spells work 100%. | ||
| + | |||
| + | === SOE Sync === | ||
| + | Pushing the SOE button will update the current tier with known SOE API data, which is not all the fields but most. The rest have to be manually entered, but mostly I find that "call_frequency" is the biggest one I have to touch. The SOE button not only checks the Spells collection, but does a query on Items for that spell's book data to get things like Range and Resistibility. | ||
| + | |||
| + | You can update each tier individually to carefully monitor you are getting the correct data. Also note that there are no Tier 1 "books", so to get Tier 1 Range/Resist, you simply have to click any of the Apprentice tiers and the script will update all 3 Apprentice tiers at once. | ||
| + | |||
| + | |||
| + | == Data Tab == | ||
| + | The Data Tab is where you configure the parameter data to be passed to the LUA script. This data is unavailable via any means from collected packets or SOE API, so I chose to parse the Spell Display Effects text as a solution. Alternatively, you can just use INSERT to add new rows as you see fit, if there is no data to parse. | ||
| + | |||
| + | === Parse Data === | ||
| + | Clicking the Parse Data button will launch a new UI window, and a quick attempt to parse the Spell Display Effects text is displayed in Tier-by-tier format. An example of how parsing works, say the Tier 1 Effect is: | ||
| + | |||
| + | Interrupts Target | ||
| + | Inflicts 9 - 12 mental damage on target | ||
| + | |||
| + | The display will find the 9, the 12, and the "mental" which gets converted to the damageTypeID (6) defined in EQ2Emu. You are presented with the following choices: | ||
| + | |||
| + | [[File:SpellData1.jpg]] | ||
| + | |||
| + | Things to note here: The parser found nothing to do with Interrupt Target, so that row '''does not''' need to be inserted. However, notice it found Mental, 9 and 12. Click Submit on Tier 1's submit button and refresh the Data tab, you will see your data inserted. This is all you need for this example spell, since you will hard-code Interrupt() as a function in the script. | ||
| + | |||
| + | [[File:SpellData2.jpg]] | ||
| + | |||
| + | |||
| + | |||
| + | == Conclusion == | ||
I'm hoping to make the editor handle more tasks automatically in the future, so we're not doing so much work manually. This is the first step. Also, at the time of this writing, the Spells tab is the only one re-designed - the other tabs still function as they did before. | I'm hoping to make the editor handle more tasks automatically in the future, so we're not doing so much work manually. This is the first step. Also, at the time of this writing, the Spells tab is the only one re-designed - the other tabs still function as they did before. | ||
Happy Spell Writing :) | Happy Spell Writing :) | ||
Revision as of 09:56, 20 November 2013
The Spells Editor needed to be redesigned due to the 48,000 or so spells+tiers we're trying to manage, the old filters weren't displaying enough data, and were confusing. In this revamp, I've basically broken down the spells into "filters" based on SOE's types and classifications system.
Contents
Filter: Lookup
There are two ways to get at the spell data now... one is the Filters listed below, the other is a direct query of the Spell Names via a "Google-like" search suggestion script.
Simply type a few letters of the spell name into the Lookup field, and see the suggestions that are presented.
NOTE: You do not HAVE to use the Suggestions... you can type "Heal" into the box and just press Enter, and all *Heal* related spell names will be displayed.
Filter: Type
The second option is to Filter the data using Type, Classification and Class. When you first select Spells from the menu, you now must pick a "Type" - that being Spell, Art, Ability, Tradeskill or PC Innate --
Once you pick a Type, the Classifications option will appear, for further filtering. Note you do not have to filter further, all data should be available in the Types grid.
Spell Selection Grid
Take note of the information on the Spell Selection Grid:
Spell ID - this is EQ2Emulator's internal ID for the spell The [S], [W] and [Z] icons are shortcuts to SOE Data, Wikia and Zam for the given data row Name - the name of the dataset Description - I thought it might be helpful to see the full description of the spell, since many are named the same Type - this should be the type you selected Classification - More details below about what a Classification is AA - is this entry considered Alternate Advancement? Level - the character level required to use the spell/ability Active - is the spell available to players? Note: Inactive spells will not load at world start time! Last Auto Update - This is the last time we sync'd the entry with soe.data.com
There is now a "Hide" button to hide the spell from the grid. You can recover the hidden spells by selecting the "Show Hidden" checkbox.
You can begin to edit the spell data by clicking the Spell ID value on the left-most column.
Filter: Classification
Classifications are what we're calling the "given_by" data from soe.data.com. This is how the player acquires the spell, so it seemed a fitting category for limiting result sets. The list of Classifications are --
"alternateadvancement" "charactertrait" "class" "classtraining" "race" "racialinnate" "racialtradition" "spellscroll" "tradeskillclass" "warderspell"
Picking a Classification will limit the results even further. In this example, I will pick "race" classification to limit my result set.
As you see, a much more manageable list.
Filter: Class
Not to be confused with classification, Class is the actual player class itself -- Guardian, Templar, etc.
Note: When you select ALL types and ALL Classifications, you MUST pick a Class to filter the data in at least some way.
Observe that this list of Classes also include the Archetype, Class and Subclass options. This is so we can reduce the number of Spells entries in our database if more than 1 class of an Archetype or Class can use the spell. In the above screenshot, you can see the following:
1. The Fighter archetype, which includes 3 classes and 6 subclasses 2. The Warrior class, which includes only the 2 classes of warriors: Guardian and Berserker 3. And finally, the individual player class (subclass) itself
There is one special Class: All. This is a filter to show you all the spells/arts that ALL classes can utilize - and in our EQ2Emulator database, that is signified by the `spell_classes`.`adventure_class_id` = 255, for all classes. This is not a list of ALL spells, so do not be alarmed when you do not see many records. Another term for these might be "Commoner" abilities.
Spells Tab
I have cleaned up the layout of the Spells Editor tabs, making them actual tabs finally (after 5 years
). To enter the Spell Editor screen, click the link on the left-most column which is the EQ2Emulator Spell ID column - in the above example, that would be the number 8018.
You'll see a relatively familiar layout, only the Tabs have changed, and I have re-grouped the data more logically. A brief description of the screen areas --
1. Section Title bar, with shortcuts to SOE and Wikia, and Info and Links field set of read-only data 2. Editable items related to spell "text" 3. Other settings, mostly comboboxes relating to type and skills 4. The same old Appearances section 5. The same old Toggles section, only with added options - is_aa, is_deity, and moved is_active into the toggles 6. Save button 7. Resync items on this tab with SOE API data 8. NEW Re-Indexing (see below) 9. NEW Insert a spell or make a clone of an existing one (currently disabled) 10. NEW Delete a spell record that is no longer needed
Other new buttons not shown on screenshot -
11. NEW Split a spell at it's tier(s) into a new spell 12. NEW Clone a spell to a new spell ID 13. Resync items on this tab with RAW collected spell data
Spell Re-Indexing
The last thing I will cover for now is the Re-Indexing feature, as this will likely be used a lot. It is new, since the SOE data is not always forthcoming with accurate information on classes (they hook spells to player classes differently than we do), I had to come up with a way for you to "move" a spell from one range of ID's to another.
Example would be to move this Fighter spell to a common Abilities type because you realized it's actually a spell EVERYONE can use. So you select Pick destination range --
An ajax lookup is performed to fetch the next-highest spell_id in the "Abilities" range - which is 8000-8999. In this case, it is 8490.
OR, if you discover a spell that is under Fighter that should be Guardian-specific, you can move it to the Class by chosing Pick destination class --
Since Guardians are Class ID 3, and the spell range is thus 3 * 10,000, or 30,000 - 39,999, the ajax lookup finds the next highest spell ID to be 30276.
You then click the "Re-Index" button and the script moves the spell, cleaning up the player and other associated tables to the new ID, then drops you in the editor at the new spell_id.
Tiers Tab
The Tiers tab should be pre-populated with all known (SOE) tiers for each spell/ability. If there are no tiers defined, then SOE didn't have one (which is unlikely). You can insert/delete tiers here, or update existing ones since most SOE feeds do not contain the details we need to make spells work 100%.
SOE Sync
Pushing the SOE button will update the current tier with known SOE API data, which is not all the fields but most. The rest have to be manually entered, but mostly I find that "call_frequency" is the biggest one I have to touch. The SOE button not only checks the Spells collection, but does a query on Items for that spell's book data to get things like Range and Resistibility.
You can update each tier individually to carefully monitor you are getting the correct data. Also note that there are no Tier 1 "books", so to get Tier 1 Range/Resist, you simply have to click any of the Apprentice tiers and the script will update all 3 Apprentice tiers at once.
Data Tab
The Data Tab is where you configure the parameter data to be passed to the LUA script. This data is unavailable via any means from collected packets or SOE API, so I chose to parse the Spell Display Effects text as a solution. Alternatively, you can just use INSERT to add new rows as you see fit, if there is no data to parse.
Parse Data
Clicking the Parse Data button will launch a new UI window, and a quick attempt to parse the Spell Display Effects text is displayed in Tier-by-tier format. An example of how parsing works, say the Tier 1 Effect is:
Interrupts Target Inflicts 9 - 12 mental damage on target
The display will find the 9, the 12, and the "mental" which gets converted to the damageTypeID (6) defined in EQ2Emu. You are presented with the following choices:
Things to note here: The parser found nothing to do with Interrupt Target, so that row does not need to be inserted. However, notice it found Mental, 9 and 12. Click Submit on Tier 1's submit button and refresh the Data tab, you will see your data inserted. This is all you need for this example spell, since you will hard-code Interrupt() as a function in the script.
Conclusion
I'm hoping to make the editor handle more tasks automatically in the future, so we're not doing so much work manually. This is the first step. Also, at the time of this writing, the Spells tab is the only one re-designed - the other tabs still function as they did before.
Happy Spell Writing




