暗黑MOD信息免费发布,找新开暗黑Mod就上D2sf,绿色简洁,值得收藏!
首页 > 暗黑技术攻略
NPC.txt描述

发表时间:1970-01-01 08:00:00

NPC.txt  By Nefarius

 

Npc:该NPC的名字,取自MonStats.txt中的ID指针,这里的值不可修改,否则在打开商人的交易窗口时将会出错

 

Buy Mult:玩家将物品出售给NPC的价格乘数;这里的基础价钱不是Armor.txt,Weapons.txt,Misc.txt文件中定义的价钱,而是以物品的实际价格作为基础价钱,即所有关于价格的因子全部参与计算以后的价格;这里的值以1/1024为单位,填入512就意味着乘数为512/1024,也就是50%基础价格;例如克雷德劳之牙的实际价格为4027,如果这列填入1024,则可以以4027的原价卖给该商人,如果填入512,则售价只有2013

 

Sell Mult:玩家从NPC处购买物品的价格乘数,其计算规则与上一列相同

 

Rep Mult:各种物品修理所花费的基础价格乘数,与以上两列的计算规则相同,但是游戏修理物品实际花费的价钱还要考虑别的因素,举例而言:关于克雷德劳之牙,首先我们利用前两列的计算规则得到其基础修理费,当此列值为1024时计算得到4027,也就是当克雷德劳之牙的耐久度为零时修理要花4027金币;但倘若这幅手套还剩了一半的耐久度,那么最终修理的价钱就是4027的一半,2013金币了,也就是说,关于修理物品的公式,应该在基础价钱的基础上乘以一个有关剩余耐久度的因子,即“要修复的耐久度/总耐久度”;另外,聚气物品的修理价格要在基础修理费的基础上加一个额外的聚气修理费用,并且聚气修理费是不受这个参数控制的,关于它的费用计算详细步骤就写在游戏的代码里

 

QuestFlagA,QuestFlagB,QuestFlagC:物品价格的任务标志,它们将被用于以下几列中完成某任务之后计算物品价格的算法中

 

QuestBuyMultA,QuestBuyMultB,QuestBuyMultC:它们是Buy Mult列中价格乘数的修正量,例如某商人的Buy Mult列为512,同时QuestBuyMult为1024,那么完成任务与否对于物品卖出的价格毫无影响,因为50%的100%还是50%,克雷德劳之牙还是卖2013金币;但如果QuestBuyMult为2048,那么我们卖掉克雷德劳之牙就能得到4027金币了,因为这是50%的200%,100%的基础价格;最后,假如QuestBuyMult列为512的话,克雷德劳之牙就只能值1006金币了,因为50%的50%等于25%;剩下两列的值也一样是乘数的修正量,采用叠乘运算,就是这样:

·基础价格= GLD

·Buy Mult = BM

·QuestBuyMultA = QBM1

·QuestBuyMultB = QBM2

·QuestBuyMultC = QBM3

那么最终价格:

GLD * BM/1024 * QBM1/1024 * QBM2/1024 * QBM3/1024

因此仍然是克雷德劳之牙的例子,GLD = 4027,BM = 512,QBM1-3 = 2048,那么最终价格:

4027 * 50% * 200% * 200% * 200% = 16108

 

QuestSellMultA,QuestSellMultB,QuestSellMultC:和上面三列计算规则相同,是Sell Mult列中的价格乘数的修正量

 

QuestRepMultA,QuestRepMultB,QuestRepMultC:和上面三列计算规则相同,是Rep Mult列中的价格乘数的修正量

 

Max Buy,Max Buy(H),Max Buy(N):将物品卖给NPC时,三个难度下分别的出售价钱最大值,这里填写的值最大为2147483647

 

 

其他:

与NPC的交易永远不会出现小于1金币的情况,假如某物品价格为0,那么无论售出或者买入的交易价格都是1,但这对于赌博不适用,赌博时所花费的价格是比其真实价格高很多的;此外,大于2147483647的价格无论是作为数据运算结果,文件中的基础价格还是NPC运算得到的结果,都会被当作1对待

 

有些物品在NPC处的售出价格要比其买入价格便宜贵,这与NPC.txt无关,是一个小bug,已经被修正

 

物品在NPC处的出售价格似乎与其耐久度无关

上一篇:MonUMod.txt描述    下一篇:Objects.txt描述