设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2077|回复: 6
打印 上一主题 下一主题

[已经过期] 5人战斗脚本问题

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
327 小时
注册时间
2011-9-29
帖子
315
跳转到指定楼层
1
发表于 2011-10-15 21:41:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 summer依恋 于 2011-10-15 22:16 编辑

这是灵儿大大给我的5人战斗脚本,我本来的脚本是eve大大的 后来被我修改过N次,已经面目全非了(主要是让别人帮忙改的)
这次这脚本又要麻烦各位了 灵儿君
问题在于5人战斗脚本貌似要改许多项 我直接复制了不用修改的脚本 测试了一下 没有变化 但还有2项可能要修改 “■Scene_Battle 1和3”这2项以前就修改过很多次,我这水平根本就不敢乱改 怕导致出问题  
Scripts.rxdata (324.34 KB, 下载次数: 464)

zhandhr.7z (189.55 KB, 下载次数: 846)

点评

你是想要改成什么样 = = b 问题在哪里?  发表于 2011-10-15 21:51

Lv1.梦旅人

梦石
0
星屑
50
在线时间
22 小时
注册时间
2011-10-11
帖子
72
2
发表于 2011-10-16 10:48:05 | 只看该作者
没有反应?那就把你的菜单卸载掉换上默认菜单就行了
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
327 小时
注册时间
2011-9-29
帖子
315
3
 楼主| 发表于 2011-10-16 17:46:07 | 只看该作者
赵灵儿 发表于 2011-10-16 10:48
没有反应?那就把你的菜单卸载掉换上默认菜单就行了

不敢换 那里面以前修改的东西太多了 把我原先的卸载了 那不是说以前都做无用功了
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
22 小时
注册时间
2011-10-11
帖子
72
4
发表于 2011-10-16 18:49:06 | 只看该作者
本帖最后由 赵灵儿 于 2011-10-16 19:00 编辑

