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

Project1

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

[有事请教] 帮忙看看这个脚本什么问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1276
在线时间
821 小时
注册时间
2013-8-3
帖子
458
跳转到指定楼层
1
发表于 2024-12-2 22:58:12 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
200星屑
原脚本改了一下状态栏出现两个问题:
1.整队后数据重叠
2.角色状态栏显示变成阶梯往下跑了
请大佬帮忙修改
RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Window_MenuStatus
  4. #------------------------------------------------------------------------------
  5. #  菜单画面中,显示队伍成员状态的窗口
  6. #==============================================================================
  7.  
  8. class Window_MenuStatus < Window_Selectable
  9.   #--------------------------------------------------------------------------
  10.   # ● 定义实例变量
  11.   #--------------------------------------------------------------------------
  12.   attr_reader   :pending_index            # 保留位置(整队用)
  13.   #--------------------------------------------------------------------------
  14.   # ● 初始化对象
  15.   #--------------------------------------------------------------------------
  16.   def initialize(x, y)
  17.     super(x-160, y+300, window_width, window_height)
  18.     @pending_index = -1
  19.     refresh
  20.   end
  21.   #--------------------------------------------------------------------------
  22.   # ● 获取窗口的宽度
  23.   #--------------------------------------------------------------------------
  24.   def window_width
  25.     Graphics.width
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ● 获取窗口的高度
  29.   #--------------------------------------------------------------------------
  30.   def window_height
  31.     Graphics.height - 300
  32.   end
  33.   #--------------------------------------------------------------------------
  34.   # ● 获取列数
  35.   #--------------------------------------------------------------------------
  36.   def col_max
  37.     return 4.2
  38.   end
  39.   #--------------------------------------------------------------------------
  40.   # ● 获取项目数
  41.   #--------------------------------------------------------------------------
  42.   def item_max
  43.     $game_party.members.size
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # ● 获取项目的高度
  47.   #--------------------------------------------------------------------------
  48.   def item_height
  49.     (height - standard_padding * 2) / 4
  50.   end
  51.   def draw_current_and_max_values(x, y, width, current, max, color1, color2)
  52.     change_color(color1)
  53.     xr = x + width
  54.     if width < 96
  55.       draw_text(xr - 40, y, 42, line_height, current, 2)
  56.     else
  57.       draw_text(xr - 92, y, 42, line_height, current, 2)
  58.       change_color(color2)
  59.       draw_text(xr - 52, y, 12, line_height, "/", 2)
  60.       draw_text(xr - 42, y, 42, line_height, max, 2)
  61.     end
  62.   end
  63.   #--------------------------------------------------------------------------
  64.   # ● 绘制 HP
  65.   #--------------------------------------------------------------------------
  66.   def draw_actor_hp(actor, x, y, width = 100)
  67.     #draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
  68.     change_color(normal_color)
  69.     draw_text(x, y-2, 30, line_height, Vocab::hp_a)
  70.     draw_current_and_max_values(x+15, y-2, width, actor.hp, actor.mhp,
  71.       hp_color(actor), normal_color)
  72.     draw_text(x, y-15, 30, line_height, "—")
  73.     draw_text(x+20, y-15, 30, line_height, "—")
  74.     draw_text(x+40, y-15, 30, line_height, "—")
  75.     draw_text(x+60, y-15, 30, line_height, "—")
  76.     draw_text(x+80, y-15, 30, line_height, "—")
  77.     draw_text(x+100, y-15, 30, line_height, "—")
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # ● 绘制 MP
  81.   #--------------------------------------------------------------------------
  82.   def draw_actor_mp(actor, x, y, width = 100)
  83.    # draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
  84.     change_color(normal_color)
  85.     draw_text(x, y-2, 30, line_height, Vocab::mp_a)
  86.     draw_current_and_max_values(x+15, y-2, width, actor.mp, actor.mmp,
  87.       hp_color(actor), normal_color)
  88.   end
  89.  
  90.   def draw_actor_simple_status(actor, x, y)
  91.     contents.font.size = 20
  92.     draw_actor_name(actor, x, y-15)
  93.     draw_actor_icons(actor, x, y + 50)
  94.     draw_actor_level(actor, x+60, y+55)
  95.    # draw_actor_class(actor, x, y)
  96.     draw_actor_hp(actor, x, y + 10)
  97.     draw_actor_mp(actor, x, y + 30)
  98.   end
  99.   #--------------------------------------------------------------------------
  100.   def draw_item(index)
  101.     actor = $game_party.members[index]
  102.     enabled = $game_party.battle_members.include?(actor)
  103.     rect = item_rect(index)
  104.     draw_item_background(index)
  105.    # draw_actor_face(actor, rect.x + 1, rect.y + 1, enabled)
  106.     draw_actor_simple_status(actor, rect.x , rect.y + line_height / 2)
  107.   end
  108.   #--------------------------------------------------------------------------
  109.   # ● 绘制项目的背景
  110.   #--------------------------------------------------------------------------
  111.   def draw_item_background(index)
  112.     if index == @pending_index
  113.       contents.fill_rect(item_rect(index), pending_color)
  114.     end
  115.   end
  116.   #--------------------------------------------------------------------------
  117.   # ● 按下确定键时的处理
  118.   #--------------------------------------------------------------------------
  119.   def process_ok
  120.     super
  121.     $game_party.menu_actor = $game_party.members[index]
  122.   end
  123.   #--------------------------------------------------------------------------
  124.   # ● 返回上一个选择的位置
  125.   #--------------------------------------------------------------------------
  126.   def select_last
  127.     select($game_party.menu_actor.index || 0)
  128.   end
  129.   class Window_MenuStatus < Window_Selectable
  130.   attr_accessor :on_formation
  131.   #--------------------------------------------------------------------------
  132.   # ● 按下确定键时的处理
  133.   #--------------------------------------------------------------------------
  134.   alias t_151116_process_ok process_ok
  135.   def process_ok
  136. #~     if @on_formation && self.index == 0
  137.     if @on_formation && actor_now.id == 1
  138.       Sound.play_buzzer
  139.       return
  140.     end
  141.     t_151116_process_ok
  142.   end
  143.  
  144.   def actor_now
  145.     return $game_party.members[self.index]
  146.   end
  147. end
  148.   #--------------------------------------------------------------------------
  149.   # ● 设置保留位置(整队用)
  150.   #--------------------------------------------------------------------------
  151.   def pending_index=(index)
  152.     last_pending_index = @pending_index
  153.     @pending_index = index
  154.     redraw_item(@pending_index)
  155.     redraw_item(last_pending_index)
  156.   end
  157.  
  158. end

