Member
Join Date: Nov 2010
Posts: 70
|
after finding out about the community maintained core data set from This thread, I went through and found several prestige classes I regularly use that were not present.
one of these was champion of corellon laerthian from races of the wild. while putting this into a standalone datafile I realized that most of the class abilities would likely require scripting of some kind, which I know enough about to reuse, but am still having difficulty getting the hang of. reference: RotW p113-117 problems are as follows: Corellon's Blessing ability: the amount of HP healed per day is a function of class level x cha mod, additionally if the character has paladin levels it becomes (champion + paladin levels) x cha mod. it seems the most effective way to track this in HL as it is divisible healing is as a charge set with the number equal to the amount able to healed per day, however HL only gives me the option to put a static # in for the charge stack alternatively this can be ignored and left up to the player much like sneak attack damage (current method in the file) Superior Defense ability: at 3rd, 6th and 9th level in the class, the maximum dex for armor is raised by 1 each time. probably a simple scripting solution, but lack of knowledge runs me headfirst into a brick wall here. unimpeded movement: removal of armor movement speed penalty and allows spring attack with heavy armor, again probably a simple scripting solution. if someone could point me in the right direction for information or provide assistance, would be much appreciated! Last edited by Bluephoenix; November 10th, 2010 at 05:38 PM. Reason: minor grammar |
#1 |
Senior Member
Volunteer Data File Contributor
Join Date: Mar 2007
Posts: 1,245
|
Corellon's Blessing: Eval script looks for Paladin's Lay on hands with a Helper.ShowCharge tag, if it is present add to that thing's hTotal and done. Otherwise assign a Helper.ShowCharge tag to the class ability and add to it's hTotal instead.
Superior Defense: I would start by looking at the Mithral material's Eval script, that changes the Max Dex. Unimpeded Movement: From the PHB2 - Knight file and the Armor Mastery (heavy) ability First 11000 foreach pick in hero where "EquipType.Armor & mClass.Heavy & mCategory.Slows" perform each.delete[mCategory.Slows] nexteach |
#2 |
Senior Member
Volunteer Data File Contributor
Join Date: Mar 2007
Posts: 1,245
|
Corellon's Blessing: Try this
Post Attributes 10000 var whatever as number ~ define whatever as the number that can heal by lay on hands. if (hero.childfound[cPalLayHnd].tagis[Helper.ShowCharge] <> 0) then hero.childfound[cPalLayHnd].field[hTotal].value += whatever else perform assign[Helper.ShowCharge] field[hTotal].value += whatever endif |
#3 |
Senior Member
Volunteer Data File Contributor
Join Date: Mar 2007
Posts: 1,245
|
Superior Defense: Try this
Post-Levels 2500 var bonus as number if (field[xTotalLev].value >= 9) then bonus = 3 elseif (field[xTotalLev].value >= 6) then bonus = 2 elseif (field[xTotalLev].value >= 3) then bonus = 1 endif foreach pick in hero from BaseArmor each.field[mMaxDex].value += bonus nexteach |
#4 |
Member
Join Date: Nov 2010
Posts: 70
|
the blessing, unimpeded and superior defense stuff worked, along with slowly helping me understand the scripting HL uses.
while the class does have a deity requirement, I've left it out of the requirements evaluation as diety is a freeform entry in HL. currently the file checks for exotic weapon proficiency (any) and weapon focus (any) using the following 2 scripts appropriated from exotic weapon master: Code:
~ We are valid if we have the Exotic Weapon Proficiency feat. validif (#hasfeat[fExoticWep] <> 0) ~ Or if we have a weapon that requires Exotic, and we are proficient foreach pick in hero from BaseWep where "wProfReq.Exotic" validif (each.tagis[Helper.Proficient] <> 0) nexteach Code:
foreach pick in hero from BaseWep where "Broadcast.WepFocus" validif (each.tagis[wProfReq.Exotic] <> 0) nexteach Weapon Focus (longsword) or Exotic weapon proficiency (Elven Thinblade or elven courtblade) I've tried modifying the 2 scripts and it doesn't like anything I try. suggestions? the class is also giving a warning "maximum 10 levels" whenever the 10th level of the class is added, which is confusing me as when I created the entry I specified maximum levels 10.... O.o aside from that problem the class is finished Last edited by Bluephoenix; November 10th, 2010 at 09:22 PM. Reason: added class levels error |
#5 |
Senior Member
Volunteer Data File Contributor
Join Date: Mar 2007
Posts: 1,245
|
For an example of a prestige class that looks for proficiency in a specific exotic weapon, look at Red Mantis Assassin:
tagis[WepProf.wPFSawtoot] <> 0 For a specific Weapon Focus look at arcane archer hero.tagis[WepFocus.wLongbow] + hero.tagis[WepFocus.wShortbow] <> 0 Combining those into one Expr-req so that either will fulfill the requirement we get. hero.tagis[WepFocus.wLongsword] + hero.tagis[WepProf.wSwordElCo] + hero.tagis[WepProf.wSwordElBl] + hero.tagis[WepProf.wElfThBlCW] <> 0 Note that Thinblade has been entered twice, once for the version in RotW and once for the Complete Warrior version. |
#6 |
Member
Join Date: Nov 2010
Posts: 70
|
ah, I got the tag correct then, just the expression logic incorrect.
thanks greatly for the help and edification, just some housekeeping left to do on the file and then I'll send it off to chemosh for testing and inclusion with appropriate credits. |
#7 |
|
|