游戏服务器
sandyznb
这个作者很懒,什么都没留下…
展开
-
游戏中奖励配置问题
游戏中各种奖励比如金币 钻石 道具 体力等等都是策划配置在配置文件中的,程序不用关心具体配置的是什么内容,只要给策划指定好正确的配置格式就好,程序要做到的就是 奖励字符串的合并、翻N倍等等,这里边往往涉及到字符串的合并,现给出一种解决方案。class Item(object): def __init__(self,strs): its = strs.split("|") self.itemid = "|".join(its[:-1]...原创 2022-02-25 18:03:00 · 2921 阅读 · 0 评论 -
python 技能系统
游戏里边肯定少不了技能系统,技能系统做的好后边会省下很多事情,不然会被策划折磨死。。。sikll_file = { '降龙十八掌': ['DamageEffect(100)','DizzinessEffect(3)', 'LowerDeffence(30,3)'], '六脉神剑': ['DamageEffect(90)', 'Knockback(3)', 'LowerSpeed(30, 2)'], '北冥神功': ['Da.原创 2022-02-10 18:28:48 · 2445 阅读 · 0 评论 -
Twisted框架中reactor事件分析
1:import导入reactor调用run 和stopfrom twisted.internet import reactorreactor.run()reactor.stop()2:import 导入reactor的时候 会删除modules里边已经存在的reactor#twisted\internet\reactor.pyfrom __future__ import division, absolute_importimport sysdel sys.modules[...原创 2021-11-24 13:52:15 · 1348 阅读 · 1 评论 -
网络模型 reactor
raector.py#coding:utf-8'''create on 2017-04-20@author: sandy'''import event_demultiplexerclass Reactor(object): def __init__(self): self.runing = True self.demultiplexer = event_demultiplexer.EpollDemultiplexer() def r原创 2021-11-23 20:29:49 · 197 阅读 · 0 评论 -
资源管理服务器
一:拉取所能管理的配置文件1:登陆client 通过http 发送用户名和密码来登陆服务器登陆成功,回传给当前账户所能管理的所有权限(就是把文件夹的名字发给他)2:追个拉取文件夹的内容client通过http 发送文件夹的名字服务器把当前文件夹下的所有文件名 和 md5 发送给客户端以下是客户端登陆后,步骤1返回的拥有权限的文件夹,和步骤2 获取clientconfig文件夹下有哪些些文件。。。3:拉取文件夹下的文件以下是客户端逐个下载...原创 2021-07-01 18:46:11 · 118 阅读 · 0 评论 -
数据结构---跳跃表
跳表是一个随机化的数据结构,实质是一种可以进行二分查找的有序链表。跳表在原有的有序链表上增加了多级索引,通过索引来实现快速查询。跳表不仅能提高搜索性能,同时也可以提高插入和删除操作的性能。...原创 2021-06-16 17:54:36 · 123 阅读 · 0 评论 -
A*寻路算法
1:公式 F = G + H2:实现步骤a:检查起始点、终点是否合法(是否在地图范围内)b:获取起始点、终点原创 2021-06-15 21:41:45 · 74 阅读 · 0 评论 -
ARPG游戏角色行为分析
场景中的角色 大体上分为2种:玩家自己、别的其他的(别的玩家、怪物、NPC等)对于玩家自己而言,别的物体他们所有的数据和行为都是服务器gao'zh原创 2021-06-04 19:20:58 · 466 阅读 · 0 评论 -
AOI 十字链路 (半径不同)
import mathclass CEntity(object): def __init__(self,cid,x,y,xradius,yradius): self.cid = cid self.x = x self.y = y self.xradius = xradius self.yradius = yradius self.xpre = None self.xnext = ..原创 2021-06-02 11:19:12 · 186 阅读 · 0 评论 -
AOI 十字链表法(半径相同)
AOI主要有九宫格、灯塔和十字链表的算法实现。本文阐述十字链表的实现目前就考虑的是二维坐标,若是二维地图,将地图内的对象按照坐标值,从小到大分在x轴和y轴两个链表上。如果是三维地图,则还需要维护多一个z轴的链表...原创 2021-06-01 16:50:07 · 604 阅读 · 0 评论 -
ARPG游戏记录
技能系统角色可以升级、切换不同的技能战斗武器系统角色可以切换、升级不同的武器进行战斗英雄系统角色可以带上不同的英雄战斗原创 2021-06-15 21:21:19 · 64 阅读 · 0 评论 -
游戏任务系统
from collections import OrderedDictimport loggingclass EventObserver(object): def __init__(self): self._listeners = {} pass def addEventListener(self,eventname,taskid,listener): if not self._listeners.has_key(eventnam..原创 2021-05-31 11:33:36 · 272 阅读 · 1 评论 -
ARPG游戏 记录
1:登录业务系统 登录注册 角色创建账号密码正确 才到角色创建这一步1 注册完之后---->角色创建2 账号密码输入之后 如果角色没有创建--->创建角色3 角色名字在client 随机or输入 初步校验合法性 server校验网络库 PESocket玩家属性level #等级exp #经验power #体力coin #金币diamond #钻石crystal #...原创 2021-05-31 10:08:10 · 117 阅读 · 1 评论 -
排查一次CPU100%的情况
1:查找cpu 使用情况 top -c2:查看具体进程的 线程使用cpu情况 top -Hp 188843:watch pstack 18890 或者 pstack 18890 > a.txt由于ubuntu 中的pstack 命令有问题 网上找了代码 另存为 mypstack 1 #!/bin/sh 2 3 if test $# -ne 1; then 4 echo "Usage: `basename $0 .sh` <pro...原创 2021-05-24 17:06:28 · 885 阅读 · 0 评论 -
一个分布式ID的生成器-雪花算法
#coding:utf-8'''create on 2020-11-23@author:sandy'''import timeclass SnowFlake(object): def __init__(self,datacenterId,machineId): self.sequence = 0 self.laststmp = -1 self.sequence_bit = 12 self.mac..原创 2020-11-23 17:35:41 · 88 阅读 · 0 评论 -
游戏服务器---邮件系统
1:个人邮件一个邮件表(msg)一个附件表(msg_attachment)邮件中got字段表示客户端有没有拉取这封邮件。。附件中got字段表示 当前奖励有没有被领取。。。用户个人信息表中 用一个字段mail_receiveidx记录客户端已经拉取的最后一封邮件的id客户端登陆后,定时请求邮件,把mail_receiveidx发送给客户端,客户端来拉取邮件时,把mail_receiveidx发送给服务器,由于第一次请求邮件信息时,服务器缓存中并没有当前uid的邮件信息,服务器去原创 2021-05-08 14:43:40 · 8876 阅读 · 0 评论 -
一次ios内购 IAP问题
昨天游戏玩家反映 支付2笔订单后 没有收到东西,查询了服务器发现了问题。。。玩家2笔充值记录 相差10s钟后台下单数据客户端 把订单id和iap支付票据 搞叉了。。。。app每次到应用服务器下完单之后,应用服务器给app的订单号 app只保存在内存中 而且是覆盖保存,所以会出现先付款的票据 + 后下单的orderid,解决方案其实也很简单,app把订单id 做队列记录。。。。...原创 2021-04-17 15:29:01 · 213 阅读 · 0 评论 -
游戏中的周排行榜
最近快年底了,发现游戏当中的一个逻辑bug。。周排行榜发奖的问题def getCurWeek(self): return int(time.strftime("%W"))def getLastWeek(self): t = int(time.time()) - 7 * 86400 tmObject = time.localtime(t) lastweek = time.strftime("%W",tmObject) return int(lastweek)原创 2020-12-22 15:38:00 · 148 阅读 · 0 评论