查看完整版本: 感觉至少在目前,DP可以得到完全的修正啊

-mj- 2008-2-15 12:13

感觉至少在目前,DP可以得到完全的修正啊

新函数EffectBABMinimum(),为设定角色BAB,现在的DP和诗人军团曲用的都是这个。然而现在既然没有什么固定成长的EAB,可黑石头居然还在敷衍了事,一个EffectBABMinimum(nTotalCharacterLevel)就完了……

就我所知,规则中至少在象CLR/WIZ这种兼职中放DP应该是只把牧师损失的BAB补回来的,法师的BAB只能通过谭森。想问下如果带有神术进阶职业施展DP,那通常有什么判定倾向么?比如10CLR/10SL,20的CL,但BAB总共损失了6;又假设加入了秘术师这种低BAB的提升神术职业又该如何定?

Horus 2008-2-15 13:16

不懂……
反正现在开了DP后,BAB=人物等级,就是这样……

-mj- 2008-2-15 13:28

记得一般DM是不允许这么算的,不过桌上用得也不多。况且规则说明只用于20级内,象1代40级时如果按字面理解岂不是得使BAB变成40,还再加上10EAB?

Horus 2008-2-15 15:20

1代怎么算的?忘了……因为1代里,20级前和后的BAB算法不一样,所以就算仅在20级内修正也是合理的
2代算法简单了,DP直接将BAB设成和人物等级一样也挺合理的啊 (那个谭森不合理啊,明明是修正BAB的,现在修正AB了)

Azrael 2008-2-15 16:01

事实证明 黑石头对规则的理解

和写脚本一样脑残……(或者说因为觉得自己写脚本脑残,才把规则理解的脑残)

所以问题的关键不是合理不合理,而是黑石头就认为那是DP

脚本里到处可以见到照顾屁股,忘记脑袋的写法。写脚本的人可不会想那么多……

你瞧,不是有人还在说合理么?还有更简化的算法 @@

ps:另一个问题是出在,原本的规则 EPIC后BAB的增长是固定的,所以DP不会受影响(20+以上不存在损失bab的问题)

黑石头的半调子规则,使得这个问题很难自圆其说。

回音 2008-2-15 16:14

由于DP这么算牧师现在才会这么BT的,现在多少卡的战力都是建立在DP上的随便一找一大堆。天佑一出来好呀更BT,出EDM连带有牧师系辅战能力。职业BAB减值完全无视,属性更集中。

Azrael 2008-2-15 16:17

其实说白了就是 原本的bab规则被搞崩溃了

DP使得bab变得没实际意义

txyxsds 2008-2-15 16:38

回复 #7 Azrael 的帖子

我的E文实在渣,大鹰头能告诉一下规则里面DP应该是+BAB到多少?总觉的+到人物等级有点变态。

Azrael 2008-2-15 16:59

DP如果不计其他效果,主要的本意是暂时弥补牧师相对于同级战士的bab差距(可以这么理解吧?因为本来基础职业也就牧师会)

不过后来引入了有CL等级的神术进阶,又引入了EPIC规则事情就复杂化了。

加上黑石头这次自创的30LV EPIC增长规则(这个是问题产生,和最终效果差距的关键吧?),谁也说不清“应该”加多少这个问题了吧?至少规则不适用

但显然EffectBABMinimum(nTotalCharacterLevel)这个脚本(其实就是bab=角色等级)就是敷衍了事

PS:TRPG规则本就不是死的,DM对其理解也可以指导最终效果。理论上如果能做到MJ所说的“规则中至少在象CLR/WIZ这种兼职中放[b]DP应该是只把牧师损失的BAB补回来的[/b]”自然是更接近其本意的存在

我个人倾向于DP把相同与“牧师CL”bab损失补回来,不过真要说,遇到秘术师这种怪胎……

我想还是最终的牧师CL决定一切。注意,为什么说牧师CL而不是神术CL。因为我们说的是,牧师施法等级+在这个基础上进阶的施法等级(秘术师这怪胎貌似也合理化了?)

