这里讲的是Firefly《暗黑世界》碎片合成的流程部分的代码,这个主要是消息解析的部分,好吧上代码,代码路径app/game/gatenodeapp/compound.py。

  1. #coding:utf8

  2. '''

  3. Created on 2013-3-21

  4. 物品合成

  5. @author: lan (www.9miao.com)

  6. '''

  7. from app.game.gatenodeservice import remoteserviceHandle

  8. import json

  9. #导入功能逻辑处理模块

  10. from app.game.appinterface import compound

  11. @remoteserviceHandle#将处理方法,添加到service中,供gateserver进程调用。

  12. def GetCompoundPackage_2109(dynamicId,request_proto):

  13. '''获取合成包裹的信息

  14. '''

  15. #解析json字符串

  16. argument = json.loads(request_proto)

  17. #获取角色的ID

  18. characterId = argument.get('characterId')

  19. #获取合成包裹的信息

  20. response = compound.GetCompoundPackage_2109(dynamicId, characterId)

  21. #将信息序列化,生成json字符串,返回给客户端

  22. return json.dumps(response)

  23. @remoteserviceHandle#将处理方法,添加到service中,供gateserver进程调用。

  24. def GetOneItemInfo_211(dynamicId,request_proto):

  25. '''获取单个物品的信息

  26. '''

  27. #解析json字符串

  28. argument = json.loads(request_proto)

  29. #获取角色的ID

  30. characterId = argument.get('characterId')
  31. #获取物品的实例id
  32. itemid = argument.get('itemid')
  33. #获取物品的信息
  34. response = compound.GetOneItemInfo(dynamicId, characterId,itemid)
  35. #将信息序列化,生成json字符串,返回给客户端
  36. return json.dumps(response)
  37. @remoteserviceHandle#将处理方法,添加到service中,供gateserver进程调用。
  38. def GetCompoundItem_205(dynamicId,request_proto):
  39. """获取当前碎片能合成的物品的信息
  40. """
  41. #解析json字符串
  42. argument = json.loads(request_proto)
  43. #获取角色的ID
  44. characterId = argument.get('characterId')
  45. #获取将要合成的物品的模型id
  46. tempid = argument.get('tempid')
  47. #获取当前碎片能合成的物品的信息
  48. response = compound.GetCompoundItem(dynamicId, characterId, tempid)
  49. #将信息序列化,生成json字符串,返回给客户端
  50. return json.dumps(response)
  51. @remoteserviceHandle#将处理方法,添加到service中,供gateserver进程调用。
  52. def CompoundItem_2116(dynamicId,request_proto):
  53. '''合成物品
  54. '''
  55. #解析json字符串
  56. argument = json.loads(request_proto)
  57. #获取角色的ID
  58. characterId = argument.get('characterId')
  59. #获取将要合成的物品的模型id
  60. tempid = argument.get('tempid')
  61. #进行物品合成并返回合成后的结果
  62. response = compound.CompoundItem(dynamicId, charac这terId, tempid)
  63. #将信息序列化,生成json字符串,返回给客户端
  64. return json.dumps(response)

复制代码

里并没有做实际的逻辑处理,只是做了解析客户端发过来的参数,当要替换通信消息格式时,不会影响逻辑处理部分的代码。消息会通过netserver传递到gateserver,由gateserver分发给指定的gameserver,gameserver通过对于的指令号进入到对应的处理方法中处理。

转载于:https://www.cnblogs.com/9miaoshetuan/p/3851270.html

