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

[转载发布] ISA - 角色变化敌人 - Actor Change Enemy - for XP

[复制链接]
累计送礼:
0 个
累计收礼:
0 个
  • TA的每日心情
    开心
    昨天 18:01
  • 签到天数: 114 天

    连续签到: 4 天

    [LV.6]常住居民II

    2338

    主题

    403

    回帖

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    6
    卡币
    10632
    OK点
    16
    推广点
    0
    同能卷
    0
    积分
    13401

    灌水之王

    发表于 2024-4-19 19:29:19 | 显示全部楼层 |阅读模式
    [Ruby] 纯文本查看 复制代码
    [mw_shl_code=ruby,true]
    # 
     此脚本归66RPG - Idiot Script Association(ISA)所有,谢绝任何形式转载。
    #______________________________________________________________________________
     
    #==============================================================================
    # ■ 角色变化敌人 - Actor Change Enemy - for XP
    #------------------------------------------------------------------------------
    #   遵守协议:66RPG - Idiot Script Association(ISA)
    #   当前版本:1.0.0.0
    #------------------------------------------------------------------------------
    #   更新日记:忧雪の伤(2011.4.3)
    #             - 初始化
    #==============================================================================
     
    #--------------------------------------------------------------------------
    # ● 资料记录
    #--------------------------------------------------------------------------
     
    module ISA
       Use["角色变化敌人"] = [true, "1.0.0.0"]
       System["角色变化敌人"] = {}
    end
     
    #--------------------------------------------------------------------------
    # ● 设定部分
    #--------------------------------------------------------------------------
     
    module ISA
      System["角色变化敌人"]["等级显示"] = true
      System["角色变化敌人"]["名称改变"] = true
      System["角色变化敌人"]["图形改变"] = true
    end
     
    #==============================================================================
    # ■ RPG
    #------------------------------------------------------------------------------
    #  集合了 RPGXP 数据结构等的模块。
    #==============================================================================
     
    module RPG
      #--------------------------------------------------------------------------
      # ● 敌人的数据类。
      #--------------------------------------------------------------------------  
      class Enemy
        def name
          return @name.split(/change/)[0]
        end
        def change_id
          return @name.split(/change/)[1].to_i
        end
      end
    end
     
    #==============================================================================
    # ■ Game_Enemy
    #------------------------------------------------------------------------------
    #  处理敌人的类。本类在 Game_Troop 类 ($game_troop) 的
    # 内部使用。
    #==============================================================================
     
    class Game_Enemy < Game_Battler
      include ISA
      #--------------------------------------------------------------------------
      # ● 定义实例变量
      #--------------------------------------------------------------------------
      attr_reader :level 
      attr_reader :change_id
      #--------------------------------------------------------------------------
      # ● 初始化对像
      #     troop_id     : 循环 ID
      #     member_index : 循环成员的索引
      #--------------------------------------------------------------------------
      alias :actor_change_enemy_initialize :initialize unless method_defined? :actor_change_enemy_initialize
      def initialize(troop_id, member_index)
        enemy_id = $data_troops[troop_id].members[member_index].enemy_id
        @change_id = $data_enemies[enemy_id].change_id
        level_list = 0
        $game_party.actors.each do |actor|
          level_list += actor.level
        end
        @level = level_list / $game_party.actors.size + rand(2) - rand(2)
        @level = 99 if @level > 99
        actor_change_enemy_initialize(troop_id, member_index)
      end
      #--------------------------------------------------------------------------
      # ● 获取战斗者 文件名
      #--------------------------------------------------------------------------
      def battler_name
        case System["角色变化敌人"]["图形改变"]
        when true
          return (@change_id != 0 ? $data_actors[@change_id].battler_name : @battler_name)
        when false
          return @battler_name
        end
      end
      #--------------------------------------------------------------------------
      # ● 获取名称
      #--------------------------------------------------------------------------
      alias :actor_change_enemy_name :name unless method_defined? :actor_change_enemy_name
      def name
        level = System["角色变化敌人"]["等级显示"] ? " Lv" + @level.to_s : ""
        case System["角色变化敌人"]["名称改变"]
        when true
          return (@change_id != 0 ? $data_actors[@change_id].name : actor_change_enemy_name) + level
        else
          return actor_change_enemy_name + level
        end
      end
      #--------------------------------------------------------------------------
      # ● 获取基本 MaxHP
      #--------------------------------------------------------------------------
      alias :actor_change_enemy_base_maxhp :base_maxhp unless method_defined? :actor_change_enemy_base_maxhp
      def base_maxhp
        if @change_id != 0
          n = change_parameters(@change_id, 0, @level)
        else
          n = (actor_change_enemy_base_maxhp * wave).to_i
        end
        return n
      end
      #--------------------------------------------------------------------------
      # ● 获取基本 MaxSP
      #--------------------------------------------------------------------------
      alias :actor_change_enemy_base_maxsp :base_maxsp unless method_defined? :actor_change_enemy_base_maxsp
      def base_maxsp
        if @change_id != 0
          n = change_parameters(@change_id, 1, @level)
        else
          n = (actor_change_enemy_base_maxsp * wave).to_i
        end
        return n
      end
      #--------------------------------------------------------------------------
      # ● 获取基本力量
      #--------------------------------------------------------------------------
      alias :actor_change_enemy_base_str :base_str unless method_defined? :actor_change_enemy_base_str
      def base_str
        if @change_id != 0
          n = change_parameters(@change_id, 2, @level)
        else
          n = (actor_change_enemy_base_str * wave).to_i
        end
        return n
      end
      #--------------------------------------------------------------------------
      # ● 获取基本灵巧
      #--------------------------------------------------------------------------
      alias :actor_change_enemy_base_dex :base_dex unless method_defined? :actor_change_enemy_base_dex
      def base_dex
        if @change_id != 0
          n = change_parameters(@change_id, 3, @level)
        else
          n = (actor_change_enemy_base_dex * wave).to_i
        end
        return n
      end
      #--------------------------------------------------------------------------
      # ● 获取基本速度
      #--------------------------------------------------------------------------
      alias :actor_change_enemy_base_agi :base_agi unless method_defined? :actor_change_enemy_base_agi
      def base_agi
        if @change_id != 0
          n = change_parameters(@change_id, 4, @level)
        else
          n = (actor_change_enemy_base_agi * wave).to_i
        end
        return n
      end
      #--------------------------------------------------------------------------
      # ● 获取基本魔力
      #--------------------------------------------------------------------------
      alias :actor_change_enemy_base_int :base_int unless method_defined? :actor_change_enemy_base_int
      def base_int
        if @change_id != 0
          n = change_parameters(@change_id, 5, @level)
        else
          n = (actor_change_enemy_base_int * wave).to_i
        end
        return n
      end
      #--------------------------------------------------------------------------
      # ● 获取基本攻击力
      #--------------------------------------------------------------------------
      alias :actor_change_enemy_base_atk :base_atk unless method_defined? :actor_change_enemy_base_atk
      def base_atk
        return (actor_change_enemy_base_atk * wave).to_i
      end
      #--------------------------------------------------------------------------
      # ● 获取基本物理防御
      #--------------------------------------------------------------------------
      alias :actor_change_enemy_base_pdef :base_pdef unless method_defined? :actor_change_enemy_base_pdef
      def base_pdef
        return (actor_change_enemy_base_pdef * wave).to_i
      end
      #--------------------------------------------------------------------------
      # ● 获取基本魔法防御
      #--------------------------------------------------------------------------
      alias :actor_change_enemy_base_mdef :base_mdef unless method_defined? :actor_change_enemy_base_mdef
      def base_mdef
        return (actor_change_enemy_base_mdef * wave).to_i
      end
      #--------------------------------------------------------------------------
      # ● 获取金钱
      #--------------------------------------------------------------------------
      alias :actor_change_enemy_gold :gold unless method_defined? :actor_change_enemy_gold
      def gold
        return (actor_change_enemy_gold * wave).to_i
      end
      #--------------------------------------------------------------------------
      # ● 获取浮动
      #--------------------------------------------------------------------------
      def wave
        return 1 + 0.05 * (@level - 1)
      end
      #--------------------------------------------------------------------------
      # ● 获取变化参数
      #     change_id     : 变化 ID
      #     kind          : 种类
      #     level         : 等级
      #--------------------------------------------------------------------------  
      def change_parameters(change_id, kind, level = 1)
        return $data_actors[change_id].parameters[kind, level]
      end
    end
    




    两大功能 -  ①附带敌人能力随角色等级变化,并存在敌人的等级 ②可以让敌人变身角色


    敌人变身角色使用方法 - 在数据库敌人名字后面加上change id。id为想要变身的角色id。
                 本帖来自P1论坛作者忧雪の伤,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg. blue/forum.php?mod=viewthread&tid=174305  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。

    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

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

    本版积分规则

    关闭

    幸运抽奖

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

    立即查看

    聊天机器人
    Loading...

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

    GMT+8, 2025-3-15 04:36 , Processed in 0.136484 second(s), 61 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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