如果有两个独立的神术CL,则不叠加

至于一些和bab损失无关的专长附加CL(包括职业专长或其他零零碎碎的应该不能算在内,感觉着点很重要)

假设有某职业其职业等级能和牧师CL叠加,并且某级有个能力使得CL判定+2,这个+2就不能算入DP内,而其职业等级就能算……

(汗,够拗口吧。要理清思路貌似很难~~)


=======整理分割线========
我个人的理解回答mj的质疑讨论……

其实秘术师的bab多少无关紧要的样子,只要做到弥补的BAB等级<=牧师+进阶职业的等级(牧师) 替换成同级战士应该会合适吧?

而前者可以用所谓的“牧师CL等级”(不包括所有专长的)替换?可能有疏漏的地方没想到,继续讨论 汗

-mj- 2008-2-15 17:36

是的,20级内只要不出秘术师这种进阶,与纯牧相差不会太大,在不太牺牲牧师能力的前提下兼职,能获得的额外好处有限。20级后的解释权貌似全交给DM了,否则就那句“你的BAB等于人物等级”,要严格照办的话就得囧倒一片……我不止一次地听到和看到DM说:算牧师的。所以才会有这个问题:在有进阶职业的情况下到底怎么算?


其实脚本昨天就写好备用了,就是想讨论一下……

============================================

#include "nw_i0_spells"
#include "x2_inc_spellhook"

