Lone Wolf Development Forums

Lone Wolf Development Forums (http://forums.wolflair.com/index.php)
-   HL - D&D 5th Edition SRD (http://forums.wolflair.com/forumdisplay.php?f=89)
-   -   Proficiency headaches (http://forums.wolflair.com/showthread.php?t=61866)

DeltaMasterMind December 23rd, 2018 09:01 AM

Proficiency headaches
 
Ok for I am having a fit trying to get 5e to play nice with assigning Helper.ProfDouble to skills. Now I am getting it to work with a foreach script. Now the reason this is weird is everytime I try to add in a if statement the tag just won't assign. Here is my script as this script is to check for Helper.Proficient first and assign Double Proficiency and if no Helper.Proficient then to assign Helper.Proficient: Post levels 10000.
Quote:

var tagexpr as string
if (field[usrChosen1].ischosen + field[usrChosen1].chosen.tagis[Helper.Proficient] >= 2) then
tagexpr = field[usrChosen1].chosen.tagids[ProfSkill.?," | "]
foreach pick in hero from BaseSkill where tagexpr
perform eachpick.assign[Helper.ProfDouble]
nexteach
elseif (field[usrChosen1].ischosen <> 0) then
tagexpr = field[usrChosen1].chosen.tagids[ProfSkill.?," | "]
foreach pick in hero from BaseSkill where tagexpr
perform eachpick.assign[Helper.Proficient]
nexteach
endif
if (field[usrChosen2].ischosen + field[usrChosen2].chosen.tagis[Helper.Proficient] >= 2) then
tagexpr = field[usrChosen2].chosen.tagids[ProfSkill.?," | "]
foreach pick in hero from BaseSkill where tagexpr
perform eachpick.assign[Helper.ProfDouble]
nexteach
elseif (field[usrChosen2].ischosen <> 0) then
tagexpr = field[usrChosen2].chosen.tagids[ProfSkill.?," | "]
foreach pick in hero from BaseSkill where tagexpr
perform eachpick.assign[Helper.Proficient]
nexteach
endif
Doing this in a racial special for bootstrap to a feat. With two options set for all things.

Mergon December 23rd, 2018 10:34 AM

You might want to take a look at the Unearthed Arcana Skill feats. The scripting there handles Double Proficiencies. It's not exactly what you asked for but it should point you in the right directions.

DeltaMasterMind December 23rd, 2018 11:02 AM

Ok, I will check them out. Thanks.

DeltaMasterMind December 23rd, 2018 11:22 AM

Well one of them helps remove the foreach loop(s), but I still am having issues with doing if statements with obvious tags to get the double prof to work only if the skill has proficiency in the first place. It is either all or nothing with this game system's scripts.

Mergon December 23rd, 2018 12:20 PM

Strange.

In the file COM_5ePack_UA - Feats for Skills.user, The if/then is used much to that effect.

The skill feat scripts hunt for the skill of the designated tag. Then checks to see if the user is Proficient with the skill. If not, makes the user proficient; if he is proficient then grants double proficiency.

dungeonguru December 23rd, 2018 12:35 PM

The UA - Feats for Skills and other like it are highly dependent on the timing - they have to happen at a precise time. If I remember correctly, we had to pick timing that was after most other scripts applied the Helper.Proficient tag but before the SkillCalc scripts run.

I found a note from some scripting fragments I had:

~ Must run after post-levels/15000 but before post-levels/20000

which means that the UA scripts running at 15500 are basically a timing hack where we picked to run after 15000 for some reason and before 20000 at post-levels.

Make sure your timing falls in that range of if you're looking at something that might depend on the UA, run between 15500 and 20000.

RavenX December 24th, 2018 03:12 AM

Scripts in hero lab are rigged to run at specific times, to ensure they are properly calculated you have to work within specific timing ranges sometimes. Check how the rogue class feature Expertise works, that might help you.

Mergon December 24th, 2018 05:55 AM

Yep. When I set up my version of Feats for skills I had all sorts of issues.

Someone else did the ones currently in the Community Pack. My issue was timing skills and someone else solved the issues ebfore I did, so I just scapped mine. :)

DeltaMasterMind December 24th, 2018 06:10 AM

Ok so I have changed my script, however any timing after post-level 15000 causes it not to work. This includes 15001.
Quote:

doneif (tagis[Helper.Disable] <> 0)
if (field[usrChosen1].ischosen <> 0) then
if (field[usrChosen1].chosen.tagis[Hide.Statblock] = 0) then
perform field[usrChosen1].chosen.pulltags[ProfDouble.?]
perform hero.pushtags[ProfDouble.?]
else
perform field[usrChosen1].chosen.pulltags[ProfSkill.?]
perform hero.pushtags[ProfSkill.?]
endif
endif
if (field[usrChosen2].ischosen <> 0) then
if (field[usrChosen2].chosen.tagis[Hide.Statblock] = 0) then
perform field[usrChosen2].chosen.pulltags[ProfDouble.?]
perform hero.pushtags[ProfDouble.?]
else
perform field[usrChosen2].chosen.pulltags[ProfSkill.?]
perform hero.pushtags[ProfSkill.?]
endif
endif
From what I see I might be able to use
Quote:

doneif (tagis[Helper.ShowSpec] = 0)
doneif (tagis[Helper.Disable] <> 0)

foreach pick in hero from BaseSkill where "thingid.skArcana"
if (eachpick.tagis[Helper.Proficient] = 0) then
perform eachpick.assign[Helper.Proficient]
elseif (eachpick.tagis[Helper.Proficient] <> 0) then
perform eachpick.assign[Helper.ProfDouble]
endif
nexteach
however I need to make the expression check only the two usrChosens for my ability.

DeltaMasterMind December 24th, 2018 06:31 AM

SO using this script at post level 15500 worked (finally), but required some tweaking to get it going.
Quote:

var tagexpr as string
if (field[usrChosen1].ischosen <> 0) then
tagexpr = field[usrChosen1].chosen.tagids[NotProfSk.?," | "]
foreach pick in hero from BaseSkill where tagexpr
if (eachpick.tagis[Helper.Proficient] <> 0) then
perform eachpick.assign[Helper.ProfDouble]
endif
nexteach
endif
if (field[usrChosen1].ischosen <> 0) then
tagexpr = field[usrChosen1].chosen.tagids[NotProfSk.?," | "]
foreach pick in hero from BaseSkill where tagexpr
if (eachpick.tagis[Helper.Proficient] = 0) then
perform eachpick.assign[Helper.Proficient]
endif
nexteach
endif
I did this as two separate eval scripts, not sure if I needed to, but I am not going to complain at this point.


All times are GMT -8. The time now is 04:37 AM.

Powered by vBulletin® - Copyright ©2000 - 2024, vBulletin Solutions, Inc.
wolflair.com copyright ©1998-2016 Lone Wolf Development, Inc. View our Privacy Policy here.