本月初,受老大所托,要为2.7搞个《道具系统》。本来,开发也是计划中的,而开发模式也已经思考完成,就等写代码了。无奈,不知道为什么跟树跟车过不去,导致老爸跟自己在医院掉了几天瓶子,还好没有造成遗憾,已是知足。目前,虽然已经康复8成,写代码不成问题,但是实在是没有多余心情。故,先公布我自己思考的2.7的《道具系统》的开发思路、模式,希望有能者能够开发出来。
废话少说,切入正题:
开发前提:由于本人对具体道具实在没有什么创新见地,故,把道具的具体创建留给各位有才的站长们,《道具系统》只负责道具的具体操作、设置。
本着开发前提,初步把系统定为三层模式。
一、表现层。
二、判断层。
三、操作层。
下面,详细介绍各层功能细节。
表现层:
每个道具都应当会改变 论坛元素 的值。不论是隐性的或是显性的。所谓论坛元素是指:数据库中每个数据表的每个字段。元素被改变,当然别人浏览论坛时候自然会有所表现。故,表现层就是,使用道具对论坛元素产生的改变的处理。
判断层:
由于每个道具对论坛元素的改变需要有不同的处理。故,判断层,调用操作层中的具体模块具体处理每个道具需要改变的论坛元素,知道处理完毕。
操作层:
这个是一个函数的集合。可统一放进一个类来调用。或单独对每个数据表做一个类处理。
操作层就是具体处理对论坛元素的改变。
现在来整体描述一下,道具的使用过程。例如:《主题高亮》(注意,道具的具体创建一会再说。)
当对某个主题使用此道具时,调用判断层,对道具进行判断,判断后把具体的处理过程交给操作层处理,知道全部操作完成。调用判断层时,只需传给它必须的参数,这里是道具ID以及道具需要的主题id。接收到这两个参数时,判断层开始处理道具id,把此道具需要具体改变的论坛元素转变成操作层的具体操作,直到完成。然后传回操作成功状态,调用表现层。刷新,或者局部刷新页面。至此,道具使用完成。
下面来谈谈道具的具体创建过程。
道具创建界面详细如下:
(第一界面)
道具名称
道具图片(可为空)
道具介绍(可为空)
道具持有有效期(默认无限制)
道具产生效果有效期(默认无限制)
道具出售金额
道具收回金额
道具使用成功率(默认100%)
初始库存数
库存更新数
更新周期(默认1周)
扩展:
每个会员购买数限制:
1.无限制(默认)
2.限购_____个道具
购买权限:(如果此权限完成困难,可以暂时忽略)
会员组、会员某个元素值的判断(2.7还可以调用最新的积分系统,做更加复杂的事情)等等
当我们完成以上表单时,我们便创建了一个最简单的道具(虽然使用无任何效果)。当然,我们的道具系统并不如此简单。继续:
完成此表单之后,系统自动跳转到『道具属性设置』界面。下面是界面详细资料:
分类如下:(视能力可自行扩展)
1。主题操作:
颜色:
字体:
加粗:
等等,mxb_thread中表的各字段的具体设置改变
2。帖子操作:
内容、字体、字号、颜色、简体、繁体
附件
介绍
标题
等等,mxb_post表的各个字段的操作改变。
3。会员操作:
名称、id、发帖数、cash、银行存款、积分(2.7有很多很复杂,可暂时忽略)、签名
等等。mxb_user表的各个字段的改变。
附件条件(使用者改变):
处理使用对象(就是对使用者也进行一定的改变)。同上。
4。页面显示:
这个是为了纯搞笑或者娱乐,或者更多功能而设置的。
单纯在某个页面的某个位置显示某张图片、某个flash而设置。
a。显示位置:
全部页面
首页
论坛各版块
对应主题
对应帖子
个人控制面板
等等。只要你能想到的页面都可以做个选项。
b。扩展显示的位置(可将屏幕分为9块,可选择具体出现在某个位置)(默认全屏)
c。显示的是图片还是flash等等各类可显媒体。
其他更多的设置,大家有待开发。 :cool:
如果能完成以上部分,这已经是一个相当牛x的系统了。不过,还不是最完美的。
《道具系统》还需要导入导出功能(纯数据库导出即可)
《道具系统》还需要写个计划任务,给每个道具添加库存
《道具系统》还需要一个交易场所,给会员自由交易道具
下面说说《道具系统》的数据表部分:
mxb_toy(道具属性表)
id(主键) name(道具名) description(道具介绍) photo(道具图片) sell_money(卖出金额) back_money(收回金额) num(库存数) update_num(库存更新数) update_time(库存更新时间) update_time_this(此次更新时间) update_time_next(下次更新时间) own_time(持有有效期) value_time(使用效果有效期) rate(使用成功率) buy_limit_num(购买限制) action(具体操作,数组串化后保存) addition(修正字段、视情况,可有可无)
附加:权限的限制可以保存在修正字段,或者可以与购买限制数合并。保存在数组中,串化后保存。
mxb_toylog(每次使用道具均记录)
id(主键) action(购买道具buy、使用道具use、出售道具sell、交易道具exchange等等) user(执行人) userobj(使用对象) toy_id(道具id) addition(修正字段,可有可无)
说到这里应该是大部分讲完了。如果还有不清楚的,自己去思考吧。 :laugh:
希望有能者跟有时间的能来开发,造福人群。顺祝mx越来越好。祝各位站长身体健康、万事如意。
cathi / 2007-05-26 17:00
希望2.71的道具能更加人性化
当某个道具不时候时
支持!
楼主保重身体啊
别支持我啊。我支持你开发!~
嘿嘿。
别支持我啊。我支持你开发!~
嘿嘿。
[/quote]这个比较复杂,要弄好估计至少得半个月时间,
目前还没这个勇气坚持下来,呵呵 越来越懒啦
俺也支持
精神上大大的支持
其他的嘛,能力有限的说
这真的是能力有限的说。。。
支持 有意愿加入MOLYX
想写?可是技术没有那么强,写个小插件倒是可以挑战下!这个嘛,太复杂了!
倒是希望出来是,能多点创新的东西!更好玩点才行!
支持。。。期待中。。
有时间感受一下
呵呵