Project1

标题: 如何在图鉴中加入说明。 [打印本页]

作者: fssssss    时间: 2013-3-10 15:25
标题: 如何在图鉴中加入说明。
本帖最后由 fssssss 于 2013-3-12 23:34 编辑

我把备注的文字加入怪物图鉴里面,但是不知道怎么把文字换行。
而且多了很多奇怪的标点符号。
http://rpg.blue/forum.php?mod=viewthread&tid=223640
发现这个问题是个大坑,找了一天了都有人问,但是没有人解决。
作者: 千昭    时间: 2013-3-10 17:25
本帖最后由 千昭 于 2013-3-10 17:29 编辑

你都怎么做的

把问题再描述清楚些,最好带上你改的代码 和图片

因为不可能所有人都熟悉那么长的代码   很多人直接可能懒得帮你读

例如 你问西游降魔篇里孙悟空是怎么出来的,那我不可能为了回答这个问题去把整个电影看一遍  因为我懒····{:2_276:}


看到好多人提问都是这样简单的问   不能起到让人起帮助心的作用  所以忍不住多说一些  见谅
作者: fssssss    时间: 2013-3-10 17:56
12.    ENEMY_MORE_INFO_BUTTON = :X  # 显示敌人更多资讯的按键

13.    ENEMY_MORE_INFO = false      # 是否显示更多讯息(扩充用)

原本这里有这么写,但是我发现这个功能完全弄不出来,把 ENEMY_MORE_INFO = ture 后也是无反应。更蛋疼的是脚本说明里面都没有说这个是干嘛用的。估计是没开发完。

所以我 加了这么一段      218 draw_other_info(ENEMY_IMAGE_MAX_WIDTH+8, line_height*13)  
改了这里
  #--------------------------------------------------------------------------
  # ●●●●●● 绘制其他资讯
  #--------------------------------------------------------------------------

  def draw_other_info(x,y)
   
      e_na = enemy.note.split{/[(?:note|介绍1)\ ]/}
      e_nb = enemy.note.split{/[(?:note|介绍2)\ ]/}
   
      change_color(system_color)
      draw_text(x, y, 500, line_height, e_na)
      draw_text(x, y+line_height, 500, line_height, e_nb)
      change_color(normal_color)
   
  end

最后是这个效果
https://rpg.blue/forum.php?mod=attachment&aid=MTU2MDIwfDZmNmJlYjUxNjhiNzJmYWI0ZWMxYmJlNmE5YzE4MDRlfDE3MzE3OTYyMTI%3D&request=yes&_f=.jpg
说明文字都是来自备注的

我只是想让它换个行,但是弄不了。

1.jpg (134.85 KB, 下载次数: 26)

1.jpg

作者: j433463    时间: 2013-3-12 10:03
本帖最后由 j433463 于 2013-3-12 11:04 编辑

它不是没发完,最后用到的 partial_refresh 是在窗口脚本中,不是在场景中,可能因为这样您没找到。

在 partial_refresh 它会刷新以绘制敌人体力,魔力,能力,掉落金钱和道具,为什么没作用我就不清楚了。


呃,我找到它半刷新时用到 draw_other_info 这个,但查过去,那是是绘制其他资讯的,但其中没有任何东西,

也许您该把想增加的写在这个地方。

呃...我试着这样改了原有窗口脚本的 draw_other_info:

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 绘制其他资讯
  3.   #--------------------------------------------------------------------------
  4.   def draw_other_info
  5.       x = 100
  6.       y = 400
  7.       e_na = "text1"
  8.       e_nb = "text2"
  9.       change_color(system_color)
  10.       draw_text(x + 100, y + line_height, 500, line_height, e_na)
  11.       draw_text(x + 100, y + line_height * 2, 500, line_height, e_nb)
  12.       change_color(normal_color)
  13.   end


测试时 text1 和 text2 是有分两行显示,但它把原来显示的那些都清除了,只留下这两行。
作者: fssssss    时间: 2013-3-12 20:36
j433463 发表于 2013-3-12 10:03
它不是没发完,最后用到的 partial_refresh 是在窗口脚本中,不是在场景中,可能因为这样您没找到。

在 pa ...

我倒是能让他显示备注的信息,而且不用按A键,
但是备注里面的信息不换行,超出了窗口, 麻烦在这里。
作者: j433463    时间: 2013-3-12 20:41
本帖最后由 j433463 于 2013-3-12 20:42 编辑

e_na = enemy.note.split{/[(?:note|介绍1)\ ]/}

您没发现您给的图中括号引号都没去掉吗?您看看您的这式子,应该是 {\[ 吧?您打成 /] 了,整个分割字串根本不起作用,后面 \] 之间还有空白,整个写法问题很大啊。
作者: fssssss    时间: 2013-3-12 21:38
本帖最后由 fssssss 于 2013-3-12 21:41 编辑
j433463 发表于 2013-3-12 20:41
e_na = enemy.note.split{/[(?:note|介绍1)\ ]/}

您没发现您给的图中括号引号都没去掉吗?您看看您的这式 ...


{/[(?:note|介绍1)\ ]/}

这一串太复杂,我都是复制别人的,但是我根本看不懂是什么意思,
只知道是能引用备注里面的 文字。想要的效果是[介绍 内容] ,然后在图鉴里显示内容出来。
但是我不懂原理是什么。我为了这个查了10几个小时的资料 都没得解决
作者: j433463    时间: 2013-3-12 22:16
如果只是不用按 A 键在原资料下加上两行内容,那其实很容易,不需要用到 def draw_other_info(x,y) 来做,那会占了原来有的方法,

直接在窗口刷新和半刷新那边,绘制敌人辨识度的下方用个像 draw_add_info(ENEMY_IMAGE_MAX_WIDTH+8, line_height*11) 之类,

然后找个位置放 def draw_add_info(x,y) ,就是您写的 def draw_other_info(x,y) 那些,这样不影响原来的方法。


{\[(?:note|介绍1)\ ]/} 应该是想用表达式,不过用 {} 有点怪,一般都是用 () 的,{} 在某些场合有特殊用途,

而且备注栏用 <> 比 [] 常见,取字串也不好用 split 分割字串方式。

我比较建议这样做:
  1.     e_na = $1.to_s if enemy.note =~ /<note1:\s*(.*?)>/i
  2.     e_nb = $1.to_s if enemy.note =~ /<note2:\s*(.*?)>/i
复制代码
在敌人角色备注栏这样写:



测试结果:


作者: fssssss    时间: 2013-3-12 23:34
j433463 发表于 2013-3-12 22:16
如果只是不用按 A 键在原资料下加上两行内容,那其实很容易,不需要用到 def draw_other_info(x,y) 来做, ...

多谢狮子头,
我已经搞定了,
整个论坛就是你最有耐心,最有爱心了。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1