这篇来写一些常量定义的实例。我一般在配置常量的时候,都会让 bitOffset = 20,这样是一个比较好的分配,就是每个分组可以有 0xFFFFF(1048575) 个常量,0xFFF(4095) 个分组。

游戏中的客户端和服务端都需要的游戏常量,如下

<macros name="MacroDefine" author="idoublewei" note="常量宏定义">

    <macro name="ACCOUNT_ROLE_MAX" type="integer" value="2" note="账号下最多可以创建的角色数量"/>

    <macro name="ROLE_CAREER_WARRIOR" type="integer" value="1" note="角色职业 - 战士"/>
<macro name="ROLE_CAREER_MAGE" type="integer" value="2" note="角色职业 - 法师"/>
<macro name="ROLE_CAREER_ASSASSIN" type="integer" value="3" note="角色职业 - 刺客"/> <macro name="ROLE_SEX_MALE" type="integer" value="0" note="角色性别 - 男"/>
<macro name="ROLE_SEX_FEMALE" type="integer" value="1" note="角色性别 - 女"/> </macros>

因为在该常量定义中,我们是关心常量的值的,基本上不会希望有自动计算的值,所以 groupStart 和 groupEnd,bitOffset 可以不指定。

然后也可以定义一些常用的错误码,如下

<macros name="MacroError" author="idoublewei" note="错误宏定义">

    <macro name="NO_RIGHT" type="integer" value="1" note="没有权限"/>

    <group note="连接相关">
<macro name="CONNECTION_IDLE" type="integer" value="101" note="你太不活跃了,把资源让给其他人吧。。。"/>
<macro name="CONNECTION_OVERLOAD" type="integer" value="102" note="连接超过最大限制"/>
</group> <group note="账号模块相关错误"> <macro name="ACCOUNT_UNMATCH" type="integer" value="201" note="账号格式不正确"/>
<macro name="ACCOUNT_EMAIL_UNMATCH" type="integer" value="202" note="电子邮箱格式不正确"/>
<macro name="ACCOUNT_EXISTED" type="integer" value="203" note="账号已存在"/>
<macro name="ACCOUNT_EMAIL_USED" type="integer" value="204" note="电子邮箱已使用"/> <macro name="ACCOUNT_NONEXISTENCE" type="integer" value="205" note="账号不存在"/>
<macro name="ACCOUNT_PASSWORD_WRONG" type="integer" value="206" note="密码不正确"/>
<macro name="ACCOUNT_LOGINED" type="integer" value="207" note="当前连接已登录了账号"/> </group>
<group note="角色模块相关错误">
<macro name="ROLE_ACCOUNT_OFFLINE" type="integer" value="301" note="账号未登录"/>
<macro name="ROLE_OVERLOAD" type="integer" value="302" note="角色数量超过最大限制"/>
<macro name="ROLE_NICKNAME_UNMATCH" type="integer" value="303" note="角色昵称格式不正确"/>
<macro name="ROLE_NICKNAME_EXISTED" type="integer" value="304" note="角色昵称已存在"/>
<macro name="ROLE_NONEXISTENCE" type="integer" value="305" note="角色不存在"/>
<macro name="ROLE_LOGINED" type="integer" value="306" note="当前账号已登录了角色"/>
<macro name="ROLE_USEING" type="integer" value="307" note="当前角色正在使用"/>
</group> </macros>

同样的,我们在错误码中也是关心常量值的,所以也忽略了参数 groupStart,groupEnd 和 bitOffset。

再来看看请求命令的配置,如下

<macros name="MacroReqAndRsp" groupStart="1" groupEnd="100" bitOffset="20" author="idoublewei" note="请求、应答命令宏定义">

    <macro name="HEARTBEAT" note="心跳,参数 : null"/>
<macro name="RESPONSE" note="请求响应"/> <group name="ACCOUNT" note="帐号">
<macro name="ACCOUNT_REGISTER" note="注册账号 - 注册成功后,默认不登录,参数 : loginName, password, email,返回 : TAccountVO"/>
<macro name="ACCOUNT_LOGIN" note="帐号登录,参数 : loginName, password,返回 : TAccountVO"/>
<macro name="ACCOUNT_LOGOUT" note="账号登出,参数 : null,返回 : null"/>
</group> <group name="ROLE" note="角色">
<macro name="ROLE_RETRIEVE" note="获取指定账号下的角色列表,参数 : accountId,返回 : TRoleVO-List"/>
<macro name="ROLE_REGISTER" note="注册角色,参数 : nickName, sex, career,返回 : TRoleVO"/>
<macro name="ROLE_UNREGISTER" note="注销角色,参数 : roleId,返回 : null"/>
<macro name="ROLE_LOGIN" note="角色登录,参数 : roleId,返回 : TRoleVO"/>
<macro name="ROLE_LOGOUT" note="角色登出,返回 : null"/>
</group> </macros>