无用功?不怕不怕,我可以亲自动手帮你做一个菜单
并且只需要废掉·SceneMenu·的部分,不用废掉其他。
再更新!此版本的脚本可以不用原先的换人脚本
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #==============================================================================
  5. # ■ Window_PlayTime
  6. #------------------------------------------------------------------------------
  7. #  メニュー画面でプレイ時間を表示するウィンドウです。
  8. #==============================================================================

  9. $fontface = "微软雅黑"
  10. $fontsize = 20

  11. class Window_PlayTime < Window_Base
  12. #--------------------------------------------------------------------------
  13. # ● オブジェクト初期化
  14. #--------------------------------------------------------------------------
  15. def initialize
  16.    super(0, 0, 160, 70)
  17.    self.contents = Bitmap.new(width - 32, height - 32)
  18.    self.contents.font.name = $fontface
  19.    self.contents.font.size = $fontsize
  20.    refresh
  21. end
  22. #--------------------------------------------------------------------------
  23. # ● リフレッシュ
  24. #--------------------------------------------------------------------------
  25. def refresh
  26.    self.contents.clear
  27.    self.contents.font.color = system_color
  28.    self.contents.draw_text(0, -8, 120, 32, "游戏时间")
  29.    @total_sec = Graphics.frame_count / Graphics.frame_rate
  30.    hour = @total_sec / 60 / 60
  31.    min = @total_sec / 60 % 60
  32.    sec = @total_sec % 60
  33.    text = sprintf("%02d:%02d:%02d", hour, min, sec)
  34.    self.contents.font.color = normal_color
  35.    self.contents.draw_text(0, 12, 120, 32, text, 2)
  36. end
  37. #--------------------------------------------------------------------------
  38. # ● フレーム更新
  39. #--------------------------------------------------------------------------
  40. def update
  41.    super
  42.    if Graphics.frame_count / Graphics.frame_rate != @total_sec
  43.      refresh
  44.    end
  45. end
  46. end

  47. #==============================================================================
  48. # ■ Window_MapName
  49. # Location Script by Sunrunner
  50. #------------------------------------------------------------------------------
  51. #  メニュー画面で歩数を表示するウィンドウです。
  52. #==============================================================================

  53. class Window_MapName < Window_Base
  54. #--------------------------------------------------------------------------
  55. # ● オブジェクト初期化
  56. #--------------------------------------------------------------------------
  57. def initialize
  58.   super(0, 0, 160, 70)
  59.   self.contents = Bitmap.new(width - 32, height - 32)
  60.   self.contents.font.name = $fontface
  61.    self.contents.font.size = $fontsize
  62.   refresh
  63. end
  64. #--------------------------------------------------------------------------
  65. # ● リフレッシュ
  66. #--------------------------------------------------------------------------
  67. def refresh
  68.   self.contents.clear
  69.   self.contents.font.color = system_color
  70.   self.contents.draw_text(0, -8, 120, 32, "当前位置")
  71.   self.contents.font.color = normal_color
  72.   $maps = load_data("Data/MapInfos.rxdata")
  73. @map_id = $game_map.map_id
  74. @currentmap = $maps[@map_id].name
  75. self.contents.font.size = 18
  76. self.contents.draw_text(40,-5,440,64,@currentmap)

  77. end
  78. end

  79. #==============================================================================
  80. # ■ Window_Gold
  81. #------------------------------------------------------------------------------
  82. #  ゴールドを表示するウィンドウです。
  83. #==============================================================================

  84. class Window_Gold < Window_Base
  85. #--------------------------------------------------------------------------
  86. # ● オブジェクト初期化
  87. #--------------------------------------------------------------------------
  88. def initialize
  89.    super(0, 0, 160, 70)
  90.    self.contents = Bitmap.new(width - 32, height - 32)
  91.    self.contents.font.name = $fontface
  92.    self.contents.font.size = $fontsize
  93.    refresh
  94. end
  95. #--------------------------------------------------------------------------
  96. # ● リフレッシュ
  97. #--------------------------------------------------------------------------
  98. def refresh
  99.    self.contents.clear
  100.    self.contents.font.color = system_color
  101.    self.contents.draw_text(0, -8, 120, 32, "纹银")
  102. cx = contents.text_size($data_system.words.gold).width
  103.    self.contents.font.color = normal_color
  104.    self.contents.draw_text(0, 12, 120-cx-2, 32, $game_party.gold.to_s, 2)
  105. end
  106. end


  107. #==============================================================================
  108. # ■ Window_MenuStatus
  109. #------------------------------------------------------------------------------
  110. #  メニュー画面でパーティメンバーのステータスを表示するウィンドウです。
  111. #==============================================================================

  112. class Window_MenuStatus < Window_Selectable
  113. #--------------------------------------------------------------------------
  114. # ● オブジェクト初期化
  115. #--------------------------------------------------------------------------
  116. def initialize
  117.    super(0, 0, 480, 415)
  118.    self.contents = Bitmap.new(width - 32, height - 32)
  119.    self.contents.font.name = $fontface
  120.    self.contents.font.size = $fontsize
  121.      refresh
  122.    self.active = false
  123.    self.index = -1
  124. end
  125. #--------------------------------------------------------------------------
  126. # ● リフレッシュ
  127. #--------------------------------------------------------------------------
  128. def refresh
  129.    self.contents.clear
  130.    @item_max = $game_party.actors.size
  131.    for i in 0...$game_party.actors.size
  132.      x = 64
  133.      y = i * 95
  134.      actor = $game_party.actors[i]
  135.      draw_actor_graphic(actor, x - 30, y + 70)
  136.      draw_actor_name(actor, x, y)
  137.      draw_actor_class(actor, x + 134, y)
  138.      draw_actor_level(actor, x, y + 30)
  139.      draw_actor_state(actor, x + 80, y + 30)
  140.      draw_actor_exp(actor, x, y + 60)
  141.      draw_actor_hp(actor, x + 226, y + 30)
  142.      draw_actor_sp(actor, x + 226, y + 60)
  143.    end
  144. end
  145. #--------------------------------------------------------------------------
  146. # ● カーソルの矩形更新
  147. #--------------------------------------------------------------------------
  148. def update_cursor_rect
  149.    if @index < 0
  150.      self.cursor_rect.empty
  151.          else
  152.      self.cursor_rect.set(0, @index * 95, self.width - 32, 95)
  153.    end
  154. end
  155. end

  156. #==============================================================================
  157. # ■ Scene_Menu
  158. #------------------------------------------------------------------------------
  159. #  メニュー画面の処理を行うクラスです。
  160. #==============================================================================
  161. class Window_Title < Window_Base
  162. #--------------------------------------------------------------------------
  163. # ● オブジェクト初期化
  164. #--------------------------------------------------------------------------
  165. def initialize
  166.    super(38, 60, 156, 70)
  167.    self.contents = Bitmap.new(width - 32, height - 32)
  168.    self.contents.font.name = $fontface
  169.    self.contents.font.size = $fontsize
  170.    refresh
  171. end
  172.   def refresh
  173.    self.contents.clear
  174.     self.contents.font.color = system_color
  175.      self.contents.font.color = normal_color
  176.    self.contents.draw_text(30, 5, 100, 30, "菜单")
  177. end
  178. end
  179. #--------------------------------
  180. class Scene_Menu
  181. #--------------------------------------------------------------------------
  182. # ● オブジェクト初期化
  183. #     menu_index : コマンドのカーソル初期位置
  184. #--------------------------------------------------------------------------
  185. def initialize(menu_index = 0)
  186.   @menu_index = menu_index
  187. end
  188. #--------------------------------------------------------------------------
  189. # ● メイン処理
  190. #--------------------------------------------------------------------------
  191. def main
  192.        # ステータスウィンドウを作成
  193.   @scene_menu = Window_Title.new
  194.   @scene_menu.x = 6
  195.   @scene_menu.y = 0
  196.   @scene_menu.back_opacity = 160
  197.   # コマンドウィンドウを作成
  198.   @sprite = Spriteset_Map.new
  199.     s1 = "背包"
  200.     s2 = "特技"
  201.     s3 = "装备"
  202.     s4 = "状态"
  203.     s5 = "存档"
  204.     s6 = "读档"
  205.     s7 = "加点"
  206.     s8 = "换人"
  207.     s9 = "结束"
  208.   @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8, s9, "","",""])
  209.   @command_window.index = @menu_index
  210.   @command_window.x = 5
  211.   @command_window.y = 66
  212.   @command_window.back_opacity = 160
  213.   # パーティ人数が 0 人の場合
  214.   if $game_party.actors.size == 0
  215.     # アイテム、スキル、装備、ステータスを無効化
  216.     @command_window.disable_item(0)
  217.     @command_window.disable_item(1)
  218.     @command_window.disable_item(2)
  219.     @command_window.disable_item(3)
  220.   end
  221.   # セーブ禁止の場合
  222.   if $game_system.save_disabled
  223.     # セーブを無効にする
  224.     @command_window.disable_item(4)
  225.   end
  226.   # プレイ時間ウィンドウを作成
  227.   @playtime_window = Window_PlayTime.new
  228.   @playtime_window.x = 320
  229.   @playtime_window.y = 0
  230.   @playtime_window.back_opacity = 160
  231.   # 歩数ウィンドウを作成
  232.   @steps_window = Window_MapName.new
  233.   @steps_window.x = 480
  234.   @steps_window.y = 0
  235.   @steps_window.back_opacity = 160
  236.   # ゴールドウィンドウを作成
  237.   @gold_window = Window_Gold.new
  238.   @gold_window.x = 162
  239.   @gold_window.y = 0
  240.   @gold_window.back_opacity = 160
  241.   # ステータスウィンドウを作成
  242.   @status_window = Window_MenuStatus.new
  243.   @status_window.x = 160
  244.   @status_window.y = 65
  245.   @status_window.back_opacity = 160
  246.     # トランジション実行
  247.      Graphics.transition
  248.   # メインループ
  249.   loop do
  250.     # ゲーム画面を更新
  251.     Graphics.update
  252.     # 入力情報を更新
  253.     Input.update
  254.     # フレーム更新
  255.     update
  256.     # 画面が切り替わったらループを中断
  257.     if $scene != self
  258.       break
  259.     end
  260.   end
  261.   # トランジション準備
  262.   Graphics.freeze
  263.   # ウィンドウを解放
  264.   @command_window.dispose
  265.   @playtime_window.dispose
  266.   @steps_window.dispose
  267.   @gold_window.dispose
  268.   @status_window.dispose
  269.   @scene_menu.dispose
  270.   @sprite.dispose
  271. end
  272. #--------------------------------------------------------------------------
  273. # ● フレーム更新
  274. #--------------------------------------------------------------------------
  275. def update
  276.   # ウィンドウを更新
  277.   @command_window.update
  278.   @playtime_window.update
  279.   @steps_window.update
  280.   @gold_window.update
  281.   @status_window.update
  282.   # コマンドウィンドウがアクティブの場合: update_command を呼ぶ
  283.   if @command_window.active
  284.     update_command
  285.     return
  286.   end
  287.   # ステータスウィンドウがアクティブの場合: update_status を呼ぶ
  288.   if @status_window.active
  289.     update_status
  290.     return
  291.   end
  292. end
  293. #--------------------------------------------------------------------------
  294. # ● フレーム更新 (コマンドウィンドウがアクティブの場合)
  295. #--------------------------------------------------------------------------
  296. def update_command
  297.   # B ボタンが押された場合
  298.   if Input.trigger?(Input::B)
  299.     # キャンセル SE を演奏
  300.     $game_system.se_play($data_system.cancel_se)
  301.     # マップ画面に切り替え
  302.     $scene = Scene_Map.new
  303.     return
  304.   end
  305.   # C ボタンが押された場合
  306.   if Input.trigger?(Input::C)
  307.     # パーティ人数が 0 人で、セーブ、ゲーム終了以外のコマンドの場合
  308.     if $game_party.actors.size == 0 and @command_window.index < 4
  309.       # ブザー SE を演奏
  310.       $game_system.se_play($data_system.buzzer_se)
  311.       return
  312.     end
  313.     # コマンドウィンドウのカーソル位置で分岐
  314.       case @command_window.index
  315.       when 0  # アイテム
  316.         $game_system.se_play($data_system.decision_se)
  317.         # 切换到物品画面
  318.         $scene = Scene_Item.new
  319.       when 1  # スキル
  320.         $game_system.se_play($data_system.decision_se)
  321.         # 激活状态窗口
  322.         @command_window.active = false
  323.         @status_window.active = true
  324.         @status_window.index = 0
  325.       when 2  # 装備
  326.         $game_system.se_play($data_system.decision_se)
  327.         # 激活状态窗口
  328.         @command_window.active = false
  329.         @status_window.active = true
  330.         @status_window.index = 0
  331.       when 3  # ステータス
  332.         $game_system.se_play($data_system.decision_se)
  333.         # 激活状态窗口
  334.         @command_window.active = false
  335.         @status_window.active = true
  336.         @status_window.index = 0
  337.         
  338.       when 4  # セーブ
  339.         # セーブ禁止の場合
  340.         if $game_system.save_disabled
  341.           # 演奏冻结 SE
  342.           $game_system.se_play($data_system.buzzer_se)
  343.           return
  344.         end
  345.         # 演奏确定 SE
  346.         $game_system.se_play($data_system.decision_se)
  347.         # 切换到存档画面
  348.         $scene = Scene_Save.new
  349.       when 5  # ロード
  350.         Input.update
  351.         # 決定 SE を演奏
  352.         @continue_enabled = false
  353.     for i in 0..3
  354.       if FileTest.exist?("Save#{i+1}.rxdata")
  355.         @continue_enabled = true
  356.       end
  357.     end
  358.     if @continue_enabled
  359.       # 演奏决定音效
  360.       $game_system.se_play($data_system.decision_se)
  361.       # 写个“火翼鸟”
  362.       $menu_load = "火翼鸟"
  363.       # 切换到读档画面
  364.       $scene = Scene_Load.new
  365.     else
  366.       # 冻结音效
  367.       $game_system.se_play($data_system.buzzer_se)
  368.     end
  369.       when 6
  370.         if $game_party.actors.size > 0
  371.           $game_system.se_play($data_system.decision_se)
  372.           $scene = Scene_Lvup.new(0,5)
  373.         else
  374.           $game_system.se_play($data_system.buzzer_se)
  375.         end
  376.       when 7
  377.         $scene = Chaochao_Scene_Party.new
  378.       when 8  # ゲーム終了
  379.         # 決定 SE を演奏
  380.         $game_system.se_play($data_system.decision_se)
  381.         # ゲーム終了画面に切り替え
  382.         $scene = Scene_End.new
  383.       else
  384.         
  385.       end
  386.       return
  387.   end
  388. end
  389. #--------------------------------------------------------------------------
  390. # ● フレーム更新 (ステータスウィンドウがアクティブの場合)
  391. #--------------------------------------------------------------------------
  392. def update_status
  393.   # B ボタンが押された場合
  394.   if Input.trigger?(Input::B)
  395.     # キャンセル SE を演奏
  396.     $game_system.se_play($data_system.cancel_se)
  397.     # コマンドウィンドウをアクティブにする
  398.     @command_window.active = true
  399.     @status_window.active = false
  400.     @status_window.index = -1
  401.     return
  402.   end
  403.   # C ボタンが押された場合
  404.   if Input.trigger?(Input::C)
  405.     # コマンドウィンドウのカーソル位置で分岐
  406.     case @command_window.index
  407.     when 1  # スキル
  408.       # このアクターの行動制限が 2 以上の場合
  409.       if $game_party.actors[@status_window.index].restriction >= 2
  410.         # ブザー SE を演奏
  411.         $game_system.se_play($data_system.buzzer_se)
  412.         return
  413.       end
  414.       # 決定 SE を演奏
  415.       $game_system.se_play($data_system.decision_se)
  416.       # スキル画面に切り替え
  417.       $scene = Scene_Skill.new(@status_window.index)
  418.     when 2  # 装備
  419.       # 決定 SE を演奏
  420.       $game_system.se_play($data_system.decision_se)
  421.       # 装備画面に切り替え
  422.       $scene = Scene_Equip.new(@status_window.index)
  423.     when 3  # ステータス
  424.       # 決定 SE を演奏
  425.       $game_system.se_play($data_system.decision_se)
  426.       # ステータス画面に切り替え
  427.       $scene = Scene_Status.new(@status_window.index)
  428.     end
  429.     return
  430.   end
  431. end
  432. end

  433. #==============================================================================
  434. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  435. #==============================================================================
  436. #==============================================================================
  437. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  438. #==============================================================================
  439. #==============================================================================
  440. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  441. #==============================================================================

  442. #==============================================================================
  443. # ■ chaochao的人物仓库ver1.02正式版
  444. # 修改了Game_Party
  445. # 功能:
  446. # 用来存放角色的仓库……
  447. # 召唤画面用$scene = Chaochao_Scene_Party.new
  448. # 其它使用说明在代码里已经备注。
  449. #------------------------------------------------------------------------------
  450. # 作者:chaochao
  451. # http://zhuchao.go1.icpcn.com
  452. #==============================================================================
  453. class Chaochao_Window_PartyLeft < Window_Selectable
  454.   def initialize
  455.     super(0, 0, 320, 224)
  456.     self.contents = Bitmap.new(width - 32, height - 32)
  457.     self.index = 0
  458.     refresh
  459.   end
  460.   def actor
  461.     return @actors[self.index]
  462.   end
  463.   def refresh
  464.     if self.contents != nil
  465.       self.contents.dispose
  466.       self.contents = nil
  467.     end
  468.     @actors = []
  469.     for i in 0...$game_party.actors.size
  470.       @actors.push($game_party.actors[i])
  471.     end
  472.    
  473.     @item_max = 4
  474.     if @item_max > 0
  475.       self.contents = Bitmap.new(width - 32, (row_max+1) * 32)
  476.       for i in 0...@item_max
  477.         draw_item(i)
  478.       end
  479.     end
  480.   end
  481.   def draw_item(index)
  482.     if @actors[index] != nil
  483.       actor = @actors[index]
  484.       text = @actors[index].name
  485.       lv = @actors[index].level.to_s + " "
  486.       if $game_party.chaochao.include?(actor.id) or $game_party.actors.size <= 1
  487.         self.contents.font.color = Color.new(255, 0, 0) #不能被移动的颜色
  488.       else
  489.         self.contents.font.color = Color.new(0, 255, 0) #可以被移动的颜色
  490.       end
  491.       self.contents.draw_text(4, index * 32 + 32, 288, 32, text)
  492.       self.contents.font.color = normal_color
  493.       self.contents.font.size = 16
  494.       self.contents.draw_text(4, index * 32 + 36, 288, 32,  "Level:   ", 2)
  495.       colorx = [255.0000 - 255.0000/60 * @actors[index].level,0].max
  496.       colory = [255.0000 / 60 * @actors[index].level,255].min
  497.       self.contents.font.color = Color.new(colorx, colory, 0)
  498.       self.contents.draw_text(4, index * 32 + 36, 288, 32,  lv, 2)
  499.       self.contents.font.color = normal_color
  500.       self.contents.font.size = 22
  501.     else
  502.       self.contents.draw_text(4, index * 32 + 32, 288, 32,  "米有人物!")
  503.     end
  504.   end
  505.   def update_cursor_rect
  506.     if @index < 0
  507.       self.cursor_rect.empty
  508.       return
  509.     end
  510.     row = @index / @column_max
  511.     if row < self.top_row
  512.       self.top_row = row
  513.     end
  514.     if row > self.top_row + (self.page_row_max - 1)
  515.       self.top_row = row - (self.page_row_max - 1)
  516.     end
  517.     cursor_width = self.width / @column_max - 32
  518.     x = @index % @column_max * (cursor_width + 32)
  519.     y = @index / @column_max * 32 - self.oy + 32
  520.     self.cursor_rect.set(x, y, cursor_width, 32)
  521.   end
  522.   def item_max
  523.     return @item_max
  524.   end
  525.   def actor?(index)
  526.     return @actors[index] == nil ? false : true
  527.   end
  528.   def set_index(x)
  529.     @index = x
  530.   end
  531. end

  532. #------------------------------------------------------------------------------

  533. class Chaochao_Window_PartyRight < Window_Selectable
  534.   def initialize
  535.     super(320, 0, 320, 224)
  536.     self.contents = Bitmap.new(width - 32, height - 32)
  537.     self.index = -1
  538.     refresh
  539.   end
  540.   def actor
  541.     return @actors[self.index]
  542.   end
  543.   def refresh
  544.     if self.contents != nil
  545.       self.contents.dispose
  546.       self.contents = nil
  547.     end
  548.     @actors = []
  549.     for i in 0...$game_party.actors2.size
  550.       @actors.push($game_party.actors2[i])
  551.     end
  552.    
  553.     @item_max = $game_party.actors2.size
  554.     if @item_max > 0
  555.       self.contents = Bitmap.new(width - 32, row_max * 32)
  556.       for i in 0...@item_max
  557.         draw_item(i)
  558.       end
  559.     elsif @item_max == 0
  560.      
  561.     end
  562.   end
  563.   def draw_item(index)
  564.     actor = @actors[index]
  565.     text = @actors[index].name
  566.     lv = @actors[index].level.to_s + " "
  567.     if $game_party.chaochao2.include?(actor.id) or $game_party.actors.size >= 4
  568.         self.contents.font.color = Color.new(255, 0, 0) #不能被移动的颜色
  569.       else
  570.         self.contents.font.color = Color.new(0, 255, 0) #可以被移动的颜色
  571.       end
  572.     self.contents.draw_text(4, index * 32, 288, 32, text)
  573.     self.contents.font.color = normal_color
  574.     self.contents.font.size = 16
  575.     self.contents.draw_text(4, index * 32 + 4, 288, 32,  "Level:   ", 2)
  576.     colorx = [255.0000 - 255.0000/60 * @actors[index].level,0].max
  577.     colory = [255.0000 / 60 * @actors[index].level,255].min
  578.     self.contents.font.color = Color.new(colorx, colory, 0)
  579.     self.contents.draw_text(4, index * 32 + 4, 288, 32,  lv, 2)
  580.     self.contents.font.color = normal_color
  581.     self.contents.font.size = 22
  582.   end
  583.   def update_cursor_rect
  584.     if @index < 0
  585.       self.cursor_rect.empty
  586.       return
  587.     end
  588.     row = @index / @column_max
  589.     if row < self.top_row
  590.       self.top_row = row
  591.     end
  592.     if row > self.top_row + (self.page_row_max - 1)
  593.       self.top_row = row - (self.page_row_max - 1)
  594.     end
  595.     cursor_width = self.width / @column_max - 32
  596.     x = @index % @column_max * (cursor_width + 32)
  597.     y = @index / @column_max * 32 - self.oy
  598.     self.cursor_rect.set(x, y, cursor_width, 32)
  599.   end
  600.   def item_max
  601.     return @item_max
  602.   end
  603.   def actor?(index)
  604.     return @actors[index] == nil ? false : true
  605.   end
  606.   def set_index(x)
  607.     @index = x
  608.   end
  609. end

  610. #------------------------------------------------------------------------------

  611. class Chaochao_Window_PartyData < Window_Base

  612.   def initialize
  613.     super(0, 224, 640, 256)
  614.     self.contents = Bitmap.new(width - 32, height - 32)
  615.     @actor = nil
  616.   end

  617.   def set_actor(actor)
  618.     self.contents.clear
  619.     draw_actor_name(actor, 4, 0)
  620.     draw_actor_state(actor, 140, 0)
  621.     draw_actor_hp(actor, 284, 0)
  622.     draw_actor_sp(actor, 460, 0)
  623.     @actor = actor
  624.     self.visible = true
  625.   end
  626.   def clear
  627.     self.contents.clear
  628.   end
  629. end

  630. #------------------------------------------------------------------------------

  631. class Game_Party
  632.   attr_reader   :actors2
  633.   attr_reader   :chaochao#不能从队伍向备用角色移动的角色ID
  634.   attr_reader   :chaochao2#不能从备用角色向队伍移动的角色ID
  635.   def initialize
  636.     @actors = []
  637.     @gold = 0
  638.     @steps = 0
  639.     @items = {}
  640.     @weapons = {}
  641.     @armors = {}
  642.     @actors2 = []
  643.     @chaochao = []
  644.     @chaochao2 = []
  645.   end
  646.   def add_actor(actor_id,type=1)#type为1是向队伍中添加,为2则相反。
  647.     case type
  648.     when 1
  649.       if $game_actors[actor_id] != nil
  650.         actor = $game_actors[actor_id]
  651.         #如果队伍没有满和队伍中没有此角色
  652.         if @actors.size < 4 and not @actors.include?(actor) and not @actors2.include?(actor)
  653.           @actors.push(actor)
  654.           $game_player.refresh
  655.         end
  656.       end
  657.     when 2
  658.       if $game_actors[actor_id] != nil
  659.         actor = $game_actors[actor_id]
  660.         #如果角色不在队伍中和不在备用角色队伍中的情况下
  661.         #向备用角色中添加角色
  662.         if not @actors.include?(actor) and not @actors2.include?(actor)
  663.           @actors2.push(actor)
  664.           $game_player.refresh
  665.         end
  666.       end
  667.     end
  668.   end

  669.   def huanren(index,type=1)#type为1是从备用角色向队伍中移动,为2则相反。
  670.     actor = $game_actors[index]
  671.     case type
  672.     when 1
  673.       if @actors.size < 4 and @actors2.include?(actor) and not @chaochao2.include?(index) and not @actors.include?(actor)
  674.         @actors.push(actor)
  675.         @actors2.delete(actor)
  676.         $game_system.se_play($data_system.decision_se)
  677.         $game_player.refresh
  678.       end
  679.     when 2
  680.       if @actors.include?(actor) and not @chaochao.include?(index) and not @actors2.include?(actor)
  681.         @actors2.push(actor)
  682.         @actors.delete(actor)
  683.         $game_system.se_play($data_system.decision_se)
  684.         $game_player.refresh
  685.       end
  686.     end
  687.   end

  688.   #type1,1是操作队伍中的角色能否向备用队伍移动,2则相反。
  689.   #type2,1是添加不能移动的,2是删除不能移动的。
  690.   def yidong(actor_id,type1,type2=1)
  691.     case type2
  692.     when 1
  693.       case type1
  694.       when 1
  695.         @chaochao.push(actor_id)
  696.       when 2
  697.         @chaochao2.push(actor_id)
  698.       end
  699.     when 2
  700.       case type1
  701.       when 1
  702.         @chaochao.delete(actor_id)
  703.       when 2
  704.         @chaochao2.delete(actor_id)
  705.       end
  706.     end
  707.   end

  708.   #type,1从队伍中离开,2从备用角色中离开,3从队伍和备用角色中离开。
  709.   def remove_actor(actor_id,type=1)
  710.     actor = $game_actors[actor_id]
  711.     case type
  712.     when 1
  713.       @actors.delete(actor)
  714.       $game_player.refresh
  715.     when 2
  716.       @actors2.delete(actor)
  717.       $game_player.refresh
  718.     when 3
  719.       @actors.delete(actor)
  720.       @actors2.delete(actor)
  721.       $game_player.refresh
  722.     end
  723.   end

  724.   def refresh
  725.     new_actors = []
  726.     new_actors2 = []
  727.     for i in [email protected]
  728.       if $data_actors[@actors[i].id] != nil
  729.         new_actors.push($game_actors[@actors[i].id])
  730.       end
  731.     end
  732.     @actors = new_actors
  733.     for i in [email protected]
  734.       if $data_actors[@actors2[i].id] != nil
  735.         new_actors2.push($game_actors[@actors2[i].id])
  736.       end
  737.     end
  738.     @actors2 = new_actors2
  739.   end
  740. end

  741. #------------------------------------------------------------------------------

  742. class Chaochao_Scene_Party
  743.   def main
  744.     @left_temp_command = 0
  745.     @right_temp_command = 0
  746.     @temp = 0
  747.     @left_window = Chaochao_Window_PartyLeft.new
  748.     @left_window.active = true
  749.     @right_window = Chaochao_Window_PartyRight.new
  750.     @right_window.active = false
  751.     @data_window = Chaochao_Window_PartyData.new
  752.     update_data
  753.     Graphics.transition
  754.     loop do
  755.       Graphics.update
  756.       Input.update
  757.       update
  758.       if $scene != self
  759.         break
  760.       end
  761.     end
  762.     Graphics.freeze
  763.     @left_window.dispose
  764.     @right_window.dispose
  765.     @data_window.dispose
  766.   end

  767.   def update
  768.     @left_window.update
  769.     @right_window.update
  770.     @data_window.update
  771.     update_command
  772.     update_data
  773.   end

  774.   def update_command
  775.     if Input.trigger?(Input::B)
  776.       $game_system.se_play($data_system.cancel_se)
  777.       #画面切换
  778.       $scene = Scene_Map.new
  779.       return
  780.     end
  781.     if @left_window.active
  782.       update_left
  783.       return
  784.     end
  785.     if @right_window.active
  786.       update_right
  787.       return
  788.     end
  789.   end

  790.   def update_left
  791.     if Input.trigger?(Input::RIGHT)
  792.       if @right_window.item_max > 0
  793.         @left_temp_command = @left_window.index
  794.         @left_window.set_index(-1)
  795.         $game_system.se_play($data_system.cursor_se)
  796.         @left_window.active = false
  797.         @right_window.active = true
  798.         @left_window.refresh
  799.         @right_window.refresh
  800.         @right_window.set_index(@right_temp_command)
  801.         return
  802.       else
  803.         $game_system.se_play($data_system.buzzer_se)
  804.         return
  805.       end
  806.     end
  807.     if Input.trigger?(Input::C)
  808.       if @left_window.active and @left_window.actor?(@left_window.index) and $game_party.actors.size > 1 and not $game_party.chaochao.include?($game_party.actors[@left_window.index].id)
  809.         $game_party.huanren($game_party.actors[@left_window.index].id,2)#type为1是从备用角色向队伍中移动,为2则相反。
  810.         @left_window.refresh
  811.         @right_window.refresh
  812.       else
  813.         $game_system.se_play($data_system.buzzer_se)
  814.       end
  815.     end
  816.     return
  817.   end

  818.   def update_right
  819.     if Input.trigger?(Input::LEFT)
  820.       if @left_window.item_max > 0
  821.         @right_temp_command = @right_window.index
  822.         @right_window.set_index(-1)
  823.         $game_system.se_play($data_system.cursor_se)
  824.         @left_window.active = true
  825.         @right_window.active = false
  826.         @left_window.refresh
  827.         @right_window.refresh
  828.         @left_window.set_index(@left_temp_command)
  829.         return
  830.       else
  831.         $game_system.se_play($data_system.buzzer_se)
  832.         return
  833.       end
  834.     end
  835.     if Input.trigger?(Input::C)
  836.       if $game_party.actors.size >= 4
  837.         $game_system.se_play($data_system.buzzer_se)
  838.         return
  839.       end
  840.       if @right_window.active and @right_window.actor?(@right_window.index) and not $game_party.chaochao2.include?($game_party.actors2[@right_window.index].id)
  841.         $game_party.huanren($game_party.actors2[@right_window.index].id,1)#type为1是从备用角色向队伍中移动,为2则相反。
  842.         if $game_party.actors2.size == 0
  843.           @right_temp_command = @right_window.index
  844.           @right_window.set_index(-1)
  845.           $game_system.se_play($data_system.cursor_se)
  846.           @left_window.active = true
  847.           @right_window.active = false
  848.           @left_window.refresh
  849.           @right_window.refresh
  850.           @left_window.set_index(@left_temp_command)
  851.         end
  852.         if @right_window.index > 0
  853.           @right_window.set_index(@right_window.index-1)
  854.         end
  855.         @left_window.refresh
  856.         @right_window.refresh
  857.       else
  858.         $game_system.se_play($data_system.buzzer_se)
  859.       end
  860.     end
  861.     return
  862.   end

  863.   def update_data
  864.     if @left_window.active
  865.       if $game_party.actors[@left_window.index] != nil
  866.         @data_window.set_actor($game_party.actors[@left_window.index])
  867.       else
  868.         @data_window.clear
  869.       end
  870.       return
  871.     end
  872.     if @right_window.active
  873.       if $game_party.actors2[@right_window.index] != nil
  874.         @data_window.set_actor($game_party.actors2[@right_window.index])
  875.       else
  876.         @data_window.clear
  877.       end
  878.       return
  879.     end
  880.   end
  881. end

  882. #==============================================================================
  883. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  884. #=============================================================================
  885. #==============================================================================
  886. # ■ Interpreter (分割定义 4)
  887. #------------------------------------------------------------------------------
  888. #  执行事件命令的解释器。本类在 Game_System 类
  889. # 和 Game_Event 类的内部使用。
  890. #==============================================================================
  891. class Interpreter
  892.   #--------------------------------------------------------------------------
  893.   # ● 角色的替换
  894.   #--------------------------------------------------------------------------
  895.   def command_129
  896.     # 获取角色
  897.     actor = $game_actors[@parameters[0]]
  898.     # 角色有效的情况下
  899.     if actor != nil
  900.       # 操作分支
  901.       if @parameters[1] == 0
  902.         if @parameters[2] == 1
  903.           $game_actors[@parameters[0]].setup(@parameters[0])
  904.         end
  905.         if $game_party.actors.size == 4
  906.           $game_party.add_actor(@parameters[0],2)
  907.         else
  908.           $game_party.add_actor(@parameters[0])
  909.         end
  910.       else
  911.         $game_party.remove_actor(@parameters[0],3)
  912.       end
  913.     end
  914.     # 继续
  915.     return true
  916.   end
  917. end

  918. #==============================================================================
  919. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  920. #==============================================================================  
