Re: [讨论] tmi2_v3_改

楼主: laechan (挥泪斩马云)   2014-06-08 10:36:41
抱歉没有讲得很清楚。
我希望日后所有拿到 tmi_v3_改 的使用者(架站者),不会对 tmi2_v3_改
的“使用”产生太大的困扰。
为此,需要先沟通一些重要的基础设定,因为这些设定就是我接下来开始
要动用到的东西,是 tmi2_v3_改 的核心部份。
依照优先级,最优先的就是
是不是使用 "level"、"stat"、"race"、"skill" 等等的字段。
因为它们关系到函数的名称。
与这个问题相关,但是“现阶段并不重要”的问题是
1.tmi2_v3_改 是不是多种族?
一开始多种族 => 之后就算要改单一种族也简单
一开始就单种族 => 等于一开始没有种族 => 之后要改成多种族就会比
较复杂
所以我设定一开始至少两个种族。
2.tmi2_v3_改 是不是有两种等级制?
我前篇有提过 tmi2_v3_改 采等级制,是因为我希望它与东方式的 mud
有显著区别,所以它会有等级制(没意外的话会采 "level" 字段)。
但是要不要多种等级制则是属于使用者将来为自己 mud 所设计的风格
问题,就像 D3 也是后期才导入巅级设定,它是可以在后期导入的。
3.属性几个的问题
我并不赞成 mp、魔力、魔法方面的素质采单一看 "int" 的做法,因为
它不合理。
相同的,敏捷、命中、闪躲、暴击机率等只看单一的 "dex"也不合理。
我基本上会为 tmi2_v3_改 撰写很多的字段读取函数,例如说:
一般 mud 读 str 属性 : ppl->query("stat/str")
tmi2_v3_改 读 str 属性 : ppl->query_stat("str")
如果你想要依 tmi2_v3_改 所设计有六个属性的世界,改成只有四个属
性的世界,上述的做法是办得到的:
int query_stat(string str)
{
if(str=="agi") str="dex";
else if(str=="mag") str="int";
return data["stat"][str];
}
反之,如果一开始只有四个属性的世界,要改成六个属性就没那么好改
,就我所认为的,一开始 5~6 个属性,使用者比较不会觉得困扰。
5.其它(位阶、声誉、背包格、..)
这跟 2. 一样都是可以由使用者依据自己 mud 的风格来决定要不要有
,就像 sanc 最早是使用 "warexp" 这个字段代表战功,但后期我将它
解释为 "战功声望",让它也具有声望的意义,但基本上 tmi2 一开始
是没有 "warexp" 这个东西的。
一开始没有,后来有,就代表 tmi2_v3_改 一开始不见得要导入。
反之,如果导入了,使用者要变更其字段名称或是取消它就会很困难。
然后另一种关键问题是阵亡惩罚。
我前篇提过我会采等级不倒扣的机制,在这情况下就要有相对应的其它配
套措施,来改善采用这种机制会产生的缺点。
例如“玩家经验归零了,但是技能熟练度没有归零”就是一种。
例如“玩家 base 经验归零了,job 经验没有归零”也是一种。(RO)
我采技能熟练度的设计,纯粹是因为 tmi2_v3_改 将来必定有技能的缘故
。(job 则是后天可决定的风格问题)
然后即便采用技能熟练度,使用者也可以视自己 mud 的需要导入技能点的
设计(甚至要两种并存、改良版等也可),关键在于
a.加熟练度的呼叫必须函数化 → 使用者才有办法将其无效化
b.玩家升级时的呼叫也必须函数化 → 使用者才能靠改函数达到目的
c.增加技能的呼叫也必须函数化
(但函数化不是万能的)
以及所谓“称呼”的问题,就像 "stat" 如果称为属性,那其它要称为什
么?这也很重要,却是最常被忽略的。
最后提一个重要的设定。
我一开始就会为 tmi2_v3_改 打造一个基础的游戏环境,它会包括一座初
始的城镇,一两个练功区,以及一个需攻略的地方。每一位拿到这份游戏
并把它架起来的人,都可以透过创造一个新角色去做攻略,攻略完成,游
戏就算结束。
之后就是拿到这份游戏的人的事,看它是要继续练功,还是用它来写新游
戏、写怎样的游戏等,就是由他来决定的。
例如最简单的,如果使用者一直为它加区域,理论上这游戏就能一直玩下
去,甚至还可以透过 tmi2_v3_改 所附的任务、副本等系统,去加任务、
加副本、加各种东西,使游戏包含的内容更多元。
当然前提是我有办法改完它,目前我还没把握,只能一步一步来,并透过
逐步释出的方式让大家知道我又改了或加了什么。
laechan

Links booklink

Contact Us: admin [ a t ] ucptt.com