在请求命令中,就不关心常量的具体值是什么了,只要客户端和服务器每次使用时是用的一套配置就绝对没问题,所以这儿为 基本请求(心跳,响应回复) ,账号和角色请求分组 指定的分组号在 1 到 100 之间(包括 1 和 100),当前游戏其它模块的请求命令分组也可以另起一个配置文件,但需要注意的是分组号区别不要重复。

as3+java+mysql(mybatis) 数据自动工具(六)的更多相关文章

  1. as3+java+mysql(mybatis) 数据自动工具(一)

    在页游中,大部分的开发模式都是:客户端(as3)+ 服务端(java)+ 数据库(mysql). 在这3个部分会有一个相同的部分就是数据结构.比如一个用户数据,在客户端使用类 UserVO(as3) ...

  2. as3+java+mysql(mybatis) 数据自动工具(四)

    现在介绍一下只配置 as3 与 java 公用的数据类,这种配置一般是该数据类只需要在 as3 与 java 之间转换,跟数据库没有关系.比如在客户端与服务端的数据交换中,需要定义一个统一返回请求的数 ...

  3. as3+java+mysql(mybatis) 数据自动工具(七) - 完结

    autoscript packed 文件地址:http://pan.baidu.com/s/1dDvgcO5 如果需要项目源码的话,可以留下邮箱,先声明一下,该工具主要是为了实现自动同步输出代码类文件 ...

  4. as3+java+mysql(mybatis) 数据自动工具(三)

    介绍一下数据类配置,该数据类配置主要用于需要将数据库 mysql 数据转换成 java 对象,再转换为 as3 对象的数据类 配置文件为 xml 格式. <objects> <obj ...

  5. as3+java+mysql(mybatis) 数据自动工具(二)

    AutoScript 项目结构如下图 ---AutoScript.java 为程序入口 ---com.autoscript.object 同步 as3 和 java 的数据类 ---com.autos ...

  6. as3+java+mysql(mybatis) 数据自动工具(五)

    现在介绍常量的配置,主要用于客户端(as3)与服务端(java)之间的常量同步,比如错误码.请求标识等 配置格式: <macros name="Macros" groupSt ...

  7. java+Mysql大数据的一些优化技巧

    众所周知,java在处理数据量比较大的时候,加载到内存必然会导致内存溢出,而在一些数据处理中我们不得不去处理海量数据,在做数据处理中,我们常见的手段是分解,压缩,并行,临时文件等方法; 例如,我们要将 ...

  8. Java+MySql图片数据保存与读取的具体实例

    1.创建表: drop table if exists photo;CREATE TABLE photo (    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ...

  9. Java+MySql图片数据保存

    之前一直没有做过涉及到图片存储的应用,最近要做的东东涉及到了这个点,就做了一个小的例子算是对图片存储的初试吧! 1.创建表: drop table if exists photo; CREATE TA ...

随机推荐

  1. hibernate中session

    hibernate中的session是一级缓存,可以理解为进程级的缓存.在进程运行期间一直存在. session可以理解为一个可以操作数据库的对象 具体如何操作数据库? session中有方法, 如果 ...

  2. ./configure详解

    'configure'脚本有大量的命令行选项.对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的.带上'--help'选项执行'configure'脚本可以看到可用的所有选项.尽 ...

  3. 团体程序设计天梯赛-练习集L1-018. 大笨钟

    L1-018. 大笨钟 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜 ...

  4. Firefly 配置说明!

    原地址:http://www.9miao.com/question-15-43023.html 下图一一个典型的config.json的配置:<ignore_js_op> "db ...

  5. 常用的富文本框插件FreeTextBox、CuteEditor、CKEditor、FCKEditor、TinyMCE、KindEditor ;和CKEditor实例

    http://www.cnblogs.com/cxd4321/archive/2013/01/30/2883078.html 目前市面上用的比较多的富文本编辑器有: FreeTextBox 一个有很多 ...

  6. Source Insight的应用技巧、宏功能

    目录 1 简介... 5 2 搭建我们的SI环境... 5 2.1 搭建步骤... 5 2.2 说明... 6 3 应用技巧... 6 3.1 初级应用技巧... 6 3.1.1 解决字体不等宽与对齐 ...

  7. Java 的 Class Path 和 Package

    前言:   由于这两个问题新手问得较多, 且回答比较零散, 很难统一整理, 所以就直接写了一篇, 还请大家见谅. 正文:一, 类路径 (class path)   当你满怀着希望安装好了 java, ...

  8. Linux下Nginx+Tomcat整合的安装与配置

    因为nginx处理静态页面的速度很快,并且是免费的,它还可以配置负载均衡的服务器集群来搭建多个tomcat,所以nginx+tomcat是企业搭 建javaee项目很好的选择.nginx主要是通过反向 ...

  9. 单独下载的Qt library则一般不带SSL(包括QT FAQ)

    http://www.cnblogs.com/E7868A/archive/2012/11/15/2771501.html http://www.oldcai.com/archives/208 htt ...

  10. tortoisesvn › prefer local prefer repository

    tortoisesvn › prefer local prefer repository