这篇来写一些常量定义的实例。我一般在配置常量的时候,都会让 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. js解决checkbox全选和反选的问题

    function SelectAll() { var checkboxs=document.getElementsByName("chk_list"); for (var i=0; ...

  2. Unity3D的几种坐标系

    原地址:http://www.cnblogs.com/martianzone/p/3371789.html http://www.cnblogs.com/88999660/archive/2013/0 ...

  3. jquery 请求jsp传递json数据的方法

    $(function() { $("a[name=hrefID]").click(function() { var id = $(this).attr("id" ...

  4. dll的概念 dll导出变量 函数 类

    1. DLL的概念 DLL(Dynamic Linkable Library),动态链接库,可以向程序提供一些函数.变量或类.这些可以直接拿来使用. 静态链接库与动态链接库的区别:   (1)静态链接 ...

  5. [数论]ZOJ3593 One Person Game

    题意:一个人要从A走到B  只能走a布.b步.(a+b)步,可以往左或右走   问 最少要走几步,不能走到的输出-1 可以列出方程 $ax+by=A-B$ 或者 $ax+(a+b)y=A-B$ 或者 ...

  6. uEditor独立图片上传

    项目中.上传图片,非常希望有一款比较兼容的查件. 网上找了一些,图片上传立刻显示的js代码,还有uploadify.都会碰到这样那样的不兼容和其它头疼的问题. 后来想,干脆就用php的上传类最干脆.但 ...

  7. CentOS笔记——配置DNS服务器

    前话 咳咳,这次Linux系统的DNS服务器搭建我不得不记下来.,这错误真的太蛋疼了,我整整弄了两天才解决问题(抱歉我很蠢). 也许有人会和我犯同样的错误,给大家分享一下经验. 首先总结一下知识点: ...

  8. VS下遇到未能加载文件或程序集 错误

    这个的错误原因可能是在64的系统上编译32位的应用程序,遇到这个错误,可以通过下面的手段解决! 1.关闭Visual Studio. 2. 在Visual Studio Tools子目录,以管理员身份 ...

  9. java网络基本类使用(一)

    1.怎么获取ip相关信息 import java.net.InetAddress; import java.net.NetworkInterface; import java.util.Enumera ...

  10. WinAPI—— CallNextHookEx调用下一个钩子

    CallNextHookEx(   hhk: HHOOK;    {当前钩子的句柄}   nCode: Integer; {钩子代码; 就是给下一个钩子要交待的}   wParam: WPARAM; ...