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

Project1

 找回密码
 注册会员
搜索

【VIP悬赏】关于这套战斗换人脚本的问题

查看数: 2627 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-3-28 23:02

正文摘要:

本帖最后由 无忧谷主幻 于 2015-3-29 10:29 编辑 工程: 4,如何更改队列?

回复

orzzgg 发表于 2015-3-28 23:02:56
本帖最后由 orzzgg 于 2015-3-29 15:07 编辑

(四个要求已全部回答)
附上Scripts文件 Scripts.rxdata (193.82 KB, 下载次数: 72)

要求一:

1、Window_MenuStatus New! 进行以下修改:

(1)initialize方法里的
  1. self.contents = Bitmap.new(width - 32, height - 32)
复制代码
改为
  1. self.contents = Bitmap.new(width - 32, $game_party.actors.size * 80)
复制代码
(2)update_cursor_rect整个方法改为
  1.   def update_cursor_rect
  2.     if @index <= -2
  3.       self.cursor_rect.empty
  4.       self.oy = 0
  5.     elsif @index == -1
  6.       self.cursor_rect.set(0, 0, self.width - 32, @item_max * 80)
  7.       self.oy = 0
  8.     else
  9.       self.cursor_rect.set(0, @index * 80, self.width - 32, 80)
  10.       if @index > 3
  11.         self.oy = (@index-3)*80
  12.         self.cursor_rect.y -= self.oy
  13.       else
  14.         self.oy = 0
  15.       end
  16.     end
  17.   end
复制代码
2、Window_MenuEquip New! 进行以下修改

(1)initialize方法里的
  1. self.contents = Bitmap.new(width - 32, height - 32)
复制代码
改为
  1. self.contents = Bitmap.new(width - 32, $game_party.actors.size * 80)
复制代码
(2)update_cursor_rect整个方法改为
  1.   def update_cursor_rect
  2.     if @index < 0
  3.       self.cursor_rect.empty
  4.       self.oy = 0
  5.     else
  6.       self.cursor_rect.set(0, @index * 80, self.width - 32, 80)
  7.       if @index > 3
  8.         self.oy = (@index-3)*80
  9.         self.cursor_rect.y -= self.oy
  10.       else
  11.         self.oy = 0
  12.       end
  13.     end
  14.   end
复制代码
要求二:

复杂物品分类轩辕菜单整合版 进行以下修改

(1)Scene_Item里的update方法第一行插入
  1. @status_window.update
复制代码
(2)Scene_Item里的update_itemlist方法296行左右
  1. @itemlist_window.index = 0
复制代码
改为
  1. @itemlist_window.index = -1
复制代码
(3)Window_ItemList里的initialize方法
  1. self.index = 0
复制代码
改为
  1. self.index = -1
复制代码
# 其实(2)(3)不改也可以,只不过改了以后看着更爽- -

要求三:

战斗换人 进行以下修改:
把update_phase4_step6(约456行)整个方法删掉。

要求四:

在Main前插入以下脚本
  1. #==============================================================================
  2. # ■ 仿轩辕剑式的菜单简单换人脚本 BY orzzgg
  3. #==============================================================================
  4. # ■ Scene_Menu
  5. #------------------------------------------------------------------------------
  6. #  处理菜单画面的类。
  7. #==============================================================================

  8. class Scene_Menu
  9.   
  10.   alias orzzgg_update_status update_status
  11.   def update_status
  12.    
  13.     if Input.trigger?(Input::B)
  14.       @change_actor1 = nil
  15.       @change_actor2 = nil
  16.     end
  17.    
  18.     if Input.trigger?(Input::RIGHT)
  19.       if @change_actor1.nil?
  20.         @change_actor1 = $game_party.actors[@status_window.index].clone
  21.         @change_id1 = @status_window.index
  22.         Audio.se_play("Audio/SE/"+"001-System01",80,100)
  23.       else
  24.         @change_actor2 = $game_party.actors[@status_window.index].clone
  25.         @change_id2 = @status_window.index
  26.         $game_party.actors[@change_id1] = @change_actor2.clone
  27.         $game_party.actors[@change_id2] = @change_actor1.clone
  28.         @change_actor1 = nil
  29.         @change_actor2 = nil
  30.         Audio.se_play("Audio/SE/"+"005-System05",80,100)
  31.         @status_window.refresh
  32.         @status_window1.refresh
  33.         $game_player.refresh
  34.       end
  35.       return
  36.     end
  37.    
  38.     orzzgg_update_status
  39.   end
  40. end
复制代码
用法:在菜单的“状态”栏里,分别在两个角色上按下“→”键就可以交换两个角色

评分

参与人数 1星屑 +45 收起 理由
无忧谷主幻 + 45 认可答案

查看全部评分

orzzgg 发表于 2015-3-29 20:47:15
无忧谷主幻 发表于 2015-3-29 20:08
如果只删    # 同伴中无人 HP 在 0 以上
    for actor in @actors2
      if actor.hp > 0

不会直接结束的,因为update_phase4_step6方法会先判断。
update_phase4_step6在最初(1L)的工程里有,在 战斗换人 的最下面,只是3L的修改中删掉了。

点评

ok,明白了  发表于 2015-3-29 21:19
orzzgg 发表于 2015-3-29 14:54:29
本帖最后由 orzzgg 于 2015-3-29 15:36 编辑
无忧谷主幻 发表于 2015-3-29 14:52
多谢,大部分问题已经解决,不过却发现一个新问题
即:当战斗人员全部死亡却存在待机人员的场合,游戏会 ...


1、需要呼出换人画面则进行以下修改:
在战斗换人 中删掉
  1.     # 同伴中无人 HP 在 0 以上
  2.     for actor in @actors2
  3.       if actor.hp > 0
  4.         return false
  5.       end
  6.     end
复制代码
战斗换人 再加上update_phase4_step6方法,并把
  1. if target.is_a?(Game_Actor) and target.dead? and
  2.          !$game_party.other_actors.all?{|actor|actor.dead?}
复制代码
改为
  1. if target.is_a?(Game_Actor) and target.dead? and
  2.          !$game_party.other_actors.all?{|actor|actor.dead?} and $game_party.all_dead?
复制代码
2、抱歉没有注意到这个问题,修改方案如下:
在我的换人脚本33行左右
  1. @status_window1.refresh
复制代码
后再加上一行
  1. $game_player.refresh
复制代码

点评

嗯,如果不麻烦的话,还是换人比较好(仿仙4)。另外好快,还没编辑完呢。。。  发表于 2015-3-29 15:08
英顺的马甲 发表于 2015-3-29 02:06:42
1. 菜单脚本不兼容
2. 需待鉴定
3. 没看懂你的要求
4. 一,用列队脚本,二,用事件让角色离开后再加入

点评

3错别字,已经修改。话说能找到其他可以兼容的脚本也可以  发表于 2015-3-29 10:31
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-23 07:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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