分享

网络游戏任务系统的构想 - GameRes.com

 sofes 2011-03-23

网络游戏任务系统的构想


现在的网络游戏中一般都有很多的任务可以做,玩家经过做任务既可以感受游戏的故事、更快的溶入游戏中,同时还能获得一些比较好的奖品,真正的好玩又实 用。任务是网络游戏吸引玩家的重要手段,简单的有送信、取东西等,复杂的就像是一个小的RPG,通过一定的故事情节来一步步吸引玩家做下去。

那么这些任务是怎样做出来的呢?这里想和大家探讨一下这方面的问题。通过观察和分析,发现一般网络游戏的任务是通过脚本来写的,关于脚本的具体实现等 问题,这里不会深入的说明,有兴趣的朋友可以到网上搜索相关内容。我们假设已经有了一套完整的脚本系统,那么怎么在这套系统上做出游戏的任务呢?

不论简单还是复杂,任务都是由一系列的步骤组成,那么我们可以在玩家身上放两个变量,一个记录任务的ID,一个记录当前任务所在的步骤Step,这两个变量就表明了该玩家正在做什么任务、做到第几步了。
接下来是任务的定义,请看下面的类:



一个任务由一系列触发事件的脚本组成,比如玩家和一个NPC对话后,NPC告诉他去打死某个怪物,然后回去找他就可以得到奖品,我们只需要控制玩家先触发哪个脚本、然后再触发哪个脚本就可以推动任务进行。

首先和NPC对话,触发NPC脚本,把玩家的Step变量改为1(初始值为0),表明任务进行到了第一步,然后去打那个指定的怪物,打死后触发怪物的 死亡脚本,当发现Step=1的时候,任务被推动,把Step改成2,然后再回去找那个NPC,NPC发现Step=2,就说明玩家已经打死了指定的怪 物,这时给玩家奖品,最后把Step设成-1表明任务结束。  根据上面的机构,可以把任务设置成为一个个任务包,一个任务包包含了任务所牵涉的所有 NPC、怪物以及它们相应的触发脚本,在服务器启动时会查找当前存在的任务包,并根据每个任务包的具体内容填写对应的触发者脚本链表。

当一个触发者被触发后,遍历它的脚本链表,和玩家身上存在的任务ID比较,如果发现有相同任务ID的任务,再和玩家身上的任务Step比较,如果相同就说明玩家的任务正好进行到这一步,运行对应的脚本推进任务即可!
至此,游戏任务的执行原理已经基本上描述出了,希望能对大家有所启发。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多