View Single Post
Flappi
Junior Member
 
Join Date: Jun 2010
Posts: 26

Old June 28th, 2010, 05:16 AM
I have implemented the script; I think it's OK:

They all go in mechanics, in the post-levels phase (we need to do this after the levels phase, and the post-levels (user) is too late). The script for BAB:
Code:
var dummybab as number
var nHD as number
dummybab=0

if (hero.tagis[Hero.RacialHD] <> 0) then
  perform hero.findchild[BaseRace].setfocus
  nHD=focus.field[rHDFinal].value
~  debug "nHD: " & nHD
  if (focus.tagis[cAttack.Medium] <> 0) then
    dummybab=dummybab+0.75*nHD-int(0.75*nHD)
  elseif (focus.tagis[cAttack.Poor] <> 0) then
    dummybab=dummybab+0.5*nHD-int(0.5*nHD)
    endif
  perform state.clearfocus
~  debug "race dummybab: " & dummybab
  endif

foreach pick in hero from Class
~  debug "id: " & eachpick.idstring
  perform eachpick.setfocus
  nHD=focus.field[cTotalLev].value
~  debug "nlevel: " & nHD
  if (focus.tagis[cAttack.Medium] <> 0) then
    dummybab=dummybab+0.75*nHD-int(0.75*nHD)
  elseif (focus.tagis[cAttack.Poor] <> 0) then
    dummybab=dummybab+0.5*nHD-int(0.5*nHD)
    endif
  perform state.clearfocus
~  debug "dummybab: " & dummybab
  nexteach

~debug "int dummybab: " & int(dummybab)
~debug "BAB: " & hero.child[Attack].field[tAtkBase].value

hero.child[Attack].field[tAtkBase].value = hero.child[Attack].field[tAtkBase].value + int(dummybab)
It's a little bit more complicated for save (since the prc don't use the same values in Pathfinder, and we also need to count the +2 bonus for a good save once and only once):
Code:
var dummyfort as number
var fldumm as number
var gsvcount as number
var gsvflag as number
var nHD as number
dummyfort=0
gsvcount=0
gsvflag=0

if (hero.tagis[Hero.RacialHD] <> 0) then
  perform hero.findchild[BaseRace].setfocus
  nHD=focus.field[rHDFinal].value
~  debug "nHD: " & nHD
  if (focus.tagis[SaveGood.svFort] <> 0) then
    dummyfort=dummyfort+0.5*nHD-int(0.5*nHD)
    gsvcount=gsvcount+1
  else
    dummyfort=dummyfort+nHD/3-int(nHD/3)
    endif
  perform state.clearfocus
~  debug "race dummyfort: " & dummyfort
  endif

foreach pick in hero from Class
~  debug "id: " & eachpick.idstring
  perform eachpick.setfocus
  nHD=focus.field[cTotalLev].value
~  debug "nlevel: " & nHD
  if (focus.tagis[ClassType.Prestige] = 0) then
    if (focus.tagis[cFort.Good] <> 0) then
      dummyfort=dummyfort+0.5*nHD-int(0.5*nHD)
      gsvcount=gsvcount+1
    else
      dummyfort=dummyfort+nHD/3-int(nHD/3)
      endif
  else
    if (focus.tagis[cFort.Good] <> 0) then
      gsvflag=1
      dummyfort=dummyfort+0.5*nHD-int(0.5*nHD+0.5+0.01)
    else
      dummyfort=dummyfort+nHD/3-int(nHD/3+1/3+0.01)
      endif
    endif
  perform state.clearfocus
~  debug "dummyfort: " & dummyfort
~  debug "gsvcount: " & gsvcount
  nexteach

~debug "int dummyfort: " & int(dummyfort)
~debug "svFortBase: " & hero.child[svFort].field[svBase].value

~floor(dummyfort)
if (dummyfort >= 0) then
  fldumm=int(dummyfort+0.01)
else
  fldumm=int(dummyfort+0.01)-1
  endif
~debug "fldumm (fort): " & fldumm & dummyfort

hero.child[svFort].field[svBase].value = hero.child[svFort].field[svBase].value + fldumm

if (gsvcount > 1) then
  ~+2 bonus for good save only once
  hero.child[svFort].field[svBase].value = hero.child[svFort].field[svBase].value -2*(gsvcount-1)
  endif

if (gsvcount=0) then
  if (gsvflag=1) then
    ~in this case only a prc gives a good save, we need to add the +2 bonus
    hero.child[svFort].field[svBase].value = hero.child[svFort].field[svBase].value +2
    endif
  endif
(it's essentially the same for Will and Ref save)


Now I'm looking for a way to activate/deactivate the mechanic...
Flappi is offline   #5 Reply With Quote