最近出现问题

1.更新服务器,下载服务器文件,然后复制到所需目录。一直出现内存不足节点挂掉的现象,当改成一个随机的时间后在gm节点所在机器仍然会有内存不足,gm会同时下载多个服务器程序,消耗内存严重是正常的,但是以前也是这样做并未出现问题,后来发现自己erlang实现的文件删除拷贝操作消耗内存,之前调用系统mv命令,剪切过去,现在是复制过去,同是删除,erlang的递归删除和系统rm性能也有很大差异,所以都改成系统调用os:cmd(),使用剪切mv,不使用复制cp

2.前段时间游戏中玩家在一个地图活动结束后,进入安全区域,有些玩家身上状态未改变,仍然可以杀人,看了程序原来,玩家自身状态改变是收到公共进程消息才去做一些处理,在公共进程压力大,服务器比较卡的情况,有些role进程收不到消息,role的状态未改变,出现了问题,解决方案就是在role进程地图切换的时候改变状态。关于进程通信,erlang的进程通信非常简单使用!就可以完成 Pid !Message,游戏

3.玩家切换地图传送至不可行走区域,比如玩家从地图A{50,50}坐标传送至地图B的{150,150}坐标,而B的{50,50}坐标是不可行走区域,玩家在A发送了一个role_map_change{map_id=BId}的消息后切换地图,玩家出现在B地图的传送点{150,150},但有时候服务端收到的消息不靠谱,可能是玩家发送了role_map_change消息后发送了一A地图的role_move消息,move的起点是{50,50},可能是玩家先发送了role_move消息,然后role_map_change消息发送,但是服务端切换地图完成后收到了role_move消息,move的起点是{50,50},此时玩家已经在B地图了,然后玩家从B的{50,,50}去移动,玩家切换到{50,50}然后发现周围都不可行走,就卡那了,解决办法是服务端加地图校验,判断客户端发送来的移动点是不是合法,路径上每一个点是不是合法


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值