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

Project1

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

[已经解决] 【VIP悬赏】关于这套战斗换人脚本的问题

[复制链接]

Lv4.逐梦者

素材区好人

梦石
3
星屑
6802
在线时间
3462 小时
注册时间
2011-7-21
帖子
2254

极短24参与极短23参与极短22参与极短21参与

跳转到指定楼层
1
发表于 2015-3-28 23:02:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
2星屑
本帖最后由 无忧谷主幻 于 2015-3-29 10:29 编辑

工程: 大雄的剑之物语——奇迹的纹章.zip (3.05 MB, 下载次数: 80)

1,队员最多只能显示4名,多余的角色无法显示,应该如何才能翻页?

2,作用为单体的物品只能给第一个人使用,该怎样解决?

3,如何即使在一个队员死后,也不会自动弹出更换队员的窗口?

4,如何更改队列?

最佳答案

查看完整内容

(四个要求已全部回答) 附上Scripts文件 要求一: 1、Window_MenuStatus New! 进行以下修改: (1)initialize方法里的改为(2)update_cursor_rect整个方法改为2、Window_MenuEquip New! 进行以下修改 (1)initialize方法里的改为(2)update_cursor_rect整个方法改为要求二: 复杂物品分类轩辕菜单整合版 进行以下修改 (1)Scene_Item里的update方法第一行插入(2)Scene_Item里的update_itemlist方法296行左右改为(3)Window_ItemLi ...

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2014-10-24
帖子
5
来自 2楼
发表于 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 认可答案

查看全部评分

回复

使用道具 举报

Lv1.梦旅人

路人党员

梦石
0
星屑
51
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
3
发表于 2015-3-29 02:06:42 | 只看该作者
1. 菜单脚本不兼容
2. 需待鉴定
3. 没看懂你的要求
4. 一,用列队脚本,二,用事件让角色离开后再加入

点评

3错别字,已经修改。话说能找到其他可以兼容的脚本也可以  发表于 2015-3-29 10:31
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复

使用道具 举报

Lv4.逐梦者

素材区好人

梦石
3
星屑
6802
在线时间
3462 小时
注册时间
2011-7-21
帖子
2254

极短24参与极短23参与极短22参与极短21参与

4
 楼主| 发表于 2015-3-29 14:52:59 | 只看该作者
本帖最后由 无忧谷主幻 于 2015-3-29 14:59 编辑
orzzgg 发表于 2015-3-29 11:59
(四个要求已全部回答)
附上Scripts文件


多谢,大部分问题已经解决,不过却发现2个新问题
1,当战斗人员全部死亡却存在待机人员的场合,游戏会无限循环下去

2,在状态栏中更换完领队后,在地图上显示的还是原领队(只有在新角色加入时才会更新)
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2014-10-24
帖子
5
5
发表于 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
回复

使用道具 举报

Lv4.逐梦者

素材区好人

梦石
3
星屑
6802
在线时间
3462 小时
注册时间
2011-7-21
帖子
2254

极短24参与极短23参与极短22参与极短21参与

6
 楼主| 发表于 2015-3-29 20:08:19 | 只看该作者
本帖最后由 无忧谷主幻 于 2015-3-29 20:10 编辑
orzzgg 发表于 2015-3-29 14:54
1、需要呼出换人画面则进行以下修改:
在战斗换人 中删掉战斗换人 再加上update_phase4_step6方法,并把 ...


如果只删
RUBY 代码复制
  1. # 同伴中无人 HP 在 0 以上
  2.     for actor in @actors2
  3.       if actor.hp > 0
  4.         return false
  5.       end
  6.     end
则是出战角色全部死亡时,游戏结束吧



另外update_phase4_step6的方法说的是什么?至于

我并没有找到
RUBY 代码复制
  1. if target.is_a?(Game_Actor) and target.dead? and
  2.          !$game_party.other_actors.all?{|actor|actor.dead?}

这段脚本,难道刚刚已经删除了? 大雄的剑之物语——奇迹的纹章.zip (3.06 MB, 下载次数: 70)

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2014-10-24
帖子
5
7
发表于 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
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-2 12:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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