复制代码
用这个替换你的挚星霁月仿DQ菜单中的·Scene_Menu·模块即可。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
327 小时
注册时间
2011-9-29
帖子
315
5
 楼主| 发表于 2011-10-16 19:49:07 | 只看该作者
赵灵儿 发表于 2011-10-16 18:49
无用功?不怕不怕,我可以亲自动手帮你做一个菜单
并且只需要废掉·SceneMenu·的部分,不用废掉其他。
再 ...

是替换这个吗?
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
44 小时
注册时间
2011-8-30
帖子
35
6
发表于 2011-10-17 21:50:55 | 只看该作者
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
327 小时
注册时间
2011-9-29
帖子
315
7
 楼主| 发表于 2011-10-18 14:59:53 | 只看该作者
本帖最后由 summer依恋 于 2011-10-24 09:08 编辑
唐小航 发表于 2011-10-17 21:50
看这里 → http://www.66rpg.com/htm/news472.htm


这个早搜索过了。。。。


summer依恋于2011-10-24 08:57补充以下内容:
灵儿解锁了啊
脚本貌似有问题,在菜单中打开 状态 会提示"脚本错误"
而且,我的意思是说要5个人同时战斗,不是换人就可以了哇。那个 如果不行的话那就没办法了
这是我现在的脚本 Scripts.rxdata (328.2 KB, 下载次数: 85)
回复

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-27 11:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表