Project1

标题: 跟随光标移动的帮助窗口,怎么让描述属性的文字换行? [打印本页]

作者: 幻耶    时间: 2012-4-26 17:47
标题: 跟随光标移动的帮助窗口,怎么让描述属性的文字换行?
本帖最后由 幻耶 于 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
复制代码
dsu_plus_rewardpost_czw
作者: he11120    时间: 2012-4-27 17:49
本帖最后由 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-4-27 20:26
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 的属性不见了
’’
作者: 幻耶1    时间: 2012-4-27 21:06
本帖最后由 幻耶1 于 2012-4-27 21:07 编辑

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

作者: he11120    时间: 2012-4-27 21:35
本帖最后由 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
复制代码

作者: 幻耶1    时间: 2012-4-27 21:58
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-28 07:19
本帖最后由 幻耶 于 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







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