作者laechan (小太保)
看板mud_sanc
标题[闲聊] 关於目前的虚拟物品战利品分配及其它想法
时间Sun Jul 14 03:31:27 2013
目前由 /open/cmds/vobjs_d.c 的 exec_mob_drop 函数控制
if(function_exists("mob_drop_rate",mob))
rates=(mapping)mob->mob_drop_rate(ppl);
被设定 mob_drop 的怪物,可透过自订 mob_drop_rate 函数
来实现自订掉宝(而不是单指掉宝率)。这意思是说,wiz 可自
订「若是特定的玩家来打这只怪时,可以掉不一样的东西」。
这只是附注说明,再来讲本文,依据目前写法,当有玩家打死
该怪时,因为我们设定掉宝是「串联式判断」,所以这只怪物
每一项 ob 物品都会判断是否符合掉宝条件,如下:
foreach(ob in obs)
{
if(该 ob 符合掉宝条件)
执行该物品掉落;
}
那我打算改成如下:
// 主判断不变
foreach(ob in obs)
{
if(该 ob 符合掉宝条件)
执行该物品掉落;
}
// 先判断该玩家有没有组队
if(!leader=ppl->query_temp("leader")) return 1;
usr=all_inventory(environment(ppl));
// 先把自己扣掉
usr-=({ppl});
foreach(ppl in usr)
{
// 非玩家不掉
if(!ppl || !userp(ppl)) continue;
// 非同队不掉
if((object)ppl->query_temp("leader")!=leader) continue;
if(该 ob 符合掉宝条件)
执行该物品掉落;
}
上面的意思是,除了打死怪物的玩家以外,其它同队的玩家
也能分到战利品。
只要是我能写出的 code 就代表这东西本来就能实装。
之所以不实装其实是 multi-login 等因素的考量。
那其实还有其它做法,例如..
// 主判断不变
foreach(ob in obs)
{
if(该 ob 符合掉宝条件)
执行该物品掉落;
}
// 先判断该玩家有没有组队
if(!leader=ppl->query_temp("leader")) return 1;
usr=all_inventory(environment(ppl));
// 先把自己扣掉
usr-=({ppl});
// 再来一次主判断
foreach(ob in obs)
{
if(该 ob 符合掉宝条件)
从 usr 里面随机选出一个玩家执行该物品掉落;
}
上面的意思是说,打死怪物的玩家,给予原先的打宝设定,
但是多发一份「由全体队友 share」。
做法不只这两种。
叙述上,一般掉宝及战利品分配大致可设定为:
一般: 你取得了一个XXX。
分配: 你取得了一个由OOO分配给你的战利品XXX。
OOO分配给你一个战利品XXX。
[战利品]你分得了一个XXX。
.
.
不管怎样,打死怪物的那一位仁兄一定 follow 目前的设定
(换个说法叫最优惠设定),战利品的分配部份才是新的设定
,可能的话我不想采 RO 的设计、也不想采 D3 的设计,我
想设计一套新的做法,既公平,又不浮滥。
但是,multi login 仍是问题,说到这各位应该心里有底,
玩家一次开很多角色去打怪,不管套用上面哪一种修改方式
,所得到的利益将恒大於自己孤身前去打怪。
以此想法为前提的修改就是如下..
if(!leader = ppl->query_temp("leader"))
{
// 主判断不变
foreach(ob in obs)
{
if(该 ob 符合掉宝条件)
执行该物品掉落;
}
return 1;
}
也就是说,当玩家孤身一人时,就套用原先的掉宝设定;当
玩家有组队时,就全员(含杀死怪物的玩家本身)套用新的掉
宝设定。
然後衍生的设定是,玩家可自行决定打宝是否 share,以及
「由队长决定打宝是否 share」。很多游戏都设计为队长决
定,我个人认为 sanc 应由个人决定,当执行战利品分配时
,将判断该人的设定
若该人设定战利品分配 => 则该人也能被分配到战利品
但是自己打死怪时也将套用战利品分配原则
若该人设定战利品不分配 => 则该人不能被分配到战利品
但若是自己打死怪时将独占所有战利品
则就长远的角度来看,组队时设定战利品分配才是获得最大
利益的方式。(因为不可能每只怪都由你杀死)
而由此衍生的设定就是,既然不是由队长来决定战利品分配
,那就代表战利品分配实际上「也可以不依据是否为队员」
,例如只要判断为同房间的玩家即可的情况。
总之,这篇讲了很多设定,我也提到了我偏好的设定,我想
知道是不是还有其它想法。
打 BOSS 时则会强制套用战利品分配原则,这点绝对不会改
变。(这是 sanc 采用的 style、也就是原则问题)
最後,「掉宝率」这样的东西跟幸运值有关,我是有考虑实
装像是「幸运的颂歌」这样的牧师主职技能,但是幸运的颂
歌不能只是适用在掉宝率上,还必须适用到其它地方,这样
技能的效果才会完整。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.165.199.201
1F:→ hlead :掉宝率 = 原掉宝率 / 人数 * 2 => 然後所有人都可得 07/14 07:48
2F:→ hlead :*2的部份 好像要让组越多人掉宝率越高一点.. 07/14 07:49
3F:→ warrenchen :新掉落率= 现有率 * 人数 / (1+人数)^2 这样画出来的 07/14 08:44
4F:→ warrenchen :掉落曲线不知合不合情理.. 前提是,laechan的前提.. 07/14 08:45
5F:→ warrenchen :(组队超过1人、队友非NPC) 07/14 08:46