void main()
{
  if (!X2PreSpellCastCode())
  {
    // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell
    return;
  }

// End of Spell Cast Hook

  //Declare major variables
  object oTarget = GetSpellTargetObject();

  RemoveEffectsFromSpell(oTarget, GetSpellId());
  RemoveTempHitPoints();

  int nCasterLevel = GetCasterLevel(OBJECT_SELF);
  int nTotalCharacterLevel = GetHitDice(OBJECT_SELF);
  int nStrengthIncrease = 6; // JLR - OEI 07/19/05
  [color=Sienna]int nBab = GetBaseAttackBonus(OBJECT_SELF);
  int nBabToIncrease = 0;
  int nCasterLevelFeatModify = 0;
  int nCasterLevelOfWp = 0;
  int nCasterLevelOfSf = 0;
  
  if(GetLastSpellCastClass() == CLASS_TYPE_CLERIC) //牧师法术
  {
    if(GetHasFeat(1247, OBJECT_SELF)) //熟练施法者专长不得影响DP效果
    {
      if( nTotalCharacterLevel - GetLevelByClass(CLASS_TYPE_CLERIC, OBJECT_SELF) < 4 )
      {
        nCasterLevelFeatModify = nTotalCharacterLevel - GetLevelByClass(CLASS_TYPE_CLERIC, OBJECT_SELF);
      }
      else
      {
        nCasterLevelFeatModify = 4;
      }
    }

    if(GetHasFeat(1808, OBJECT_SELF)) //WP本身就是全BAB
    {
      int nCasterLevelOfWp = GetLevelByClass(CLASS_TYPE_WARPRIEST, OBJECT_SELF) / 2;
    }
    
    if(GetHasFeat(1549, OBJECT_SELF)) //圣拳一样去死去死
    {
      if(GetLevelByClass(CLASS_TYPE_SACREDFIST, OBJECT_SELF) < 4)
      {
        nCasterLevelOfSf = GetLevelByClass(CLASS_TYPE_SACREDFIST, OBJECT_SELF);
      }
      else if(GetLevelByClass(CLASS_TYPE_SACREDFIST, OBJECT_SELF) >= 4 && GetLevelByClass(CLASS_TYPE_SACREDFIST, OBJECT_SELF) < 8)
      {
        nCasterLevelOfSf = GetLevelByClass(CLASS_TYPE_SACREDFIST, OBJECT_SELF) - 1;
      }
      else
      {
        nCasterLevelOfSf = GetLevelByClass(CLASS_TYPE_SACREDFIST, OBJECT_SELF) - 2;
      }
    }
  
    nBabToIncrease = (nCasterLevel - nCasterLevelFeatModify - nCasterLevelOfWp - nCasterLevelOfSf) / 4;
    if((nCasterLevel - nCasterLevelFeatModify - nCasterLevelOfWp - nCasterLevelOfSf) > (nBabToIncrease * 4))
    {
      nBabToIncrease = nBabToIncrease + 1;
    }
  }





  else if(GetLastSpellCastClass() == CLASS_TYPE_FAVORED_SOUL) //天佑法术
  {
    if(GetHasFeat(2068, OBJECT_SELF)) //熟练施法者专长不得影响DP效果
    {
      if( nTotalCharacterLevel - GetLevelByClass(CLASS_TYPE_FAVORED_SOUL, OBJECT_SELF) < 4 )
      {
        nCasterLevelFeatModify = nTotalCharacterLevel - GetLevelByClass(CLASS_TYPE_FAVORED_SOUL, OBJECT_SELF);
      }
      else
      {
        nCasterLevelFeatModify = 4;
      }
    }

    if(GetHasFeat(2079, OBJECT_SELF)) //WP本身就是全BAB
    {
      int nCasterLevelOfWp = GetLevelByClass(CLASS_TYPE_WARPRIEST, OBJECT_SELF) / 2;
    }
    
    if(GetHasFeat(2102, OBJECT_SELF)) //圣拳一样去死去死
    {
      if(GetLevelByClass(CLASS_TYPE_SACREDFIST, OBJECT_SELF) < 4)
      {
        nCasterLevelOfSf = GetLevelByClass(CLASS_TYPE_SACREDFIST, OBJECT_SELF);
      }
      else if(GetLevelByClass(CLASS_TYPE_SACREDFIST, OBJECT_SELF) >= 4 && GetLevelByClass(CLASS_TYPE_SACREDFIST, OBJECT_SELF) < 8)
      {
        nCasterLevelOfSf = GetLevelByClass(CLASS_TYPE_SACREDFIST, OBJECT_SELF) - 1;
      }
      else
      {
        nCasterLevelOfSf = GetLevelByClass(CLASS_TYPE_SACREDFIST, OBJECT_SELF) - 2;
      }
    }
  
    nBabToIncrease = (nCasterLevel - nCasterLevelFeatModify - nCasterLevelOfWp - nCasterLevelOfSf) / 4;
    if((nCasterLevel - nCasterLevelFeatModify - nCasterLevelOfWp - nCasterLevelOfSf) > (nBabToIncrease * 4))
    {
      nBabToIncrease = nBabToIncrease + 1;
    }
  }

  else
  {
    nBabToIncrease = 2; //UMD的当成是7级牧师施展的效果
  }



  effect eVis = EffectVisualEffect( VFX_DUR_SPELL_DIVINE_POWER ); // uses NWN2 VFX
  effect eStrength = EffectAbilityIncrease(ABILITY_STRENGTH, nStrengthIncrease);
  effect eHP = EffectTemporaryHitpoints(nCasterLevel);
  effect eBAB;
    if(nBab + nBabToIncrease > nTotalCharacterLevel)
      {
      eBAB = EffectBABMinimum(nTotalCharacterLevel);
      }
      else
      {
        eBAB = EffectBABMinimum(nBab + nBabToIncrease);
      }  [/color]  
  effect eLink = EffectLinkEffects(eBAB, eVis);

  //Make sure that the strength modifier is a bonus
  if( nStrengthIncrease > 0 )
  {
    eLink = EffectLinkEffects(eLink, eStrength);
  }

  //Meta-Magic
  int nMetaMagic = GetMetaMagicFeat();
  if( nMetaMagic == METAMAGIC_EXTEND )
  {
    nCasterLevel *= 2;
  }

  effect eOnDispell = EffectOnDispel(0.0f, RemoveEffectsFromSpell(OBJECT_SELF, SPELL_DIVINE_POWER));
  eLink = EffectLinkEffects(eLink, eOnDispell);
  eHP = EffectLinkEffects(eHP, eOnDispell);

  //Fire cast spell at event for the specified target
  SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_DIVINE_POWER, FALSE));

  //Apply Link and VFX effects to the target
  ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCasterLevel));
  ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHP, oTarget, RoundsToSeconds(nCasterLevel));
  //ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); // now linked to eLink
}

