﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-点点滴滴-随笔分类-09 游戏策划</title><link>http://www.cppblog.com/ming81/category/15764.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 18 Jan 2011 04:37:12 GMT</lastBuildDate><pubDate>Tue, 18 Jan 2011 04:37:12 GMT</pubDate><ttl>60</ttl><item><title>(搬运工)MMORPG游戏在技能战斗中的位置同步问题</title><link>http://www.cppblog.com/ming81/archive/2011/01/05/138020.html</link><dc:creator>小胖妹</dc:creator><author>小胖妹</author><pubDate>Wed, 05 Jan 2011 06:33:00 GMT</pubDate><guid>http://www.cppblog.com/ming81/archive/2011/01/05/138020.html</guid><description><![CDATA[<p>这里列举在技能战斗系统开发中，碰到的两个与位置同步相关的问题</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; （一）</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在MMORPG游戏中，对于那些同时拥有近攻和远程系等多种职业的游戏，策划一般都会对近攻类的职业，加上冲锋类的技能，以便平衡远程类职业在攻击距离上的优势。在client看到的效果，是玩家边播放冲锋动作，然后快速接近目标，并对目标一个伤害，而对server而言，该技能与其它技能在处理的不同之处在于，施法玩家在施法的同时，也作一个位置的变更。一般server的处理流程是，先检查冲锋直线路径是否合法（有无阻挡）和其它施法条件，若通过，则告诉client可以施法，并同时设置当前玩家坐标为冲锋后的坐标（该坐标由client带上来）。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 由于server移动系统在对client发过来的移动数据作检验时，需要检查本次移动的起步点，是否为上次移动的结束点，即作线段端点合法检查，而冲锋到达的目标点并未在上次移动的路径栈信息中，所以，server技能系统在设置冲锋位置时，需要先清除原路径栈信息（如调用MoveStop接口），以便确认本次冲锋为一次全新的移动。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; （二）</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 两个玩家同时使用冲锋技能时（目前client在做技能时，采用先表现的方式），出现一个玩家（冲锋目标client）停在冲锋途中的现象，原因为server广播技能施法时，没有带目标主动位移的信息（client在处理冲锋位置时，对于使用冲锋技能的client，因为它知道冲锋到达的位置，所以它的处理没有问题，而另一个冲锋目标client，由于它不知道对方要冲到哪里，则client处理时就是选择冲锋路径上的一点，这样就会看到停在冲锋途中了）所致。解决办法是，要么在协议中下发目标位移信息，要么在策划规则上，只允许同一时刻一个玩家冲锋，如：冲锋加晕眩debug等；</p>
<p>&nbsp;</p>
<p>本文来自CSDN博客，转载请标明出处：<a href="http://blog.csdn.net/stanjiang2010/archive/2010/05/04/5556393.aspx">http://blog.csdn.net/stanjiang2010/archive/2010/05/04/5556393.aspx</a></p>
<img src ="http://www.cppblog.com/ming81/aggbug/138020.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ming81/" target="_blank">小胖妹</a> 2011-01-05 14:33 <a href="http://www.cppblog.com/ming81/archive/2011/01/05/138020.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(搬运工)技能相关属性   </title><link>http://www.cppblog.com/ming81/archive/2010/12/30/137751.html</link><dc:creator>小胖妹</dc:creator><author>小胖妹</author><pubDate>Thu, 30 Dec 2010 09:06:00 GMT</pubDate><guid>http://www.cppblog.com/ming81/archive/2010/12/30/137751.html</guid><description><![CDATA[<p>技能相关属性&nbsp;&nbsp; <br>4．2．1吟唱类技能的施法时间<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 吟唱类技能在玩家点击施放后有一段施法时间，施法时间结束后技能才能被放出。该段时间插入在技能基本动作时间中，如技能动作时间为1秒，施法时间2秒，则施放该技能所需总时间为3秒。施法时间可以被人物的敏捷影响，每增加6点敏捷减少施法时间1%，最多减少50%。在判定上优先计算技能对吟唱时间的影响，然后计算敏捷对吟唱时间的影响。如假设技能A能减少吟唱时间1秒，则先在基础值上减去1秒，再计算敏捷的影响。<br>4．2．2 技能的冷却时间(cooldown简称CD)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 部分技能在使用后会有一段冷却时间，在该时间段内，玩家无法使用此技能。即时施放技能都有冷却时间，部分吟唱类技能也有。冷却时间从技能开始释放的同时开始计算。（如：&#8220;电环术&#8221;的冷却时间为6秒，则技能开始释放后的6秒内无法再次使用&#8220;电环术&#8221;。）<br>4．2．3 冷却时间的相互影响</p>
<p>出于对平衡性的考虑，避免玩家过于快速的使用不同即时施放技能，设定不同的即时施放技能其CD是可以相互影响的。考虑到网络原因，应避免过多的定时器出现在同一角色身上，因此将冷却时间分为A，B，C三类。类别A为3秒冷却时间，类别B为6秒冷却时间，类别C为10秒冷却时间。类别A多为普通攻击技能，类别B多为强力攻击技能，类别C多为各种影响时间较长的状态类技能，各技能的冷却时间包含于这三类。冷却时间影响方式为：同类冷却时间的多个技能，当使用其中一个技能后，若该技能的冷却时间未结束，则其他同类技能均无法使用，时间结束后才可使用。不同冷却时间类型的技能，其冷却时间不会互相影响。<br>举例如下：技能1，2，3的冷却时间类型为A，技能4，5，6的冷却时间类型为B，则使用技能1后的3秒内技能1，2，3均无法使用，但技能4，5，6不受影响，可正常使用。若使用技能4则6秒内技能4，5，6均无法再次使用，技能1，2，3的冷却时间计时不受影响。<br>4．2．4 技能的动作时间<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从按下按键到技能施放完毕的一段时间为该技能的动作时间。任何技能都有一个动作时间，包括普通攻击。有施法时间的技能即在动作时间中加入了施法时间。术士与牧师使用魔法的动作时间如未作特殊说明均为1秒,且不可改变，其他4个职业的施法动作也均为一秒，但大部分技能的动作时间均等于当前普通攻击一次所消耗的时间。（如：玩家持刀用普通攻击一次，则整个挥刀过程所耗的时间即为此时玩家持刀使用普通攻击的动作时间。）<br>4．2．5 技能的攻击属性<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 技能的攻击属性共7种，分别为&#8220;物理&#8221;、&#8220;火&#8221;、&#8220;水&#8221;、&#8220;气&#8221;、&#8220;光&#8221;、&#8220;暗&#8221;、&#8220;毒&#8221;，射手、游侠和骑士的技能全部是&#8220;物理&#8221;属性攻击，活人状态的牧师为&#8220;光&#8221;属性攻击，亡灵状态的牧师为&#8220;暗&#8221;属性攻击，刺客和射手既有&#8220;物理&#8221;攻击技能，也有&#8220;毒&#8221;攻击技能，术士按照技能系别具有&#8220;火&#8221;、&#8220;水&#8221;、&#8220;气&#8221;四种属性攻击。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在攻击类型上分为单体和群体技能。群体技能的影响范围分为&#8220;直线&#8221;、&#8220;扇形&#8221;、&#8220;圆形&#8221;。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 技能还包括沉默机率，打开宝箱等级，攻击时是否解除，复活机率，致命一击率，击晕机率，击飞机率，击飞距离，催眠机率，结界机率，冻结机率，隐身机率这些特殊属性。<br>4．2．6 技能的功能<br>技能的功能可以表现为：<br>01：增加生命值：可按数值或百分比增加，还可以持续增加。<br>02：减少生命值：可按数值或百分比减少，还可以持续减少。<br>03：增加攻击力：可按数值或百分比增加。<br>04：减少攻击力：可按数值或百分比减少。<br>05：增加物理/魔法防御力：可按数值或百分比增加。<br>06：减少物理/魔法防御力：可按数值或百分比减少。<br>07：增加命中率：可按数值或百分比增加。<br>08：减少命中率：可按数值或百分比减少。<br>09：增加移动速度：按百分比增加。<br>10：减少移动速度：按百分比减少。<br>11：增加攻击速度：按百分比增加。<br>12：减少攻击速度：按百分比减少。<br>13：增加普通攻击的攻击距离：按距离单位增加。<br>14：增加致命一击率：按百分比数值增加。<br>15：增加物理闪避率：按百分比数值增加玩家对物理攻击的闪避率。<br>16：增加魔法闪避率：按百分比数值增加玩家对魔法攻击的闪避率。<br>17：增加每秒回复生命值：按一定数值每秒回复生命值。<br>18：增加每秒回复魔法值：按一定数值每秒回复魔法值。<br>19：吸收物理伤害点数：按一定数值减少受到攻击时的物理伤害点数。<br>20：吸收魔法伤害点数：按一定数值减少受到攻击时的魔法伤害点数。<br>21：减少吟唱时间：按固定时间减少某吟唱类技能的吟唱时间。<br>22：7种攻击力：物理、火、水、气、光、暗、毒7个系的攻击力。<br>23：单体攻击：对单个目标的攻击。<br>24：群体攻击：对群体目标的攻击。<br>25：溅射攻击：需要指定目标的攻击技能对临近单位的攻击，临近目标受到的伤害与主目标不同，通常较低。<br>26：持续时间：在该时间段内技能持续作用，包括持续状态影响、持续生命值变化、持续攻击目标。<br>技能还包括如下特殊功能：<br>01：击晕对手：使对手进入眩晕状态。<br>02：对某技能生效：此技能效果对某个特定技能生效，如技能A能减少技能B的吟唱时间。技能C能增加技能D的攻击力。技能E能同时增加技能F和G的攻击力。<br>03：对某类武器生效：此技能的效果对某类武器生效，如技能A学习后能增加玩家使用斧的攻击力，技能B学习后能增加玩家使用剑的攻击速度。<br>打断吟唱与持续施放类技能的施法动作：致命一击、眩晕攻击、击飞攻击、石化、结界、催眠可以打断对手的施法动作。<br>04：驱散负面魔法效果：驱散自己与非敌对势力身上的负面魔法效果。<br>05：复活死亡单位：使已死亡的单位复活（敌对势力与怪物除外）,被技能复活的单位默认拥有1%的生命值。<br>06：击飞对手：使对手进入击飞状态。<br>07：使敌对单位进入结界状态：使敌对单位即不能攻击也不能受到攻击。<br>使敌对单位进入石化状态：使敌对单位不能移动和攻击，增加1倍的防御力。<br>08：使敌对单位进入催眠状态：使敌对单位不能移动和攻击，受到攻击则解除。<br>09：吸取生命值：击中对手后将此次攻击的伤害值转化为自己的生命值。<br>10：减低对手魔法值/生命值：当攻击玩家时减低玩家的魔法值，攻击怪物时则减低怪物的生命值。<br>11使对手燃烧：受到燃烧效果作用的目标每秒会受到一次火系伤害。<br>12：：对己方阵营玩家增加生命值，对敌对阵营玩家或怪物则减少一半数量的生命值。<br>13：使怪物进入沉默状态：使怪物变为被动攻击状态。<br>14：针对不同目标有不同效果：当针对阵营对立或相同的玩家与怪物时有不同的效果。如某个加血技能施放到同阵营的玩家身上为加血，而施放到对立阵营玩家的身上为减血。某些技能只能对玩家造成影响，某些技能只能对怪物造成影响。<br>15：打开对应等级的宝箱：使用技能开锁能打开对应等级的7宝箱，第一级能打开3级或3级以下的宝箱，第二级能打开4级或4级以下宝箱。能打开宝箱等级按技能等级依次增加。1级和2级宝箱不需要任何条件就能打开。<br>16：进行攻击则状态自动解除：使用技能举盾后玩家的防御力和闪避率会大大提高，若进行攻击或使用技能则此效果解除。<br>17：快速移动到对手身旁对其进行攻击：以正常情况下2-3倍的速度跑至对手面前，然后发动一次高强度攻击。<br>18：连续攻击对手多次：在一次正常攻击时间内以数倍于普通攻击的速度连续攻击对手多次<br>19：反弹近战物理攻击：当受到近战物理攻击时，将伤害值反弹到攻击方，使攻击方直接减少等于该伤害值的生命值。可按反弹一定百分比的伤害值，也可按一定机率反弹伤害。<br>20：增加移动时的闪避率：当人物移动时会获得额外的物理、魔法闪避率加成。</p>
<p>4．2．7 技能所造成的各种特殊状态<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 击飞：当目标被击飞攻击击中会向后飘起进入浮空状态，然后倒地，此时目标无法做出任何动作，也不能受到外界的攻击。吟唱动作和持续施法动作会被中断。<br>眩晕：当目标被眩晕攻击击中后进入眩晕状态，此时目标保持普通站立姿势，头顶出现眩晕标志。并且无法做出任何动作，可受到外界攻击，持续数秒。吟唱动作和持续施法动作会被中断。<br>中毒：当目标被毒攻击击中后进入中毒状态，持续时间较长，目标各种功能均无变化，但生命值每秒按一定数值减少，并且减少数值不计算攻防相关属性。<br>冻结：目标受到冻结术作用后进入冻结状态，持续时间较长，此时目标无法做任何动作，可受到外界攻击，物理防御力提高1倍。吟唱动作和持续施法动作会被中断。<br>催眠：目标被催眠术作用后进人催眠状态，持续时间较长，此时目标无法做任何动作，头顶出现睡眠标志，若受到外界攻击则状态解除，玩家回到正常状态。<br>结界：目标受到结界法术作用后进入结界状态，持续时间较长，此时目标不会受到外界任何影响，其自身也不能攻击、施法、使用物品，但可移动。<br>隐身：玩家使用隐身技能后进入隐身状态，此时玩家变为半透明色，除队友以外，其他目标都无法看见玩家，也不能通过快捷键显示出玩家的名字。此时，若玩家使用技能或攻击则隐身状态解除，回复到正常状态。隐身状态的人物不能被锁定，若隐身之前被锁定，则进入隐身状态时锁定解除。</p>
<p>4．2．8 状态的叠加（包括各种辅助状态，如攻击增强、防御降低等等）<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 不同的状态效果可相互叠加（如：玩家可同时受到眩晕、中毒、寒冷、麻痹和攻击增强等状态的影响）。相同状态效果保留强度最高的，若强度相同则保留后施放的状态（如：加防御等技能效果的叠加优先判断技能等级的高低，保留高等级技能效果，若等级相同则判断施放的先后顺序，保留后施放的效果。）。<br>4．2．9 技能的施法距离<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 远程技能都有施法距离，当释放技能时若目标不在施法距离之类则主角会朝目标移动直到目标进入施法距离，然后开始施放魔法。对于近身技能，其施放与普通近身攻击类似。</p>
<img src ="http://www.cppblog.com/ming81/aggbug/137751.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ming81/" target="_blank">小胖妹</a> 2010-12-30 17:06 <a href="http://www.cppblog.com/ming81/archive/2010/12/30/137751.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(搬运工)技能释放通用流程图</title><link>http://www.cppblog.com/ming81/archive/2010/12/23/137279.html</link><dc:creator>小胖妹</dc:creator><author>小胖妹</author><pubDate>Thu, 23 Dec 2010 03:54:00 GMT</pubDate><guid>http://www.cppblog.com/ming81/archive/2010/12/23/137279.html</guid><description><![CDATA[华丽的<strong><font color=#ff0000>技能</font></strong>有时候也是吸引玩家的一种手段，很多人玩游戏玩的是一种心情，很多时候我们可能就因为一个角色的<strong><font color=#ff0000>技能</font></strong>而选他。初步抽象出来的一张3DMMORPG游戏的服务端<strong><font color=#ff0000>技能</font></strong>系统流程图，即时战斗方式。仅供参考。<br><br>因为该流程图还有很多地方有待细化。上图【基本数据解构】；下图【基本流程图】。<br><br><span id=attach_12453 onmouseover="showMenu({'ctrlid':this.id,'pos':'13'})" style="DISPLAY: none; POSITION: absolute"><img src="http://www.youxihun.com/bbs/images/default/attachimg.gif" border=0></span> <img id=aimg_12453 height=573 alt=1.jpg src="http://www.youxihun.com/bbs/attachments/month_1003/10032503221deff4a76d51d42f.jpg" width=405 unselectable="true" outfunc="null" initialized="true" status="2" file="attachments/month_1003/10032503221deff4a76d51d42f.jpg" thumbImg="1"> <br><span id=attach_12454 onmouseover="showMenu({'ctrlid':this.id,'pos':'13'})" style="DISPLAY: none; POSITION: absolute"><img src="http://www.youxihun.com/bbs/images/default/attachimg.gif" border=0></span> <a href="javascript:;"><img id=aimg_12454 onclick="zoom(this, 'attachments/month_1003/1003250322a0902635c8807ba7.jpg')" src="http://www.youxihun.com/bbs/attachments/month_1003/1003250322a0902635c8807ba7.jpg.thumb.jpg" border=0 unselectable="true" outfunc="null" initialized="true"></a> 
<img src ="http://www.cppblog.com/ming81/aggbug/137279.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ming81/" target="_blank">小胖妹</a> 2010-12-23 11:54 <a href="http://www.cppblog.com/ming81/archive/2010/12/23/137279.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>