Project1

标题: 新菜单显示状态2.0版 [打印本页]

作者: 浪使者    时间: 2008-7-5 00:59
标题: 新菜单显示状态2.0版
新菜单显示状态2.0版
很直观的显示人物各属性状态于菜单上。

效果图:


脚本如下:

  1. ####################################################################
  2. # 新菜单状态 v2.0
  3. # 原作者: SojaBird
  4. # 翻译汉化:浪使者
  5. # 描述: 一个高级的菜单状态视窗。
  6. #
  7. ####################################################################

  8. module SojaBird_SE
  9. ##############
  10. # 初始化设置
  11. ##############
  12.   Font = "黑体" # 字体设置.
  13.   FontSize = 17 #  字体大小
  14.   Name = "姓名:" #  菜单状态里的姓名
  15.   Class = "职业:" # 菜单状态里的职业.
  16.   Level = "等级:" # 菜单状态里的等级.
  17.   State = "状态:" # 菜单状态里的特殊状态.
  18.   HP = "HP:" # 菜单状态里的HP.
  19.   MP = "MP:" # 菜单状态里的MP.
  20.   NoState = "正常" # 无特殊状态时显示的状态.
  21. ##############
  22. # 结束设置
  23. ##############
  24. end

  25. ###############
  26. # 描绘窗体 #
  27. ###############
  28. class Window_Base < Window
  29.   
  30.   def draw_actor_name2(actor, x, y)
  31.     self.contents.font.color = system_color
  32.     self.contents.draw_text(x, y, 108, WLH, SojaBird_SE::Name, 0)
  33.     self.contents.font.color = hp_color(actor)
  34.     self.contents.draw_text(x, y, 108, WLH, actor.name, 2)
  35.   end

  36.   def draw_actor_class2(actor, x, y)
  37.     self.contents.font.color = system_color
  38.     self.contents.draw_text(x, y, 108, WLH, SojaBird_SE::Class, 0)
  39.     self.contents.font.color = normal_color
  40.     self.contents.draw_text(x, y, 108, WLH, actor.class.name, 2)
  41.   end

  42.   def draw_actor_level2(actor, x, y)
  43.     self.contents.font.color = system_color
  44.     self.contents.draw_text(x, y, 108, WLH, SojaBird_SE::Level, 0)
  45.     self.contents.font.color = normal_color
  46.     self.contents.draw_text(x, y, 108, WLH, actor.level, 2)
  47.   end
  48.   
  49.   def draw_actor_state2(actor, x, y, width = 108)
  50.     self.contents.font.color = system_color
  51.     self.contents.draw_text(x, y, 108, WLH, SojaBird_SE::State, 0)
  52.     self.contents.font.color = normal_color
  53.     if actor.states.empty?
  54.       contents.draw_text(x, y, 108, WLH, SojaBird_SE::NoState, 2)
  55.     else
  56.       for state in actor.states
  57.         contents.draw_text(x, y, 108, WLH, state.name, 2)
  58.       end
  59.     end
  60.   end
  61.   
  62.   def draw_actor_hp2(actor, x, y, width = 120)
  63.     self.contents.font.color = system_color
  64.     self.contents.draw_text(x, y, 33, WLH, SojaBird_SE::HP, 0)
  65.     self.contents.font.color = hp_color(actor)
  66.     last_font_size = self.contents.font.size
  67.     xr = x + width
  68.     if width < 120
  69.       self.contents.draw_text(xr - 44, y, 44, WLH, actor.hp, 2)
  70.     else
  71.       self.contents.draw_text(xr - 99, y, 44, WLH, actor.hp, 2)
  72.       self.contents.font.color = normal_color
  73.       self.contents.draw_text(xr - 55, y, 11, WLH, "/", 2)
  74.       self.contents.draw_text(xr - 44, y, 44, WLH, actor.maxhp, 0)
  75.     end
  76.   end

  77.   def draw_actor_mp2(actor, x, y, width = 120)
  78.     self.contents.font.color = system_color
  79.     self.contents.draw_text(x, y, 30, WLH, SojaBird_SE::MP, 0)
  80.     self.contents.font.color = mp_color(actor)
  81.     last_font_size = self.contents.font.size
  82.     xr = x + width
  83.     if width < 120
  84.       self.contents.draw_text(xr - 44, y, 44, WLH, actor.mp, 2)
  85.     else
  86.       self.contents.draw_text(xr - 99, y, 44, WLH, actor.mp, 2)
  87.       self.contents.font.color = normal_color
  88.       self.contents.draw_text(xr - 55, y, 11, WLH, "/", 2)
  89.       self.contents.draw_text(xr - 44, y, 44, WLH, actor.maxmp, 0)
  90.     end
  91.   end

  92.   def draw_line(actor, x, y, width = 300)
  93.     self.contents.font.color = normal_color
  94. self.contents.draw_text(x, y, 300, WLH, "____________________________________", 2)
  95.   end

  96. end

  97. #####################
  98. # 菜单状态窗体 #
  99. #####################
  100. class Window_MenuStatus < Window_Selectable
  101.   
  102.   def refresh
  103.     self.contents.clear
  104.     self.contents.font.name = SojaBird_SE::Font
  105.     self.contents.font.size = SojaBird_SE::FontSize
  106.     @item_max = $game_party.members.size
  107.     for actor in $game_party.members
  108.       draw_actor_face(actor, 0, actor.index * 94, 94) # 人脸图
  109.       x = 113
  110.       y = actor.index * 94 + WLH / 2
  111.       draw_actor_name2(actor, x, y - 10) # 姓名
  112.       draw_actor_class2(actor, x + 120, y - 10) # 职业
  113.       draw_actor_level2(actor, x, y + WLH * 1 - 13) # 等级
  114.       draw_actor_state2(actor, x, y + WLH * 2 - 15) # 状态
  115.       draw_actor_hp2(actor, x, y + WLH * 3 - 15) # Hp
  116.       draw_actor_mp2(actor, x + 120, y + WLH * 3 - 15) # Mp
  117.       draw_line(actor, x - 50, y + WLH * 3 - 8)
  118.     end
  119.   end
  120.   
  121.   def update_cursor
  122.     if @index < 0              
  123.       self.cursor_rect.empty
  124.     elsif @index < @item_max   
  125.       self.cursor_rect.set(0, @index * 94, contents.width, 94)
  126.     elsif @index >= 100         
  127.       self.cursor_rect.set(0, (@index - 100) * 94, contents.width, 94)
  128.     else                    
  129.       self.cursor_rect.set(0, 0, contents.width, @item_max * 94)
  130.   end
  131.   end
  132. end

