人物属性
1 con
2 str
3 dex
以上为天赋,不可更改。数值[10, 30]。在进去游戏时自行设定,平均20。
本着修行到了一定境界,天赋已经不那么重要的选择,天赋增加的绝对数值为n^2。这样假设天赋30,在初期的数值900,对应50级的修为3125(2500+625)也是颇为可观的,但对于100级的技能20000来讲,就不那么有分量了。
人物修为
1 hp & mp
2 ap & pp
3 dp & mv
以上为基本修为,可日常修炼提高,等级无上限,但节奏控制在100级顶天。
修为增加对应的战斗数值。比如生命修为n级,对应n/10重,增加的战斗数值为“n^2+(n/10)^4”。突出重数的影响,这样100级的参数增加20000。
人物武功
1 force_skill
2 attack_skill
3 dodge_skill
这类武功可以修炼也可以锻炼,上限100级,每10级为1重,到5,7,9重有特效,10重有超级特效。
为简化算法,此类武功每样对应两个基本修为,武功无高下,各有偏重。内功对应生命和内力,打斗武功对应攻击和招架,步法对应闪避和机动。通过每级加百分之几的方式对响应修为加成,两样的和在100级加成100%。比如某内功到100级加生命60%,内力40%。
关于天赋,现实中可能另一种说法更残暴一些:只有努力过的人才明白天赋多重要。但在游戏里,天赋过于重要就会导致数据失衡,初期通过天赋选择来影响游戏难度但也无所谓,后期被几次放大后,就不好控制了。
战斗分为出招前,出招中,击中三部分。
先说mv的概念,每招消耗的mv不等,控制在100至500之间,也就是说,同样的身法修为,一个人出一招,另一个人出了5招,其实不只是5招,要算实际消耗。本着公平的选择,这一招的威力起码要是5招威力和的两三倍,才能诱惑人选择那威力大的一招。这里的威力不仅指杀伤,包括命中。mv值在[0,1000],低于500不能不能出招,每回合恢复mv,然后mv高者出招。每回合恢复的mv值为“10+2n”,上限50,n为mv重数结合dodge_skill修正后结果。
这就是一个不断蓄力,满了就出招,耗掉继续蓄的过程。极限情况,当武功每招消耗50,而每回合消耗50,就可以源源不断出招……这就失去控制了,
战斗中还是中规中矩的mud随机算法,random(ap+pp)>=pp。这个还是很公平的,相信大家都算过。
先判断dp,再判断pp,如果修为相当,即ap=pp=dp,则每次发招有1/4概率击中,好吧,高手没那么容易被打中……
最后就是击中算伤害。伤害的因素通常是力量和内力加力,还有武功加成和武器伤害等。
这里也差不多这些吧,细节设计还需要用模型模拟以后再确定。
为了简化模型,武功招数只是装饰,都是一样的。武功的属性如下:1 mv,每次需要的机动蓄力;2 force,每次消耗的内力;3 damage,伤害加成;4 ap加成;5 pp加成。ap+pp=1,f(mv,force,damage)=c,是个定值。
修炼曲线应该是前期快,后期慢,对比了一下2次方和3次方的数据,还是决定按照mud的经典算法,用平方,但是取消智力和经验加成,即当修炼点数速度趋于恒定,这样才能保证修炼曲线可控。详细数据模拟用程序输出后贴上来,我用shell脚本建立了数据模型,还没完工。
通常设定,一个玩家需要至少两种武功,一种用于清场,一种用于拼命。体力值是个比较僵硬的设定,但再牛逼的高手也不可能杀过千军万马。没一招都会消耗内力,最简单的武功,每招消耗1点内力,那一两万的内力怎么也玩不完,但是超大招,上百点的消耗,这样的架,就算牛逼的大高手,也打不了几场。基于以下两点:1 最后被保留的通常是消耗极低的和伤害极大的;2 没人喜欢设计注定被抛弃的,也没人喜欢在注定被抛弃的上面花力气。所以,只要为一个角色准备两种极端武功就可以了。
通过调节伤害来控制战斗回合,在旗鼓相当的情况下,命中是1/4。hp和mp是一组共生参数,那么就用mp去打hp。mp就是内功。然后是兵器。按照前面的算法,50级hp能有4000-5000hp,那控制在每招伤害100-400之间比较合理,200级hp能有20000-40000,控制伤害在500-2000差不多。
既然是简单算法,大概一下两点就可以了: 1,相关因素,比如力量,内力,兵器;2,公式及调节因子。其中公式用来决定各因素的作用,调节因子用来调整在整个战斗中的节奏控制。
特效系统。武功有瓶颈,突破惊喜多。在适当的地方设置瓶颈,可以增加各类特效,比如攻击,5重出双倍攻击,7重出一击必中,9重出致命一击,10重所有概率翻倍。比如招架,5重出铜墙铁壁,7重出后发制人,9重出反戈一击……就这一类吧,都是概率极小的,比如满级了也就10%或者1%的机会,毕竟一击必杀这样的也就1%还凑合,太高就太看脸了。人在江湖飘,哪有不挨刀,运气好,菜鸟也能阴高手。