扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 80|回复: 0

[转载发布] 如何增加变异的种类

[复制链接]
累计送礼:
0 个
累计收礼:
0 个
  • TA的每日心情
    开心
    2025-3-29 03:52
  • 签到天数: 127 天

    连续签到: 11 天

    [LV.7]常住居民III

    2348

    主题

    419

    回帖

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    6
    卡币
    11306
    OK点
    16
    推广点
    0
    同能卷
    0
    积分
    14101

    灌水之王

    发表于 2025-4-10 21:28:49 | 显示全部楼层 |阅读模式
    问下如何增加变异的种类,例如初级变异增加10%的能力,中级变异增加20%,高级变异增加30%
    初级变异出现几率10%,中级5%,高级1%



    class Game_Actor < Game_Battler
      attr_accessor :tan_pet_id       #宠物ID,为0则代表人物,否则为宠物
      attr_accessor :tan_pet_by       #变异标志
      attr_accessor :tan_pet_param    #宠物随机成长属性数组
      
      #--------------------------------------------------------------------------
      # ● 宠物初始化
      #--------------------------------------------------------------------------
      def init_pet
        @tan_pet_id = self.actor.note =~ //i ? $1.to_i : 0
        @tan_pet_by = false
        @tan_pet_by = true if rand(100) = r;arr.push v;else;arr.push nil;end}
        unless arr.compact.empty?
          arr.each {|a|
          if a;mii.push a - rand(a) - r
          else;mii.push b;end}
          x = mii.index mii.min
        else
          x = f.index f.max
        end
        return n[x]
      end
      
      #以下是方法重写#
      
      #--------------------------------------------------------------------------
      # ● 设置(人物、宠物初始化)
      #--------------------------------------------------------------------------
      alias tan_pet_setup setup
      def setup(actor_id)
        tan_pet_setup(actor_id)
        init_pet
        #@name = @name + actor_id.to_s if is_pet?#宠物名字后加ID方便区分
        init_skills
      end
      #--------------------------------------------------------------------------
      # ● 获取装备栏的数组(宠物只能装备饰品,可改)0代表武器1盾牌2头盔3铠甲4饰品
      #--------------------------------------------------------------------------
      #alias tan_pet_equip_slots equip_slots
      #def equip_slots
        #return [4] if is_pet?
        #tan_pet_equip_slots
      #end
      #--------------------------------------------------------------------------
      # ● 获取普通能力的基础值(宠物会有随机成长值的波动)
      # 人物的普通能力的基础值方法不变,宠物则=数据库设定+随机成长值
      #--------------------------------------------------------------------------
      alias tan_pet_param_base param_base
      def param_base(param_id)
        v = tan_pet_param_base(param_id)
        v = v + @tan_pet_param[param_id] * @level if is_pet?
        return v.to_i
      end
      #--------------------------------------------------------------------------
      # ● 重写初始化技能方法
      # 人物的技能初始化不变,宠物则为技能栏里随机选择一个作为天赋,其他技能作废
      #--------------------------------------------------------------------------
      alias tan_pet_init_skills init_skills
      def init_skills
        if is_pet?
          @skills = []
          tf_skill = self.class.learnings
          tf_skills = tf_skill.size
          learn_skill(tf_skill[rand(tf_skills)].skill_id) if tf_skills > 0
          learn_skill(tf_skill[rand(tf_skills)].skill_id) if tf_skills > 0
          learn_skill(tf_skill[rand(tf_skills)].skill_id) if tf_skills > 0
          learn_skill(tf_skill[rand(tf_skills)].skill_id) if tf_skills > 0
          learn_skill(tf_skill[rand(tf_skills)].skill_id) if tf_skills > 0
          learn_skill(tf_skill[rand(tf_skills)].skill_id) if tf_skills > 0
          learn_skill(tf_skill[rand(tf_skills)].skill_id) if tf_skills > 0
          learn_skill(tf_skill[rand(tf_skills)].skill_id) if tf_skills > 0
      else
          tan_pet_init_skills
        end
      end
      #--------------------------------------------------------------------------
      # ● 重写升级方法
      # 人物升级不变,宠物升级学会技能则从设定的数组里随机取一个技能
      #--------------------------------------------------------------------------
    # alias tan_pet_level_up level_up
    # def level_up
       # if is_pet?
         # @level += 1
          #if @level % Tan_pet_set::Tan_pet_skill == 0 && @level  0
          #end
       # else
         # tan_pet_level_up
        #end
        #self.hp = self.mhp
       # self.mp = self.mmp
      #end
    end
       



    =begin
    # 宠物系统,作者:66RPG的tan12345
    # 功能:随机生成宠物(也就是数据库里的人物)的成长值、初始技能、升级技能
    # 宠物只能装备饰品装备(如果不需要,请删除equip_slots方法,在宠物系统的90-94行)
    #
    # 使用方法:在数据库-人物-备注栏里填写代表宠物,i为宠物id
    # 在下面的Tan_pet_set里设定宠物的成长与升级时学会的技能
    # 建议:
    # 宠物所对应的职业,建议成长曲线为平线
    # (即数据库-职业-宠物职业-8个属性的成长不要在数据库设定,这样取成长值也方便)
    # 注意:
    # 1.技能随机算法修改了菜鸟飞啊飞的多项比例选一的脚本,
    #   原地址:http://bbs.66rpg.com/thread-224387-1-1.html
    # 2.如果宠物只能装备饰品装备,
    #   那么数据库设定里人物可以有初始化装备,宠物不可以初始化装备,否则报错。
    # 3.请保证一个宠物id对应一个角色,如果出现多个角色对应1个宠物id的情况,数据会混乱(主要是图鉴混乱)。
    =end
    module Tan_pet_set
      
      #变异几率
      Tan_pet_by = 10
      #变异的宠物比一般宠物成长属性的倍数
      Tan_pet_by_num = 1.1
      #代表宠物每3级就学会一次技能(领悟技能的成功率在Tan_pet_rand_skills定义)
      Tan_pet_skill=3
      #宠物升级到30级后就不会再领悟技能
      Tan_skillmax = 99
      
      Tan_pet_base_param = []
      Tan_pet_rand_param = []
      Tan_pet_rand_skills = []
      
      #id号宠物的基础成长值     HP, MP, atk, def, mat, mdf, agi, luk
      Tan_pet_base_param[1] = [20, 1, 0.5,  0.5,  0.5,  0.5,  0.8,  0.8]
      #id号宠物的成长浮动值     HP, MP, atk, def, mat, mdf, agi, luk
      Tan_pet_rand_param[1] = [20, 1, 0.5,  0.5,  0.5,  0.5,  0.8,  0.8]
      #id号宠物升级时一定几率学会的技能,格式:[技能id,权重]
      Tan_pet_rand_skills[1] = []
      
      Tan_pet_base_param[2] = [120, 1.1, 5,  5,  5,  5,  5,  5]
      Tan_pet_rand_param[2] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_skills[2] = []
      
      Tan_pet_base_param[3] = [120, 1.1, 5,  5,  5,  5,  5,  5]
      Tan_pet_rand_param[3] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_skills[3] = []
      
      Tan_pet_base_param[4] = [120, 1.1, 5,  5,  5,  5,  5,  5]
      Tan_pet_rand_param[4] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_skills[4] = []
      
      Tan_pet_base_param[5] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_param[5] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_skills[5] = []
      
      Tan_pet_base_param[6] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_param[6] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_skills[6] = []
      
      Tan_pet_base_param[7] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_param[7] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_skills[7] = []
      
      Tan_pet_base_param[8] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_param[8] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_skills[8] = []
      
      Tan_pet_base_param[9] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_param[9] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_skills[9] = []
      
      Tan_pet_base_param[10] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_param[10] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_skills[10] = []
      
      Tan_pet_base_param[11] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_param[11] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_skills[11] = []
      
      Tan_pet_base_param[12] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_param[12] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_skills[12] = []
      
      Tan_pet_base_param[13] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_param[13] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_skills[13] = []
      
      Tan_pet_base_param[14] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_param[14] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_skills[14] = []
      
      Tan_pet_base_param[15] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_param[15] = [0, 0, 0,  0,  0,  0,  0,  0]
      Tan_pet_rand_skills[15] = []
      
       Tan_pet_base_param[16] = [30, 1.1, 1,  1,  1,  1,  1,  1]
      Tan_pet_rand_param[16] =  [30, 1.1, 1,  1,  1,  1,  1,  1]
      Tan_pet_rand_skills[16] = []
      
      Tan_pet_base_param[17] = [30, 1.1, 1,  1,  1,  1,  1,  1]
      Tan_pet_rand_param[17] = [30, 1.1, 1,  1,  1,  1,  1,  1]
      Tan_pet_rand_skills[17] = []
      
      Tan_pet_base_param[18] = [30, 1.1, 1,  1,  1,  1,  1,  1]
      Tan_pet_rand_param[18] = [30, 1.1, 1,  1,  1,  1,  1,  1]
      Tan_pet_rand_skills[18] = []
      
      Tan_pet_base_param[19] = [30, 1.1, 2.5,  2,  1,  1.5,  2,  2]
      Tan_pet_rand_param[19] = [30, 1.1, 2.5,  2,  1,  1.5,  2,  2]
      Tan_pet_rand_skills[19] = []
      
    end






                本帖来自P1论坛作者fjm,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=497189  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2025-4-18 15:30 , Processed in 0.136025 second(s), 53 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表