复制代码


已知脚本冲突:与更换队伍脚本有冲突,但与大多数脚本兼容,其余冲突暂时没有发现。
作者: 越前リョーマ    时间: 2008-7-5 01:07
看上去不错。

不过技术帖要放发布区……
作者: 诡异の猫    时间: 2008-7-5 01:07
个人感觉状态排在等级后面合理点..囧
作者: 越前リョーマ    时间: 2008-7-5 01:08
以下引用诡异の猫于2008-7-4 17:07:35的发言:

个人感觉状态排在等级后面合理点..囧

那不是空了一行么……
作者: 喵喵の黄昏    时间: 2008-7-5 01:20
提示: 作者被禁止或删除 内容自动屏蔽
作者: 火鸡三毛老大    时间: 2008-7-5 01:33
还是喜欢显示ico的~~~{/dy}
作者: 雪流星    时间: 2008-7-5 03:43
转技术区

我想说的是....这只是把窗口重排了一下而已
作者: 越前リョーマ    时间: 2008-7-5 04:19
以下引用snstar2006于2008-7-4 19:43:01的发言:

转技术区

我想说的是....这只是把窗口重排了一下而已

所以名字应该叫菜单微量改动排版
作者: 火月    时间: 2008-8-14 05:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: 我是我自己    时间: 2008-8-19 08:20
提示: 作者被禁止或删除 内容自动屏蔽
作者: ㄆ相    时间: 2008-8-23 20:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪流星    时间: 2008-8-23 20:32
以下引用ㄆ相于2008-8-23 12:16:23的发言:

这个放在哪里啊?放main上嘛?

你已经有灌水的嫌疑了

请去看之前你所回复的帖子
我已经给你回复了

若是再发类似的回帖就会扣分..{/fn}{/fn}
作者: zh99998    时间: 2008-8-24 23:52
LSS是来冒充九泪的?(版聊PIA)




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