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

Project1

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

[已经解决] 关于人物选择窗口的脚本问题?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
130 小时
注册时间
2016-1-14
帖子
131
跳转到指定楼层
1
发表于 2016-5-2 14:15:30 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 狼人弟弟 于 2016-5-2 14:35 编辑

我在游戏的物品页面和技能页面设置了一个人物选择窗口(共用的),脚本名是“Window_MenuTarget”。(好吧,这个脚本是从别的游戏里提取过来的)
然后,我发现一个问题: 当我的队伍拥有4人以上时,就会出现如下面图片一样显示出“4个半”人。


本来吧,我以为通过修改这个窗口的高度把剩下的半个人去掉,但结果却变成了这样(5个人都挤成一团):


所以百试不得其解之下,我也只能厚颜无耻的上来求高手帮帮忙了。

那么,我的问题就是:   
该怎么把它设定为像下面这张图一样

这是通过安插在“Scene_ItemBase”的脚本获得的效果,但它只能编辑物品页面的人物选择窗口,却不能控制技能页面的人物窗口,请问该怎么修改呢?
安插在“Scene_ItemBase”的脚本如下:
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 生成角色窗口【物品栏里的小头像使用者界面】
  3.   #--------------------------------------------------------------------------
  4.   def create_actor_window
  5.     @actor_window = Window_MenuTarget.new#Window_MenuActor.new
  6.     if SceneManager.scene.is_a?(Scene_Item)
  7.     #   @actor_window.y = 76          # 7
  8.        @actor_window.y -= 7          # 7
  9.        @actor_window.x = 4           # 4
  10.        @actor_window.height = 320  #342
  11.      end
  12.     @actor_window.set_handler(:ok,     method(:on_actor_ok))
  13.     @actor_window.set_handler(:cancel, method(:on_actor_cancel))
  14.     @actor_window.opacity = 255 #255
  15.   end




“Window_MenuTarget”的脚本如下:
RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Window_MenuStatus
  4. #------------------------------------------------------------------------------
  5. #  物品/技能画面中,显示队伍成员状态的窗口
  6. #==============================================================================
  7.  
  8. class Window_MenuTarget < Window_Selectable
  9.   #--------------------------------------------------------------------------
  10.   # ● 初始化对象 #    物品/技能画面的人物小头像区域
  11.   #--------------------------------------------------------------------------
  12.   def initialize
  13.     super(4 , 82, window_width, window_height - 100 )
  14.     self.visible = true #false   #判断是否直接显示
  15.     refresh
  16.   end
  17.  
  18.   #--------------------------------------------------------------------------
  19.   # ● 获取窗口的宽度
  20.   #--------------------------------------------------------------------------
  21.   def window_width
  22.       150
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 获取窗口的高度
  26.   #--------------------------------------------------------------------------
  27.   def window_height
  28.     390  # Graphics.height  #
  29.     end
  30.   #--------------------------------------------------------------------------
  31.   # ● 获取项目数
  32.   #--------------------------------------------------------------------------
  33.   def item_max
  34.     $game_party.members.size
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 获取列数
  38.   #--------------------------------------------------------------------------
  39.   def col_max
  40.     return 1
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 获取项目的高度
  44.   #--------------------------------------------------------------------------
  45.   def item_height
  46.     (height - standard_padding * 2) / 4
  47.   end
  48.   #--------------------------------------------------------------------------
  49.   # ● 绘制项目
  50.   #--------------------------------------------------------------------------
  51.   def draw_item(index)
  52.     actor = $game_party.members[index]
  53.     enabled = $game_party.battle_members.include?(actor)
  54.     rect = item_rect(index)
  55.     dx = 96
  56.     m = 0.8
  57.     draw_actor_name(actor, rect.x + 32, rect.y * m + 8)
  58.     draw_actor_megaface(actor, rect.x + 2, rect.y * m + 8)
  59.     draw_actor_icons(actor, rect.x + 100, rect.y * m + 6)   #中毒等状态的图标
  60.     draw_actor_hp(actor, rect.x + 1 , rect.y * m + 28)#+ line_height / 2 + line_height )
  61.     draw_actor_mp(actor, rect.x + 1 , rect.y * m + 48)#+ line_height / 2 + line_height  + 16)
  62.   #  draw_actor_tp(actor, rect.x + 1 , rect.y * m + 56)#+ line_height / 2 + line_height  + 32)
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● 按下确定键时的处理
  66.   #--------------------------------------------------------------------------
  67.   def process_ok
  68.     $game_party.target_actor = $game_party.members[index] unless @cursor_all
  69.     call_ok_handler
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● 返回上一个选择的位置
  73.   #--------------------------------------------------------------------------
  74.   def select_last
  75.     select($game_party.menu_actor.index || 0)
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ● 设置光标的选择位置/范围
  79.   #--------------------------------------------------------------------------
  80.   def select_for_item(item)
  81.     @item = item
  82.     @cursor_fix = item.for_user?
  83.     @cursor_all = item.for_all?
  84.     if @cursor_fix
  85.       select($game_party.menu_actor.index)
  86.     elsif @cursor_all
  87.       select(0)
  88.     else
  89.       select_last
  90.     end
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 定义光标矩形
  94.   #--------------------------------------------------------------------------
  95.   def update_cursor
  96.     if @index < 0
  97.       self.cursor_rect.empty
  98.     else
  99.       ensure_cursor_visible
  100.       self.cursor_rect.set(0, @index * 72, 126, 77)   #(0, @index * 78 + 4, 126, 77)
  101.     end
  102.     if @item != nil
  103.     if @item.for_all?
  104.         self.cursor_rect.set(0, 0, 126, item_max * 78 )
  105.     end
  106.     end
  107.   end
  108. end

