Log in

View Full Version : Customizing AA's


Adcid
12-01-2014, 12:01 PM
I've followed the creation guide and made some modifications to my privet server in attempts to make a more modern game play environment for my family while introducing them to the game that started it all for me. I've updated epics to have relevant abilities, like Spear of Fate now having a clickable slow rather than a pointless DoT, and adjusted the xp gained per level so that its less of a grind.

Currently while enabled my Mercs and bots are not working, but that's not the point of this thread.

What I would like to do is modify some AA's to make them available at levels below the level 51 barrier. I've done some extensive searches and found that I am not the only one interested in doing this, however I've seen some work around rather than an actual solution.

I've come to the conclusion that while giving characters the ability to gain AA xp below 51 would be nice, I would settle for giving specific classes some AA's to start with. My prime example would be the Ranger. I would like to give the Range class endless quiver upon make the character.

I have modified the AA itself to be available at level one, but without simply giving myself the AA's with the "#setaapts" command I don't know of another way of accomplishing this task. I would like this process to be seamless without needing to type anything in, and without having to allocate the points myself. Is this even possible, and if so, where should I start?

Maze_EQ
12-01-2014, 12:37 PM
Set the points and level requirement to 0? Or have every mob in the game give aa exp using perl? not sur.e

Kingly_Krab
12-01-2014, 02:32 PM
Take a look at this (http://wiki.eqemulator.org/p?altadv_vars). Specifically cost, cost_inc, and class_type.

Adcid
12-01-2014, 02:33 PM
So I've modified Endless Quiver in the "altadv_vars" table to set the level requirement of the AA to both 1 and 0, neither seem to have an impact on the AA's availability. I've set the cost to 0 and still unable to train the ability.

modifying a mob to supply AA exp would be a general approach, I'm trying to specifically give just Rangers this ability without giving everyone AA exp.

Leetsauce
12-01-2014, 07:41 PM
This is super easy to do if you use the PEQ Editor built into the EoC.

Go to the AA's tab, select the AA you want to alter in the drop-down, and edit level_req field to whatever you want.

Example:

AA's tab -> Endless Quiver -> http://i61.tinypic.com/2lco013.jpg

Then click "submit changes"

You may need to reboot the server for this to take effect, I can't remember that portion.


Edit: Be sure to change the cost to "0" in that same menu as well if you're wanting to give it to the class without requiring them to grind for the XP to buy it.
Edit2: Alternatively, perl is also an option. There is the ability to do it like:

sub EVENT_SAY {
if($text=~/hail/i) {
$client->IncrementAA(205);
}
}

This is the only way I am aware of without having to allocate the points yourself. Though, I can't imagine clicking buy to be too hard or strenuous to the player.

Adcid
12-01-2014, 08:06 PM
the PEQ Editor looks like a friendlier UI than the Database editor I'm using, but doesn't it ultimately do the same thing? Changing the required level to 0 or even 1 is what I've already done. Setting the required AA to 0 is something I've already tried. I'm more than willing to broadcast my server for the purpose of using the PEQ Editor if its going to work, but from the looks of it, I've done everything manually that the editor does.

Can anyone confirm that the changes in the PEQ Editor actually work and make Endless Quiver useable at level 1 without having to spend points?

Leetsauce
12-01-2014, 11:48 PM
I can confirm that it will not. You will have to allocate the points(or lackthereof) yourself.

Yes, it's basically the same thing, however there are slight differences like viewing the full information of a single AA in a single screen as opposed to flipping through multiple tables (read: instead of aa_actions, aa_effects, aa_required_level_cost, aa_timers, aldadv_vars)

The only way to do this without having the player to allocate the points is having the player speak with an npc and assigning the AA via the script I posted up above, or a variation thereof, which will auto-assign a specific AA ID.

Edit: you may be able to change around source to prevent the game from removing an arrow from the ammo slot when a shot is fired, but that is more of a pain than just simply having someone click the "buy" button or hailing an npc and clicking some saylinks.

The way I would do this on a class-by-class basis is having a single npc for each class that you would hail, which would have a check on it of some sort, that would provide the AA increments you're looking to assign on a class-by-class basis.

Mariomario
12-02-2014, 12:36 AM
This is something I use currently to automatically give people certain AAs when they first create their character on my server. This prevents them from needing to "buy" it in the AA window.

$client->IncrementAA(aa_id) will give the character the specified AA. Please also refer to this thread where someone else asked something similar.

http://www.eqemulator.org/forums/showthread.php?t=38451


## Temple player.pl

sub EVENT_ENTERZONE
{
if(!defined $qglobals{"Begin_Adven"})
{
quest::setglobal("Begin_Adven",1,5,"F");
quest::setglobal("CharMaxLevel",50,5,"F");

if($class eq "Ranger")
{
$client->IncrementAA(1);
$client->IncrementAA(2);
$client->IncrementAA(3);
$client->IncrementAA(5);
}
if($class eq "Wizard" || $class eq "Shaman")
{
$client->IncrementAA(2);
$client->IncrementAA(3);
$client->IncrementAA(5);
$client->IncrementAA(6);
}
elsif($class eq "Berserker" || $class eq "Rogue")
{
$client->IncrementAA(2);
$client->IncrementAA(5);
}
else
{
$client->IncrementAA(2);
$client->IncrementAA(3);
$client->IncrementAA(5);
}
}
}

Adcid
12-02-2014, 01:01 AM
This is something I use currently to automatically give people certain AAs when they first create their character on my server. This prevents them from needing to "buy" it in the AA window.

$client->IncrementAA(aa_id) will give the character the specified AA. Please also refer to this thread where someone else asked something similar.

http://www.eqemulator.org/forums/showthread.php?t=38451


Going to give this a shot... I know this sounds noob, and I know this adjustment needs to be done in pearl, but is there a specific file that I need to modify?

Adcid
12-02-2014, 12:35 PM
I've had some success. I had been toying with multiple projects with my server, one of them making epics a starting item. Of course I implemented that easily but thought, how can I make it seem more "EverQuest".

Every Character when created starts with a note in their bag telling them to go see their guild master. When you turn this in, you receive a crappy item, a little exp and faction.

While this requires more adjustments to each NPC, i think it gives the game a more quest feel to it.

if(item_lib.check_turn_in(e.trade, {item1 = 18709})) then
e.self:Say("Welcome, we are the Protectors of the Pine. Wear this tunic of our guild, and help us defend our great and beautiful woods. Go to Larsk Juton, he will help train you and teach you the power of the woods.");
e.other:SummonItem(8407);
e.other:SummonItem(24488);
e.other:Ding();
e.other:Faction(265,100,0); -- Protectors of Pine
e.other:Faction(159,25,0); -- Jaggedpine Treefolk
e.other:Faction(279,-15,0); -- Sabertooths of Blackburrow
e.other:Faction(135,25,0); -- Guards of Qeynos
e.other:AddEXP(100);
e.other:IncrementAA(205);
Here I've set up the GM in Surefall Glades to accept the note from the new ranger, then give the ranger a Bow & arrow in addition to the endless quiver ability.

I will then take this example, and go to each GM for Rangers to make the needed adjustments.

Edit: This fix seems to only work for surefall glades. The ranger in Greater Faydak has different coding and cannot be resolved with a simple addition of "e.other:IncrementAA(205);"

Adcid
12-04-2014, 11:28 AM
Conclusion;

When wanting to add a given AA ability to a quest turn in, like the first note to the GM when you first create a character, follow the information below. I did this for Rangers giving them endless quiver, and the item received is now a bow. Obviously this can be customized to anyone needs.

Old code: Noted by "quest::"
$client->IncrementAA("AA_ID");

New code: Noted by "e.other:"
e.other:IncrementAA("AA_ID");

Where "AA_ID" you'll simply put the ID of the specific AA typically found in the "altadv_var" table of your SQL server. For Rangers Endless Quiver, the AA_ID is 205.

Leetsauce
12-05-2014, 10:23 AM
Glad to see a conclusion. I like that you worked it into the turn-in quest as well. I may use this idea on my server if it is okay with you.