Senior Member
Join Date: Nov 2009
Posts: 891
|
A couple of years ago I got a d14, d16, d18, d22, and d24 from a Kickstarter. I had once made a post where I wondered about how to make them work in Hero Lab. The reply was that they cannot, or rather that it would require several changes. That is still true. At least, there are a few places that source code would have to be changed in order for it to work across the board.
However, it really depends on how you want it to work. It is impossible to do through a user file wherever the die image appears. I noticed that the die image does not appear everywhere. I realized that while the skill will show up as d12 on the skill list, it was easy to come up with a way for the upgraded Fighting, Shooting, or Throwing skill to show up on its appropriate weapon. For reference to my house rule: http://www.seeleyone.com/skills/ My fix involves using Edges. There are three edges (set at d14) that will do all of the calculations. They are followed by sets of edges that pertain to that skill but will not be printed (they are marked "Omit from printouts". I will do a post on each of the skills for ease of reference. Evil wins because good rolls poorly .... or the players are not paying enough attention to the game. |
#1 |
Senior Member
Join Date: Nov 2009
Posts: 891
|
Fighting d14
Unique Minimum Rank Veteran Expr-req Message: d12 Fighting Required Pre-Requisite Expression: #traitfound[skFighting] >= 6 Eval Scripts Phase Traits Priority 5000 Code:
var dieNumber as number dieNumber = 14 ~Check for edge-based dice if (hero.tagis[Edge.edgFight16] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgFight18] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgFight20] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgFight22] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgFight24] = 1) then dieNumber += 2 endif ~Print the results field[livename].text = "Fighting d" & dieNumber Priority 10000 Code:
var finalbonus as number var thisbonus as number var finaldie as string var finaltext as string var bonustext as string var dieNumber as number finalbonus = hero.child[skFighting].field[trtNetRoll].value thisbonus = 0 finaldie = "" finaltext = "" bonustext = "" dieNumber = 14 ~Check for edge-based dice if (hero.tagis[Edge.edgFight16] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgFight18] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgFight20] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgFight22] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgFight24] = 1) then dieNumber += 2 endif finaldie = "d" & dieNumber foreach pick in hero from WeapMelee bonustext = "" thisbonus = finalbonus thisbonus += eachpick.field[wpBonus].value thisbonus += eachpick.field[wpPenalty].value if (thisbonus > 0) then bonustext = "+" & thisbonus endif if (thisbonus < 0) then bonustext = thisbonus endif finaltext = finaldie & bonustext eachpick.field[wpNetAtk].text = finaltext nexteach edgFight16 edgFight18 edgFight20 edgFight22 edgFight24 So in six edges you can now make your Fighting skill go up to d24. Evil wins because good rolls poorly .... or the players are not paying enough attention to the game. |
#2 |
Senior Member
Join Date: Nov 2009
Posts: 891
|
Shooting d14
Unique Minimum Rank Veteran Expr-req Message: d12 Shooting Required Pre-Requisite Expression: #traitfound[skShooting] >= 6 Eval Scripts Phase Traits Priority 5000 Code:
var dieNumber as number dieNumber = 14 ~Check for edge-based dice if (hero.tagis[Edge.edgShoot16] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgShoot18] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgShoot20] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgShoot22] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgShoot24] = 1) then dieNumber += 2 endif ~Print the results field[livename].text = "Shooting d" & dieNumber Priority 10000 Code:
var finalbonus as number var thisbonus as number var finaldie as string var finaltext as string var bonustext as string var dieNumber as number finalbonus = hero.child[skShooting].field[trtNetRoll].value thisbonus = 0 finaldie = "" finaltext = "" bonustext = "" dieNumber = 14 ~Check for edge-based dice if (hero.tagis[Edge.edgShoot16] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgShoot18] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgShoot20] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgShoot22] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgShoot24] = 1) then dieNumber += 2 endif finaldie = "d" & dieNumber foreach pick in hero from WeapRange if (eachpick.tagis[Weapon.Thrown] = 0) then bonustext = "" thisbonus = finalbonus thisbonus += eachpick.field[wpBonus].value thisbonus += eachpick.field[wpPenalty].value if (thisbonus > 0) then bonustext = "+" & thisbonus endif if (thisbonus < 0) then bonustext = thisbonus endif finaltext = finaldie & bonustext eachpick.field[wpNetAtk].text = finaltext endif nexteach edgShoot16 edgShoot18 edgShoot20 edgShoot22 edgShoot24 So in six edges you can now make your Shooting skill go up to d24. Evil wins because good rolls poorly .... or the players are not paying enough attention to the game. Last edited by SeeleyOne; May 29th, 2015 at 08:54 PM. Reason: forgot to copy-paste one of the correct eval scripts. Oops. |
#3 |
Senior Member
Join Date: Nov 2009
Posts: 891
|
Throwing d14
Unique Minimum Rank Veteran Expr-req Message: d12 Throwing Required Pre-Requisite Expression: #traitfound[skThrowing] >= 6 Eval Scripts Phase Traits Priority 5000 Code:
var dieNumber as number dieNumber = 14 ~Check for edge-based dice if (hero.tagis[Edge.edgThrow16] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgThrow18] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgThrow20] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgThrow22] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgThrow24] = 1) then dieNumber += 2 endif ~Print the results field[livename].text = "Throwing d" & dieNumber Priority 10000 Code:
var finalbonus as number var thisbonus as number var finaldie as string var finaltext as string var bonustext as string var dieNumber as number finalbonus = hero.child[skThrowing].field[trtNetRoll].value thisbonus = 0 finaldie = "" finaltext = "" bonustext = "" dieNumber = 14 ~Check for edge-based dice if (hero.tagis[Edge.edgThrow16] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgThrow18] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgThrow20] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgThrow22] = 1) then dieNumber += 2 endif if (hero.tagis[Edge.edgThrow24] = 1) then dieNumber += 2 endif finaldie = "d" & dieNumber foreach pick in hero from WeapRange if (eachpick.tagis[Weapon.Thrown] <> 0) then bonustext = "" thisbonus = finalbonus thisbonus += eachpick.field[wpBonus].value thisbonus += eachpick.field[wpPenalty].value if (thisbonus > 0) then bonustext = "+" & thisbonus endif if (thisbonus < 0) then bonustext = thisbonus endif finaltext = finaldie & bonustext eachpick.field[wpNetAtk].text = finaltext endif nexteach edgThrow16 edgThrow18 edgThrow20 edgThrow22 edgThrow24 So in six edges you can now make your Throwing skill go up to d24. Evil wins because good rolls poorly .... or the players are not paying enough attention to the game. |
#4 |
Senior Member
Join Date: Nov 2009
Posts: 891
|
I use the Evasion skill instead of Fighting for Parry. So if you want to use Evasion use my skill as shown, otherwise modify the final script to be added to the Fighting d14. My Parry derived trait is made to use Evasion, but I use the normal version in this code example (mine is all lower-case, trparry).
Evasion d14 Unique Minimum Rank Veteran Expr-req Message: d12 Evasion Required Pre-Requisite Expression: #traitfound[skEvasion] >= 6 Eval Script Phase Traits Priority 5000 Code:
var dieNumber as number var parryMod as number var finalText as string dieNumber = 14 parryMod = 1 finalText = "" ~Check for edge-based dice if (hero.tagis[Edge.edgEvasn16] = 1) then dieNumber += 2 parryMod += 1 endif if (hero.tagis[Edge.edgEvasn18] = 1) then dieNumber += 2 parryMod += 1 endif if (hero.tagis[Edge.edgEvasn20] = 1) then dieNumber += 2 parryMod += 1 endif if (hero.tagis[Edge.edgEvasn22] = 1) then dieNumber += 2 parryMod += 1 endif if (hero.tagis[Edge.edgEvasn24] = 1) then dieNumber += 2 parryMod += 1 endif finalText = "Evasion d" & dieNumber perform #traitadjust[trParry,+,parryMod,finalText] ~Print the results field[livename].text = finalText edgEvasn16 edgEvasn18 edgEvasn20 edgEvasn22 edgEvasn24 So in six edges you can now make your Evasion skill go up to d24. Evil wins because good rolls poorly .... or the players are not paying enough attention to the game. |
#5 |
|
|