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

Project1

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

[已经解决] 等级的显示

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2150
在线时间
1010 小时
注册时间
2015-10-17
帖子
1283
跳转到指定楼层
1
发表于 2019-4-18 20:00:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 fjm 于 2019-4-19 20:16 编辑

下面图片,实际技能等级LV.  0,让它显示LV  1       该怎么改
感觉可以用0+1,后面+1的方法实现,但不知道应该加在哪里
自己试了半天也没成功,知道的告诉下,谢谢


RUBY 代码复制
  1. #encoding:utf-8
  2. #===========================================================================
  3. #          RMVA 豪华型技能加点|技能被动效果:      v1.05
  4. #                       By希忆 66rpg.com
  5. #                                                 转载或修改请保留此类信息
  6. #===========================================================================
  7. # 所有和窗体有关的修改
  8. #
  9. # 大概没问题吧
  10. #===========================================================================
  11.  
  12.  
  13. class Window_BattleSkill < Window_SkillList
  14.  
  15.   def include?(item)
  16.     item && !item.passive && item.stype_id == @stype_id && @actor.has_skill?(item)
  17.   end
  18.  
  19. end
  20.  
  21. class Window_SkillList < Window_Selectable
  22.  
  23.   def include?(item)
  24.     item && item.stype_id == @stype_id && @actor.has_skill?(item)
  25.   end
  26.  
  27.   def draw_item_name(item, x, y, enabled = true, width = 172)
  28.     return unless item
  29.     draw_icon(item.icon_index, x, y, enabled)
  30.     change_color(normal_color, enabled)
  31.     draw_text(x + 24, y, width, line_height, item.name + "|Lv." + @actor.skill_level(item.id).to_s)
  32.   end
  33.  
  34. end
  35.  
  36. class Window_AllSkill < Window_Selectable
  37.  
  38.   def initialize(x, y, width, height)
  39.     super
  40.     @actor = nil
  41.     @stype_id = 0
  42.     @data = []
  43.   end
  44.  
  45.   def actor=(actor)
  46.     return if @actor == actor
  47.     @actor = actor
  48.     refresh
  49.     self.oy = 0
  50.   end
  51.  
  52.   def stype_id=(stype_id)
  53.     return if @stype_id == stype_id
  54.     @stype_id = stype_id
  55.     refresh
  56.     self.oy = 0
  57.   end
  58.  
  59.   def col_max
  60.     return 1
  61.   end
  62.  
  63.   def item_max
  64.     @data ? @data.size : 1
  65.   end
  66.  
  67.   def item
  68.     @data && index >= 0 ? @data[index] : nil
  69.   end
  70.  
  71.   def current_item_enabled?
  72.     enable?(@data[index])
  73.   end
  74.  
  75.   def include?(item)
  76.     item && item.stype_id == @stype_id
  77.   end
  78.  
  79.   def enable?(item)
  80.     item != nil && @actor != nil && @actor.skill_can_levelup?(item)
  81.   end
  82.  
  83.   def make_item_list
  84.     @data = @actor ? @actor.skills.select {|skill| include?(skill) } : []
  85.   end
  86.  
  87.   def select_last
  88.     select(@data.index(@actor.last_skill.object) || 0)
  89.   end
  90.  
  91.   def draw_item(index)
  92.     skill = @data[index]
  93.     if skill
  94.       rect = item_rect(index)
  95.       rect.width -= 4
  96.       draw_skill_name(skill, rect.x, rect.y, enable?(skill))
  97.       draw_skill_level(rect, skill)
  98.     end
  99.   end
  100.  
  101.   def draw_skill_name(skill, x, y, enabled = true, width = 172)
  102.     return unless skill
  103.     draw_icon(skill.icon_index, x, y, enabled)
  104.     change_color(normal_color, enabled)
  105.     text = skill.name
  106.     text += "<MAX>" if @actor.skill_max_learn?(skill)
  107.     draw_text(x + 24, y, width, line_height, text)
  108.   end
  109.  
  110.   def draw_skill_level(rect, skill)
  111.     draw_text(rect, @actor.skill_basic_level(skill.id).to_s, 2)
  112.     change_color(system_color, enable?(skill))
  113.     draw_text(rect, "Lv.  ", 2)
  114.   end
  115.  
  116.   def update_help
  117.     @help_window.set_item(item)
  118.   end
  119.  
  120.   def refresh
  121.     make_item_list
  122.     create_contents
  123.     draw_all_items
  124.   end
  125. end
  126.  
  127. class Window_Base < Window
  128.  
  129. #~ draw_text_ex的增强,使其可以自动换行  原作者:叶子 修改:wyongcan
  130.   #--------------------------------------------------------------------------
  131.   # ● 绘制带有控制符的文本内容
  132.   #   如果传递了width参数的话,会自动换行
  133.   #--------------------------------------------------------------------------
  134.   def draw_text_ex(x, y, text, width = nil,textwidth = nil,normalfont = true)
  135.     reset_font_settings if normalfont == true
  136.     text = convert_escape_characters(text)
  137.     pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(text)}
  138.     if width != nil
  139.       pos[:height] = contents.font.size
  140.       pos[:width] = width
  141.       pos[:textwidth] = textwidth
  142.     end
  143.     process_character(text.slice!(0, 1), text, pos) until text.empty?
  144.   end
  145.   #--------------------------------------------------------------------------
  146.   # ● 文字的处理
  147.   #     c    : 文字
  148.   #     text : 绘制处理中的字符串缓存(字符串可能会被修改)
  149.   #     pos  : 绘制位置 {:x, :y, :new_x, :height}
  150.   #--------------------------------------------------------------------------
  151.   def process_character(c, text, pos)
  152.     case c
  153.     when "\r"   # 回车
  154.       return
  155.     when "\n"   # 换行
  156.       process_new_line(text, pos)
  157.     when "\f"   # 翻页
  158.       process_new_page(text, pos)
  159.     when "\e"   # 控制符
  160.       process_escape_character(obtain_escape_code(text), text, pos)
  161.     else        # 普通文字
  162.       pos[:textwidth] == nil ? text_width = text_size(c).width : text_width = pos[:textwidth]
  163.       if pos[:width] != nil && pos[:x] - pos[:new_x] + text_width > pos[:width]
  164.         process_new_line(text, pos)
  165.       end
  166.       process_normal_character(c, pos)
  167.     end
  168.   end
  169. end
  170.  
  171. class Window_SkillStatus < Window_Base
  172.  
  173.   def initialize(x, y)
  174.     super(x, y, window_width, fitting_height(4))
  175.     @actor = nil
  176.   end
  177.  
  178.   def window_width
  179.     Graphics.width - 160
  180.   end
  181.  
  182.   def actor=(actor)
  183.     return if @actor == actor
  184.     @actor = actor
  185.     refresh
  186.   end
  187.  
  188.   def draw_actor_sp(actor,x,y)
  189.     change_color(system_color)
  190.     draw_text(x, y, 200, line_height, "SP:")
  191.     change_color(normal_color)
  192.     draw_text(x+48, y, 200, line_height, actor.sp)
  193.   end
  194.  
  195.   def refresh
  196.     contents.clear
  197.     return unless @actor
  198.     draw_actor_face(@actor, 0, 0)
  199.     draw_actor_simple_status(@actor, 108, line_height / 2)
  200.     draw_actor_sp(@actor,108,64)
  201.   end
  202. end
  203.  
  204.  
  205.  
  206. class Window_AddHelp < Window_Base
  207.   def initialize(x, y, width, height)
  208.     super
  209.     @skill = nil
  210.     @actor = nil
  211.     refresh
  212.   end
  213.  
  214.   def set_item(skill)
  215.     return if @skill == skill
  216.     @skill = skill
  217.     refresh
  218.   end
  219.  
  220.   def actor=(actor)
  221.     return if @actor == actor
  222.     @actor = actor
  223.     refresh
  224.   end
  225.   def line_width
  226.     Graphics.width/2-standard_padding*2
  227.   end
  228.   def draw_skill_name(skill,x,y)
  229.     draw_icon(skill.icon_index, x, y)
  230.     change_color(normal_color)
  231.     draw_text(x+24, y, line_width, line_height, skill.name)
  232.     if skill.passive
  233.       draw_text(x, y, line_width, line_height, "被动技能",2)
  234.     else
  235.       change_color(mp_cost_color)
  236.       draw_text(x, y, line_width, line_height, "MP "+@actor.skill_mp_cost(skill).to_s,2)
  237.     end
  238.   end
  239.  
  240.   def draw_skill_level(skill,x,y)
  241.     change_color(system_color)
  242.     draw_text(x, y, line_width, line_height,"Level ")
  243.     text =@actor.skill_basic_level(skill.id).to_s + "/"+skill.max_learn.to_s
  244.     change_color(normal_color)
  245.     draw_text(x+60, y, line_width-60, line_height,text)
  246.     draw_text(x, y, line_width, line_height,"升级所需SP: "+skill.sp_cost.to_s,2)
  247.   end
  248.   def draw_next_level(skill,x,y)
  249.     if skill.link_skill != 0
  250.       change_color(knockout_color)
  251.       draw_text(x, y, line_width, line_height,"绑定技能:"+$data_skills[skill.link_skill].name)
  252.       return
  253.     end
  254.     lvl = @actor.skill_next_level(skill)
  255.     if !lvl
  256.       change_color(system_color)
  257.       draw_text(x, y, line_width, line_height,"已精通。")
  258.     else
  259.       if @actor.level >= @actor.skill_next_level(skill)
  260.         change_color(normal_color)
  261.       else
  262.         change_color(crisis_color)
  263.       end
  264.       #draw_text(x, y, line_width, line_height,"需要等级: "+lvl.to_s)
  265.     end
  266.   end
  267.   def draw_former_skill(skill,x,y)
  268.     line = 0
  269.     skill.former.each do |former|
  270.       if former[0] != 0
  271.         txt = "需要: " + $data_skills[former[0]].name + "|Lv.#{former[1]}"
  272.         @actor.skill_basic_level(former[0]) >= former[1] ? change_color(system_color) : change_color(crisis_color)
  273.         draw_text(x, y+line*line_height, line_width, line_height,txt)
  274.         line += 1
  275.       end
  276.     end
  277.     line
  278.   end
  279.   def refresh
  280.     contents.clear
  281.     return if @skill == nil or @actor == nil
  282.     draw_skill_name(@skill,0,0)
  283.     draw_skill_level(@skill,0,line_height)
  284.     draw_next_level(@skill,0,line_height*2)
  285.     n = draw_former_skill(@skill,0,line_height*3)
  286.     draw_text_ex(0, line_height*(3+n), @skill.description, line_width)
  287.   end
  288.  
  289. end
  290.  
  291.  
  292.  
  293. #==============================================================================
  294. # ■ Window_AddCommand
  295. #------------------------------------------------------------------------------
  296. #  
  297. #==============================================================================
  298. class Window_AddCommand < Window_Command
  299.  
  300.   def initialize
  301.     super(100, 120)
  302.     self.visible = false
  303.     self.active = false
  304.     @index = 0
  305.   end
  306.   #--------------------------------------------------------------------------
  307.   # ● コマンドリストの作成
  308.   #--------------------------------------------------------------------------
  309.   def make_command_list
  310.     add_command("提升一级",   :add1)
  311.     add_command("提升满",    :addf)
  312.     add_command("取消",    :cancel)
  313.   end
  314.   #--------------------------------------------------------------------------
  315.   # ● 決定ボタンが押されたときの処理
  316.   #--------------------------------------------------------------------------
  317.   def process_ok
  318.     Input.update
  319.     call_ok_handler
  320.   end
  321.   #--------------------------------------------------------------------------
  322.   # ● 按下取消键时的处理
  323.   #--------------------------------------------------------------------------
  324.   def process_cancel
  325.     Input.update
  326.     call_cancel_handler
  327.   end
  328.   #--------------------------------------------------------------------------
  329.   # ● 启用窗口
  330.   #--------------------------------------------------------------------------
  331.   def activate
  332.     temp = self.y + self.height - Graphics.height
  333.     if temp > 0
  334.       self.y -= Graphics.height - self.height
  335.     end
  336.     self.active = true
  337.     self
  338.   end
  339. end

