本帖最后由 squallreva 于 2013-10-5 10:16 编辑
星尘好少人讨论的说,下面是一些自己暄折腾出的一些东西,给大家分享下,希望能抛砖引玉。大家研究有啥结果都共享一下啊。~~本着共享原则,不设置回复可见(好像潜水太久,没有权限设置……{:soso_e113:})。
总体来说,我把星尘里面的物品掉落分成三种:
1. 单独为每个怪物设置物品掉落。在WorldServer\data\droplist.xml里面设置。
2. 特定等级怪物的通用掉落。在WorldServer\data\activitydroplist.xml里面设置
3. 杀死怪物直接给到背包。在region里面为每个怪指定脚本文件,在脚本文件里面设置掉落。
第一种:
下面是一段自带的掉落设置。
每个怪物的掉落以<MonsterNmae name=””>开头,以</MonstName>结束。
掉落又分为将钱币和物品,钱币是指金币和银币、位面之类的可以重叠的东西,物品就是普通的装备、图纸等等。区别在于,钱币能指定掉落数量,而物品只能掉落一件。
钱币掉落格式为<DropMoney xxxxx />,下面是里面的参数具体含义:
Goodsname = “xxxx”: 物品的原始名称,可以用物品编辑器查询获取。
odds=”7/10″:掉落几率,示例里面就是70%机会掉落。
dropnum=”3/4″:掉落数量最小和最大值,示例为掉落最少3个,最多4个。
levelattenuation=”0.07″:物品掉落几率的等级惩罚参数。这个没有具体测试过,目测是每高过怪物等级一级,掉落几率鞋子0.07,超过怪物14级左右掉落几率下降98%,就是基本不掉落了。有兴趣的同志们可以具体测试一下。
levelattenuationlimit=”0″:受等级影响后最低的掉落几率。示例里面是0。可以对BOSS的掉落设置一个比较高的值来保障高等级打低等级怪的掉落几率。
物品打蜡格式为<DropGoods xxx />,参数和掉落钱币基本一样:
level=”0″:掉落的物品强化等级。
- <MonsterName name=”001FlossRabbit”>
- <DropMoney goodsname=”GDMONEYS” odds=”7/10″ dropnum=”3/4″ levelattenuation=”0.07″ levelattenuationlimit=”0″/>
- <DropGoods goodsname=”CARD001FlossRabbit” odds=”15/10001″ level=”0″ levelattenuation=”0.07″ levelattenuationlimit=”0″/>
- </MonsterName>
复制代码
我们有些时候希望能对某组物品设置几率,可以使用<DropGroup>xxx</DropGroup>,下面是参数说明。
Mindrop=”1″:组里面的物品最少掉落数量。
Maxdrop=”3″:组里面的物品最多掉落数量。
<OneDrop xxx />设置物品组的每一个物品,参数和DropGoods雷同。
dropodds=”11″:这个是组里面的掉落几率。以下面为例,第一个物品在组里面的掉落几率为11/(11+22+33)=1/6。
- <DropGroup mindrop=”1″ maxdrop=”3″ odds=”100/100″ levelattenuation=”0.07″ levelattenuationlimit=”0″>
- <OneDrop dropname=”LMB010A01″ dropodds=”11″ level=”1/3″/>
- <OneDrop dropname=”LMB010A02″ dropodds=”22″ level=”4/8″/>
- <OneDrop dropname=”LMB010A03″ dropodds=”33″ level=”9/12″/>
- </DropGroup>
复制代码
第二种:
A. 世界所有怪物掉落,比如下面的,我妈设置为所有怪物都有1%机率掉落位面,等级惩罚设置为0.20,所有不低于自身等级5级的怪物都会有掉落。可以据错设置一些全服全等级的活动,像是当年的圣诞老人之类的。
- <World_Drop>
- <DropGoods goodsname=”PMA01″ odds=”1/100″ level=”0″ levelattenuation=”0.20″ levelattenuationlimit=”0″ />
- </World_Drop>
复制代码 B. 特定等级的怪物掉落,我们可以对特定等级的怪物设置通用的掉落。
格式为<Grade_Drop Levels=”xx/xx”> xxx </Grade_drop>.
levels指定怪物的等级区间,示例为所有等级6到等级10之间的怪物。
里面的物品掉落,和前面说到的单独设置的掉落并无区别,可以设置掉落金钱数量、掉落物品等级,设置掉落组等等。
- <Grade_Drop levels=”6/10″>
- <span style=”line-height: 1.5;”><DropGoods goodsname=”GDA002″ odds=”1/501″ level=”0″ levelattenuation=”0.07″ levelattenuationlimit=”0″ /></span>
- <!–HP、MP祝福–>
- <DropGoods goodsname=”GDA001″ odds=”160/1000″ level=”1″ levelattenuation=”0.07″ levelattenuationlimit=”0″/>
- <DropGoods goodsname=”GDA002″ odds=”101/1000″ level=”1″ levelattenuation=”0.07″ levelattenuationlimit=”0″/>
- <DropGroup mindrop=”1″ maxdrop=”1″ odds=”1/300″ levelattenuation=”0.07″ levelattenuationlimit=”0″>
- <OneDrop dropname=”S010A01″ dropodds=”1″ level=”0/3″/>
- <OneDrop dropname=”LHB010C01″ dropodds=”5″ level=”0/3″/>
- </DropGroup>
- </Grade_Drop>
复制代码
上面两种的物品掉落设置,都会受到整体服务器掉落倍率的影响,服务器物品掉落倍率在WorldServer\setup\gamesetup.ini里面设置。
第三种:
通过WorldServer\regions里面的regionlist.ini,我妈可以查到每个地图对应的ID,比如UTK一层的地图ID是40071,在region目录里面我们能找到对应的40071.monster文件,在文件的上半部分是定义了怪物的刷新设置
- 编号 坐标范围(左X1\Y1\右X2\Y2) 数量 时间 起始时 方向
- —————————————————————————-
- # 1 129 360 130 362 1 20 0 -1
- # 2 130 358 131 359 1 20 0 -1
复制代码 在文件的下半部分定义了相应的怪物脚本。
- id 1
- 名字 几率 标识 领导 距离 路径标识 脚本 对话脚本
- —————————————————————————-
- # E085Kgmxz 100 0 0 0 0 scripts/monster/monster_40071_e085kgmxz.script 0 0 0 0
- <end>
- id 2
- 名字 几率 标识 领导 距离 路径标识 脚本 对话脚本
- —————————————————————————-
- # E085Kgmxz 100 0 0 0 0 scripts/monster/monster_40071_e085kgmxz.script 0 0 0 0
- <end>
复制代码
我们可以在这个对应的脚本里面设置怪物死亡的时候自动给人物背包添加东西,爆率一般是用随机函数来实现,因为脚本的东西比较复杂,我自己也没有弄的很明白,这里就不具体说了。
没有回复内容