![]() |
|
![]() |
|
Thread Tools | Display Modes |
Junior Member
Join Date: Mar 2014
Location: Milwaukee, WI
Posts: 20
|
I am trying to program the following feat from the Pathfinder sourcebook In the Company of Dragons Expanded. I have the base In the Company of Dragons source already purchased and need some assistance on how I can add this as a feat. The material also says there is an adjustment in HL for Dracomorphosis but I can only assume it was removed at some point because I can't find it.
Legendary Size (Dragon) You are a dragon of truly prodigious size. Prerequisite: dracomorphosis class feature, character level 8th Benefit: Increase your effective level by 2 when determining the effects of dracomorphosis. If you have at least 20 class levels in classes with the draconic hero archetype, gain the Colossal size and other benefits of the draconic exemplar’s great wyrm class feature. If you have at least 20 draconic exemplar class levels, gain an additional +2 size bonus to Strength and Constitution. How do I grant the Great Wyrm [cRPDraGrea] class special ability at level 20? I'm using the following but its throwing an error. if (HeroLev >= 20) then perform hero.assign[cRPDraGrea] endif Last edited by tekknowkub; October 24th, 2022 at 04:11 AM. |
![]() |
![]() |
Junior Member
Join Date: Mar 2014
Location: Milwaukee, WI
Posts: 20
|
I have created the following Eval Script to attempt to replace the existing variable hero.child[xRPDraDrac].field[abValue5].value = maximum(ExIncr1,HeroIncr1)
Generally when I click Test it seems to work ok but if I add levels or restart Hero Lab the feat stops working again. Can anyone assist? First, 401, Index 1 ~if we've been disabled, get out now doneif (tagis[Helper.SpcDisable] <> 0) var ExLev as number var HeroLev as number var HeroLev1 as number var ExIncr1 as number var HeroIncr1 as number ExLev = 0 call DracHero if (#levelcount[DraconicE] >= 1) then ExLev = #levelcount[DraconicE]+2 hero.childfound[cRPDraDra4].field[xExtraLev].value += 2 elseif (HeroLev >= 1) then HeroLev1 = HeroLev+2 hero.childfound[cRPDraDra5].field[xExtraLev].value += 2 endif ExIncr1 = round(ExLev/4,0,-1) if (HeroLev <= 19) then HeroIncr1 = round(HeroLev1/5,0,-1) elseif (HeroLev >= 20) then HeroIncr1 = 5 perform hero.childfound[abCITDraHGrtWyrm].assign[Helper.ShowSpec] endif ~debug "ExLev = " & ExLev ~debug "HeroLev = " & HeroLev ~ store for later script use hero.child[xRPDraDrac].field[abValue5].value = maximum(ExIncr1,HeroIncr1) |
![]() |
![]() |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 13,237
|
Why have this script running ultra-early? At First/401? Normally, a script that's just altering xExtraLev I'd put in the pre-levels phase, and then use normal timings - I prefer multiples of 10000.
Where is the HeroLev variable set? The xRPDraDrac pick - what phase & priority does its script to set abValue5 run? |
![]() |
![]() |
Junior Member
Join Date: Mar 2014
Location: Milwaukee, WI
Posts: 20
|
I'm not sure where HeroLev is set. I copied this eval script from the In the Company of Dragons, altered it a bit and then set it to run immediately after the original. The xExtraLev is just for the text of the power, the actual mechanics come from whats stored in abValue5 and the other variables based on it.
The Ability, Dracomorphosis (Functional) is xRPDraDrac. It have EvalScripts running at Pre-Attributes/10000, Post-Attributes/10000, First/400, First/401, Post-Attributes/9000 |
![]() |
![]() |
Member
Join Date: May 2021
Posts: 84
|
In case it helps, the line in the script that reads
Quote:
Open the editor, and in the "General" tabs there is a "*Procedure" tab. Hit the "New Copy" button and choose the entry for "DracHero" in that list, and you will be able to read the script in the new copy you make. You can't edit the original DracHero procedure used by the Company of Dragons data files, but sometimes it is helpful to see the code being used. |
|
![]() |
![]() |
Junior Member
Join Date: Mar 2014
Location: Milwaukee, WI
Posts: 20
|
Quote:
Here is the Procedure DracHero ~ calculate Draconic Hero level var HeroLev as number HeroLev = 0 if (hero.tagis[ClassVary.arAlcDraco] <> 0) then HeroLev += #levelcount[Alchemist] endif if (hero.tagis[ClassVary.arBbnDraco] <> 0) then HeroLev += #levelcount[Barbarian] endif if (hero.tagis[ClassVary.arBrdDraco] <> 0) then HeroLev += #levelcount[Bard] endif if (hero.tagis[ClassVary.arCavDraco] <> 0) then HeroLev += #levelcount[Cavalier] endif if (hero.tagis[ClassVary.arClrDraco] <> 0) then HeroLev += #levelcount[Cleric] endif if (hero.tagis[ClassVary.arDrdDraco] <> 0) then HeroLev += #levelcount[Druid] endif if (hero.tagis[ClassVary.arFtrDraco] <> 0) then HeroLev += #levelcount[Fighter] endif if (hero.tagis[ClassVary.arGunDraco] <> 0) then HeroLev += #levelcount[Gunsling] endif if (hero.tagis[ClassVary.arInqDraco] <> 0) then HeroLev += #levelcount[Inquisito] endif if (hero.tagis[ClassVary.arMagDraco] <> 0) then HeroLev += #levelcount[Magus] endif if (hero.tagis[ClassVary.arMnkDraco] <> 0) then HeroLev += #levelcount[Monk] endif if (hero.tagis[ClassVary.arOraDraco] <> 0) then HeroLev += #levelcount[Oracle] endif if (hero.tagis[ClassVary.arPalDraco] <> 0) then HeroLev += #levelcount[Paladin] endif if (hero.tagis[ClassVary.arRgrDraco] <> 0) then HeroLev += #levelcount[Ranger] endif if (hero.tagis[ClassVary.arRogDraco] <> 0) then HeroLev += #levelcount[Rogue] endif if (hero.tagis[ClassVary.arSorDraco] <> 0) then HeroLev += #levelcount[Sorcerer] endif if (hero.tagis[ClassVary.arSumDraco] <> 0) then HeroLev += #levelcount[Summoner] endif if (hero.tagis[ClassVary.arTasDraco] <> 0) then HeroLev += #levelcount[Taskshape] endif if (hero.tagis[ClassVary.arWitDraco] <> 0) then HeroLev += #levelcount[Witch] endif if (hero.tagis[ClassVary.arWizDraco] <> 0) then HeroLev += #levelcount[Wizard] endif |
|
![]() |
![]() |
Junior Member
Join Date: Mar 2014
Location: Milwaukee, WI
Posts: 20
|
I'm running this eval script at First/400/2 because I want it to run and replace the values set but the original eval script for ITC.
The racial size increase only works when I click "Test Now!", if I close Hero Lab or quick reload the files the size increase no longer functions. However the attributes increase adjust correctly. I really appreciate any assistance. ~ determine new dracomorphosis increment ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~if we've been disabled, get out now doneif (tagis[Helper.SpcDisable] <> 0) var ExLev as number var HeroLev as number var HeroLev1 as number var ExIncr1 as number var HeroIncr1 as number var incr as number ExLev = 0 call DracHero if (#levelcount[DraconicE] >= 1) then ExLev = #levelcount[DraconicE]+2 hero.childfound[cRPDraDra4].field[xExtraLev].value += 2 elseif (HeroLev >= 1) then HeroLev1 = HeroLev+2 hero.childfound[cRPDraDra5].field[xExtraLev].value += 2 endif ExIncr1 = round(ExLev/4,0,-1) if (HeroLev <= 19) then HeroIncr1 = round(HeroLev1/5,0,-1) elseif (HeroLev >= 20) then HeroIncr1 = 5 perform hero.childfound[abCITDraHGrtWyrm].assign[Helper.ShowSpec] endif ~debug "ExLev = " & ExLev ~debug "HeroLev = " & HeroLev ~ store for later script use hero.child[xRPDraDrac].field[abValue5].value = maximum(ExIncr1,HeroIncr1) field[abValue5].value = maximum(ExIncr1,HeroIncr1) incr = hero.child[xRPDraDrac].field[abValue5].value |
![]() |
![]() |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 13,237
|
Let's go back to the basics - are you working in the right folder? In the main HL window, in the Tools menu, choose Explore Folders, and then Game System Data Folder. That'll open a folder from your computer - is the file you're creating this content in within that folder (and not a sub-folder)? Having a file somewhere else is something that can create the symptom of things only working after test now - HL only loads files from the correct folder when loading, but the test now operation just patches that one item into the database, and where the file it's from is located isn't checked.
|
![]() |
![]() |
Junior Member
Join Date: Sep 2012
Posts: 9
|
wow, this is weird. I did the HL coding for the original In the Company of Dragons, sooo long ago now (2016, according my files.)
I have my original source code, if you need to see any bits. (It's been a while, don't remember too much about HL coding these days.) |
![]() |
![]() |
Junior Member
Join Date: Mar 2014
Location: Milwaukee, WI
Posts: 20
|
I am coming at this from a different angle now. I found that the Dracomorphosis (functional) ability is actually assigned at the Race Taninim and I have been trying to attack it from a feat perspective. My though is to create an alternate racial trait that will replace the core Dracomorphosis ability with a custom one I create that allows for alterations from the expanded book.
|
![]() |
![]() |
![]() |
|
|