查看: 88|回复: 0

[转载发布] 数据库通用备注接口插件 v2.1 增强版(附已发布范例链接)

[复制链接]
  • TA的每日心情
    开心
    5 天前
  • 签到天数: 33 天

    连续签到: 1 天

    [LV.5]常住居民I

    2022

    主题

    32

    回帖

    7144

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5074
    OK点
    16
    积分
    7144
    发表于 同元一千年八月七日(秋) | 显示全部楼层 |阅读模式
    在不魔改编辑器的情况下,最大限度的利用现有字段,模拟VA、MV数据库的备注功能。
    具体使用说明,请见脚本前的注释项
    注:该插件只是使你很方便的书写备注调用备注,并未植入任何备注项具体功能在游戏系统中,需要你自己书写,写法可见范例
    更新:
    v2.1
    去掉关于方法前缀(下划线)的配置,为兼容性及后续插件开发考虑,不再支持该字符自定义配置
    追加配置合法性检查
    允许给游戏事件设定备注,即分页的备注。用Game_Event类作为接口植入,便于制作各种效果。
    v2.0
    名字空间及依赖检查通用化,便于后期发布插件时更改冲突
    增加狂野模式,相当于连数据库数值破限一起搞了……
    v1.9
    支持INI文件存储备注,如果你真的有这需求的话就用吧(虽然我觉得用公共事件已经很方便了)
    v1.8
    备注中的标签允许缺省,按默认值(名称)处理
    超长备注现在可以设定不在一个公共事件内写完了,避免重名或事件过长带来的麻烦
    v1.7
    备注中的表达式现在可以用v简写变量,如v[1]指引用1号变量
    备注中的字符串现在可以包括分段符(默认为;分号),需要前置反斜杠进行转义
    增加了相关注释
    v1.6
    备注中的标识符现在可以使用大写字母和数字开头(因为加了方法前缀),不再限定为小写字母
    更改了部分代码避免被论坛错误转换
    v1.5
    添加公共事件标签引用备注,备注内容不再受到字段长度的限制,理论上可以如VA、MV一样无限长
    (多说两句:超长备注可能有许多解决办法,比如写在F11脚本里(即运行时设定),用外挂文件等等。这里的核心思路是,第一数据库的事要数据库内解决,第二拷贝粘贴数据时备注不能错乱)
    v1.4
    添加地图和事件备注数据的植入
    v1.3
    添加respond_to?定义和方法前缀设定,避免与普通字段重名,且制作依赖插件时,便于检查冲突(感谢@taroxd),默认的前缀是单下划线
    所有分隔字符全部开放配置(感谢@hyrious的灵感),你现在想写成URL参数的样子都可以……
    v1.2
    添加define_method方法定义,添加analyze方法,同一对象只解析一次,增加再次调用的效率
    允许运行时设定备注,包括个别项设定和整体重写,满足某些黑科技用法需要,现在备注如同普通字段一样
    备注书写格式放松:前导符号前可以加空格(不影响原字段),分号后可以跟空格(不影响标识符的识别)
    v1.1
    使用元编程简化代码(感谢@taroxd的提示)
    预设返回false的备注方式,无法识别将返回nil而不是false,未定义的默认值继续有效
    增加了表达式的容错配置
    增加了注释

    范例的链接:
    1. 技能名个别设定(原桜雅在土脚本)
    2. 技能公式自定义
    3. 技能消耗依赖

    代码:
    RUBY 代码
    [code]#==============================================================================
    # ■ 数据库通用备注接口 v2.1 by SailCat
    #------------------------------------------------------------------------------
    #   方法:本脚本插入到Main之前使用,且需在所有依赖此脚本的其他插件之前
    #   依赖:无
    #   版本:v2.1 (Build 171217)
    #   效果:给所有数据库项目增加如同VA、MV一样的备注,且备注长度同VA、MV一样无限
    #   配置:有大量配置项,见脚本配置区的具体说明,按默认设定可以正常运行
    #   冲突:其他的数据库扩展脚本
    #   说明:
    #
    #   1. 备注字段来源:
    #      游戏事件页、公共事件数据使用注释(第1条起的连续内容)作为备注(无限)
    #      队伍数据使用注释(第1页[不论条件]第1条起的连续内容)作为备注(无限)
    #      物品、特技、武器、防具数据,用描述作为备注(最多100字)
    #      角色、职业、敌人、状态、动画、图块数据,用名称作为备注(最多40字)
    #      地图、事件数据,用名称作为备注(最多100字)
    #      所有数据,皆可以引用公共事件中的标签或文件作为备注,因此理论上长度无限
    #      用于批量存放备注数据的公共事件编号和文件名,可以在脚本配置中指定
    #
    #   2. 备注字段写法:
    #      标准写法1:#备注项1;备注项2;...备注项n
    #      标准写法2:#>公共事件中的超长备注标签名
    #      标准写法3:#用于整体引用公共事件中的超长备注标签
    #      符号# "阿尔西斯" 自动区隔备注内容
    #          $data_actors[1]._a         # => true
    #          $data_actors[1]._b         # => 4
    #          $data_actors[1]._c         # => "5"
    #          $data_actors[1]._d         # => nil 未定义的标识符,采用nil
    #          $data_actors[1]._d(2)      # => 2   未定义的标识符,采用默认值
    #      技能1  描述设为:回复己方单体HP。#f:a.atk - b*def / 2;cd=1.5;no_ref-
    #      则  $data_skills[1].description# => "回复己方单体HP。"
    #          $data_skills[1]._f         # => "a.atk - b.def / 2"
    #          $data_skills[1]._cd        # => 1.5
    #          $data_skills[1]._no_ref    # => false
    #    二次定义示例(采用默认值和好记写法,方便他处脚本的书写,并增强可读性):
    #      module RPG
    #        class Skill
    #          def formula;  _f;       end
    #          def cooldown; _cd(0.0); end
    #        end
    #      end
    #
    #   5. 非标准写法备注的使用:数据对象.note 方法可取得备注内容(字符串),以上
    #
    #   6. 狂野模式:
    #      如果在脚本配置中将相关选项打开,可以使用狂野模式的备注
    #      此时,若标识符写作该类数据的默认字段名称(只能是数值),原定数值会被覆盖
    #      该方法可以轻易突破数据库的数值限制,如负数武器攻击力,超过200的能力F值
    #      该方法可能破坏数据库的自洽性,因此请谨慎使用该功能
    #
    #   7. 本脚本只提供数据库内容的备注接口,没有植入关于备注项实装的任何扩展功能
    #      备注项的实际应用代码,请自行实现或插入后续发布的依赖插件
    #      脚本作者只承诺发布的所有基于本接口的依赖插件之间不会互相冲突
    #      如果与非依赖本接口的插件或他人插件冲突,请自行解决
    #
    #   8. 关于用公共事件实现超长备注:
    #      1)公共事件的超长备注,用事件指令书写在指定编号的公共事件中
    #         公共事件的编号在脚本配置区指定,默认分开12项,也可合并为1项
    #         超长备注可用“显示文章”或“注释”或“脚本”指令书写,具体指令无区别
    #         仅提取这三条指令的文字内容,其他的指令会被自动忽略,不会有影响
    #      2) 建议在公共事件最开始插入“中断事件处理”指令,避免误执行(不是必须)
    #      3)每条超长备注之前,加上标签指令,标签名不得互相重复
    #      4)超长备注可以作为备注项的字符串使用,例:
    #           阿尔西斯 #pr.c1 # => 将标签c1后文字作为$data_actors[1]._pr的内容
    #         也可以作为备注项数据,整体合使用,例:
    #           阿尔西斯 #>c1   # => 将标签c1后文字作为阿尔西斯的备注,并自动解析
    #         整体使用时,写在公共事件中的备注项需省略前置的#符号(因为已经写过了)
    #      5) 不是用配置中的公共事件ID存放时,标签名需指定公共事件ID,如:#>99,c1
    #      6) 标签名可以省略不写,用数据的名称和相关标识符作为默认标签名,如:
    #           阿尔西斯 #>   # => 系统会查找名为“阿尔西斯”的标签并取值
    #           阿尔西斯 #pr. # => 系统会查找名为“阿尔西斯_pr”的标签并取值
    #      7) 引用的标签没有定义的情况下,返回空的字符串
    #
    #   9. 关于备注文件:
    #      1) 备注文件的写法须为标准的INI配置文件写法,即标签分段,键值对书写,如:
    #           [特萝西]
    #           profile=这是特萝西,她是盗贼
    #           age=28
    #           gender=女
    #           height=175
    #           weight=60
    #           is_dual_wield=false
    #      2) 数据库引用的写法为:#
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2024-5-3 09:20 , Processed in 0.046987 second(s), 43 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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