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

Project1

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

[已经解决] 请大神改进下我这个简单的人物手册的脚本

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1971
在线时间
926 小时
注册时间
2015-10-26
帖子
356

开拓者

跳转到指定楼层
1
发表于 2022-9-30 22:02:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
20星屑
本帖最后由 踢腿水上飘 于 2022-10-4 08:35 编辑

这个脚本是模仿着改的,目前用是能用但是有两个地方希望改进但能力不够,求大神帮忙看看
如图,这个脚本效果是左边人物名字,右边人物信息,根据剧情推进用变量控制信息的显示,主要有两个想动的地方,一个是左边的名字(黄色框),希望也能用变量控制显示,不然还没遇到的人也挂着名字很违和,第二个是右边红框的位置想显示个图片放人物的图片,显示picture文件夹里的图片,最后一个就是右边的信息能在内容过多的时候能上下滚动就更好了,当然最后这个无所谓了,主要是前面2个。

我电脑上不了论坛是用手机上的,代码不知道粘全了没有 ,谁知道怎么回事啊,同一个样,手机能上,电脑就不能上论坛,要哭了。




RUBY 代码复制
  1. module RWSC
  2.   # 这里设定人物名称
  3.   Rwmc = ["小明",   "小红", "小黄", "大狗",]
  4. end
  5.  
  6. class Window_rwxx < Window_Base
  7.   #----------------------------------------------------------------------------
  8.   # * 初始化
  9.   #----------------------------------------------------------------------------
  10.   def initialize
  11.     super(120, 0, Graphics.width - 120, Graphics.height)
  12.     deactivate
  13.   end
  14.   #----------------------------------------------------------------------------
  15.   # * 更新内容
  16.   #----------------------------------------------------------------------------
  17.   def refresh(command_index = 0)
  18.     contents.clear
  19.     rwxx_list = rwxx_detal(command_index)
  20.     rwxx_list.each_with_index do |text, i|
  21.       cx = 0
  22.       cy = line_height * i
  23.       draw_text(cx, cy, contents.width, line_height, text, 0)
  24.     end
  25.   end
  26.   # 设置词条明细内容
  27.   def rwxx_detal(command_index = 0)
  28.     list = []
  29.     case command_index
  30.     when 0
  31.       # 明细1--------------------------------------
  32.       if $game_variables[1] < 30
  33.         list.push("                          --未解锁---")
  34.       else
  35.         list.push("手段sad发送到方式打发沙发上打发斯蒂阿斯顿发送")
  36.         list.push("芬阿斯蒂芬sad发送到发达发达但是发多少")
  37.       end      
  38.       list.push(" ")
  39.       if $game_variables[1] < 80
  40.         list.push("                          --未解锁---")
  41.       else
  42.         list.push("士大夫十大发收到")
  43.       end
  44.  
  45.     when 1
  46.       list.push("123123123")
  47.  
  48.     when 2
  49.       list.push("123123123123")
  50.   when 3
  51.       list.push("123123123")      
  52.       #...以此格式往下添加
  53.     end # 明细设定结束
  54.     return list
  55.   end
  56. end
  57.  
  58.  
  59.  
  60. class Window_Rwmcleft < Window_Selectable
  61.   # 设定公开变量
  62.   attr_accessor :old_index
  63.   # 初始化
  64.   def initialize
  65.     super(0, 0, 120, Graphics.height)#Graphics.width, 48)
  66.     refresh
  67.     self.activate.select(0)
  68.   end  
  69.   # 高度
  70.   def window_height
  71.     fitting_height(visible_line_number)#return 48#
  72.   end
  73.   # 最大项目数
  74.   def item_max
  75.     command_list.size#return 8#
  76.   end
  77.   # 可见列数
  78.   def visible_line_number
  79.     command_list.size#return 8#
  80.   end
  81.   # 获取选项列表
  82.   def command_list
  83.        return RWSC::Rwmc
  84.   end
  85.   # 绘制项目
  86.   def draw_item(index)
  87.     rect = item_rect_for_text(index)
  88.     draw_text(rect, command_list[index])
  89.   end
  90. end
  91.  
  92.  
  93.  
  94.  
  95.  
  96. class Rwsc < Scene_MenuBase
  97.   #--------------------------------------------------------------------------
  98.   # ● 场景开始
  99.   #--------------------------------------------------------------------------
  100.   def start
  101.     super
  102.     create_list_window
  103.     create_right_window
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ● 创建列表
  107.   #--------------------------------------------------------------------------
  108.   def create_list_window
  109.     @list_window = Window_Rwmcleft.new
  110.     @list_window.set_handler(:cancel, method(:return_scene))
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   # ● 创建内容窗口
  114.   #--------------------------------------------------------------------------
  115.   def create_right_window
  116.     @right_window = Window_rwxx.new
  117.   end
  118.   # 更新所有窗口
  119.   def update_all_windows
  120.     super
  121.     update_left_right
  122.   end
  123.   # 更新左右窗口关联
  124.   def update_left_right
  125.     return unless @list_window.old_index != @list_window.index
  126.     @list_window.old_index = @list_window.index
  127.     @right_window.refresh(@list_window.index)
  128.   end
  129. end


最佳答案

查看完整内容

稍微弄了一下,应该勉强能行(……?) 首先是更改了人名列表的设置样式: 【资料ID => ["人名", 对应的进度变量ID]】 其中【资料ID】需要保证一人一个ID,它将影响获取人物的各项对应资料以及在左边人名窗口中的上下排序位置。 【人名】就是显示在左边窗口的选项名字, 【对应的进度变量ID】就是影响解锁内容的变量ID,该变量为0时则对应的人物不会出现在人名列表中。 顺便就是我稍微更改了一下【rwxx_detal】方法的内容,让它自 ...

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9335
在线时间
2745 小时
注册时间
2008-9-5
帖子
3540

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

2
发表于 2022-9-30 22:02:26 | 只看该作者
稍微弄了一下,应该勉强能行(……?)
首先是更改了人名列表的设置样式:
【资料ID => ["人名", 对应的进度变量ID]】
其中【资料ID】需要保证一人一个ID,它将影响获取人物的各项对应资料以及在左边人名窗口中的上下排序位置。
【人名】就是显示在左边窗口的选项名字,
【对应的进度变量ID】就是影响解锁内容的变量ID,该变量为0时则对应的人物不会出现在人名列表中。

顺便就是我稍微更改了一下【rwxx_detal】方法的内容,让它自动兼容上述的【对应的进度变量ID】,而不需要在这里给每个角色都手动填一个变量ID。

然后是人物图像,我设定成图像使用【RWSC_ + 人物名字】作为图片命名,比如【RWSC_小明.png】,它会在人物解锁之后自动显示在右侧资料窗的右上角。

代码如下

点评

试了下感觉没啥问题,谢谢啦  发表于 2022-10-4 17:47

评分

参与人数 2+2 收起 理由
踢腿水上飘 + 1 认可答案
alexncf125 + 1 天下第一大好人~

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-29 13:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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