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