Project1

标题: 如何在脚本中自行修改数据库? [打印本页]

作者: 冥昭    时间: 2019-1-5 01:12
标题: 如何在脚本中自行修改数据库?
请问一下各位大佬,
如果我想要修改一些数据结构,诸如:增加一些特定的能力值给角色与敌人,增加一些特定的能力值给装备使得穿戴装备可以提高角色对应能力值,增加一些技能的构成,该如何才能自定义这些数据库里的东西呢?
我看其他大佬的类似的脚本,例如有个物品重量的脚本,做法是先建一个模组,确定了要加些什么还有一些条件判断,然后直接在Weapn/Item之类的类里面,定义一个方法直接return case @id, 然后when id then return 一个值,
然后就神奇的给对应id的东西赋加了重量这一属性,并且重量为给定的对应id的值。
还有其他什么给角色增加饥饿度之类的设定,也是类似的方法。
但是我拿着研究了半天也没加出一点半点的自定义内容。
还请各位大佬帮忙讲解一下思路。
作者: 冥昭    时间: 2019-1-5 01:46
我看大佬直接在Class Item里面def 一个weight, 然后 return case @id,  when 1 then return 1.0, 这个id 为1的物品就被赋予了一个“重量”属性,然后直接item.weight就能调用。。
作者: 灯笼菜刀王    时间: 2019-1-5 09:48
本帖最后由 灯笼菜刀王 于 2019-1-5 09:58 编辑

这个就是为 "类" 增加新的"方法"

具体教程可以看F1, 脚本入门-基础篇-定义类, 如果无法理解这部分内容, 建议从脚本入门基础篇最开始消化

以下的就假设为你能理解"定义类"的内容来说明

武器,防具, 道具,技能的"类", 是在内部脚本里的, 可以在F1 - 脚本入门 - 解读篇 - 数据库 里找到它们的定义

然后复制同类名到默认脚本, 就可以给这个类添加或者覆盖方法了,

栗子,  

class Item
  def 重量
     return @price / 10000
  end
  def price
    return @price % 10000
  end
end

这样, 就给 道具增加了个"重量"的属性, 这个属性是用它的 价格/10000 来 设置的,  然后重定义了price的方法, 让 价格变成 只取设置的价格前4位数, 当然,定义的方式可以有各种各样的, 我这个栗子是在尽量不魔改数据库和脚本的情况下来添加属性, 思路就是"一个属性拆成两个用"

然后, 就可以在数据库里这样设置了, 1号 恢复药,价格:50050  实际等于, 恢复药的重量是5, 价格 50元

在游戏里调用 $data_items[1].重量  ,就可以得到 5 这个数值了
作者: RyanBern    时间: 2019-1-5 09:58
本帖最后由 RyanBern 于 2019-1-5 10:02 编辑

一个通用的实现方法可以看我的视频教程,特别篇 02 的内容
https://rpg.blue/forum.php?mod=viewthread&tid=381015


作者: 冥昭    时间: 2019-1-5 17:03
RyanBern 发表于 2019-1-5 09:58
一个通用的实现方法可以看我的视频教程,特别篇 02 的内容
https://rpg.blue/forum.php?mod=viewthread&tid ...

谢谢大佬。
作者: 冥昭    时间: 2019-1-5 17:06
灯笼菜刀王 发表于 2019-1-5 09:48
这个就是为 "类" 增加新的"方法"

具体教程可以看F1, 脚本入门-基础篇-定义类, 如果无法理解这部分内容, 建 ...

我知道这个方法啊,但是我自己尝试了后却无法实现。例如我想给装备增加一个提高X属性的项目,就在class Armor里面def X_plus, balabala end,然而实际尝试却加不上。。
作者: 冥昭    时间: 2019-1-6 08:37
冥昭 发表于 2019-1-5 17:06
我知道这个方法啊,但是我自己尝试了后却无法实现。例如我想给装备增加一个提高X属性的项目,就在class A ...

糊了大半个晚上,成功了。。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1