Why do classes share spec lines?

For any problems with Dawn of Light website or game server, please direct questions and problems here.

Moderator: Support Team

Why do classes share spec lines?

Postby DrStrange » Mon Aug 03, 2015 8:10 pm

Never made sense, example: LA should be on separate table Berserker / SB in DB.

Archery should be divided amongst the three in case you wanted to change something on one class however not the other.

Shared hammer lines mess up War/Thane/Savage etc example would be like the Thane having a bleed AND a DD on a style where he normally gets just the DD and the war gets the bleed.

Can all these lines be duplicated,changed and separated amongst the classes in the DB so they get the correct effects for each class without messing up another? I would imagine it would take a long time however can it even be done?
DrStrange
 

Re: Why do classes share spec lines?

Postby rdsandersjr » Mon Aug 03, 2015 8:26 pm

if i recall correctly they are separate inside the database. There is multiple record rows identified by classid.

Edit:

I have not messed with DOL so this info could be outdated, however it works/did work like below:

Using the DOL Public Database (http://svn.code.sf.net/p/dolpubdb/code/tables/), if you look in Style for example. You have multiple entrys for double frost.

Style Table Layout:
Code: Select all
INSERT IGNORE INTO `style` (`ID`, `ClassId`, `Name`, `SpecKeyName`, `SpecLevelRequirement`, `Icon`, `EnduranceCost`, `StealthRequirement`, `OpeningRequirementType`, `OpeningRequirementValue`, `AttackResultRequirement`, `WeaponTypeRequirement`, `GrowthRate`, `BonusToHit`, `BonusToDefense`, `TwoHandAnimation`, `RandomProc`, `ArmorHitLocation`, `Style_ID`)
Shadow Blade:
Code: Select all
(202, 23, 'Doublefrost', 'Left Axe', 34, 202, 10, 0, 0, 0, 0, 1000, 0.75, 5, 0, 202, 0, 0, 'Shadowblade-Doublefrost-202'),
Zerker:
Code: Select all
(202, 31, 'Doublefrost', 'Left Axe', 34, 202, 10, 0, 0, 0, 0, 1000, 0.75, 5, 0, 202, 0, 0, 'Berserker-Doublefrost-202'),
As you can see 23 = Shadowblade ClassID, and 31 is the Zerker Class ID. Then inside of the StyleXSpell table, you have your "procs". That tie any proc to a classid and styleid, if no entry in the table then naturally no proc will be attached.
Thanks,
RDSandersJR
User avatar
rdsandersjr
Support Team
 
Posts: 1089
Joined: Fri Aug 01, 2008 3:01 pm
Location: Cincinnati, Ohio

Re: Why do classes share spec lines?

Postby DrStrange » Mon Aug 03, 2015 8:36 pm

Nope, just some things like styles I will give a example on how styles are a issue. The Thane's Mjolnir's Fury in hammer spec has BOTH a bleed and a DD however it's only supposed to have the DD so you have to make another line just for that one style to remove the bleed.

This is painfully time consuming, the archery "table" is shared amongst 3 classes and are not unique to any one because of this so if one thing is changed all 3 are. They should have seperate spec line names first off "longbow" "Recurve" etc like old daoc (instead of just "archery" shared by all 3 this way if you feel like changing them you can for just ONE class. They also all share the pathfinding line so you change one you change all 3.

Basically and I know if I wanted to make separate tables for the classes it would take a long time however it "almost" seems worth it just because it feels more like World of Warcraft instead of DAoC.

Mirrored spec lines are lazy and horrible. CS shared by all 3,LA SB/ZERK,CD BM and NS, the DB needs to be divided for all of them and I may just take on this crazy task.
DrStrange
 

Re: Why do classes share spec lines?

Postby rdsandersjr » Mon Aug 03, 2015 8:40 pm

I miss-read your issue, I thought you was talking Code wise and not DB. Yes the code is modular to support what you are wanting todo.

Its just DB work at the end of the day.
Thanks,
RDSandersJR
User avatar
rdsandersjr
Support Team
 
Posts: 1089
Joined: Fri Aug 01, 2008 3:01 pm
Location: Cincinnati, Ohio

Re: Why do classes share spec lines?

Postby DrStrange » Mon Aug 03, 2015 8:49 pm

Exactly, I have to divide the archery spec lines and name them so they can be customized separately.

I have to go over all the shared styles and make sure they don't have double procs or incorrect growth rates etc because they are shared to a degree.

The other thing that's a issue is finding icons for the new RR5's since they don't show up on the current DoL server however they exist in the client.
DrStrange
 

Re: Why do classes share spec lines?

Postby Leodagan » Tue Aug 04, 2015 7:21 am

I don't understand the trouble here...

Style are given with a specific class ID, Style Proc are given to specific Style/ClassID Combo, if one style has both "Procs" it mean one of the proc is attached to all ClassID (0)...
I remember removing Multi-Proc from Style short time ago, they were dangerous and useless with the use of "Multi-Spell" instead of Multi-Proc. The code should only choose the Class ID Specific Proc !

SpellLine like "Archery" can also be attached to Specific Class, (there is a ClassIDHint on SpellLine table that is meant to only give the spell Line to the specific Class), so you can have one Spec "Archery" Attached to 3 Spec Spell Lines, each one having its own "ClassID" (like Hunter/Ranger/Scout)

Abilities Attached to Spec can also be filtered by ClassID (used for Stealth Spec, because Assassin get more Safe Fall than Archer/Minstrel)

If you build Custom Spec for each Class to split up all these skill you'll have trouble around a lot of other mechanisms like Spec Bonus, or Focus Bonus, these bonus are hard tied to the Spec KeyName and not to the Spec Name...

You could update some Bonus Calculator to work like "All Weapon Spec Bonus" and match all the "clone specs" you made but that a lot of work code oriented and database oriented !

Spec are supposed to be pretty much "Unique" because of all formula going around there (Focus Power Consumption, WeaponSkill, Style Damage, Stealth Detection Formula, Spell/Weapon Damage Variance, etc etc), that's why I used a lot of "ClassID" in each of the attached skills to allow splitting only where necessary and keep all other skills in sync :)
Last edited by Leodagan on Tue Aug 04, 2015 8:00 am, edited 1 time in total.
User avatar
Leodagan
Developer
 
Posts: 1350
Joined: Tue May 01, 2012 9:30 am
Website: https://daoc.freyad.net
Location: Lyon

Re: Why do classes share spec lines?

Postby DrStrange » Tue Aug 04, 2015 7:48 am

Thane has bleed and proc on level 50 style hammer. Shouldn't be that way.

Archery is one spec used for all 3 , you would have to make 3 separate tables to alter shots otherwise all 3 get it.They should of left it like the old spec lines , recurve, longbow etc just examples

It just would have been nice to have completely separate tables for every class so they can be edited individually instead of having to go through the DB picking out the F-ups.
DrStrange
 

Re: Why do classes share spec lines?

Postby Leodagan » Tue Aug 04, 2015 8:14 am

You're welcome to make your own Career Data if the one provided doesn't match your use case...

Actually Old Archery Specs are NOT in the Public Database, if you want to implement Recurve/Short/Long Bow you can create these specs with no collision to actual "Archery" Spec...

Database logic is not for "human", having one table for each class is not something you should do in a database, but you can create "Views" that join all skill records on a class basis so you can have a more human-readable data.

Database is all about "relations", duplicating data is a bad use case, if multiple data record have the same values you should have only one data record referenced by multiple relations !

You seem to be wanting to use database as a plain-text file, you can always try to work around "Database Auto XML Updater" to keep the Career Data Organized as XML Files in a directory tree (use the replace directory to force Table update each time you update some files)
http://www.dolserver.net/viewtopic.php?f=5&t=22294
User avatar
Leodagan
Developer
 
Posts: 1350
Joined: Tue May 01, 2012 9:30 am
Website: https://daoc.freyad.net
Location: Lyon

Re: Why do classes share spec lines?

Postby DrStrange » Tue Aug 04, 2015 9:58 am

At one point I "had" a script that allowed scouts only to shoot farther than rangers/hunters because I wanted to give them diversity and some new toys. I geared the scout more towards a pure sniper idea so it was coded that it gave 35 more units of range per level from level 40 to 50 if spec in archery.

So at 50 archery the scout had 350 more units of range across the archery spec. Anyway long story short I lost that script and was looking to do it in another way so the DB was just a idea.
DrStrange
 

Re: Why do classes share spec lines?

Postby Leodagan » Tue Aug 04, 2015 10:15 am

Use the SpecXAbility Table :

Attach some new Ability like "Range Bonus Ability" to Archery Spec (Level 40-50), and filter every classes but "Scout"

Create a "Range Bonus Ability" that trigger a passive Spell/Archery Range Property Bonus ;)

When speccing to the Level defined in SpecXAbility Table, the Ability will be auto attached to the Player (and in case of Passive Ability, it will trigger bonus based on the code you added)
User avatar
Leodagan
Developer
 
Posts: 1350
Joined: Tue May 01, 2012 9:30 am
Website: https://daoc.freyad.net
Location: Lyon

Re: Why do classes share spec lines?

Postby DrStrange » Tue Aug 04, 2015 8:06 pm

Will do thanks man!
DrStrange
 


Return to “%s” Support

Who is online

Users browsing this forum: No registered users and 1 guest