游戏强化系统的实现

本文介绍了游戏中的强化系统,包括强化规则、强化结果、数据库设计以及程序设计流程。强化规则涉及装备等级、银币消耗、概率等。数据库设计包含了装备表、强化配置表等,确保装备强化后的属性变化能准确存储。程序设计采用面向对象思想,强化流程包括概率计算、属性修改和记录更新等。强化系统在实现时需要注意bug和冗余信息的更新管理。
摘要由CSDN通过智能技术生成

1 强化概述

   在游戏中,强化模块是我们经常需要实现的模块,一般来说,强化可以提供装备的等级,属性,或者品质。强化也需要一定的条件,比如银币等。


2  强化规则

        初始装备的等级为1级

        每强化一次,装备的等级提高一次

        装备被强化的最高等级为10级

       每次强化需要银币,且随着等级的不断升高,所需要的银币数量就增加

       越高档次的装备,强化相同等级,需要的银币的数量越多

       强化概率随着等级的升高而减少

       不同档次的装备强化到相同等级时,概率相同

      加入宝石,可以增加强化的概率

      使用保护道具,强化失败后,也不损坏装备


3 强化结果

   每次强化等级提升一次,同时,属性也有所增加,并且具有一定的概率

   强化失败,装备摔坏

   随着属性值的增加(所有增加的属性值的总和),装备的品质会发生改变。


4 强化的数据库设计

   在游戏中,我们可以获取到2件相同的装备(备注:有的游戏不允许获取到两件一模一样的装备),如果我们有2件相同的装备,在数据库里面的存储就会有两种方式:堆叠和不堆叠。我们该如何选择存储方式呢?在我们的游戏中,因为装备涉及到强化,也就是说,起初,我获取到2件一模一样的装备 即装备的ID相同,如果我强化成功其中的一个,那么导致的结果是,我有了2件"不一样"的装备,虽然装备的ID是一样,但是它们的属性可能不一样。这样的设定就要求我们在存储这2件装备时,不能堆叠,否则,我就不知道,我到底强化的是哪一个装备。


 强化系统中,设计的表: 我的装备表,装备配置表,强化配置表,宝石配置表,我的宝石表。


  我的装备表设计:

   这是我的一个装备的表的设计

   

   

   备注: 我们的装备的类型可能不止一种,在我们命名装备的ID时,我们采用的方式是 装备的类型+装备的id   如:333001    333为装备的类型   001为装备的id

    在这个表中,我们需要注意的是,equipped_by_usid 表中这个装备是否装配到我的某个船上,如果是0表示没有使用,如果不为零,则表示为我的船的id.在需求上,我们可能需要知道这个装备装配到了哪个船上,还有一个需求是,我需要知道我的船装配了那几个装备,所以,需要通过船的id找到他装配了哪些装备

   cannon_num, armor_num, hp  这些属性是如果把这个装备装配到船上,改变船的对应的属性。


   装备静态配置表:

   

   在装备的配置表中,hp表示是这个装备装配到船上后,增加船的耐久度,还有一些改变船增益的属性,我没有列出来。 

   装备强化后,可能修改的属性有:hp,rank , inclination, sell_price 等。


   强化的配置表:


  这个表中,forged_level 表示的是强化到某个等级   cost_price 表示,强化到这个等级需要的银币  success_odds 表示强化到这个等级的概率

  cannon_num_incr_config   这个属性的值是0:3250;1:4500;2:2250这样的类型  表示,强化后,增加0的概率是3250/10000  增加1的概率是4500/10000。


  程序设计

  在装备系统中,我们采用面向对象的面向思想设计,这是一个强化炉的对象,需要的属性操作强化的人,本次要强化的装备对象,是否使用保护道具,强化放入的宝石,本次强化的配置信息,强化后,更属性的增量, 强化后的结果清单等。

  在强化炉里面,我们需要知道本次强化成功的概率,强化成功后属性增加的范围。执行强化操作后,增加装备的各个属性,增加强化记录等各种操作。


  强化流程

     强化前,我们需要知道被强化的装备对象,操作者的对象,本次强化成功的概率,强化成功装备属性增加的范围,是否使用了宝石等各种信息。

    选择一个被强化的装备后,我们需要得到强化这个装备的各种信息。  这些操作是控制层Controller的函数

    public function beforefoundryAction()
    {
        // 准备强化的船首像 userFhId
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值