英雄远征Erlang源码分析(11)-物品相关操作解析

本文分析了Erlang在游戏开发中的应用,重点讲解了物品管理进程如何结合ETS缓存表来处理玩家物品。mod_goods.erl负责创建进程并处理消息,lib_goods.erl处理物品发放、删除和属性修改,goods_util.erl初始化物品数据,而lib_make.erl则涉及物品的品质升级等计算。物品初始化分为服务器启动和玩家登录两步。物品管理进程中包含套装位置和各种操作,如属性强化、背包管理及掉落系统。
摘要由CSDN通过智能技术生成

游戏中,玩家物品的管理是通过每个玩家独有的物品管理进程,结合ETS缓存表实现的。

物品相关模块有mod_goods.erl,lib_goods.erl,goods_util.erl和lib_make.erl

mod_goods.erl:物品管理进程模块,负责创建进程,进程内接收消息并调用相关操作。
lib_goods.erl:负责物品的发放和删除,物品属性修改,背包内物品更改(物品堆叠处理),掉落管理,
goods_util.erl:负责服务器启动时和用户登录时物品数据的初始化;通过指定id或者属性获取对应的物品
lib_make.erl:负责物品品质升级,强化,打洞,镶嵌,洗练的计算

游戏中的物品主要分为两种:物品原型(type_goods)和玩家所属物品(goods)。当玩家获得物品的时候,需要根据物品原型生成相应的玩家所属物品,将一些未确定的物品属性确定下来,将其和玩家id进行关联,并将物品id记录到玩家背包中。

物品的初始化分为两个步骤:
1.服务器启动时的初始化:在mod_kenel.erl中调用init_goods(),将数据库中的物品原型数据和物品属性加载进ETS缓存。
2.玩家登录时的初始化:玩家登录时调用mod_goods:start(PlayerId,CellNum,Equip)创建物品管理进程,并返回Pid,保存在#player_status.goods_pid中。

物品管理进程初始化方法:

init([PlayerId,CellNum,
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值