PDA

View Full Version : Critical hits, AA points ...


ryco
04-20-2002, 04:12 PM
No idea how hard it would be to add such things, but I think it would be reallllllyyyy awesome eheh =)

What you all think?

oh and Discipline too ... would be really cool !

ryco
04-23-2002, 05:03 AM
answer please !!!! hehe
Really interested in seeing critical hits / mighty strike in the game hehe

EmuSharky
04-23-2002, 05:08 AM
AA's are in...
You'll have to set up an NPC that gives you xx amount of exp. Once you do it, kill the NPC, have the points shoved into AA exp - See what happens.

I did NOT get the chance to try this last night, but I will be doing it tonight. Please let me know if this doesnt work for you.

-Sharky

Shawn319
04-23-2002, 06:53 AM
Well it would be nice if you could click the % arrows to allow you to transfer XP into AA xp.. AA doesnt work ;\

It is on the private dev task list (i added it myself last week), along with class disciplines.

meliudaj
04-23-2002, 06:59 AM
THis is a stupid question.. but being that I haven't Played EQ since DAoC came out... What is an AA point?

ryco
04-23-2002, 09:11 AM
okay thanks for answering =)
I think it would be a really really great addition to EQEmu

Baron Sprite
04-23-2002, 10:34 AM
SCRATCH that, conflicted with something, back to the drawing board :-D

ryco
04-24-2002, 12:59 AM
what do you mean Sprite ?

meliudaj
04-24-2002, 02:06 AM
from the looks of it.. he typed out something.. then came back and edited it.

ryco
04-24-2002, 02:07 AM
oh hehe

Shin Noir
04-24-2002, 07:28 AM
THis is a stupid question.. but being that I haven't Played EQ since DAoC came out... What is an AA point?
AA Point = Alternate Advancement Point
When luclin came out they released a new concept where after you recieve your 51st level you can choose to put a certain % of your experience gained into a special EXP pool called "AAXP". You gain special abilities from it, (Alternate Abilities I suppose you could call them) and take about the same exp as.. ( I think ).. about level 30 to get 1 point of AA.

Complete listing on AA's and their purposes\methods can be fouund at
http://www.eq.castersrealm.com
(AAXP Tab on the left side)

Hope taht helps meiudaj/

meliudaj
04-24-2002, 07:50 AM
Oh... so my hunch was right


AA = TS


TS = TIME SINK :-)

Baron Sprite
04-24-2002, 10:58 AM
I had done crit hits, was messed up ;)

Wrathor
04-24-2002, 01:06 PM
one AA point = level 51 =p
use to be 50 but people were getting points way to quickly.

Ariak
04-24-2002, 01:43 PM
Having full NTOV+ Gear basically makes your exp go mega fast.. Hence the excruciatingly "Slow" AA point earnings..

If you had a full NTOV+ Group, level 59, they'd get out of 59 before a normal group of level 51's would due to the gear.

(Assuming they are not casters, heh)

Shin Noir
04-24-2002, 02:57 PM
I tell ya , 54+ those AA Points feel like they're around lvl 30! That's what they felt like to me.. But you're probably right. I totally guessed the level equiv of it. ^_^

Wierdo99
04-25-2002, 03:53 AM
AA is faster than level 51, but slower than level 50. I have a level 51 Minstrel that is putting half exp into AA and half exp into level, and the AA is moving at a much faster rate.

Darkman
05-03-2002, 07:39 PM
I've implemented a few things on Alternate Advancement.

Unfortunately, the PlayerProfile_Struct does NOT contain information about alternate advancement and the server holds a separate table of 128 (?) bytes in size. (table defined below)

I've been fiddling around with the way the server communicates this data to the client... but all I can figure out is that the server sends an opcode of 0x1522 with the table as the payload once the client is connected and established in the zone.

AA experience value is an int32 at location 4529 (4530?) in the PlayerProfile_Struct. I can't figure out where the percentage and number of unspent AA points are stored.

I'm too lazy to fill out the archetype_skills field with correct names. If you're feeling spiffy and want to fill in the names, just go #gm, hit V, and click on the names of the skills in the arch. skill list, the descriptions will show the ID number (which coincides with the position in the buffer). Just be happy I went through ALL the Class skills of each class (yes, they're all listed. no, I didn't forget beastlords -- they just use the same skills as shamen / monks.)

There is, however, a message from the client with an opcode of 0x1422 when the user clicks the arrow buttons in the Alternate Advancement menu, but all I can glean from the 256-byte field is a string containing a word "on" or "off" and a text-encoded number which seems to equal the percentage requested. I can't figure out how to respond with the right value to enable the AAXP percentage, so it stays 0% at all times. Oh well.

I implemented a copy of the Database::GetPlayerProfile() function that returns the "alt_adv" column from the "character_" table. It works pretty well, but it requires that everyone "ALTER TABLE character_ ADD COLUMN alt_adv blob;" their databases, which is icky... and requires that the code that looks up the table will handle a NULL value when the emu tries to look up the alt_adv table when nothing has been saved there before.


struct PlayerAA_Struct {
/* 0 */ uint8 unknown0;
union {
uint8 unnamed[17];
struct _named {
/* 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 _named {
/* 18 */ uint8 healing_adept;
/* 19 */ uint8 healing_gift;
/* 20 */ uint8 unknown20;
/* 21 */ uint8 spell_casting_reinforcement;
/* 22 */ uint8 mental_clarity;
/* 23 */ uint8 spell_casting_fury;
/* 24 */ uint8 chanelling_focus;
/* 25 */ uint8 unknown25;
/* 26 */ uint8 unknown26;
/* 27 */ uint8 unknown27;
/* 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[93];
struct _name {
/* 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;
} named;
} class_skills;
};


Edit: had a 15 where a 14 should have been. now it's all correct data above.

Ariak
05-04-2002, 08:28 AM
AA points would be awesome!

Lyenu X`Arie
05-07-2002, 07:19 PM
This is the data I have collected...

int32 aaexp = 0x4532
int8 aapercent = 0x4537

0x1422 = OP_AAButton

I've got buttons structure almost figured out.. got a little bit more to do about it though =P

PS: I saw that exact same code in ShowEQ code ~grin~ if you work them or coded it for them it's all good though =P

Darkman
05-07-2002, 07:32 PM
It may be the same "code" as what's in ShowEQ, but it's only a coincidence in the fact that it's the correct structure. Sure, I may have reinvented the wheel, but I'll tell ya, it's 100% my few hours of writing down information and typing it in. Not that I have anything to prove, though. I'm just saying that I didn't plagiarise Megaton et al's work.

I should probably skim through ShowEQ's code and see what I'm missing in my implementation of the AA code I wrote, though...

/shrug

Raahb
12-31-2002, 01:10 PM
Hey. Kinda of new here. Are aa's in yet? :)