这个东西本来是无忧运行烽烟ol文章中的一部分,但因为文档不能下载了,所以在自己的博客重新发一次,还是以烽烟为例,
一个大坑出现了,为什么呢?因为我们没有注册用户,如何注册?客户端里貌似没提供5555555555555555
没办法,都到这步了,没什么能阻止我们进入游戏了,既然数据库里没数据,我们写数据进去就行了,看下数据库文件
/*Table structure for table `tb_register` */
DROP TABLE IF EXISTS `tb_register`;
CREATE TABLE `tb_register` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`username` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '用户名',
`password` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '用户密码',
`email` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '' COMMENT '用户注册邮箱',
`characterId` int(10) DEFAULT '0' COMMENT '用户的角色ID',
`pid` int(11) DEFAULT '-1' COMMENT '邀请人的角色id',
`lastonline` datetime NOT NULL DEFAULT '2012-06-05 00:00:00' COMMENT '最后在线时间',
`logintimes` int(11) NOT NULL DEFAULT '0' COMMENT '登陆次数',
`enable` tinyint(4) NOT NULL DEFAULT '1' COMMENT '是否可以登录',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1915 DEFAULT CHARSET=utf8;
/*Data for the table `tb_register` */
数据库注册信息sql语句是这样的,我大致解释一下,`id` int(11) NOT NULLAUTO_INCREMENT COMMENT '用户id',这是用户id并且设置了主键,不用我们写入信息,会自动递增
`username` varchar(255) CHARACTER SET utf8COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '用户名',
`password` varchar(255) CHARACTER SET utf8COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '用户密码',
`email` varchar(255) CHARACTER SET utf8COLLATE utf8_bin DEFAULT '' COMMENT '用户注册邮箱',
这3个是要外部写入了,NOT NULL说明不能为空,是我们注册时必须要做的,
后面的几项都有DEFAULT这个条件,所以可以不写(当然自己填的时候,要写),知道这个结构了我们就没什么好犹豫的了,打开Mysqlnavigator
进去直接写数吧,是不是有些过于简单粗暴了?如果加个用户就进去写一次,当只有自己一个人玩的时候,当然没什么,但随着注册用户增多,数据库就会变得不可维护,因为如果自己填写东西的话,包括id,和DEFAULT这些都要填写,但进入游戏之后,DEFAULT这些数据其实是会被游戏自动修改的,而且,如果不小心,会出现两个相同用户名的情况,截个图给大家看
上面仔细看就会发现1931和1932两个id的用户名是一样的,这是我在开发注册系统的时候,开始没有对数据库做查询判断,出的错误,其实如果自己填写数据库表格,很容易出现这样的错误,如果出了这样的错误,那么登陆游戏肯定会出问题,怎么办?自己动手丰衣足食是根本。当然有些同学没搞过相关开发,于是乎,不用担心,我写好了给大家,好了不多说,过后我会把源码放出来,大家如果有时间,完全可以用我提供的源码来自己改写一个服务器的数据库维护工具,首先要先安装服务器,我这里用的是node.js,打开终端输入
sudo apt-get install nodejs(问我为什么用nodejs,) 【 Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的, 易于扩展的网络应用 · Node.js 借助事件驱动, 非阻塞 I/O 模型变得轻量和高效, 非常适合 run across distributeddevices 的 data-intensive 的实时应用 · 】以上是百度给的解释,并不代表我的意见,跟写nodejs相比,我更习惯于用php, 不过为啥这里用nodejs呢,因为本来我这个ubuntu系统就是用来学习网易Pomelo这个开源项目的,所以nodejs本来就装好的,不习惯的也先凑合用吧,过几天有时间的话,我再写个php的来充数。不过话说那样还要装 Apache和php5,不废话了(这废话就够多的了)
好了注册服务器启动成功了,具体操作看图就能明白,在fengyanolreg目录下输入node app
之后我们开浏览器,直接点立即注册(当然上面那个注册也一样),
为防止恶意注册,注册规则严格按照正常的网站注册规则(可能比正常还要严一点,大小写,位数,邮箱规则,特殊符号我都做了规定,胡乱写的话比如用户名写成1test5557会如图)
好了,我们按原来的信息注册,用户名test5557,密码111111(本来密码用MD5加密的,但客户端代码的MD5加密之后,发现两边数值不一样,看来两种语言还是差别不小,没解决之前用明文吧),点注册
注册成功
前端,后台都通过了注册
好了,在注册纠结了这么久,进游戏吧,回到游戏客户端登陆界面
是键入原来一样的数据,登陆
进来了,选个喜欢的职业吧,很酷的人物选择界面(CreateRoleFTViewMediator.as这里实现的,等换皮的时候我们再讨论),现在选人进游戏,起名进游戏,
好了这个东东就介绍到这里,代码下载地址,关于烽烟以及其他as3页游换皮的问题,我们以后在讨论。