Project1

标题: 那个啥,关于装备装备后加成其他能力的问题 [打印本页]

作者: 艾孜哈尔    时间: 2014-10-11 20:58
标题: 那个啥,关于装备装备后加成其他能力的问题
本帖最后由 艾孜哈尔 于 2014-10-11 20:59 编辑

就是装备武器或防具后使用特技消耗的SP量减少该怎样用脚本表示?还有装备武器和防具后使用完特技后的硬直速度增加?
PS:希望各位大神能教教我怎样做出硬直效果,我用的是CP制,应该和速度有关吧!希望大家能帮我解决这个和第二个问题。我承认一题多问了~~
作者: 艾孜哈尔    时间: 2014-10-12 10:01
自己百度一下,而且好多游戏都有硬直,例如闪之轨迹。

作者: chd114    时间: 2014-10-12 10:18
CP制速度什么的我没试过···

但是减少消耗的SP还是可以做到的
Game_Battler3里面有一段

  1.   #--------------------------------------------------------------------------
  2.   # ● 可以使用特技的判定
  3.   #     skill_id : 特技 ID
  4.   #--------------------------------------------------------------------------
  5.   def skill_can_use?(skill_id)
  6.     # SP 不足的情况下不能使用
  7.     if $data_skills[skill_id].sp_cost > self.sp
  8.       return false
  9.     end
复制代码
这里的条件分歧修改了,
  1. if $data_skills[skill_id].sp_cost > self.sp
复制代码
  1. if $game_switches[1]==true#1号开关打开时所有角色的特技消耗SP减半
  2. if $data_skills[skill_id].sp_cost/2 > self.sp
  3. return false
  4. end
  5. if $data_skills[skill_id].sp_cost > self.sp
  6. return false
  7. end
复制代码
但这样只是判定能用,如果SP不够,你用了技能可能会扣光SP(如果不明白还是往下看···)

在Window_Skill里面

  1.     self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2)
复制代码
有一句这样的来显示技能消耗的SP,修改了,改成
  1. $spt=0
  2. $spt=0.5 if $game_switches[1]==true
  3.     self.contents.draw_text(x + 232, y, 48, 32, (skill.sp_cost*$spt).to_s, 2)
复制代码
不过还没完,刚才改掉的只是显示的SP消耗···

在Scene_Skill里面还有
  1. @actor.sp -= @skill.sp_cost
复制代码
,还是修改掉
  1. @actor.sp -= @skill.sp_cost*0.5 if $game_switches[1]==false#不是技能消耗SP减半就正常减少SP
  2. @actor.sp -= @skill.sp_cost*0.5
复制代码
如果敌人也可以做到这样的效果就要改掉Scene_Skill里面的
  1. @active_battler.sp -= @skill.sp_cost
复制代码
  1. @active_battler.sp -= @skill.sp_cost*0.5 if $game_switches[1]==false#不是技能消耗SP减半就正常减少SP
  2. @active_battler.sp -= @skill.sp_cost*0.5
复制代码
需要注意的是Scene_Skill里面
  1. @actor.sp -= @skill.sp_cost
复制代码
一共有2处,都需要修改···
作者: chd114    时间: 2014-10-12 11:57
  1. 1.我想要的效果不是影响全队的,而是个人的。
复制代码
只要修改条件判定即可,这里用的是
  1. $game_switches[1]
复制代码
是否打开,如果要每个角色单独的···你可以用变量

首先要
  1. $game_variables[1]=[]
复制代码
然后
  1. $game_variables[1][角色编号]=你要的数字
复制代码
(个人喜欢用变量,原因继续往下看)
这里你可以定义小数或者整数


Game_Battler3的
  1. if $data_skills[skill_id].sp_cost > self.sp
复制代码
可以改成
  1. if $data_skills[skill_id].sp_cost*$game_variables[1][self.id] > self.sp
复制代码
如果$game_variables[1][self.id]定义小数,就改成
  1. if $data_skills[skill_id].sp_cost*$game_variables[1][self.id]*1.0 > self.sp
复制代码
防止因为浮点数出现一些稀奇古怪的东西···

Window_Skill的
  1. self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2)
复制代码
改成
  1. self.contents.draw_text(x + 232, y, 48, 32, (skill.sp_cost*$game_variables[1][@actor.id]).to_s, 2)
复制代码
同样,用小数就是
  1. self.contents.draw_text(x + 232, y, 48, 32, (skill.sp_cost*$game_variables[1][@actor.id]*1.0).to_s, 2)
复制代码
Scene_Skill里面
  1. @actor.sp -= @skill.sp_cost
复制代码
改成
  1. @actor.sp -= @skill.sp_cost*$game_variables[1][@actor.id]
复制代码
用小数就加个*1.0
  1. @actor.sp -= @skill.sp_cost*$game_variables[1][@actor.id]*1.0
复制代码
最后一个
  1. @active_battler.sp -= @skill.sp_cost
复制代码
同理
作者: 艾孜哈尔    时间: 2014-10-12 12:21
谢了,我这就去测试一下
作者: chd114    时间: 2014-10-27 21:43
@RyanBern 你还是分一个已经解决吧- -|||自从手动认可取消后我就没回答到几个“已经解决”的问题(误)···




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