QQ截图333320190418195633.jpg (18.14 KB, 下载次数: 18)

QQ截图333320190418195633.jpg

技能升级.rar

1.52 MB, 下载次数: 91

Lv5.捕梦者

梦石
10
星屑
39440
在线时间
1914 小时
注册时间
2010-11-14
帖子
3315

R考场第七期纪念奖

2
发表于 2019-4-19 22:42:35 | 只看该作者
原来的31行是
RUBY 代码复制
  1. draw_text(x + 24, y, width, line_height, item.name + "|Lv." + @actor.skill_level(item.id).to_s)

现在修改成如下两行
RUBY 代码复制
  1. skill_level = [1, @actor.skill_level(item.id)].max
  2. draw_text(x + 24, y, width, line_height, item.name + "|Lv." + skill_level.to_s)

点评

fjm
感谢KB大神,终于解决了这个问题了  发表于 2019-4-20 09:44
fjm
说错了是111行和113行  发表于 2019-4-20 09:24
fjm
我看了下,估计111行和131行可能也要修改下,帮忙看下怎么改,谢谢  发表于 2019-4-20 09:24
fjm
非常感谢,但我改了31行,还是显示LV 0,麻烦帮忙再看下  发表于 2019-4-19 23:32
对了,这个只是让0级变成1级,1级以后并没有+1.要达到那个效果的话可以把下面第一行写成skill_level = @actor.skill_level(item.id) + 1  发表于 2019-4-19 22:59

评分

参与人数 2星屑 +50 +1 收起 理由
VIPArcher + 50 认可答案
fjm + 1 认可答案

查看全部评分

用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-25 14:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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