QQ截图20241202225717.png (62.8 KB, 下载次数: 12)

QQ截图20241202225717.png

最佳答案

查看完整内容

#encoding:utf-8 #============================================================================== # ■ Window_MenuStatus #------------------------------------------------------------------------------ #  菜单画面中,显示队伍成员状态的窗口 #============================================================================== class Window_MenuStatus < Window_Selectable #--------------------------------- ...

【同人游戏】勇者斗恶龙TG
欢迎加入游戏测试群333599798
如有需私聊请加QQ:516425000

Lv2.观梦者

梦石
0
星屑
909
在线时间
931 小时
注册时间
2011-5-11
帖子
440
2
发表于 2024-12-2 22:58:13 | 只看该作者
RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Window_MenuStatus
  4. #------------------------------------------------------------------------------
  5. #  菜单画面中,显示队伍成员状态的窗口
  6. #==============================================================================
  7.  
  8. class Window_MenuStatus < Window_Selectable
  9.   #--------------------------------------------------------------------------
  10.   # ● 定义实例变量
  11.   #--------------------------------------------------------------------------
  12.   attr_reader   :pending_index            # 保留位置(整队用)
  13.   #--------------------------------------------------------------------------
  14.   # ◆ 初始化对象
  15.   #--------------------------------------------------------------------------
  16.   def initialize(x, y)
  17.     super(0, y+fitting_height(7), window_width, window_height)
  18.     @pending_index = -1
  19.     refresh
  20.   end
  21.   #--------------------------------------------------------------------------
  22.   # ● 获取窗口的宽度
  23.   #--------------------------------------------------------------------------
  24.   def window_width
  25.     Graphics.width
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ◆ 获取窗口的高度
  29.   #--------------------------------------------------------------------------
  30.   def window_height
  31.      return fitting_height(5)
  32.    end
  33.     #--------------------------------------------------------------------------
  34.   # ◆ 获取列间距的宽度
  35.   #--------------------------------------------------------------------------
  36.   def spacing
  37.     return 10
  38.   end
  39.   #--------------------------------------------------------------------------
  40.   # ◆获取列数
  41.   #--------------------------------------------------------------------------
  42.   def col_max
  43.     return 4
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # ● 获取项目数
  47.   #--------------------------------------------------------------------------
  48.   def item_max
  49.     $game_party.members.size
  50.   end
  51.   #--------------------------------------------------------------------------
  52.   #◆ 获取项目的高度
  53.   #--------------------------------------------------------------------------
  54.   def item_height   
  55.        return  line_height*5
  56.      end
  57.  
  58. #--------------------------------------------------------------------------
  59. #◆文字显示部分
  60. #--------------------------------------------------------------------------
  61.   def draw_actor_simple_status(actor, x, y)
  62.     contents.font.size = 20
  63.     draw_actor_name(actor, x, y)
  64.     draw_actor_class(actor, x, y+line_height)   
  65.     draw_actor_level(actor, x+item_width/2, y+line_height)
  66.     draw_actor_icons(actor, x, y +line_height*4)
  67.     draw_actor_hp(actor, x, y +line_height*2,item_width)
  68.     draw_actor_mp(actor, x, y +line_height*3,item_width)
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   #◆
  72.   #--------------------------------------------------------------------------
  73.   def draw_item(index)
  74.     actor = $game_party.members[index]
  75.     enabled = $game_party.battle_members.include?(actor)
  76.     rect = item_rect(index)
  77.     draw_item_background(index)
  78.    # draw_actor_face(actor, rect.x + 1, rect.y + 1, enabled)
  79.     draw_actor_simple_status(actor, rect.x , rect.y)
  80.   end
  81.   #--------------------------------------------------------------------------
  82.   # ● 绘制项目的背景
  83.   #--------------------------------------------------------------------------
  84.   def draw_item_background(index)
  85.     if index == @pending_index
  86.       contents.fill_rect(item_rect(index), pending_color)
  87.     end
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ● 按下确定键时的处理
  91.   #--------------------------------------------------------------------------
  92.   def process_ok
  93.     super
  94.     $game_party.menu_actor = $game_party.members[index]
  95.   end
  96.   #--------------------------------------------------------------------------
  97.   # ● 返回上一个选择的位置
  98.   #--------------------------------------------------------------------------
  99.   def select_last
  100.     select($game_party.menu_actor.index || 0)
  101.   end
  102.  
  103.  
  104.  
  105.   class Window_MenuStatus < Window_Selectable
  106.   attr_accessor :on_formation
  107.   #--------------------------------------------------------------------------
  108.   # ● 按下确定键时的处理
  109.   #--------------------------------------------------------------------------
  110.   alias t_151116_process_ok process_ok
  111.   def process_ok
  112. #~     if @on_formation && self.index == 0
  113.     if @on_formation && actor_now.id == 1
  114.       Sound.play_buzzer
  115.       return
  116.     end
  117.     t_151116_process_ok
  118.   end
  119.  
  120.   def actor_now
  121.     return $game_party.members[self.index]
  122.   end
  123. end
  124.   #--------------------------------------------------------------------------
  125.   # ● 设置保留位置(整队用)
  126.   #--------------------------------------------------------------------------
  127.   def pending_index=(index)
  128.     last_pending_index = @pending_index
  129.     @pending_index = index
  130.     redraw_item(@pending_index)
  131.     redraw_item(last_pending_index)
  132.   end
  133.  
  134. end