Firefly《暗黑世界》碎片合成部分代码相关推荐

  1. 在MAC下调试运行暗黑世界客户端及部分代码注解(基于Firefly)

    目前有两个客户端,一个基于cocos2d-x.一个基于unity3d,这两个客户端的调试运行官网也有相关教程,我这是基于我自己的mac环境调试运行的. 一.先是基于coco2d-x的客户端 1.最快的 ...

  2. 在MAC下调试运行暗黑世界客户端及部分代码注解

    一.先是基于coco2d-x的客户端 1.最快的方式是,先在mac安装xcode,我这用xcode4.6,然后下载cocos2d-x安装包,我这用2.1.5,直接解压到documents得到cocos ...

  3. 开源手游暗黑世界客户端部分代码注解续

    开源手游,暗黑世界客户端基于Cocos2d-x 2.1.4,详情:http://www.9miao.com/thread-42811-1-1.html 接上篇博客:http://blog.csdn.n ...

  4. 暗黑世界1.4客户端+1.6服务器在Mac系统下的搭建步骤

    环境: 系统:Mac 10.9 开发工具:Xcode 5.0.1 客户端游戏引擎:cocos2d-x 2.1.4 服务端框架:firefly 1.2.2 python版本:2.7 客户端搭建步骤: 1 ...

  5. [官方教程] 暗黑世界 客户端 配置文档

    原地址:http://blog.csdn.net/uxqclm/article/details/11970565 欢迎来到9秒:www.9miao.com 暗黑世界----客户端文档 iOS: 1.配 ...

  6. windows 下 暗黑世界 服务器端 的 搭建

    为了测试<暗黑世界>客户端,所以搭建<暗黑世界>服务器端,特此记录共享! 这个框架基于python编写,第三方库依赖:twisted, python-memcached,DBU ...

  7. 暗黑世界 网络游戏从0开始搭建

    下面介绍从0开始如何搭建暗黑世界游戏的全过程,希望帮到有需要的人. 搭建的过程会有遇到很多问题,我也在文档中把遇到的问题给出了解决方式 ,希望我的分享能让你进步,有不足的地方,希望指正我,我也是一个初 ...

  8. 我的世界药水合成表图Java_我的世界药水合成表图高清配方-我的世界药水合成表图一览...

    我的世界药水合成表图高清配方有哪些?今天的这篇攻略和大家聊一聊关于我的世界药水合成表图一览,希望能够帮助到有需要的朋友. 我的世界药水合成表图高清配方-我的世界药水合成表图一览 1.粗制的药水(作用最 ...

  9. 我的世界服务器自定义代码,《我的世界》服务器指令代码秘籍大全

    <我的世界>服务器指令代码秘籍大全 2017-05-11 来源:Ali213 作者:佚名 tele 传送 time [set|get|day|night [minute|hour|day ...

  10. 我的世界服务器如何修改天气,我的世界怎么改变天气 我的世界改变天气指令代码大全...

    我的世界怎么改变天气?很多玩家都知道我的世界可以认为的修改天气,但是大家都记不清我的世界修改天气的代码是什么,下面小编就为各位玩家带来:我的世界改变天气指令代码大全,一起来看看吧~ 我的世界怎么改变天 ...

最新文章

  1. python装饰设备_python装饰器
  2. Java黑皮书课后题第5章:*5.20(打印2到1000之间的素数)修改程序清单5-15,打印2到1000之间(包括2和1000)的所有素数。每1行显示8个素数,数字之间用一个空格字符隔开
  3. 2017CCPC 杭州 J. Master of GCD【差分标记/线段树/GCD】
  4. JavaScript三种弹出框(alert,confirm和prompt)用法举例
  5. VBScript基础教程之一什么是 VBScript
  6. mysql中的sql
  7. 清科2017医美行业研究报告:消费者搅动产业变局
  8. Tomcat安装与卸载
  9. Activemq 下载地址
  10. java横向导出excel_java 生成导出Excel文件
  11. js加mysql写邮箱找回密码_邮箱找回密码 · woyong/docs Wiki · GitHub
  12. 《Cinema 4D + After Effects动态图形设计案例解析》——1.3 动态图形的应用领域
  13. LeetCode:14. Longest Commen Prefix(Easy)
  14. Centos8安装显卡驱动以及Cuda
  15. 【蓝桥杯基础题】2021年省赛填空题—卡片
  16. Hi3559AV100芯片内部温度检测
  17. 复旦MBA项目(非全日制)
  18. Linux介绍和命令
  19. 基于Linux系统的TCP协议的即时通信系统
  20. 大学公开课网站视频课程转码加密方案

热门文章

  1. 静息态fMRI方法在脑动力学表征上的比较
  2. 创建UE4源码依赖项时多线程加快下载内容
  3. 某司岗位工资标准和综合收入之一
  4. 纳税服务系统【用户模块之用户唯一性校验】
  5. Nginx启动报错:nginx: [emerg] bind() to 0.0.0.0:8090 failed (13: Permission denied)
  6. javascript判断各种浏览器并识别IE版本
  7. 使用yolov8训练数据集及使用中遇到的问题
  8. [ERROR] [1656317519.169006218, 0.161000000]: No p gain specified for pid.Namespace: /arm/gazebo_ros_
  9. 前端学习—— JS基础
  10. cartographer(5)雷达数据订阅