查看: 1904|回复: 8

[已经解决] 关于「只能在固定回合使用的技能」脚本

[复制链接]
梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2015-5-14 21:55:00 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

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

×
本帖最后由 KB.Driver 于 2015-5-14 22:02 编辑

  @david_ng223
原来的提问帖里回答分开了两块……但是我自己不知道怎样改才是对的……(出了点小问题
那个「只能在固定回合使用的技能」脚本 完整的应该是怎样的呢?应该把脚本插入哪里呢?

现在是这样插入的,使用的时候有BUG……
技能只在战斗刚开始的回合可以选择(是亮的),但是选定了技能以后那一回合那个技能不会被执行……(相当于使用者这回合什么都不做……)
这是为什么呢?应该怎么修改?
QQ截图20150514220013.png

点评

你可能不知道吧?目标是敌方的技能也可以给使用者附加状态这件事?不用敌群和公共事件,只用技能公式就可以做出来……  发表于 2015-5-16 06:59
……麻烦吗……每扇门还都要放一个场所移动呢,更麻烦……  发表于 2015-5-16 06:58
但是用状态的话每个敌群战斗都要加不是很麻烦吗……  发表于 2015-5-16 00:02
…… 所以说仅第一回合可用还是用状态做比较靠谱吧……  发表于 2015-5-15 10:43
原来的是 rm.66rpg.com/thread-378820-1-1.html  发表于 2015-5-14 23:06
用头画头像,用脚写脚本
梦石
0
星屑
166
在线时间
454 小时
注册时间
2015-2-25
回帖
358
发表于 2015-5-15 16:25:08 | 显示全部楼层
你檢查一下turn_count是什麼時候增加的就知道了...

点评

不是很懂……没学过脚本看不懂呢……  发表于 2015-5-16 00:02
回复

使用道具 举报

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
回帖
659

开拓者

发表于 2015-5-16 08:26:30 | 显示全部楼层
本帖最后由 jianyulei 于 2015-5-16 08:30 编辑

我就没遇到过你说的事,是不是改了其他脚本引起的?

如果想用状态来做的话可以配合开战附加状态的脚本,可以一劳永逸,如果担心战斗中途死亡导致状态消失,还需要死亡后状态不消失的脚本。

点评

请问死亡后状态不消失的脚本需要到哪里找呢……?  发表于 2015-5-17 01:54
回复

使用道具 举报

梦石
0
星屑
166
在线时间
454 小时
注册时间
2015-2-25
回帖
358
发表于 2015-5-16 11:14:43 | 显示全部楼层
本帖最后由 howhow1314 于 2015-5-16 12:06 编辑

因為那turn_count是在回合開始時+1,回合開始是在下完指令後...

就是說你下指令時turn_count是0,可是行動時已經是1了...

給你寫新的了

[pre lang="ruby"]class Game_Actor
  def on_battle_start
    @turn = 0
    super
  end
  def on_turn_end
    @turn += 1
    super
  end
  def usable?(item)
    if item.class == RPG::Skill && $game_party.in_battle
      return false if @turn > 0 && item.id == 1
    end
    super
  end
end[/pre]

点评

這裡偷懶全寫在Game_Actor了..其實不太好,改用8樓的  发表于 2015-5-22 23:40
什麼意思..?不用(也不要)找出class Game_Actor加在裡面...你插在Main前就可以了  发表于 2015-5-17 14:44
这个要插入到哪里呢? 直接放在Class 的最底下没有效果呢……  发表于 2015-5-17 01:54
回复

使用道具 举报

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
回帖
659

开拓者

发表于 2015-5-17 07:35:02 | 显示全部楼层
[pre lang="ruby"]
#==============================================================================
# ■ RGSS3 戦闘不能時残留ステート Ver1.01 by 星潟
#------------------------------------------------------------------------------
# 戦闘不能に陥った際、消去されないステートを作成します。
# 用于那些全恢复时也不想要他消除的状态
# 設定方法.
# ステート欄に<残留>と記入する。
#
# Ver1.01
# 全回復時・逃走の処理でも戦闘不能時残留ステートの効果が表れていた問題を修正。
#==============================================================================
module UnclearableState
  
  #ステートのメモ欄に記入する為の設定用ワード
  WORD = "<残留>"
  
end
#==============================================================================
# ■ Game_BattlerBase
#------------------------------------------------------------------------------
#  バトラーを扱う基本のクラスです。主に能力値計算のメソッドを含んでいます。こ
# のクラスは Game_Battler クラスのスーパークラスとして使用されます。
#==============================================================================
class Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias initialize_un_s initialize
  def initialize
    initialize_un_s
    clear_states2
  end
  #--------------------------------------------------------------------------
  # ● 全回復
  #--------------------------------------------------------------------------
  alias recover_all_un_s recover_all
  def recover_all
    recover_all_un_s
    clear_states2
  end
  #--------------------------------------------------------------------------
  # ● ステート情報をクリア
  #--------------------------------------------------------------------------
  def clear_states
    @states = [] if @states == nil
    stc = 0
    stcl = []
    stcl_turns = {}
    stcl_steps = {}
    for state in @states
      if state != nil && $data_states[state].note.include?(UnclearableState::WORD)
        stcl.push(@states[stc])
        stcl_turns[state] = @state_turns[state]
        stcl_steps[state] = @state_steps[state]
      end
      stc += 1
    end
    @states = stcl
    @state_turns = stcl_turns
    @state_steps = stcl_steps
  end
  #--------------------------------------------------------------------------
  # ● ステート情報をクリア
  #--------------------------------------------------------------------------
  def clear_states2
    @states = []
    @state_turns = {}
    @state_steps = {}
  end
end
class Game_Battler < Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● 逃げる
  #--------------------------------------------------------------------------
  alias escape_un_s escape
  def escape
    escape_un_s
    clear_states2
  end
end
[/pre]

状态备注  <残留>  死亡之后状态就不消失

点评

谢谢!O(∩_∩)O  发表于 2015-5-17 11:52
回复

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

 楼主| 发表于 2015-5-17 15:42:47 | 显示全部楼层
QQ截图20150517154146.png
@howhow1314  插入到Main之前 一进入战斗就会这样……

点评

而且我想說4樓的腳本你根本不應該找得到對應的...目測你找的是在class Game_Battler的...  发表于 2015-5-22 23:47
如果是另外加的,刪掉就可以了(你1樓貼的腳本)  发表于 2015-5-22 23:40
不要告訴我1樓那腳本你直接在默認腳本裡修改的...無論如何,你用8樓的腳本吧 然後如果你是在默認腳本處修改了,就給還原一下...  发表于 2015-5-22 23:39
新工程你要注釋什麼....  发表于 2015-5-22 23:35
...你是不是搞錯什麼了,我叫你刪掉或者注釋掉的不是默認的腳本裡的....是你1樓貼的腳本....  发表于 2015-5-22 23:34
用头画头像,用脚写脚本
回复

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

 楼主| 发表于 2015-5-22 23:01:49 | 显示全部楼层
   @正太君   
请问能写一段能让技能只能在特定回合使用的脚本吗?
之前在VA讨论区见到一个但是用的时候有问题一直解决不了……
用头画头像,用脚写脚本
回复

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

 楼主| 发表于 2015-5-22 23:38:10 | 显示全部楼层
  @howhow1314   
把改进版的脚本放到了一个新工程里,一进行战斗测试就弹出:
QQ截图20150522233100.png

点评

恩,经测试可行!太感谢了!  发表于 2015-5-22 23:50
那很好 你再插進你的遊戲裡吧...  发表于 2015-5-22 23:49
噢……真对不起……原来不用注释的啊…… 你说的覆盖我没弄懂意思所以就把原来的部分注释掉了才搞的这么多问题……实在是抱歉。新工程中没问题  发表于 2015-5-22 23:45
你上面說你在工程裡刪了些什麼是不是....如果是的話,還原掉....如果不是的話,見鬼了  发表于 2015-5-22 23:43
用头画头像,用脚写脚本
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部