游戏开发论坛

 找回密码
 立即注册
搜索
楼主: 光头一个

游戏任务程序设计

[复制链接]

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2008-10-2 11:13:00 | 显示全部楼层

Re: Re:游戏任务程序设计

光头一个: Re:游戏任务程序设计

  程序里面又接口 才能 用脚本 连接口 都没怎么写 啊


脚本? 太幸福了!

脚本  可以  是解释性语言,那么“虚函数”之类的的机制就非常简单
----用string判断函数名即可。

9

主题

43

帖子

43

积分

注册会员

Rank: 2

积分
43
 楼主| 发表于 2008-10-2 11:25:00 | 显示全部楼层

Re:游戏任务程序设计

  不是能明白 目前 只用C/C++写 游戏代码  其他不是很了解 ,任务的存储 和 定义 还是不能用脚本 了吧
你说的用脚本是又 一定状态 基础吧 , 我现在写的代码是游戏 里以前没又任务系统 我现在 要穿插进去啊 不容易啊  

10

主题

173

帖子

178

积分

注册会员

Rank: 2

积分
178
发表于 2008-10-2 14:53:00 | 显示全部楼层

Re:游戏任务程序设计

用脚本可以比较灵活的处理游戏任务。例如:触发和完成,这样做的目的是大概有2点:
1、可以灵活处理比较复杂的任务逻辑。
2、修改任务的时候,不用修改代码。

是否一定要用脚本来处理任务,还是看游戏任务功能的需求而定。任务简单,形式也比较固定的,不需要用脚本来处理。相反的话,尽量用脚本来处理。

我举个游戏任务范例来尝试解答下你的问题:
任务触发需求:
需要判断角色等级,失败对白
需要判断角色派别,失败对白
需要判断角色性别,失败对白
需要判断角色某处声望和声望级别(最多4个),失败对白
需要判断角色是否完成过某任务(最多3个),失败对白
需要判断角色等级,失败对白
需要判断角色背包内是否有特种道具和道具数量(最多2种),失败对白
需要判断角色是否拥有某特定的BUFF或者DEBUFF(最多2种),失败对白
。。。。。。

任务完成需求:
角色已经杀死的NPC和数量(最多6种)
角色背包内是否有对用的道具和道具数量(最多6种)
角色是否在指定的时间内完成任务
角色是否到达某处(最多1种)
角色是否某处声望达标(最多2种)
角色是否拥有足够的金钱
。。。。。。

任务奖励需求:
BUFF或者DEBUFF奖励(最多2个)
道具奖励(最多4种)
某处声望奖励(最多4个)
道具扣除以及数量(最多5种)
金钱奖励
金钱扣除
经验奖励
技能奖励(最多1个)
。。。。。。


如果上述需求都是固定的并且最多的部分都是有上限的,那么就可以用c/c++来直接实现,虽然不建议。
上述需求,你可以做成表格或者INI,然后用程序去解析条件、判断和返回。


有了上述需求,才可以设计存盘格式,例如假定就是上述需求,任务的存盘格式大概可以写成这样:
对于已经完成的任务:
vector<uint32 taskid>finishtasks;
正在进行的任务
strcut{
uint32 id;
uint32 timelimit;
uint32 killnpcnums[6];
bool bFindPlace;
};


不同的任务需求有不同的解决方案,是否一定要用脚本,平衡代价后自己确定。解决问题的方法可能会有很多种。
每天吃个苹果有益身体健康,没有牙吭不动的,渣汁也可以,虽然麻烦点。

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2008-10-2 16:29:00 | 显示全部楼层

Re:游戏任务程序设计

楼上已经给出详细的解释了。楼主还想不通地话可以多查查资料,看看别的游戏怎么做的,可以少走很多弯路,最终会体会到用C做一个足够完备的任务系统是件多么自虐的事的。集成脚本引擎也不是多复杂,导出函数给脚本也就几行代码的事,重要的不过是怎么设计才能让脚本编写更简单。

9

主题

43

帖子

43

积分

注册会员

Rank: 2

积分
43
 楼主| 发表于 2008-10-2 18:17:00 | 显示全部楼层

Re:游戏任务程序设计

struct stTaskNpcData {       
//int nTaskNpcId;//任务id
        int                nTaskId;//任务id
        BYTE        sTaskType;//触发任务类型 1 杀怪个数 ,2 到达了某个地方,3达到某个地方 , 4等级

        int                nTaskPlayerLevel;//人物等级

        int                nRegionId;//需要到达地图的        ID

        int                nNpcId;//要杀的怪物的id
        int                nNpcNumber;//要杀怪物的数目
        int                nKillNpcNumber;//以杀怪的数目

        int                nTimes;//要求完成的时间
        //CTime   mTaskTimes;//时间
};// 触发任务


自己想了下用C/C++因该能 应付

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
发表于 2008-10-2 22:31:00 | 显示全部楼层

Re:游戏任务程序设计

到此一游了,不说话,任务不像楼主这样就对了,WKK

9

主题

43

帖子

43

积分

注册会员

Rank: 2

积分
43
 楼主| 发表于 2008-10-3 08:42:00 | 显示全部楼层

Re:游戏任务程序设计

哎做个任务系统咋就这么难呢 ? .....苍天啊 大地啊 谁来 告诉我啊 !

9

主题

43

帖子

43

积分

注册会员

Rank: 2

积分
43
 楼主| 发表于 2008-10-3 08:47:00 | 显示全部楼层

Re:游戏任务程序设计

  一个任务系统想 了 两三 天还是这样 怎么办啊

10

主题

173

帖子

178

积分

注册会员

Rank: 2

积分
178
发表于 2008-10-3 08:51:00 | 显示全部楼层

Re:游戏任务程序设计

按照你自己构想的方法去尝试写一下,总结过程和经验,有方向的提出疑问或者查询其他人的范例就好了。
不想摔跤就想学会走路,不呛水就想学会游泳。
美女啊,你就努力的喊叫吧,喊破喉咙也不会有人来救你的。

9

主题

43

帖子

43

积分

注册会员

Rank: 2

积分
43
 楼主| 发表于 2008-10-3 09:04:00 | 显示全部楼层

Re:游戏任务程序设计

   上次 搞了个武器系统就弄了个半死了 花了我一两个月的时间 老游戏想脱胎换骨 难 啊 难啊 !!!!!!!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 04:18

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表