查看: 1562|回复: 15

[已经解决] 怎么能让在光标内战斗指令中的某指令文字被放大?

[复制链接]
梦石
0
星屑
3784
在线时间
933 小时
注册时间
2017-1-19
回帖
156
发表于 2024-3-6 22:12:20 | 显示全部楼层 |阅读模式

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

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

×
比如:光标在攻击指令上的攻击文字就被放大,光标到了其它指令上攻击文字就恢复原样,其它指令也同攻击一样
梦石
0
星屑
6375
在线时间
1473 小时
注册时间
2015-7-25
回帖
609

极短25参与开拓者

发表于 2024-3-7 19:00:36 | 显示全部楼层
本帖最后由 魔法丶小肉包 于 2024-3-9 19:47 编辑

使用方法,放在main的上方
指令设定的时候分为两种情况
1.如果该指令不需要放大,那么
[pre lang="ruby"]add_command("不会放大的指令", :abc)[/pre]
2.如果该指令需要放大,那么
[pre lang="ruby"]add_command("会放大的指令", :abc,true,[8,"+"])[/pre]
情况2中,[8,"+"]其中8代表字体变动大小,"+"代表加法运算,比如默认字体大小24,那么[8,"+"]放大后为32
同样的,如果你想缩小,那么就是[尺寸,"-"]
按照比例变大就是[尺寸,"*"]
3.如果你不是默认系统,并且有脚本已经修改过了相关描绘函数,那么有几率会无效果,遇到这种情况的话请自行处理

[pre lang="ruby"]class Window_Command
  alias dri draw_item
  def draw_item(index)
    if @list[index][:ext] && @list[index][:ext].is_a?(Array) && @index == index
      contents.font.size = contents.font.size.send(@list[index][:ext][1],@list[index][:ext][0])
    else
      reset_font_settings
    end
    dri(index)
  end
  alias pcm process_cursor_move
  def process_cursor_move
    last_index = @index
    pcm
    re_draw_all_items if @index != last_index
  end
  def re_draw_all_items
    item_max.times {|i| redraw_item(i) }
  end
end[/pre]

点评

