查看: 2328|回复: 3

[已经解决] 关于vocab,战斗结束界面信息显示相关的问题求助

[复制链接]
梦石
0
星屑
218
在线时间
184 小时
注册时间
2011-4-16
回帖
49
发表于 2014-10-29 02:11:35 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 swbsl 于 2014-10-29 02:17 编辑

图1

图1

图2

图2

图3

图3

图4

图4


如图所示。 图一图二的“等级”显示相关已经修改好了。
图三和图四的,战斗结算“等级”提升所显示的字符串,LevelUp="%s的%s提升到了 %s!"  这句,不知道该怎么把自己的代码套进去了。最后一次出现的 %s 取的值是在什么位置定义的?
level_a 这项,我翻看了全部脚本,就只有 Window_Base 类 460行左右 “绘制等级” 的 draw_actor_level()函数   有调用到。
draw_text(x, y, 32, line_height, Vocab::level_a) 但是不太明白,貌似没用?


再次无耻的求大厨指点,千言万语都抵不过“感谢”二字!


感谢!!!


PS:  "益己 1"  字符串的大小在哪里定义?
汉化工作不定期更新中...
梦石
0
星屑
218
在线时间
184 小时
注册时间
2011-4-16
回帖
49
 楼主| 发表于 2014-10-29 02:14:30 | 显示全部楼层
顺便贴上脚本。。。如果,我是说如果。如果有人能用的到,就拿去吧。
  1. class Window_Base < Window  
  2.     #--------------------------------------------------------------------------
  3.   # ● 生成境界函数
  4.   #--------------------------------------------------------------------------
  5.   def lv_ch(level_jj)
  6.     jingjie = ["益己 ","互助 ","慈悲 ","忘我 ","超脱 ","神 "]
  7.     if level_jj > 0 && level_jj < 21
  8.       return jingjie[0]+level_jj.to_s
  9.     elsif level_jj > 20 && level_jj < 41
  10.       return jingjie[1]+(level_jj-20).to_s
  11.     elsif level_jj > 40 && level_jj < 61
  12.       return jingjie[2]+(level_jj-40).to_s
  13.     elsif level_jj > 60 && level_jj < 81
  14.       return jingjie[3]+(level_jj-60).to_s
  15.     elsif level_jj > 80 && level_jj <= 99
  16.       return jingjie[4]+(level_jj-80).to_s
  17.     else
  18.       return jingjie[5]
  19.       end
  20.     end
  21.   #--------------------------------------------------------------------------
  22.   # ● 绘制等级
  23.   #--------------------------------------------------------------------------
  24.   def draw_actor_level(actor, x, y)
  25.     change_color(system_color)
  26.     draw_text(x, y, 32, line_height, Vocab::level_a)#level_a:资质
  27.     change_color(normal_color)
  28.     draw_text(x + 32, y, 38, line_height, lv_ch(actor.level), 2)
  29.   end
  30. end
复制代码
汉化工作不定期更新中...
回复

使用道具 举报

无限の剣制

梦石
0
星屑
10450
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2014-10-29 09:23:26 | 显示全部楼层
本帖最后由 VIPArcher 于 2014-10-29 10:23 编辑

