zoukankan      html  css  js  c++  java
  • 道具时效性问题

    1 背景

          道具时效性性问题在游戏世界中很普遍。他的用处场合主要集中在“时装”等一系列需要进行数量控制的道具上面。他们的功能一般也是比较特殊的。对于时效性的道具都是在产生该道具的时候便计算出该道具的消亡时间。然后通过一些类似于心跳的东西来控制其生命周期,在该销毁的时间点上对其进行销毁操作。

    2 解决方案

    1. 在每个玩家身上绑定一个时效性道具的索引列表。由该索引列表来维护本玩家身上的所有时效性道具。
    2. 在物品被创建时就要生成出该物品所有的创建时间和结束时间。并在玩家与外界进行物品交互时,同时来维护索引列表

    3遇到的问题

    1. 怎样来维护该索引列表?

            首先加入索引的地方:第一, 在玩家切换场景或进入游戏时,遍历玩家身上的物品。如果发现是时效性道具就加入到时效性索引列表中去;第二,在玩家拾取到物品时,修改时效性索引;第三,任务获得时;第四,玩家之间的交易,记得要在另一个玩家身上抛出时效性道具。第五,从npc处获得物品。第六,礼包活动。。。。(所有有可能然物品出现在你包裹中的情况都是需要考虑的。这时一个让物品进入你包裹的门面接口将非常重要,你只需在该门面中去修改一下代码即可。否则,悲剧。。)

           其次删除索引的地方:同上,提供一个销毁物品时的门面。在该门面中去销毁物品。同时来维护索引。

           正式基于上面的设计,时效性道具的索引就不用持久化了。都是在玩家登陆游戏时动态生成的。保证了时效性索引的正确性。

    2. 结束时间的维护?

      在物品创建时,就根据其时效性长短来动态生成时效性物品创建时间和销毁时间.游戏中会有个心跳系统,通过心跳来控制.当跳动到玩家身上时,去遍历所有的时效性物品的心跳,如果达到时效性就销毁,否则继续.淡然在物品的心跳可以进行调解,延长验证时间来提高效率.

  • 相关阅读:
    安装MYSQL8.0提示api-ms-win-crt-runtime-l1-1-0.dll 丢失
    【.net】未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法
    Windows 2008 R2 配置 DNS 实现二级域名
    如何修改windows Server 2012 远程桌面连接默认端口
    System x 服务器制作ServerGuide U盘安装Windows Server 2012 R2操作系统
    MYSQL安装后自带用户的作用
    mysql 查看数据库、表的基本命令
    嵌入式必知基础算法
    嵌入式学习网站集合
    C避坑指南
  • 原文地址:https://www.cnblogs.com/xitang/p/1830045.html
Copyright © 2011-2022 走看看