未命名.PNG (37.44 KB, 下载次数: 26)

未命名.PNG

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21589
在线时间
9407 小时
注册时间
2012-6-19
帖子
7117

开拓者短篇九导演组冠军

2
发表于 2016-5-2 14:45:06 | 只看该作者
34 行,改成 4

点评

请问能不能在“Scene_ItemBase”的脚本做修改,例如添加一个在技能页面的窗口设定,和物品页面的一样?  发表于 2016-5-2 15:01
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
130 小时
注册时间
2016-1-14
帖子
131
3
 楼主| 发表于 2016-5-2 14:53:03 | 只看该作者
本帖最后由 狼人弟弟 于 2016-5-2 15:04 编辑
喵呜喵5 发表于 2016-5-2 14:45
34 行,改成 4


修改过,但那样如果只有三个人的时候,会出现错误。
我的主角只有一人,所以一开始的时候也只有一个角色而已。

我的设想是:
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 生成角色窗口【物品栏里的小头像使用者界面】
  3.   #--------------------------------------------------------------------------
  4.   def create_actor_window
  5.     @actor_window = Window_MenuTarget.new#Window_MenuActor.new
  6.     if SceneManager.scene.is_a?(Scene_Item)
  7.     #   @actor_window.y = 76          # 7
  8.        @actor_window.y -= 7          # 7
  9.        @actor_window.x = 4           # 4
  10.        @actor_window.height = 320  #342
  11.      end
  12.     if SceneManager.scene.is_a?(Scene_skill)
  13.     #   @actor_window.y = 76          # 7
  14.        @actor_window.y -= 7          # 7
  15.        @actor_window.x = 4           # 4
  16.        @actor_window.height = 320  #342
  17.      end
  18.     @actor_window.set_handler(:ok,     method(:on_actor_ok))
  19.     @actor_window.set_handler(:cancel, method(:on_actor_cancel))
  20.     @actor_window.opacity = 255 #255
  21.   end


但是这样的格式是错误的,所以请问能怎么修改呢?

点评

@喵呜喵5,大神可以帮帮忙吗?  发表于 2016-5-2 16:46
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
62 小时
注册时间
2016-5-2
帖子
177
4
发表于 2016-5-2 17:21:07 | 只看该作者
你好!

  或许增设一个判断即可,但是在下也不清楚【判断队伍人员数目】的事件脚本,因此只能这么写了:

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 获取项目数
  3.   #--------------------------------------------------------------------------
  4.   def item_max
  5.     if XXOO(队伍中有4人)
  6.    then
  7.    4
  8.     else
  9. $game_party.members.size
  10.     end
  11.   end






点评

嗯,高兴就好。没有试过,比试过之后失败了要好很多  发表于 2016-5-2 19:44
有时候也想的,但这事情一开始就不大想停下来,还真有点不撞南墙的味道  发表于 2016-5-2 19:42
恕在下直言,在下觉得阁下的工程,企划太大,应该做个再小很多的游戏  发表于 2016-5-2 18:15
不要客气,在下也没解决这个问题,还要阁下自己研究脚本去。抱歉,俗事缠身,不上详图了  发表于 2016-5-2 18:14
非常感谢您的答案!我会去试试的。  发表于 2016-5-2 18:12
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-6 11:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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