这个是sprintf 格式
具体内容可以参考F1文档附录的最后一篇。看了你就懂了。
然后你只要改一改脚本就可以了

  1. 还有"益己 1"  字符串变小是因为宽度不够,被压缩了,
  2. draw_text(x, y, 宽度, line_height, Vocab::level_a) #把宽度修改到合适的值就可以了
  3. class Game_Actor < Game_Battler
  4.   #--------------------------------------------------------------------------
  5.   # ● 生成境界函数
  6.   #--------------------------------------------------------------------------
  7.   def lv_ch(level_jj)
  8.     jingjie = ["益己 ","互助 ","慈悲 ","忘我 ","超脱 ","神 "]
  9.     if level_jj > 0 && level_jj < 21
  10.       return jingjie[0]+level_jj.to_s
  11.     elsif level_jj > 20 && level_jj < 41
  12.       return jingjie[1]+(level_jj-20).to_s
  13.     elsif level_jj > 40 && level_jj < 61
  14.       return jingjie[2]+(level_jj-40).to_s
  15.     elsif level_jj > 60 && level_jj < 81
  16.       return jingjie[3]+(level_jj-60).to_s
  17.     elsif level_jj > 80 && level_jj <= 99
  18.       return jingjie[4]+(level_jj-80).to_s
  19.     else
  20.       return jingjie[5]
  21.     end
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 显示等级上升的信息
  25.   #     new_skills : 学会的新技能的数组
  26.   #--------------------------------------------------------------------------
  27.   def display_level_up(new_skills)
  28.     $game_message.new_page
  29.     $game_message.add(sprintf(Vocab::LevelUp, @name, Vocab::level,lv_ch(@level)))
  30.     new_skills.each do |skill|
  31.       $game_message.add(sprintf(Vocab::ObtainSkill, skill.name))
  32.     end
  33.   end
  34. end
复制代码
其实你可以这样来定义

  1. module Vocab
  2.   LevelUp         = "%s的%s提升到了%s!"
  3.   #--------------------------------------------------------------------------
  4.   # ● 生成境界函数
  5.   #--------------------------------------------------------------------------
  6.   def self.lv_ch(level_jj)
  7.     case level_jj
  8.     when 0..20
  9.       return "益己 #{level_jj}"
  10.     when 21..40
  11.       return "互助 #{level_jj - 20}"
  12.     when 41..60
  13.       return "慈悲 #{level_jj - 40}"
  14.     when 61..80
  15.       return "忘我 #{level_jj - 60}"
  16.     when 81..100
  17.       return "忘我 #{level_jj - 80}"
  18.     else
  19.       return "神"
  20.     end
  21.   end
  22. end
  23. class Game_Actor < Game_Battler
  24.   #--------------------------------------------------------------------------
  25.   # ● 显示等级上升的信息
  26.   #     new_skills : 学会的新技能的数组
  27.   #--------------------------------------------------------------------------
  28.   def display_level_up(new_skills)
  29.     $game_message.new_page
  30.     $game_message.add(sprintf(Vocab::LevelUp, @name, Vocab::level,Vocab.lv_ch(@level)))
  31.     new_skills.each do |skill|
  32.       $game_message.add(sprintf(Vocab::ObtainSkill, skill.name))
  33.     end
  34.   end
  35. end
  36. class Window_Base < Window
  37.   #--------------------------------------------------------------------------
  38.   # ● 绘制等级
  39.   #--------------------------------------------------------------------------
  40.   def draw_actor_level(actor, x, y)
  41.     change_color(system_color)
  42.     draw_text(x, y, 32, line_height, Vocab::level_a)#level_a:资质
  43.     change_color(normal_color)
  44.     draw_text(x + 32, y, 38, line_height, Vocab.lv_ch(actor.level), 2)
  45.   end
  46. end
复制代码
以上未测试

点评

第二种代码编写格式相较我之前那个要工整得多,属编程之美学范畴。收下了。  发表于 2014-10-29 10:43

评分

参与人数 1梦石 +2 收起 理由
taroxd + 2 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
218
在线时间
184 小时
注册时间
2011-4-16
回帖
49
 楼主| 发表于 2014-10-29 10:06:11 | 显示全部楼层
VIPArcher 发表于 2014-10-29 09:23
这个是sprintf 格式
具体内容可以参考F1文档附录的最后一篇。看了你就懂了。
然后你只要改一改脚本就可以了 ...

代码测试无异常,已达到需求效果。
多谢版主的指点!   这贴可以结了。

点评

明白。 之前学过一点点java的皮毛,所以就倔着脾气想试试不去学ruby的知识能搞懂多少。。。 再次感谢!  发表于 2014-10-29 10:37
学脚本的话多看看F1。  发表于 2014-10-29 10:08
汉化工作不定期更新中...
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部