Azrael 2008-2-15 17:40

厄~~~

我是如上面所说

牧师CL等级+进阶职业(牧师)有效CL的等级 替换 成同级战士的BAB

关键不算任何种类的专长包括进阶专长对CL的影响。不知道有没有问题 汗

===========迷之音============
哈,就知道你肯定不甘寂寞的改脚本去了……

所以才会说这个。

最近,逻辑能力退化的很厉害,慢慢看ing

-mj- 2008-2-15 17:50

唉,自己改着备用嘛。想自己搞个MOD玩,不过水平有限得紧,算是多方面训练下自己的逻辑力和编程能力吧(0起点[s:3] )。

txyxsds 2008-2-15 17:53

回复 #11 Azrael 的帖子

要我说的话,大鹰头你的逻辑能力和语言能力对比是在太强烈了,说的话我要研究很久才明白一半,仿佛格林斯潘一样!

Azrael 2008-2-15 18:00

我自己都晕头了[s:15] (都不知在说什么)

if([b]GetHasFeat(1808, OBJECT_SELF)[/b]) //WP本身就是全BAB

1808是WP基于牧师进阶那个专长吧?就是 战斗牧师(牧师)那个?mmm 下班了回去慢慢看看

mj果然很强大

ccchoisy 2008-2-15 19:30

我觉得nwn2里面DP最大的一个bug是力量领域的dp不能持久,如果说持久法术要看原来的等级,
那为什么蛮力术持久的时候只按1级算,最后是7级持久蛮力.如果说6秒/轮的法术不能持久,
那祝福术怎么能持久.我战役里面费了好大劲让天使mm学了持久法术,准备享受神武双修的待遇.
结果发现dp不能持久,吐血....

Azrael 2008-2-15 19:32

DP 本就不能持久……

DP都持久了,这个世界就都脑残了,不要忘记DP本来是4级法术。

知道法术固有等级的概念吧?靠领域换到能用3级法术位记忆不代表那就是3lv法术

于是……道理很简单,在你没有神化到有10级法位之前,DP就是不能持久。话说等你有10级法位时,DM同意不同意也算是另一个故事了。(发现了没?这绕来绕去就是说“DP不能持久这便是公理”)

至于你说的蛮力术的问题,可以理解为游戏设计者又一次的脑残导致概念混淆~~(原谅他们吧他们从没干过DM这个YY职业)

-mj- 2008-2-15 19:51

也不是什么固有等级,恒效还有那个没出现的真ˉ持久对法术都有严格要求,基本上能否利用这个专长来超都是直接指定到具体法术的,不光是用高级法术位这么简单。说不能超就算你有15级法术位一样不能超


1808号就是FEAT_WARPRIEST_SPELLCASTING_CLERIC,免得杀错(某人:我的WP明明升的FS等级……)

ccchoisy 2008-2-15 20:48

游戏里是否能持久(恒效)确实是具体指定的.要想让dp持久,必须先改spells.2da里面dp的metamagic一栏,
然后去改dp的nss script,在extend后添加一个if( nMetaMagic == METAMAGIC_PERSIST )以及后面的赋值语句,
然后用toolset编译一下放到override里面.

看来游戏设计者也考虑到dp如果能持久太破坏平衡了,战士完全没有必要,牧师变得全能了.

回音 2008-2-15 21:26

现在的DP已经是在破坏平衡了,这还是30级的情况,如果开40级那就是神技了。

ccchoisy 2008-2-15 22:38

现在dp神力流唯一的缺点就是buff时间太长,还没开打,先要buff 2轮,如果是小战斗,每次都这样buff一下很烦.
buff完冲上去发现敌人就剩一半了.
页: [1] 2 3
查看完整版本: 感觉至少在目前,DP可以得到完全的修正啊