可以查看<# ◆>标记段与你提供的脚本对比自行修改
http://rpg.blue/static/image/smiley/yct/A059.gif中国字认识都不到一半,哪的心情学英语呀!
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
909
在线时间
931 小时
注册时间
2011-5-11
帖子
440
3
发表于 2024-12-3 09:33:30 | 只看该作者
  1. #--------------------------------------------------------------------------
  2.   # ● 获取列数
  3.   #--------------------------------------------------------------------------
  4.   def col_max
  5.     return 4  # ● 获取列数取整数就可以横向对齐了
  6.   end
  7. #--------------------------------------------------------------------------
  8.   # ● 获取项目的高度
  9.   #--------------------------------------------------------------------------
  10.   def item_height   
  11.        return  line_height*4
  12.   end
  13. #--------------------------------------------------------------------------
  14.   # ● 获取窗口的高度
  15.   #--------------------------------------------------------------------------
  16.   def window_height
  17.      return fitting_height(4)
  18.   end
复制代码


不知道你要什么样的效果。

点评

今晚回去再试试整队后正不正常  发表于 2024-12-3 12:12
http://rpg.blue/static/image/smiley/yct/A059.gif中国字认识都不到一半,哪的心情学英语呀!
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1276
在线时间
821 小时
注册时间
2013-8-3
帖子
458
4
 楼主| 发表于 2024-12-3 12:10:19 | 只看该作者
345912390 发表于 2024-12-3 09:33
不知道你要什么样的效果。

我用4.2是因为第四个角色hp太靠右显示遮住了,感觉四个角色窗口分布不均匀,能调么?

【同人游戏】勇者斗恶龙TG
欢迎加入游戏测试群333599798
如有需私聊请加QQ:516425000
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-22 21:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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