Scorpious2k
06-13-2004, 02:47 AM
Thanks to the incredible good work of Dspirit an Mlan who got us the opcodes and Kathgar who described the changed packet to me, I think we may have a breakthrough...
change these opcodes in eq_opcodes.h to the values shown:
#define OP_RespondAA 0x01e9
#define OP_SendAAStats 0x01c8
#define OP_AAAction 0x01e8
in eq_packet_structs.h change
struct PlayerAA_Struct {
/* 0 */ uint16 unknown0;
union {
uint16 unnamed[17];
struct {
/* 1 */ uint16 innate_strength;
/* 2 */ uint16 innate_stamina;
/* 3 */ uint16 innate_agility;
/* 4 */ uint16 innate_dexterity;
/* 5 */ uint16 innate_intelligence;
/* 6 */ uint16 innate_wisdom;
/* 7 */ uint16 innate_charisma;
/* 8 */ uint16 innate_fire_protection;
/* 9 */ uint16 innate_cold_protection;
/* 10 */ uint16 innate_magic_protection;
/* 11 */ uint16 innate_poison_protection;
/* 12 */ uint16 innate_disease_protection;
/* 13 */ uint16 innate_run_speed;
/* 14 */ uint16 innate_regeneration;
/* 15 */ uint16 innate_metabolism;
/* 16 */ uint16 innate_lung_capacity;
/* 17 */ uint16 first_aid;
} named;
} general_skills;
union {
uint16 unnamed[17];
struct {
/* 18 */ uint16 healing_adept;
/* 19 */ uint16 healing_gift;
/* 20 */ uint16 spell_casting_mastery;
/* 21 */ uint16 spell_casting_reinforcement;
/* 22 */ uint16 mental_clarity;
/* 23 */ uint16 spell_casting_fury;
/* 24 */ uint16 chanelling_focus;
/* 25 */ uint16 spell_casting_subtlety;
/* 26 */ uint16 spell_casting_expertise;
/* 27 */ uint16 spell_casting_deftness;
/* 28 */ uint16 natural_durability;
/* 29 */ uint16 natural_healing;
/* 30 */ uint16 combat_fury;
/* 31 */ uint16 fear_resistance;
/* 32 */ uint16 finishing_blow;
/* 33 */ uint16 combat_stability;
/* 34 */ uint16 combat_agility;
} named;
} archetype_skills;
union {
uint16 unnamed[93];
struct {
/* 35 */ uint16 mass_group_buff; // All group-buff-casting classes(?)
// ===== Cleric =====
/* 36 */ uint16 divine_resurrection;
/* 37 */ uint16 innate_invis_to_undead; // cleric, necromancer
/* 38 */ uint16 celestial_regeneration;
/* 39 */ uint16 bestow_divine_aura;
/* 40 */ uint16 turn_undead;
/* 41 */ uint16 purify_soul;
// ===== Druid =====
/* 42 */ uint16 quick_evacuation; // wizard, druid
/* 43 */ uint16 exodus; // wizard, druid
/* 44 */ uint16 quick_damage; // wizard, druid
/* 45 */ uint16 enhanced_root; // druid
/* 46 */ uint16 dire_charm; // enchanter, druid, necromancer
// ===== Shaman =====
/* 47 */ uint16 cannibalization;
/* 48 */ uint16 quick_buff; // shaman, enchanter
/* 49 */ uint16 alchemy_mastery;
/* 50 */ uint16 rabid_bear;
// ===== Wizard =====
/* 51 */ uint16 mana_burn;
/* 52 */ uint16 improved_familiar;
/* 53 */ uint16 nexus_gate;
// ===== Enchanter =====
/* 54 */ uint16 unknown54;
/* 55 */ uint16 permanent_illusion;
/* 56 */ uint16 jewel_craft_mastery;
/* 57 */ uint16 gather_mana;
// ===== Mage =====
/* 58 */ uint16 mend_companion; // mage, necromancer
/* 59 */ uint16 quick_summoning;
/* 60 */ uint16 frenzied_burnout;
/* 61 */ uint16 elemental_form_fire;
/* 62 */ uint16 elemental_form_water;
/* 63 */ uint16 elemental_form_earth;
/* 64 */ uint16 elemental_form_air;
/* 65 */ uint16 improved_reclaim_energy;
/* 66 */ uint16 turn_summoned;
/* 67 */ uint16 elemental_pact;
// ===== Necromancer =====
/* 68 */ uint16 life_burn;
/* 69 */ uint16 dead_mesmerization;
/* 70 */ uint16 fearstorm;
/* 71 */ uint16 flesh_to_bone;
/* 72 */ uint16 call_to_corpse;
// ===== Paladin =====
/* 73 */ uint16 divine_stun;
/* 74 */ uint16 improved_lay_of_hands;
/* 75 */ uint16 slay_undead;
/* 76 */ uint16 act_of_valor;
/* 77 */ uint16 holy_steed;
/* 78 */ uint16 fearless; // paladin, shadowknight
/* 79 */ uint16 two_hand_bash; // paladin, shadowknight
// ===== Ranger =====
/* 80 */ uint16 innate_camouflage; // ranger, druid
/* 81 */ uint16 ambidexterity; // all "dual-wield" users
/* 82 */ uint16 archery_mastery; // ranger
/* 83 */ uint16 unknown83;
/* 84 */ uint16 endless_quiver; // ranger
// ===== Shadow Knight =====
/* 85 */ uint16 unholy_steed;
/* 86 */ uint16 improved_harm_touch;
/* 87 */ uint16 leech_touch;
/* 88 */ uint16 unknown88;
/* 89 */ uint16 soul_abrasion;
// ===== Bard =====
/* 90 */ uint16 instrument_mastery;
/* 91 */ uint16 unknown91;
/* 92 */ uint16 unknown92;
/* 93 */ uint16 unknown93;
/* 94 */ uint16 jam_fest;
/* 95 */ uint16 unknown95;
/* 96 */ uint16 unknown96;
// ===== Monk =====
/* 97 */ uint16 critical_mend;
/* 98 */ uint16 purify_body;
/* 99 */ uint16 unknown99;
/* 100 */ uint16 rapid_feign;
/* 101 */ uint16 return_kick;
// ===== Rogue =====
/* 102 */ uint16 escape;
/* 103 */ uint16 poison_mastery;
/* 104 */ uint16 double_riposte; // all "riposte" users
/* 105 */ uint16 unknown105;
/* 106 */ uint16 unknown106;
/* 107 */ uint16 purge_poison; // rogue
// ===== Warrior =====
/* 108 */ uint16 flurry;
/* 109 */ uint16 rampage;
/* 110 */ uint16 area_taunt;
/* 111 */ uint16 warcry;
/* 112 */ uint16 bandage_wound;
// ===== (Other) =====
/* 113 */ uint16 spell_casting_reinforcement_mastery; // all "pure" casters
/* 114 */ uint16 unknown114;
/* 115 */ uint16 extended_notes; // bard
/* 116 */ uint16 dragon_punch; // monk
/* 117 */ uint16 strong_root; // wizard
/* 118 */ uint16 singing_mastery; // bard
/* 119 */ uint16 body_and_mind_rejuvenation; // paladin, ranger, bard
/* 120 */ uint16 physical_enhancement; // paladin, ranger, bard
/* 121 */ uint16 adv_trap_negotiation; // rogue, bard
/* 122 */ uint16 acrobatics; // all "safe-fall" users
/* 123 */ uint16 scribble_notes; // bard
/* 124 */ uint16 chaotic_stab; // rogue
/* 125 */ uint16 pet_discipline; // all pet classes except enchanter
/* 126 */ uint16 unknown126;
/* 127 */ uint16 unknown127;
/* 128 */ uint16 unknown128;
} named;
} class_skills;
union {
uint16 unnamed[18];
struct {
/* 129 */ uint16 advanced_innate_strength;
/* 130 */ uint16 advanced_innate_stamina;
/* 131 */ uint16 advanced_innate_agility;
/* 132 */ uint16 advanced_innate_dexterity;
/* 133 */ uint16 advanced_innate_intelligence;
/* 134 */ uint16 advanced_innate_wisdom;
/* 135 */ uint16 advanced_innate_charisma;
/* 136 */ uint16 warding_of_solusek;
/* 137 */ uint16 blessing_of_eci;
/* 138 */ uint16 marrs_protection;
/* 139 */ uint16 shroud_of_the_faceless;
/* 140 */ uint16 bertoxxulous_gift;
/* 141 */ uint16 new_tanaan_crafting_mastery;
/* 142 */ uint16 planar_power;
/* 143 */ uint16 planar_durability;
} named;
} pop_advance;
union {
uint16 unnamed[14];
struct {
/* 144 */ uint16 unknown144;
/* 145 */ uint16 unknown145;
/* 146 */ uint16 unknown146;
/* 147 */ uint16 unknown147;
/* 148 */ uint16 coup_de_grace;
/* 149 */ uint16 fury_of_the_ages;
/* 150 */ uint16 unknown150;
/* 151 */ uint16 lightning_reflexes;
/* 152 */ uint16 innate_defense;
/* 153 */ uint16 unknown153;
/* 154 */ uint16 unknown154;
/* 155 */ uint16 unknown155;
/* 156 */ uint16 unknown156;
/* 157 */ uint16 unknown157;
/* 158 */ uint16 unknown158;
/* 159 */ uint16 unknown159;
/* 160 */ uint16 unknown160;
/* 161 */ uint16 unknown161;
/* 162 */ uint16 unknown162;
/* 163 */ uint16 unknown163;
/* 164 */ uint16 unknown164;
/* 165 */ uint16 unknown165;
/* 166 */ uint16 hasty_exit;
/* 167 */ uint16 unknown167;
/* 168 */ uint16 unknown168;
/* 169 */ uint16 unknown169;
/* 170 */ uint16 unknown170;
/* 171 */ uint16 unknown171;
/* 172 */ uint16 unknown172;
/* 173 */ uint16 unknown173;
/* 174 */ uint16 unknown174;
/* 175 */ uint16 unknown175;
/* 176 */ uint16 unknown176;
/* 177 */ uint16 unknown177;
/* 178 */ uint16 unknown178;
/* 179 */ uint16 unknown179;
/* 180 */ uint16 unknown180;
/* 181 */ uint16 unknown181;
/* 182 */ uint16 unknown182;
/* 183 */ uint16 unknown183;
/* 184 */ uint16 unknown184;
/* 185 */ uint16 unknown185;
/* 186 */ uint16 unknown186;
/* 187 */ uint16 unknown187;
/* 188 */ uint16 unknown188;
/* 189 */ uint16 unknown189;
/* 190 */ uint16 unknown190;
/* 191 */ uint16 unknown191;
/* 192 */ uint16 unknown192;
/* 193 */ uint16 unknown193;
/* 194 */ uint16 unknown194;
/* 195 */ uint16 unknown195;
/* 196 */ uint16 unknown196;
/* 197 */ uint16 unknown197;
/* 198 */ uint16 unknown198;
/* 199 */ uint16 unknown199;
/* 200 */ uint16 unknown200;
/* 201 */ uint16 unknown201;
/* 202 */ uint16 unknown202;
/* 203 */ uint16 unknown203;
/* 204 */ uint16 unknown204;
/* 205 */ uint16 unknown205;
/* 206 */ uint16 unknown206;
/* 207 */ uint16 unknown207;
/* 208 */ uint16 unknown208;
/* 209 */ uint16 unknown209;
/* 210 */ uint16 unknown210;
/* 211 */ uint16 unknown211;
/* 212 */ uint16 unknown212;
/* 213 */ uint16 unknown213;
/* 214 */ uint16 unknown214;
/* 215 */ uint16 unknown215;
/* 216 */ uint16 unknown216;
/* 217 */ uint16 unknown217;
/* 218 */ uint16 unknown218;
/* 219 */ uint16 unknown219;
/* 220 */ uint16 unknown220;
} named;
} pop_ability;
};
to
struct PlayerAA_Struct {
// /* 0 */ uint16 unknown0;
union {
uint8 unnamed[17];
struct {
/* 1 */ uint8 innate_strength;
/* 2 */ uint8 innate_stamina;
/* 3 */ uint8 innate_agility;
/* 4 */ uint8 innate_dexterity;
/* 5 */ uint8 innate_intelligence;
/* 6 */ uint8 innate_wisdom;
/* 7 */ uint8 innate_charisma;
/* 8 */ uint8 innate_fire_protection;
/* 9 */ uint8 innate_cold_protection;
/* 10 */ uint8 innate_magic_protection;
/* 11 */ uint8 innate_poison_protection;
/* 12 */ uint8 innate_disease_protection;
/* 13 */ uint8 innate_run_speed;
/* 14 */ uint8 innate_regeneration;
/* 15 */ uint8 innate_metabolism;
/* 16 */ uint8 innate_lung_capacity;
/* 17 */ uint8 first_aid;
} named;
} general_skills;
union {
uint8 unnamed[17];
struct {
/* 18 */ uint8 healing_adept;
/* 19 */ uint8 healing_gift;
/* 20 */ uint8 spell_casting_mastery;
/* 21 */ uint8 spell_casting_reinforcement;
/* 22 */ uint8 mental_clarity;
/* 23 */ uint8 spell_casting_fury;
/* 24 */ uint8 chanelling_focus;
/* 25 */ uint8 spell_casting_subtlety;
/* 26 */ uint8 spell_casting_expertise;
/* 27 */ uint8 spell_casting_deftness;
/* 28 */ uint8 natural_durability;
/* 29 */ uint8 natural_healing;
/* 30 */ uint8 combat_fury;
/* 31 */ uint8 fear_resistance;
/* 32 */ uint8 finishing_blow;
/* 33 */ uint8 combat_stability;
/* 34 */ uint8 combat_agility;
} named;
} archetype_skills;
union {
uint8 unnamed[94];
struct {
/* 35 */ uint8 mass_group_buff; // All group-buff-casting classes(?)
// ===== Cleric =====
/* 36 */ uint8 divine_resurrection;
/* 37 */ uint8 innate_invis_to_undead; // cleric, necromancer
/* 38 */ uint8 celestial_regeneration;
/* 39 */ uint8 bestow_divine_aura;
/* 40 */ uint8 turn_undead;
/* 41 */ uint8 purify_soul;
// ===== Druid =====
/* 42 */ uint8 quick_evacuation; // wizard, druid
/* 43 */ uint8 exodus; // wizard, druid
/* 44 */ uint8 quick_damage; // wizard, druid
/* 45 */ uint8 enhanced_root; // druid
/* 46 */ uint8 dire_charm; // enchanter, druid, necromancer
// ===== Shaman =====
/* 47 */ uint8 cannibalization;
/* 48 */ uint8 quick_buff; // shaman, enchanter
/* 49 */ uint8 alchemy_mastery;
/* 50 */ uint8 rabid_bear;
// ===== Wizard =====
/* 51 */ uint8 mana_burn;
/* 52 */ uint8 improved_familiar;
/* 53 */ uint8 nexus_gate;
// ===== Enchanter =====
/* 54 */ uint8 unknown54;
/* 55 */ uint8 permanent_illusion;
/* 56 */ uint8 jewel_craft_mastery;
/* 57 */ uint8 gather_mana;
// ===== Mage =====
/* 58 */ uint8 mend_companion; // mage, necromancer
/* 59 */ uint8 quick_summoning;
/* 60 */ uint8 frenzied_burnout;
/* 61 */ uint8 elemental_form_fire;
/* 62 */ uint8 elemental_form_water;
/* 63 */ uint8 elemental_form_earth;
/* 64 */ uint8 elemental_form_air;
/* 65 */ uint8 improved_reclaim_energy;
/* 66 */ uint8 turn_summoned;
/* 67 */ uint8 elemental_pact;
// ===== Necromancer =====
/* 68 */ uint8 life_burn;
/* 69 */ uint8 dead_mesmerization;
/* 70 */ uint8 fearstorm;
/* 71 */ uint8 flesh_to_bone;
/* 72 */ uint8 call_to_corpse;
// ===== Paladin =====
/* 73 */ uint8 divine_stun;
/* 74 */ uint8 improved_lay_of_hands;
/* 75 */ uint8 slay_undead;
/* 76 */ uint8 act_of_valor;
/* 77 */ uint8 holy_steed;
/* 78 */ uint8 fearless; // paladin, shadowknight
/* 79 */ uint8 two_hand_bash; // paladin, shadowknight
// ===== Ranger =====
/* 80 */ uint8 innate_camouflage; // ranger, druid
/* 81 */ uint8 ambidexterity; // all "dual-wield" users
/* 82 */ uint8 archery_mastery; // ranger
/* 83 */ uint8 unknown83;
/* 84 */ uint8 endless_quiver; // ranger
// ===== Shadow Knight =====
/* 85 */ uint8 unholy_steed;
/* 86 */ uint8 improved_harm_touch;
/* 87 */ uint8 leech_touch;
/* 88 */ uint8 unknown88;
/* 89 */ uint8 soul_abrasion;
// ===== Bard =====
/* 90 */ uint8 instrument_mastery;
/* 91 */ uint8 unknown91;
/* 92 */ uint8 unknown92;
/* 93 */ uint8 unknown93;
/* 94 */ uint8 jam_fest;
/* 95 */ uint8 unknown95;
/* 96 */ uint8 unknown96;
// ===== Monk =====
/* 97 */ uint8 critical_mend;
/* 98 */ uint8 purify_body;
/* 99 */ uint8 unknown99;
/* 100 */ uint8 rapid_feign;
/* 101 */ uint8 return_kick;
// ===== Rogue =====
/* 102 */ uint8 escape;
/* 103 */ uint8 poison_mastery;
/* 104 */ uint8 double_riposte; // all "riposte" users
/* 105 */ uint8 unknown105;
/* 106 */ uint8 unknown106;
/* 107 */ uint8 purge_poison; // rogue
// ===== Warrior =====
/* 108 */ uint8 flurry;
/* 109 */ uint8 rampage;
/* 110 */ uint8 area_taunt;
/* 111 */ uint8 warcry;
/* 112 */ uint8 bandage_wound;
// ===== (Other) =====
/* 113 */ uint8 spell_casting_reinforcement_mastery; // all "pure" casters
/* 114 */ uint8 unknown114;
/* 115 */ uint8 extended_notes; // bard
/* 116 */ uint8 dragon_punch; // monk
/* 117 */ uint8 strong_root; // wizard
/* 118 */ uint8 singing_mastery; // bard
/* 119 */ uint8 body_and_mind_rejuvenation; // paladin, ranger, bard
/* 120 */ uint8 physical_enhancement; // paladin, ranger, bard
/* 121 */ uint8 adv_trap_negotiation; // rogue, bard
/* 122 */ uint8 acrobatics; // all "safe-fall" users
/* 123 */ uint8 scribble_notes; // bard
/* 124 */ uint8 chaotic_stab; // rogue
/* 125 */ uint8 pet_discipline; // all pet classes except enchanter
/* 126 */ uint8 unknown126;
/* 127 */ uint8 unknown127;
/* 128 */ uint8 unknown128;
} named;
} class_skills;
union {
uint8 unnamed[15];
struct {
/* 129 */ uint8 advanced_innate_strength;
/* 130 */ uint8 advanced_innate_stamina;
/* 131 */ uint8 advanced_innate_agility;
/* 132 */ uint8 advanced_innate_dexterity;
/* 133 */ uint8 advanced_innate_intelligence;
/* 134 */ uint8 advanced_innate_wisdom;
/* 135 */ uint8 advanced_innate_charisma;
/* 136 */ uint8 warding_of_solusek;
/* 137 */ uint8 blessing_of_eci;
/* 138 */ uint8 marrs_protection;
/* 139 */ uint8 shroud_of_the_faceless;
/* 140 */ uint8 bertoxxulous_gift;
/* 141 */ uint8 new_tanaan_crafting_mastery;
/* 142 */ uint8 planar_power;
/* 143 */ uint8 planar_durability;
} named;
} pop_advance;
union {
uint8 unnamed[77];
struct {
/* 144 */ uint8 unknown144;
/* 145 */ uint8 unknown145;
/* 146 */ uint8 unknown146;
/* 147 */ uint8 unknown147;
/* 148 */ uint8 coup_de_grace;
/* 149 */ uint8 fury_of_the_ages;
/* 150 */ uint8 unknown150;
/* 151 */ uint8 lightning_reflexes;
/* 152 */ uint8 innate_defense;
/* 153 */ uint8 unknown153;
/* 154 */ uint8 unknown154;
/* 155 */ uint8 unknown155;
/* 156 */ uint8 unknown156;
/* 157 */ uint8 unknown157;
/* 158 */ uint8 unknown158;
/* 159 */ uint8 unknown159;
/* 160 */ uint8 unknown160;
/* 161 */ uint8 unknown161;
/* 162 */ uint8 unknown162;
/* 163 */ uint8 unknown163;
/* 164 */ uint8 unknown164;
/* 165 */ uint8 unknown165;
/* 166 */ uint8 hasty_exit;
/* 167 */ uint8 unknown167;
/* 168 */ uint8 unknown168;
/* 169 */ uint8 unknown169;
/* 170 */ uint8 unknown170;
/* 171 */ uint8 unknown171;
/* 172 */ uint8 unknown172;
/* 173 */ uint8 unknown173;
/* 174 */ uint8 unknown174;
/* 175 */ uint8 unknown175;
/* 176 */ uint8 unknown176;
/* 177 */ uint8 unknown177;
/* 178 */ uint8 unknown178;
/* 179 */ uint8 unknown179;
/* 180 */ uint8 unknown180;
/* 181 */ uint8 unknown181;
/* 182 */ uint8 unknown182;
/* 183 */ uint8 unknown183;
/* 184 */ uint8 unknown184;
/* 185 */ uint8 unknown185;
/* 186 */ uint8 unknown186;
/* 187 */ uint8 unknown187;
/* 188 */ uint8 unknown188;
/* 189 */ uint8 unknown189;
/* 190 */ uint8 unknown190;
/* 191 */ uint8 unknown191;
/* 192 */ uint8 unknown192;
/* 193 */ uint8 unknown193;
/* 194 */ uint8 unknown194;
/* 195 */ uint8 unknown195;
/* 196 */ uint8 unknown196;
/* 197 */ uint8 unknown197;
/* 198 */ uint8 unknown198;
/* 199 */ uint8 unknown199;
/* 200 */ uint8 unknown200;
/* 201 */ uint8 unknown201;
/* 202 */ uint8 unknown202;
/* 203 */ uint8 unknown203;
/* 204 */ uint8 unknown204;
/* 205 */ uint8 unknown205;
/* 206 */ uint8 unknown206;
/* 207 */ uint8 unknown207;
/* 208 */ uint8 unknown208;
/* 209 */ uint8 unknown209;
/* 210 */ uint8 unknown210;
/* 211 */ uint8 unknown211;
/* 212 */ uint8 unknown212;
/* 213 */ uint8 unknown213;
/* 214 */ uint8 unknown214;
/* 215 */ uint8 unknown215;
/* 216 */ uint8 unknown216;
/* 217 */ uint8 unknown217;
/* 218 */ uint8 unknown218;
/* 219 */ uint8 unknown219;
/* 220 */ uint8 unknown220;
} named;
} pop_ability;
union {
uint8 unnamed[89];
struct {
/* 221 */ uint8 unknown221;
/* 222 */ uint8 unknown222;
/* 223 */ uint8 unknown223;
/* 224 */ uint8 unknown224;
/* 225 */ uint8 unknown225;
/* 226 */ uint8 unknown226;
/* 227 */ uint8 unknown227;
/* 228 */ uint8 unknown228;
/* 229 */ uint8 unknown229;
/* 230 */ uint8 unknown230;
/* 231 */ uint8 unknown231;
/* 232 */ uint8 unknown232;
/* 233 */ uint8 unknown233;
/* 234 */ uint8 unknown234;
/* 235 */ uint8 unknown235;
/* 236 */ uint8 unknown236;
/* 237 */ uint8 unknown237;
/* 238 */ uint8 unknown238;
/* 239 */ uint8 unknown239;
/* 240 */ uint8 unknown240;
/* 241 */ uint8 unknown241;
/* 242 */ uint8 unknown242;
/* 243 */ uint8 unknown243;
/* 244 */ uint8 unknown244;
/* 245 */ uint8 unknown245;
/* 246 */ uint8 unknown246;
/* 247 */ uint8 unknown247;
/* 248 */ uint8 unknown248;
/* 249 */ uint8 unknown249;
/* 250 */ uint8 unknown250;
/* 251 */ uint8 unknown251;
/* 252 */ uint8 unknown252;
/* 253 */ uint8 unknown253;
/* 254 */ uint8 unknown254;
/* 255 */ uint8 unknown255;
/* 256 */ uint8 unknown256;
/* 257 */ uint8 unknown257;
/* 258 */ uint8 unknown258;
/* 259 */ uint8 unknown259;
/* 260 */ uint8 unknown260;
/* 261 */ uint8 unknown261;
/* 262 */ uint8 unknown262;
/* 263 */ uint8 unknown263;
/* 264 */ uint8 unknown264;
/* 265 */ uint8 unknown265;
/* 266 */ uint8 unknown266;
/* 267 */ uint8 unknown267;
/* 268 */ uint8 unknown268;
/* 269 */ uint8 unknown269;
/* 270 */ uint8 unknown270;
/* 271 */ uint8 unknown271;
/* 272 */ uint8 unknown272;
/* 273 */ uint8 unknown273;
/* 274 */ uint8 unknown274;
/* 275 */ uint8 unknown275;
/* 276 */ uint8 unknown276;
/* 277 */ uint8 unknown277;
/* 278 */ uint8 unknown278;
/* 279 */ uint8 unknown279;
/* 280 */ uint8 unknown280;
/* 281 */ uint8 unknown281;
/* 282 */ uint8 unknown282;
/* 283 */ uint8 unknown283;
/* 284 */ uint8 unknown284;
/* 285 */ uint8 unknown285;
/* 286 */ uint8 unknown286;
/* 287 */ uint8 unknown287;
/* 288 */ uint8 unknown288;
/* 289 */ uint8 unknown289;
/* 290 */ uint8 unknown290;
/* 291 */ uint8 unknown291;
/* 292 */ uint8 unknown292;
/* 293 */ uint8 unknown293;
/* 294 */ uint8 unknown294;
/* 295 */ uint8 unknown295;
/* 296 */ uint8 unknown296;
/* 297 */ uint8 unknown297;
/* 298 */ uint8 unknown298;
/* 299 */ uint8 unknown299;
/* 300 */ uint8 unknown300;
/* 301 */ uint8 unknown301;
/* 302 */ uint8 unknown302;
/* 303 */ uint8 unknown303;
/* 304 */ uint8 unknown304;
/* 305 */ uint8 unknown305;
/* 306 */ uint8 unknown306;
/* 307 */ uint8 unknown307;
/* 308 */ uint8 unknown308;
/* 309 */ uint8 unknown309;
} named;
} god_ability;
};
compile (might as well do a rebuild all) and test away..
it isn't perfect, but the more testing that is done, the better we can make it..
Big BIG thanks to Dspirit, Mllan and Kathgar!
change these opcodes in eq_opcodes.h to the values shown:
#define OP_RespondAA 0x01e9
#define OP_SendAAStats 0x01c8
#define OP_AAAction 0x01e8
in eq_packet_structs.h change
struct PlayerAA_Struct {
/* 0 */ uint16 unknown0;
union {
uint16 unnamed[17];
struct {
/* 1 */ uint16 innate_strength;
/* 2 */ uint16 innate_stamina;
/* 3 */ uint16 innate_agility;
/* 4 */ uint16 innate_dexterity;
/* 5 */ uint16 innate_intelligence;
/* 6 */ uint16 innate_wisdom;
/* 7 */ uint16 innate_charisma;
/* 8 */ uint16 innate_fire_protection;
/* 9 */ uint16 innate_cold_protection;
/* 10 */ uint16 innate_magic_protection;
/* 11 */ uint16 innate_poison_protection;
/* 12 */ uint16 innate_disease_protection;
/* 13 */ uint16 innate_run_speed;
/* 14 */ uint16 innate_regeneration;
/* 15 */ uint16 innate_metabolism;
/* 16 */ uint16 innate_lung_capacity;
/* 17 */ uint16 first_aid;
} named;
} general_skills;
union {
uint16 unnamed[17];
struct {
/* 18 */ uint16 healing_adept;
/* 19 */ uint16 healing_gift;
/* 20 */ uint16 spell_casting_mastery;
/* 21 */ uint16 spell_casting_reinforcement;
/* 22 */ uint16 mental_clarity;
/* 23 */ uint16 spell_casting_fury;
/* 24 */ uint16 chanelling_focus;
/* 25 */ uint16 spell_casting_subtlety;
/* 26 */ uint16 spell_casting_expertise;
/* 27 */ uint16 spell_casting_deftness;
/* 28 */ uint16 natural_durability;
/* 29 */ uint16 natural_healing;
/* 30 */ uint16 combat_fury;
/* 31 */ uint16 fear_resistance;
/* 32 */ uint16 finishing_blow;
/* 33 */ uint16 combat_stability;
/* 34 */ uint16 combat_agility;
} named;
} archetype_skills;
union {
uint16 unnamed[93];
struct {
/* 35 */ uint16 mass_group_buff; // All group-buff-casting classes(?)
// ===== Cleric =====
/* 36 */ uint16 divine_resurrection;
/* 37 */ uint16 innate_invis_to_undead; // cleric, necromancer
/* 38 */ uint16 celestial_regeneration;
/* 39 */ uint16 bestow_divine_aura;
/* 40 */ uint16 turn_undead;
/* 41 */ uint16 purify_soul;
// ===== Druid =====
/* 42 */ uint16 quick_evacuation; // wizard, druid
/* 43 */ uint16 exodus; // wizard, druid
/* 44 */ uint16 quick_damage; // wizard, druid
/* 45 */ uint16 enhanced_root; // druid
/* 46 */ uint16 dire_charm; // enchanter, druid, necromancer
// ===== Shaman =====
/* 47 */ uint16 cannibalization;
/* 48 */ uint16 quick_buff; // shaman, enchanter
/* 49 */ uint16 alchemy_mastery;
/* 50 */ uint16 rabid_bear;
// ===== Wizard =====
/* 51 */ uint16 mana_burn;
/* 52 */ uint16 improved_familiar;
/* 53 */ uint16 nexus_gate;
// ===== Enchanter =====
/* 54 */ uint16 unknown54;
/* 55 */ uint16 permanent_illusion;
/* 56 */ uint16 jewel_craft_mastery;
/* 57 */ uint16 gather_mana;
// ===== Mage =====
/* 58 */ uint16 mend_companion; // mage, necromancer
/* 59 */ uint16 quick_summoning;
/* 60 */ uint16 frenzied_burnout;
/* 61 */ uint16 elemental_form_fire;
/* 62 */ uint16 elemental_form_water;
/* 63 */ uint16 elemental_form_earth;
/* 64 */ uint16 elemental_form_air;
/* 65 */ uint16 improved_reclaim_energy;
/* 66 */ uint16 turn_summoned;
/* 67 */ uint16 elemental_pact;
// ===== Necromancer =====
/* 68 */ uint16 life_burn;
/* 69 */ uint16 dead_mesmerization;
/* 70 */ uint16 fearstorm;
/* 71 */ uint16 flesh_to_bone;
/* 72 */ uint16 call_to_corpse;
// ===== Paladin =====
/* 73 */ uint16 divine_stun;
/* 74 */ uint16 improved_lay_of_hands;
/* 75 */ uint16 slay_undead;
/* 76 */ uint16 act_of_valor;
/* 77 */ uint16 holy_steed;
/* 78 */ uint16 fearless; // paladin, shadowknight
/* 79 */ uint16 two_hand_bash; // paladin, shadowknight
// ===== Ranger =====
/* 80 */ uint16 innate_camouflage; // ranger, druid
/* 81 */ uint16 ambidexterity; // all "dual-wield" users
/* 82 */ uint16 archery_mastery; // ranger
/* 83 */ uint16 unknown83;
/* 84 */ uint16 endless_quiver; // ranger
// ===== Shadow Knight =====
/* 85 */ uint16 unholy_steed;
/* 86 */ uint16 improved_harm_touch;
/* 87 */ uint16 leech_touch;
/* 88 */ uint16 unknown88;
/* 89 */ uint16 soul_abrasion;
// ===== Bard =====
/* 90 */ uint16 instrument_mastery;
/* 91 */ uint16 unknown91;
/* 92 */ uint16 unknown92;
/* 93 */ uint16 unknown93;
/* 94 */ uint16 jam_fest;
/* 95 */ uint16 unknown95;
/* 96 */ uint16 unknown96;
// ===== Monk =====
/* 97 */ uint16 critical_mend;
/* 98 */ uint16 purify_body;
/* 99 */ uint16 unknown99;
/* 100 */ uint16 rapid_feign;
/* 101 */ uint16 return_kick;
// ===== Rogue =====
/* 102 */ uint16 escape;
/* 103 */ uint16 poison_mastery;
/* 104 */ uint16 double_riposte; // all "riposte" users
/* 105 */ uint16 unknown105;
/* 106 */ uint16 unknown106;
/* 107 */ uint16 purge_poison; // rogue
// ===== Warrior =====
/* 108 */ uint16 flurry;
/* 109 */ uint16 rampage;
/* 110 */ uint16 area_taunt;
/* 111 */ uint16 warcry;
/* 112 */ uint16 bandage_wound;
// ===== (Other) =====
/* 113 */ uint16 spell_casting_reinforcement_mastery; // all "pure" casters
/* 114 */ uint16 unknown114;
/* 115 */ uint16 extended_notes; // bard
/* 116 */ uint16 dragon_punch; // monk
/* 117 */ uint16 strong_root; // wizard
/* 118 */ uint16 singing_mastery; // bard
/* 119 */ uint16 body_and_mind_rejuvenation; // paladin, ranger, bard
/* 120 */ uint16 physical_enhancement; // paladin, ranger, bard
/* 121 */ uint16 adv_trap_negotiation; // rogue, bard
/* 122 */ uint16 acrobatics; // all "safe-fall" users
/* 123 */ uint16 scribble_notes; // bard
/* 124 */ uint16 chaotic_stab; // rogue
/* 125 */ uint16 pet_discipline; // all pet classes except enchanter
/* 126 */ uint16 unknown126;
/* 127 */ uint16 unknown127;
/* 128 */ uint16 unknown128;
} named;
} class_skills;
union {
uint16 unnamed[18];
struct {
/* 129 */ uint16 advanced_innate_strength;
/* 130 */ uint16 advanced_innate_stamina;
/* 131 */ uint16 advanced_innate_agility;
/* 132 */ uint16 advanced_innate_dexterity;
/* 133 */ uint16 advanced_innate_intelligence;
/* 134 */ uint16 advanced_innate_wisdom;
/* 135 */ uint16 advanced_innate_charisma;
/* 136 */ uint16 warding_of_solusek;
/* 137 */ uint16 blessing_of_eci;
/* 138 */ uint16 marrs_protection;
/* 139 */ uint16 shroud_of_the_faceless;
/* 140 */ uint16 bertoxxulous_gift;
/* 141 */ uint16 new_tanaan_crafting_mastery;
/* 142 */ uint16 planar_power;
/* 143 */ uint16 planar_durability;
} named;
} pop_advance;
union {
uint16 unnamed[14];
struct {
/* 144 */ uint16 unknown144;
/* 145 */ uint16 unknown145;
/* 146 */ uint16 unknown146;
/* 147 */ uint16 unknown147;
/* 148 */ uint16 coup_de_grace;
/* 149 */ uint16 fury_of_the_ages;
/* 150 */ uint16 unknown150;
/* 151 */ uint16 lightning_reflexes;
/* 152 */ uint16 innate_defense;
/* 153 */ uint16 unknown153;
/* 154 */ uint16 unknown154;
/* 155 */ uint16 unknown155;
/* 156 */ uint16 unknown156;
/* 157 */ uint16 unknown157;
/* 158 */ uint16 unknown158;
/* 159 */ uint16 unknown159;
/* 160 */ uint16 unknown160;
/* 161 */ uint16 unknown161;
/* 162 */ uint16 unknown162;
/* 163 */ uint16 unknown163;
/* 164 */ uint16 unknown164;
/* 165 */ uint16 unknown165;
/* 166 */ uint16 hasty_exit;
/* 167 */ uint16 unknown167;
/* 168 */ uint16 unknown168;
/* 169 */ uint16 unknown169;
/* 170 */ uint16 unknown170;
/* 171 */ uint16 unknown171;
/* 172 */ uint16 unknown172;
/* 173 */ uint16 unknown173;
/* 174 */ uint16 unknown174;
/* 175 */ uint16 unknown175;
/* 176 */ uint16 unknown176;
/* 177 */ uint16 unknown177;
/* 178 */ uint16 unknown178;
/* 179 */ uint16 unknown179;
/* 180 */ uint16 unknown180;
/* 181 */ uint16 unknown181;
/* 182 */ uint16 unknown182;
/* 183 */ uint16 unknown183;
/* 184 */ uint16 unknown184;
/* 185 */ uint16 unknown185;
/* 186 */ uint16 unknown186;
/* 187 */ uint16 unknown187;
/* 188 */ uint16 unknown188;
/* 189 */ uint16 unknown189;
/* 190 */ uint16 unknown190;
/* 191 */ uint16 unknown191;
/* 192 */ uint16 unknown192;
/* 193 */ uint16 unknown193;
/* 194 */ uint16 unknown194;
/* 195 */ uint16 unknown195;
/* 196 */ uint16 unknown196;
/* 197 */ uint16 unknown197;
/* 198 */ uint16 unknown198;
/* 199 */ uint16 unknown199;
/* 200 */ uint16 unknown200;
/* 201 */ uint16 unknown201;
/* 202 */ uint16 unknown202;
/* 203 */ uint16 unknown203;
/* 204 */ uint16 unknown204;
/* 205 */ uint16 unknown205;
/* 206 */ uint16 unknown206;
/* 207 */ uint16 unknown207;
/* 208 */ uint16 unknown208;
/* 209 */ uint16 unknown209;
/* 210 */ uint16 unknown210;
/* 211 */ uint16 unknown211;
/* 212 */ uint16 unknown212;
/* 213 */ uint16 unknown213;
/* 214 */ uint16 unknown214;
/* 215 */ uint16 unknown215;
/* 216 */ uint16 unknown216;
/* 217 */ uint16 unknown217;
/* 218 */ uint16 unknown218;
/* 219 */ uint16 unknown219;
/* 220 */ uint16 unknown220;
} named;
} pop_ability;
};
to
struct PlayerAA_Struct {
// /* 0 */ uint16 unknown0;
union {
uint8 unnamed[17];
struct {
/* 1 */ uint8 innate_strength;
/* 2 */ uint8 innate_stamina;
/* 3 */ uint8 innate_agility;
/* 4 */ uint8 innate_dexterity;
/* 5 */ uint8 innate_intelligence;
/* 6 */ uint8 innate_wisdom;
/* 7 */ uint8 innate_charisma;
/* 8 */ uint8 innate_fire_protection;
/* 9 */ uint8 innate_cold_protection;
/* 10 */ uint8 innate_magic_protection;
/* 11 */ uint8 innate_poison_protection;
/* 12 */ uint8 innate_disease_protection;
/* 13 */ uint8 innate_run_speed;
/* 14 */ uint8 innate_regeneration;
/* 15 */ uint8 innate_metabolism;
/* 16 */ uint8 innate_lung_capacity;
/* 17 */ uint8 first_aid;
} named;
} general_skills;
union {
uint8 unnamed[17];
struct {
/* 18 */ uint8 healing_adept;
/* 19 */ uint8 healing_gift;
/* 20 */ uint8 spell_casting_mastery;
/* 21 */ uint8 spell_casting_reinforcement;
/* 22 */ uint8 mental_clarity;
/* 23 */ uint8 spell_casting_fury;
/* 24 */ uint8 chanelling_focus;
/* 25 */ uint8 spell_casting_subtlety;
/* 26 */ uint8 spell_casting_expertise;
/* 27 */ uint8 spell_casting_deftness;
/* 28 */ uint8 natural_durability;
/* 29 */ uint8 natural_healing;
/* 30 */ uint8 combat_fury;
/* 31 */ uint8 fear_resistance;
/* 32 */ uint8 finishing_blow;
/* 33 */ uint8 combat_stability;
/* 34 */ uint8 combat_agility;
} named;
} archetype_skills;
union {
uint8 unnamed[94];
struct {
/* 35 */ uint8 mass_group_buff; // All group-buff-casting classes(?)
// ===== Cleric =====
/* 36 */ uint8 divine_resurrection;
/* 37 */ uint8 innate_invis_to_undead; // cleric, necromancer
/* 38 */ uint8 celestial_regeneration;
/* 39 */ uint8 bestow_divine_aura;
/* 40 */ uint8 turn_undead;
/* 41 */ uint8 purify_soul;
// ===== Druid =====
/* 42 */ uint8 quick_evacuation; // wizard, druid
/* 43 */ uint8 exodus; // wizard, druid
/* 44 */ uint8 quick_damage; // wizard, druid
/* 45 */ uint8 enhanced_root; // druid
/* 46 */ uint8 dire_charm; // enchanter, druid, necromancer
// ===== Shaman =====
/* 47 */ uint8 cannibalization;
/* 48 */ uint8 quick_buff; // shaman, enchanter
/* 49 */ uint8 alchemy_mastery;
/* 50 */ uint8 rabid_bear;
// ===== Wizard =====
/* 51 */ uint8 mana_burn;
/* 52 */ uint8 improved_familiar;
/* 53 */ uint8 nexus_gate;
// ===== Enchanter =====
/* 54 */ uint8 unknown54;
/* 55 */ uint8 permanent_illusion;
/* 56 */ uint8 jewel_craft_mastery;
/* 57 */ uint8 gather_mana;
// ===== Mage =====
/* 58 */ uint8 mend_companion; // mage, necromancer
/* 59 */ uint8 quick_summoning;
/* 60 */ uint8 frenzied_burnout;
/* 61 */ uint8 elemental_form_fire;
/* 62 */ uint8 elemental_form_water;
/* 63 */ uint8 elemental_form_earth;
/* 64 */ uint8 elemental_form_air;
/* 65 */ uint8 improved_reclaim_energy;
/* 66 */ uint8 turn_summoned;
/* 67 */ uint8 elemental_pact;
// ===== Necromancer =====
/* 68 */ uint8 life_burn;
/* 69 */ uint8 dead_mesmerization;
/* 70 */ uint8 fearstorm;
/* 71 */ uint8 flesh_to_bone;
/* 72 */ uint8 call_to_corpse;
// ===== Paladin =====
/* 73 */ uint8 divine_stun;
/* 74 */ uint8 improved_lay_of_hands;
/* 75 */ uint8 slay_undead;
/* 76 */ uint8 act_of_valor;
/* 77 */ uint8 holy_steed;
/* 78 */ uint8 fearless; // paladin, shadowknight
/* 79 */ uint8 two_hand_bash; // paladin, shadowknight
// ===== Ranger =====
/* 80 */ uint8 innate_camouflage; // ranger, druid
/* 81 */ uint8 ambidexterity; // all "dual-wield" users
/* 82 */ uint8 archery_mastery; // ranger
/* 83 */ uint8 unknown83;
/* 84 */ uint8 endless_quiver; // ranger
// ===== Shadow Knight =====
/* 85 */ uint8 unholy_steed;
/* 86 */ uint8 improved_harm_touch;
/* 87 */ uint8 leech_touch;
/* 88 */ uint8 unknown88;
/* 89 */ uint8 soul_abrasion;
// ===== Bard =====
/* 90 */ uint8 instrument_mastery;
/* 91 */ uint8 unknown91;
/* 92 */ uint8 unknown92;
/* 93 */ uint8 unknown93;
/* 94 */ uint8 jam_fest;
/* 95 */ uint8 unknown95;
/* 96 */ uint8 unknown96;
// ===== Monk =====
/* 97 */ uint8 critical_mend;
/* 98 */ uint8 purify_body;
/* 99 */ uint8 unknown99;
/* 100 */ uint8 rapid_feign;
/* 101 */ uint8 return_kick;
// ===== Rogue =====
/* 102 */ uint8 escape;
/* 103 */ uint8 poison_mastery;
/* 104 */ uint8 double_riposte; // all "riposte" users
/* 105 */ uint8 unknown105;
/* 106 */ uint8 unknown106;
/* 107 */ uint8 purge_poison; // rogue
// ===== Warrior =====
/* 108 */ uint8 flurry;
/* 109 */ uint8 rampage;
/* 110 */ uint8 area_taunt;
/* 111 */ uint8 warcry;
/* 112 */ uint8 bandage_wound;
// ===== (Other) =====
/* 113 */ uint8 spell_casting_reinforcement_mastery; // all "pure" casters
/* 114 */ uint8 unknown114;
/* 115 */ uint8 extended_notes; // bard
/* 116 */ uint8 dragon_punch; // monk
/* 117 */ uint8 strong_root; // wizard
/* 118 */ uint8 singing_mastery; // bard
/* 119 */ uint8 body_and_mind_rejuvenation; // paladin, ranger, bard
/* 120 */ uint8 physical_enhancement; // paladin, ranger, bard
/* 121 */ uint8 adv_trap_negotiation; // rogue, bard
/* 122 */ uint8 acrobatics; // all "safe-fall" users
/* 123 */ uint8 scribble_notes; // bard
/* 124 */ uint8 chaotic_stab; // rogue
/* 125 */ uint8 pet_discipline; // all pet classes except enchanter
/* 126 */ uint8 unknown126;
/* 127 */ uint8 unknown127;
/* 128 */ uint8 unknown128;
} named;
} class_skills;
union {
uint8 unnamed[15];
struct {
/* 129 */ uint8 advanced_innate_strength;
/* 130 */ uint8 advanced_innate_stamina;
/* 131 */ uint8 advanced_innate_agility;
/* 132 */ uint8 advanced_innate_dexterity;
/* 133 */ uint8 advanced_innate_intelligence;
/* 134 */ uint8 advanced_innate_wisdom;
/* 135 */ uint8 advanced_innate_charisma;
/* 136 */ uint8 warding_of_solusek;
/* 137 */ uint8 blessing_of_eci;
/* 138 */ uint8 marrs_protection;
/* 139 */ uint8 shroud_of_the_faceless;
/* 140 */ uint8 bertoxxulous_gift;
/* 141 */ uint8 new_tanaan_crafting_mastery;
/* 142 */ uint8 planar_power;
/* 143 */ uint8 planar_durability;
} named;
} pop_advance;
union {
uint8 unnamed[77];
struct {
/* 144 */ uint8 unknown144;
/* 145 */ uint8 unknown145;
/* 146 */ uint8 unknown146;
/* 147 */ uint8 unknown147;
/* 148 */ uint8 coup_de_grace;
/* 149 */ uint8 fury_of_the_ages;
/* 150 */ uint8 unknown150;
/* 151 */ uint8 lightning_reflexes;
/* 152 */ uint8 innate_defense;
/* 153 */ uint8 unknown153;
/* 154 */ uint8 unknown154;
/* 155 */ uint8 unknown155;
/* 156 */ uint8 unknown156;
/* 157 */ uint8 unknown157;
/* 158 */ uint8 unknown158;
/* 159 */ uint8 unknown159;
/* 160 */ uint8 unknown160;
/* 161 */ uint8 unknown161;
/* 162 */ uint8 unknown162;
/* 163 */ uint8 unknown163;
/* 164 */ uint8 unknown164;
/* 165 */ uint8 unknown165;
/* 166 */ uint8 hasty_exit;
/* 167 */ uint8 unknown167;
/* 168 */ uint8 unknown168;
/* 169 */ uint8 unknown169;
/* 170 */ uint8 unknown170;
/* 171 */ uint8 unknown171;
/* 172 */ uint8 unknown172;
/* 173 */ uint8 unknown173;
/* 174 */ uint8 unknown174;
/* 175 */ uint8 unknown175;
/* 176 */ uint8 unknown176;
/* 177 */ uint8 unknown177;
/* 178 */ uint8 unknown178;
/* 179 */ uint8 unknown179;
/* 180 */ uint8 unknown180;
/* 181 */ uint8 unknown181;
/* 182 */ uint8 unknown182;
/* 183 */ uint8 unknown183;
/* 184 */ uint8 unknown184;
/* 185 */ uint8 unknown185;
/* 186 */ uint8 unknown186;
/* 187 */ uint8 unknown187;
/* 188 */ uint8 unknown188;
/* 189 */ uint8 unknown189;
/* 190 */ uint8 unknown190;
/* 191 */ uint8 unknown191;
/* 192 */ uint8 unknown192;
/* 193 */ uint8 unknown193;
/* 194 */ uint8 unknown194;
/* 195 */ uint8 unknown195;
/* 196 */ uint8 unknown196;
/* 197 */ uint8 unknown197;
/* 198 */ uint8 unknown198;
/* 199 */ uint8 unknown199;
/* 200 */ uint8 unknown200;
/* 201 */ uint8 unknown201;
/* 202 */ uint8 unknown202;
/* 203 */ uint8 unknown203;
/* 204 */ uint8 unknown204;
/* 205 */ uint8 unknown205;
/* 206 */ uint8 unknown206;
/* 207 */ uint8 unknown207;
/* 208 */ uint8 unknown208;
/* 209 */ uint8 unknown209;
/* 210 */ uint8 unknown210;
/* 211 */ uint8 unknown211;
/* 212 */ uint8 unknown212;
/* 213 */ uint8 unknown213;
/* 214 */ uint8 unknown214;
/* 215 */ uint8 unknown215;
/* 216 */ uint8 unknown216;
/* 217 */ uint8 unknown217;
/* 218 */ uint8 unknown218;
/* 219 */ uint8 unknown219;
/* 220 */ uint8 unknown220;
} named;
} pop_ability;
union {
uint8 unnamed[89];
struct {
/* 221 */ uint8 unknown221;
/* 222 */ uint8 unknown222;
/* 223 */ uint8 unknown223;
/* 224 */ uint8 unknown224;
/* 225 */ uint8 unknown225;
/* 226 */ uint8 unknown226;
/* 227 */ uint8 unknown227;
/* 228 */ uint8 unknown228;
/* 229 */ uint8 unknown229;
/* 230 */ uint8 unknown230;
/* 231 */ uint8 unknown231;
/* 232 */ uint8 unknown232;
/* 233 */ uint8 unknown233;
/* 234 */ uint8 unknown234;
/* 235 */ uint8 unknown235;
/* 236 */ uint8 unknown236;
/* 237 */ uint8 unknown237;
/* 238 */ uint8 unknown238;
/* 239 */ uint8 unknown239;
/* 240 */ uint8 unknown240;
/* 241 */ uint8 unknown241;
/* 242 */ uint8 unknown242;
/* 243 */ uint8 unknown243;
/* 244 */ uint8 unknown244;
/* 245 */ uint8 unknown245;
/* 246 */ uint8 unknown246;
/* 247 */ uint8 unknown247;
/* 248 */ uint8 unknown248;
/* 249 */ uint8 unknown249;
/* 250 */ uint8 unknown250;
/* 251 */ uint8 unknown251;
/* 252 */ uint8 unknown252;
/* 253 */ uint8 unknown253;
/* 254 */ uint8 unknown254;
/* 255 */ uint8 unknown255;
/* 256 */ uint8 unknown256;
/* 257 */ uint8 unknown257;
/* 258 */ uint8 unknown258;
/* 259 */ uint8 unknown259;
/* 260 */ uint8 unknown260;
/* 261 */ uint8 unknown261;
/* 262 */ uint8 unknown262;
/* 263 */ uint8 unknown263;
/* 264 */ uint8 unknown264;
/* 265 */ uint8 unknown265;
/* 266 */ uint8 unknown266;
/* 267 */ uint8 unknown267;
/* 268 */ uint8 unknown268;
/* 269 */ uint8 unknown269;
/* 270 */ uint8 unknown270;
/* 271 */ uint8 unknown271;
/* 272 */ uint8 unknown272;
/* 273 */ uint8 unknown273;
/* 274 */ uint8 unknown274;
/* 275 */ uint8 unknown275;
/* 276 */ uint8 unknown276;
/* 277 */ uint8 unknown277;
/* 278 */ uint8 unknown278;
/* 279 */ uint8 unknown279;
/* 280 */ uint8 unknown280;
/* 281 */ uint8 unknown281;
/* 282 */ uint8 unknown282;
/* 283 */ uint8 unknown283;
/* 284 */ uint8 unknown284;
/* 285 */ uint8 unknown285;
/* 286 */ uint8 unknown286;
/* 287 */ uint8 unknown287;
/* 288 */ uint8 unknown288;
/* 289 */ uint8 unknown289;
/* 290 */ uint8 unknown290;
/* 291 */ uint8 unknown291;
/* 292 */ uint8 unknown292;
/* 293 */ uint8 unknown293;
/* 294 */ uint8 unknown294;
/* 295 */ uint8 unknown295;
/* 296 */ uint8 unknown296;
/* 297 */ uint8 unknown297;
/* 298 */ uint8 unknown298;
/* 299 */ uint8 unknown299;
/* 300 */ uint8 unknown300;
/* 301 */ uint8 unknown301;
/* 302 */ uint8 unknown302;
/* 303 */ uint8 unknown303;
/* 304 */ uint8 unknown304;
/* 305 */ uint8 unknown305;
/* 306 */ uint8 unknown306;
/* 307 */ uint8 unknown307;
/* 308 */ uint8 unknown308;
/* 309 */ uint8 unknown309;
} named;
} god_ability;
};
compile (might as well do a rebuild all) and test away..
it isn't perfect, but the more testing that is done, the better we can make it..
Big BIG thanks to Dspirit, Mllan and Kathgar!