Project1

标题: 整队时如何强制部分角色战斗序列不会变? [打印本页]

作者: hcm    时间: 2012-3-18 10:49
标题: 整队时如何强制部分角色战斗序列不会变?
      就是整队时有些角色被固定住了,不能和其它角色互换位置。


      退而求其次,这个问题的答案也行http://rpg.blue/thread-225366-1-1.html

      再退一万步,这个也行http://rpg.blue/thread-225510-1-1.htmldsu_plus_rewardpost_czw
作者: feizhaodan    时间: 2012-3-18 11:06
本帖最后由 feizhaodan 于 2012-3-18 11:07 编辑
  1. #==============================================================================
  2. # ■ Scene_Menu
  3. #------------------------------------------------------------------------------
  4. #  菜单画面
  5. #==============================================================================

  6. class Scene_Menu < Scene_MenuBase
  7.   #--------------------------------------------------------------------------
  8.   # ● 整队“确定”
  9.   #--------------------------------------------------------------------------
  10.   alias fix_num1_on_formation_ok on_formation_ok
  11.   def on_formation_ok
  12.     if @status_window.index == 0
  13.       Sound.play_buzzer
  14.       return
  15.     else
  16.       fix_num1_on_formation_ok
  17.     end
  18.   end
  19. end
复制代码
0那个数字改成你想要固定的位置。0就是第一个,1就是第二个。
’’
作者: 殇殃    时间: 2012-3-18 11:20
改了脚本之后,玩家在整个游戏中(从新的游戏到通关)都不能改变那个角色的位置
我猜楼主的游戏应该是想在游戏某段时间不能改变那个角色的位置
所以我觉得还是禁止整队,触发某事件后再允许整队比较好
作者: 雪流星    时间: 2012-3-18 12:52
殇殃 发表于 2012-3-17 21:20
改了脚本之后,玩家在整个游戏中(从新的游戏到通关)都不能改变那个角色的位置
我猜楼主的游戏应该是想在 ...

也可以把 0 换成 $game_variables[X]
然後控制系统变量来调整
作者: hcm    时间: 2012-3-18 23:17
本帖最后由 hcm 于 2012-3-19 15:26 编辑

沙发思路是正确的,但使用不了(超卡机),根据这个提示(最后一句)在默认脚本上做了点修改,
问题暂时解决了,接下来放入坑中再试试。


‘‘──hcm于2012-3-19 12:33补充以下内容

不过多点了几次,发现只是第一个不能主动换而已,用后面的换前面还可以的,失败了。
’’


‘‘──hcm于2012-3-19 15:25补充以下内容
  1. def on_formation_ok

  2.     if @status_window.pending_index > 0
  3.       $game_party.swap_order(@status_window.index,
  4.                              @status_window.pending_index)
  5.       @status_window.pending_index = -1
  6.       @status_window.redraw_item(@status_window.index)
  7.     else   
  8.       @status_window.pending_index = @status_window.index
  9.     end
  10.     @status_window.activate
  11.     if @status_window.pending_index = 0
  12.       $game_party.swap_order(@status_window.index,
  13.                              @status_window.pending_index)
  14.       @status_window.pending_index = -1
  15.       @status_window.redraw_item(@status_window.index)
  16.     else   
  17.       @status_window.index = 0
  18.     end
  19.     @status_window.activate
  20.   end
复制代码
这是我自己改的脚本,希望高手帮我看一下有什么问题。
’’
作者: 雪流星    时间: 2012-3-19 21:23
hcm 发表于 2012-3-18 09:17
沙发思路是正确的,但使用不了(超卡机),根据这个提示(最后一句)在默认脚本上做了点修改,
问题暂时解 ...

第12行要用 == 不是 =
作者: hcm    时间: 2012-3-19 21:29
雪流星 发表于 2012-3-19 21:23
第12行要用 == 不是 =

目前的情况是,我把沙发的那段插件删掉后就可以动了,
但这是直接把选中的角色换到第一战斗序列的效果。
作者: 雪流星    时间: 2012-3-19 21:54
本帖最后由 雪流星 于 2012-3-19 07:55 编辑
  1. class Scene_Menu < Scene_MenuBase
  2.   alias fix_num1_on_formation_ok on_formation_ok
  3.   def on_formation_ok
  4.     if @status_window.index == $game_variables[10]
  5.       Sound.play_buzzer
  6.       @status_window.activate
  7.     else
  8.       fix_num1_on_formation_ok
  9.     end
  10.   end
  11. end
复制代码
第四行可以调整成你要的系统变量ID
这样就能使用事件指令变换固定的角色




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