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

Project1

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

[已经解决] 跟随光标移动的帮助窗口,怎么让描述属性的文字换行?

[复制链接]

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
跳转到指定楼层
1
发表于 2012-4-26 17:47:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 幻耶 于 2012-4-26 17:59 编辑

水迭澜的跟随光标移动的帮助窗口插件版,我希望描述武器或防具属性的文字当超过15个字就自动换行

地址:
http://rpg.blue/thread-73952-1-1.html



描述武器属性的文字大概是这一句吧:
  1.     if element_set.empty? != true  #属性。为属性 ID 的数组
  2.       text="属性:"
  3.       for i in 0...element_set.size
  4.         text+=$data_system.elements[element_set[i]]+" "
  5.       end
  6.       x=0
  7.       y+=1
  8.       self.contents.font.color = normal_color
  9.       self.contents.font.size=14
  10.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  11.     end
复制代码
囡囚囨囚囨図囨囧

Lv1.梦旅人

梦石
0
星屑
70
在线时间
187 小时
注册时间
2006-9-3
帖子
175
2
发表于 2012-4-27 17:49:04 | 只看该作者
本帖最后由 he11120 于 2012-4-27 17:50 编辑
  1. if element_set.size > 0
  2.       text=phrase["elements"]
  3.       for i in 0...element_set.size
  4.         if i < 14
  5.           text+=$data_system.elements[element_set[i]]
  6.         else
  7.           break
  8.         end        
  9.       end
  10.       x = 0
  11.       y += 1
  12.       self.contents.font.color = normal_color
  13.       self.contents.font.size = size
  14.       self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
  15.     end
  16.     if element_set.size >= 15
  17.       text=""
  18.       for i in 14...element_set.size
  19.         text+=$data_system.elements[element_set[i]]
  20.       end
  21.       x= (phrase["elements"].size)*3
  22.       y += 1
  23.       self.contents.font.color = normal_color
  24.       self.contents.font.size = size
  25.       self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
  26.     end
复制代码
发我用的给你参考,具体不对的自己改下。

点评

顺便帮我改下吧加了这种脚本后我的窗口错位崩溃了  发表于 2012-7-4 14:43
...........
回复

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
3
 楼主| 发表于 2012-4-27 20:26:45 | 只看该作者
he11120 发表于 2012-4-27 17:49
发我用的给你参考,具体不对的自己改下。

好像有效果,代替我的旧脚本改成这样,帮助说明变成两行了,但是上下有重复的属性,不知道怎么改了
  1. if element_set.size > 0
  2.   text="属性:"
  3.   for i in 0...element_set.size
  4.     if i < 3
  5.       text+=$data_system.elements[element_set[i]]
  6.     else
  7.       break
  8.     end        
  9.   end
  10.   x = 0
  11.   y += 1
  12.   self.contents.font.color = normal_color
  13.   self.contents.font.size = 14
  14.   self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  15. end
  16. if element_set.size >= 4
  17.   text=""
  18.   for i in 1...element_set.size
  19.     text+=$data_system.elements[element_set[i]]
  20.   end
  21.   x= (["属性:"].size)*2
  22.   y += 1
  23.   self.contents.font.color = normal_color
  24.   self.contents.font.size = 14
  25.   self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  26. end
复制代码



‘‘──幻耶于2012-4-27 20:40补充以下内容

改成 for i in 4...element_set.size  的话那个吸血,20 的属性不见了
’’

点评

顺便帮我改下吧···我也是窗口问题不过我的事错位···  发表于 2012-7-4 14:42
错了,还是改成 for i in 3...element_set.size  发表于 2012-4-27 20:52
if i < 3 改if <= 3  发表于 2012-4-27 20:51
for i in 1...element_set.size 改成 for i in 4...element_set.size  发表于 2012-4-27 20:31
囡囚囨囚囨図囨囧
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
155
在线时间
44 小时
注册时间
2011-9-2
帖子
33
4
发表于 2012-4-27 21:06:33 | 只看该作者
本帖最后由 幻耶1 于 2012-4-27 21:07 编辑