哈哈,谢谢提醒~加个保险也好  发表于 2024-3-9 19:42
好像还得加一个&& @list[index][:ext].is_a?(Array)  发表于 2024-3-7 23:08
笨肉包的游戏讨论群932812135 (实时更新) 喜欢的话欢迎加入~
目前的坑
??? #像素风OC游戏 准备中 短篇-约5小时
花城梦之心 #像素风OC游戏 系统开发+素材绘制中
【不可思议的迷宫】幽灵契约外传:歌莉娅 v0.4 游戏文件已更新
同时更新中~ (沉迷摸鱼中~更新速度较慢请见谅w)
这是属于笨肉包一个人的旅行~(这只肉包又在摸鱼!
旅途的最终目标~ ???(保密~
回复

使用道具 举报

梦石
0
星屑
3784
在线时间
933 小时
注册时间
2017-1-19
回帖
156
 楼主| 发表于 2024-3-8 14:19:48 | 显示全部楼层
魔法丶小肉包 发表于 2024-3-7 19:00
使用方法,放在main的上方
指令设定的时候分为两种情况
1.如果该指令不需要放大,那么

这个add_command("会放大的指令", :abc,true,[8,"+"])放在哪里?还是对原来的add_command进行修改?

点评

就是对原来的修改,这个只是举例,说明一下使用格式,使用的时候是需要在对应的地方进行修改的  发表于 2024-3-9 19:37
回复

使用道具 举报

梦石
0
星屑
3784
在线时间
933 小时
注册时间
2017-1-19
回帖
156
 楼主| 发表于 2024-3-8 19:48:07 | 显示全部楼层
add_command("攻击", :attack , true, [8,"+"] , @actor.attack_usable?)
如果这样用出现报错(5 for 4)

点评

这里的true代表的就是@actor.attack_usable?这个参数,如果没有这个参数,那么不能省略,需要用true或者false代替  发表于 2024-3-9 19:40
add_command("攻击", :attack , @actor.attack_usable?, [8,"+"] )  发表于 2024-3-9 19:38
回复

使用道具 举报

梦石
0
星屑
3784
在线时间
933 小时
注册时间
2017-1-19
回帖
156
 楼主| 发表于 2024-3-10 13:54:09 | 显示全部楼层
用在技能上行不通,add_command(name, :skill, true, stype_id),四个一个也少不了,[8,"+"]没地方放了
回复

使用道具 举报

梦石
0
星屑
6375
在线时间
1473 小时
注册时间
2015-7-25
回帖
609

极短25参与开拓者

发表于 2024-3-10 18:21:43 | 显示全部楼层
本帖最后由 魔法丶小肉包 于 2024-3-10 18:29 编辑
shengfeng 发表于 2024-3-10 13:54
用在技能上行不通,add_command(name, :skill, true, stype_id),四个一个也少不了,[8,"+"]没地方放了 ...


情况1,按照默认不变
add_command("选项", :abc)
情况2,只改变字体
add_command("选项", :abc,true,[:size,8,"+"])
情况3,只识别技能类型
add_command(name, :skill, true, [:skill_type,stype_id])
情况4,2和3两个都要
add_command(name, :skill, true, [:skill_type,stype_id],[:size,8,"+"])
上述情况中,第三个参数的true可以为false,前三个参数的顺序必须固定

额外事项:
从第四项之后可以无限添加参数,且顺序无所谓(用于脚本扩展)
如果要添加自定义的参数,格式为[符号,参数1,参数2,....,参数n]
符号:任意名称,例如:abc,仅作为识别使用
参数1~参数n:最少1个,最多无限个,读取后用于脚本扩展
自定义之后在对应位置调用current_ext(符号,位置)来获取返回值,从而用于各种效果中
举例:
add_command(name, :skill, true, [:aaa,"aaa","bbb","ccc"])
current_ext(:aaa,3) => "ccc"
↑3为从:aaa之后的第一个参数开始数

关于额外事项的部分,仅在需要自行扩展功能的时候用,如果不确定该怎么做的话请忽略,只看情况1~4

[pre lang="ruby"]class Window_Command
  alias dri draw_item
  def draw_item(index)
    reset_font_settings
    @list[index][:ext].each do |i|
      next unless @index == index
      if i.is_a?(Array) && i[0] == :size
        contents.font.size = contents.font.size.send(i[2],i[1])
      end
    end
    dri(index)
  end
  alias pcm process_cursor_move
  def process_cursor_move
    last_index = @index
    pcm
    re_draw_all_items if @index != last_index
  end
  def re_draw_all_items
    item_max.times {|i| redraw_item(i) }
  end
  def add_command(*args)
    name,symbol,enabled,*ext = *args
    enabled ||= true unless enabled == false
    @list.push({:name=>name, :symbol=>symbol, :enabled=>enabled, :ext=>ext})
  end
  def current_ext(type,index = 1)
    if current_data
      current_data[:ext].each do |i|
        if i.is_a?(Array) && i[0] == type
          return i[index]
        end
      end
    else
      nil
    end
  end
end
class Scene_Battle
  def command_skill
    @skill_window.actor = BattleManager.actor
    @skill_window.stype_id = @actor_command_window.current_ext(:skill_type)
    @skill_window.refresh
    @skill_window.show.activate
  end
end
class Window_SkillCommand
  def update
    super
    @skill_window.stype_id = current_ext(:skill_type) if @skill_window
  end
end[/pre]
笨肉包的游戏讨论群932812135 (实时更新) 喜欢的话欢迎加入~
目前的坑
??? #像素风OC游戏 准备中 短篇-约5小时
花城梦之心 #像素风OC游戏 系统开发+素材绘制中
【不可思议的迷宫】幽灵契约外传:歌莉娅 v0.4 游戏文件已更新
同时更新中~ (沉迷摸鱼中~更新速度较慢请见谅w)
这是属于笨肉包一个人的旅行~(这只肉包又在摸鱼!
旅途的最终目标~ ???(保密~
回复

使用道具 举报

梦石
0
星屑
3784
在线时间
933 小时
注册时间
2017-1-19
回帖
156
 楼主| 发表于 2024-3-10 19:57:22 | 显示全部楼层
情况4,2和3两个都要
add_command(name, :skill, true, [:skill_type,stype_id],[:size,8,"+"])这个行不通

点评

是报错还是没有效果?默认系统测试有效  发表于 2024-3-10 20:07
回复

使用道具 举报

梦石
0
星屑
3784
在线时间
933 小时
注册时间
2017-1-19
回帖
156
 楼主| 发表于 2024-3-10 22:36:15 | 显示全部楼层
本帖最后由 shengfeng 于 2024-3-11 13:42 编辑

找到问题了与其它脚本不兼容
回复

使用道具 举报

梦石
0
星屑
3784
在线时间
933 小时
注册时间
2017-1-19
回帖
156
 楼主| 发表于 2024-4-8 00:01:05 | 显示全部楼层
一直没有发现这个恶性bug,但是在菜单中打开技能时发现不显示技能
回复

使用道具 举报

梦石
0
星屑
6375
在线时间
1473 小时
注册时间
2015-7-25
回帖
609

极短25参与开拓者

发表于 2024-4-8 17:40:25 | 显示全部楼层
shengfeng 发表于 2024-4-8 00:01
一直没有发现这个恶性bug,但是在菜单中打开技能时发现不显示技能

把之前的current_ext替换掉
[pre lang="ruby"]def current_ext(type,index = 1)
    if current_data
      current_data[:ext].each do |i|
        return i unless i.is_a?(Array)
        if i.is_a?(Array) && i[0] == type
          return i[index]
        end
      end
    else
      nil
    end
  end[/pre]
笨肉包的游戏讨论群932812135 (实时更新) 喜欢的话欢迎加入~
目前的坑
??? #像素风OC游戏 准备中 短篇-约5小时
花城梦之心 #像素风OC游戏 系统开发+素材绘制中
【不可思议的迷宫】幽灵契约外传:歌莉娅 v0.4 游戏文件已更新
同时更新中~ (沉迷摸鱼中~更新速度较慢请见谅w)
这是属于笨肉包一个人的旅行~(这只肉包又在摸鱼!
旅途的最终目标~ ???(保密~
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部