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