谢谢,改成for i in 3...element_set.size  之后,属性全了,但是如果属性很多的话,第二行的字还是超出了边框没有换到第三行,这个正常么?(我又加了九个属性测试)

点评

脚本改好,注意查收。  发表于 2012-4-27 21:55
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
70
在线时间
187 小时
注册时间
2006-9-3
帖子
175
5
发表于 2012-4-27 21:35:08 | 只看该作者
本帖最后由 he11120 于 2012-4-27 22:39 编辑

  1. if element_set.size >= 4
  2.   text=""
  3.   for i in 1...element_set.size
  4.     text+=$data_system.elements[element_set[i]]
  5.   end
  6.   x= (["属性:"].size)*2
  7.   y += 1
  8.   self.contents.font.color = normal_color
  9.   self.contents.font.size = 14
  10.   self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  11. end
复制代码
替换成
  1. hang = (element_set.size-1)/3
  2. if hang >= 1
  3.   for j in 1..hang
  4.   text=""
  5.   for i in j*3...element_set.size
  6. if i < j*3+3
  7.     text+=$data_system.elements[element_set[i]]
  8. else
  9.       break
  10. end
  11. end
  12.   x= (["属性:"].size)*2
  13.   y += 1
  14.   self.contents.font.color = normal_color
  15.   self.contents.font.size = 14
  16.   self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  17. end
  18. end
复制代码
另外在49行前加个高度增加
  1. height+=(element_set.size-1)/3
复制代码
...........
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
155
在线时间
44 小时
注册时间
2011-9-2
帖子
33
6
发表于 2012-4-27 21:58:17 | 只看该作者
he11120 发表于 2012-4-27 21:35
把替换成

改成这样?三行属性都一样了
  1. if element_set.size > 0
  2.   text="属性:"
  3.   for i in 0...element_set.size
  4.     if i < 3
  5.       text+=$data_system.elements[element_set[i]]
  6.     else
  7.       break
  8.     end        
  9.   end
  10.   x = 0
  11.   y += 1
  12.   self.contents.font.color = normal_color
  13.   self.contents.font.size = 14
  14.   self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  15. end
  16. hang = element_set.size/4
  17. if hang >= 1
  18.   for j in 1..hang
  19.   text=""
  20.   for i in hang*3...element_set.size
  21.     text+=$data_system.elements[element_set[i]]
  22.   end
  23.   x= (["属性:"].size)*2
  24.   y += 1
  25.   self.contents.font.color = normal_color
  26.   self.contents.font.size = 14
  27.   self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  28. end
  29. end
复制代码

点评

改好了。。  发表于 2012-4-27 22:30
更新了,再试下,我也新手。。。  发表于 2012-4-27 22:05
回复

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
7
 楼主| 发表于 2012-4-28 07:19:50 | 只看该作者
本帖最后由 幻耶 于 2012-4-28 07:20 编辑
he11120 发表于 2012-4-27 21:35
把替换成另外在49行前加个高度增加


辛苦了,49行在哪里啊?加下面的地方?换行可以了,但是属性一多,框的高度不够了

hang = (element_set.size-1)/3
if hang >= 1
  for j in 1..hang
  text=""
  for i in j*3...element_set.size
if i < j*3+3
    text+=$data_system.elements[element_set]
else
      break
end
end
  x= (["属性:"].size)*2
  y += 1
  self.contents.font.color = normal_color
  self.contents.font.size = 14
  self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
end
height+=(element_set.size-1)/3
end


点评

还有想让后两排文字对齐,自己改下self.contents.draw_text的X坐标的值。  发表于 2012-4-28 09:41
不是我这段的49行,在你原脚本的,你找下"height",就知道了。  发表于 2012-4-28 09:36
囡囚囨囚囨図囨囧
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 00:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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