有人提问,怎么让怪物暴率文件中的物品一部分受人物暴率加成的影响,一部分不受人物暴率加成的影响。这个没有直接设置的办法,但可以通过脚本实现,方法如下:
一、在QF中插入以下脚本段:[@KillMon]
#IF
NOT CheckContainsTextList 自定义爆率\<$KillMonName>.txt BEGIN===
#ACT
AddTextListEx 自定义爆率\<$KillMonName>.txt BEGIN===
#IF
NOT CheckContainsTextList 自定义爆率\<$KillMonName>.txt END===
#ACT
WRITELINE 自定义爆率\<$KillMonName>.txt 1000 END===
#IF
GetStringPosEX 自定义爆率\<$KillMonName>.txt BEGIN=== N$起始行 S$内容
GetStringPosEX 自定义爆率\<$KillMonName>.txt END=== N$结束行 S$内容
#ACT
DEC N$结束行 <$STR(N$起始行)>
DEC N$结束行 1
#IF
LARGE N$结束行 0
#ACT
INC N$起始行 2
LOOPGOTO @爆出 <$STR(N$结束行)>
[@爆出]
#IF
#ACT
GetRandomText 自定义爆率\<$KillMonName>.txt S$内容 <$STR(N$起始行)>
INC N$起始行 1
#IF
EQUAL <$STR(S$内容)> ""
#ACT
BREAK
#ELSEACT
MOV S$概率 ""
MOV S$概率1 ""
MOV S$概率2 ""
MOV S$物品 ""
MOV S$数量 ""
EXTRACTSTRING " " <$STR(S$内容)> S$概率 S$物品 S$数量
EXTRACTSTRING "/" <$STR(S$概率)> S$概率1 S$概率2
#IF
EQUAL <$STR(S$数量)> ""
#ACT
MOV S$数量 "1"
#IF
EQUAL <$STR(S$物品)> "金币"
RANDOMEX <$STR(S$概率1)> <$STR(S$概率2)>
#ACT
GIVE 金币 <$STR(S$数量)>
BREAK
#IF
RANDOMEX <$STR(S$概率1)> <$STR(S$概率2)>
#ACT
MonDropItems <$KillMonName> <$STR(S$物品)> <$STR(S$数量)>
二、把怪物不想让人物加成的暴率文件放到:MirServer\Mir200\Envir\Market_def\自定义爆率 文件夹下面,注意格式只能是旧格式,比如:
稻草人.txt
1/100 布衣(男)
1/100 布衣(女)
1/200 木剑
1/30 金币 1000
1/600 匕首
1/600 乌木剑
1/600 金项链
1/600 古铜戒指
1/600 铁手镯
1/600 传统项链
那么稻草人将会有两个暴率文件,其中原来的那个暴率文件里面的物品受人物暴率加在的影响,而这个目录下的文件里的物品则不受人物暴率加成的影响。
发表评论