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

[转载发布] 【教程】让汝的游戏多一个属性(类似于HP、SP)

[复制链接]
累计送礼:
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:26:42 | 显示全部楼层 |阅读模式
    本来想把这功能放的将要发布的游戏当中的说- - 也不知道是否曾经有人发布过这类的教程。
    我还是厚颜无耻地发表一下。
    这有什么用处呢。?主要是能为你的游戏增加一个除了HPSP以外的另外一个P。(这里暂时盗用TP)
    方便那些想做点什么的人 - -,本教程纯属渣物,有一定脚本功底的人慎入。
    通过这个教程可以任由汝增加多少P哦。从AP-ZP都可以 ( - -! )
    教程前言:
    在更改脚本之前要先备份哦!小心餐具。
    一、增加TP的变量
    我们都知道,游戏中HPMP相关的变量基本上是HP、SP或者MAXHP、MAXSP,所以要填加一个TP,也必须添上与其相同的变量。
    控制战斗者的部分主要是Game_Battler,于是大家可以打开脚本编辑器找到Game_Battler 1,在一开始的变量设置里增加一个变量。
    1. attr_reader   :tp            #TP复制代码
    复制代码
    再在初始化对象里增加几行字
    1. @tp = 0@maxtp_plus = 0复制代码
    复制代码
    由于在原脚本中本就定义了HP和MAXTP_PLUS,我们也要照做。
    二、仿照HP、MP设置设定TP的最大值及其变动
    继续翻啊翻,我们可以翻到这么一处脚本
    1. #--------------------------------------------------------------------------  # ● 获取 MaxSP  #--------------------------------------------------------------------------复制代码
    复制代码
    把其复制一遍,或手动敲入,改成
    1. #--------------------------------------------------------------------------  # ● 获取 MaxTP  #--------------------------------------------------------------------------  def maxtp    n = [[base_maxtp + @maxtp_plus, 0].max, 9999].min    n = [[Integer(n), 0].max, 9999].min    return n  end复制代码
    复制代码
    类似的,找到设置MAXSP的地方,照样的。。。
    1. #--------------------------------------------------------------------------  # ● 设置 MaxTP  #     maxtp : 新的 MaxTP  #--------------------------------------------------------------------------  def maxtp=(maxtp)    @maxtp_plus += maxtp - self.maxtp    @maxtp_plus = [[@maxtp_plus, -9999].max, 9999].min    @tp = [@tp, self.maxtp].min  end复制代码
    复制代码
    再增加控制TP改变的地方。
    1. #--------------------------------------------------------------------------  # ● 更改 TP  #     tp : 新的 TP  #--------------------------------------------------------------------------  def tp=(tp)    @tp = [[tp, maxtp].min, 0].max  end复制代码
    复制代码
    如果汝还需要在全恢复时增加TP,在全恢复(recover_all)里增加这么一行
    1. @tp = maxtp复制代码
    复制代码
    设置到这里还不够,回到脚本选择框。
    找到Game_Actor
    在设置中跟 HP、SP一样增加
    1. @tp = maxtp复制代码
    复制代码
    1. @maxtp_plus = 0复制代码
    复制代码
    找到
    1. #--------------------------------------------------------------------------  # ● 获取基本 MaxSP  #--------------------------------------------------------------------------  def base_maxsp    return $data_actors[@actor_id].parameters[1, @level]  end复制代码
    复制代码
    这段有什么用呢?这段是获取当前角色最大SP值用的。如果这里设置错了那么整个系统就全部报废了哦。
    跟上面一样,复制一遍再把所有的SP改为TP,但是这里要注意了,默认的档案里是没有TP的曲线的。我们需要自己动手增加一条直线(只能是直线- -)
    1. $data_actors[@actor_id].parameters[1, @level]复制代码
    复制代码
    改为
    1. @level * 40 + 20# 40为你每级增加的数,20为0级的初始值#照此,1级为60,2级为100复制代码
    复制代码
    当然了,你也可以把它设置的不同一点。比如说,根据职业的不同- -
    1. case @class_idwhen 1return @level * 50 + 1when 2when 3when 4...end复制代码
    复制代码
    这段怎么用呢?case 比较直白的说是获取某个变量的值,在..的情况下,执行什么脚本
    例如,在职业为1的情况下,角色的TP初始值为1,每级增加50哦。
    在改变等级时,也要改变TP的大小- -
    找到
    1. #--------------------------------------------------------------------------  # ● 更改 EXP  #     exp : 新的 EXP  #--------------------------------------------------------------------------  def exp=(exp)复制代码
    复制代码
    ,在END前填加
    1. @tp = [@tp, self.maxtp].min复制代码
    复制代码
    这样就在游戏里彻底增加了这么一个变量。
    三、TP的显示
    太简单了,仿照Window_Base 里的显示HP、MP,自己敲进去这么一段[code] #--------------------------------------------------------------------------  #     actor : 角色  #     x     : 描画目标 X 坐标  #     y     : 描画目标 Y 坐标  #     width : 描画目标的宽  #--------------------------------------------------------------------------  def draw_actor_tp(actor, x, y, width = 144)    # 描绘字符串 "TP"     self.contents.font.color = system_color    self.contents.draw_text(x, y, 32, 32, "TP")    # 计算描绘 MaxTP 所需的空间    if width - 32 >= 108      sp_x = x + width - 108      flag = true    elsif width - 32 >= 48      sp_x = x + width - 48      flag = false    end    # 描绘 TP    self.contents.font.color = actor.tp == 0 ? knockout_color :      actor.tp

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

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

    使用道具 举报

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

    本版积分规则

    关闭

    幸运抽奖

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

    立即查看

    聊天机器人
    Loading...

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

    GMT+8, 2025-3-15 04:30 , Processed in 0.116940 second(s), 55 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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