View Full Version : revamped AA
JimB_1958
09-20-2015, 08:42 PM
Saw this on changelog.txt
== 7/2/2015 ==
KLS/Demonstar55: AA system has been rewritten fixing a ton of bugs and extending functionality while making it easier to create new AA points.
KLS/Demonstar55: New tables are needed and so older data will need to be migrated to the new system.
KLS/Demonstar55: The SQL saves the old aa points spent/avail/character_alt_abilities data if any server ops want to do something different than PEQ did with it.
KLS/Demonstar55: Will try to get a wiki entry written up next week some time explaining the system but it's really not hard to follow the db tables in the meantime.
is there a wiki reference yet? if so, can someone point me the way?
demonstar55
09-20-2015, 11:35 PM
Quick description assuming you're looking to do custom stuff:
Tables: aa_ability, aa_ranks, aa_rank_effects, an aa_rank_prereqs.
Each of these tables correspond to a new class/object server side.
Each AA line has a single aa_ability. Each aa_ability has multiple aa_ranks with various data. Each rank can have an associated aa_rank_effects, which is just spell data for the AA rank. The aa_rank_prereqs table may seem silly, but live now has AA that have multiple prereqs, which that lets us do. (that's RoF+, so you won't see them on older clients)
That should give you kind of a good idea of how it all works just looking at the tables.
Data common to every line is in aa_ability, note name in this table is just for easy of use, the actual displayed name is done via some DB string ID entries in aa_ranks since live has AAs that change name with each rank. The aa_ability table needs to point to the first rank ID, and each rank points to the next etc.
JimB_1958
09-21-2015, 08:34 AM
Thanks... that will get me started. I have some custom AA in the old system I am trying to port over
demonstar55
09-22-2015, 01:40 AM
This might help a bit, let me go over an AA:
select * from aa_ability where name = "Innate Strength"\G;
*************************** 1. row ***************************
id: 1
name: Innate Strength
category: -1
classes: 65535
races: 65535
drakkin_heritage: 127
deities: 131071
status: 0
type: 1
charges: 0
grant_only: 0
first_rank_id: 2
enabled: 1
Here we see the ID of the AA group for Innate Strength is 1. This is what we once called SEQ (for sequence.) This is also the number you use for /alt act if this was an activated AA.
Here we can see the first_rank_id tells us the first AA ID is 2. So lets grab that from aa_rank.
select * from aa_ranks where id = 2\G;
*************************** 1. row ***************************
id: 2
upper_hotkey_sid: -1
lower_hotkey_sid: -1
title_sid: 2
desc_sid: 2
cost: 1
level_req: 51
spell: -1
spell_type: 0
recast_time: 0
expansion: 3
prev_id: -1
next_id: 3
Here we can see stuff like hotkey SIDs, title SID, cost, level, etc. Here we see prev_id is -1 meaning there is none, and the next_id is 3, so we can do select * from aa_ranks where id = 3 to get that one. Now this doesn't tell us how many abilities the AA have since we can just calculate that.
select * from aa_rank_effects where rank_id = 2\G;
*************************** 1. row ***************************
rank_id: 2
slot: 1
effect_id: 4
base1: 2
base2: 0
Now Innate Strength doesn't have any prereqs, so let me just grab an example from a random AA
select * from aa_rank_prereqs where rank_id = 255\G;
*************************** 1. row ***************************
rank_id: 255
aa_id: 309
points: 3
This is the Flurry AA which depends on rank 3 of AA 309, which is the id from aa_ability, which means ...
select * from aa_ability where id = 309\G;
*************************** 1. row ***************************
id: 309
name: Combat Fury
category: -1
classes: 32769
races: 65535
drakkin_heritage: 127
deities: 131071
status: 0
type: 2
charges: 0
grant_only: 0
first_rank_id: 934
enabled: 1
It depends on rank 3 of Combat Fury :P
Shendare
09-22-2015, 02:26 AM
http://i.imgur.com/QasnnzC.gif
JimB_1958
09-22-2015, 02:24 PM
Very cool. Thanks again.
JimB_1958
04-19-2016, 12:11 PM
Sorry to revive this thread but I had another question and wanted to keep it all together...
What determines the cool down groups? What I mean is, If I click an AA and it greys out 2 other similar AA how do I change that?
demonstar55
04-19-2016, 01:00 PM
aa_ranks.spell_type
JimB_1958
04-19-2016, 02:24 PM
Thank you very much. Worked Perfectly
fryguy
05-28-2016, 12:19 AM
Has anyone been able to update a wiki or have a detailed guide on each field. I have been able to understand most of the linking, but fields like "Upper_Hotkey_sid" and "Lower_hotkey_sid" I have not understood yet.
demonstar55
05-28-2016, 02:54 AM
Has anyone been able to update a wiki or have a detailed guide on each field. I have been able to understand most of the linking, but fields like "Upper_Hotkey_sid" and "Lower_hotkey_sid" I have not understood yet.
The hotkeys for AAs are made up of two lines. Upper SID is the string ID for the top line, Lower is for the bottom line.
EDIT: I think it might be a dbstring ID actually, whatever.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.