幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1777|回复: 3

[已解决] 物品系统太简陋了 只能用那么大点的图 只能写那么几个字

[复制链接]

3

主题

8

帖子

69

积分

②入门

积分
69
发表于 2010-1-27 13:29:54 | 显示全部楼层 |阅读模式
有没有什么改良的方法

能显示大图
然后大图边上能显示一大段文字
回复

使用道具 举报

15

主题

271

帖子

2198

积分

⑥精研

我要疯狂积累活跃度!

积分
2198
QQ
发表于 2010-1-27 16:29:05 | 显示全部楼层
百度寻找,要不去发布区找找。
曾经在6R见过,但是冲突强烈就放弃了。

不知道谁有收集。
紫月光流奈河畔, 孤影独行笑苍天。 酆都倒比人间好, 从此慕鬼不羡仙!
回复 支持 反对

使用道具 举报

0

主题

42

帖子

347

积分

④见习

积分
347
发表于 2010-1-27 17:19:14 | 显示全部楼层
显示大图 改法
Window_Item改32数字
刷新光标矩形 改32数字
--------------------------------------
大图边上能显示一大段文字
Window_Help修改
设置文本
------------------------------------
以下是脚本
  1. #==============================================================================
  2. # ■ Window_Item
  3. #------------------------------------------------------------------------------
  4. #  物品画面、战斗画面、显示浏览物品的窗口。
  5. #==============================================================================
  6. class Window_Item < Window_Selectable
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #--------------------------------------------------------------------------
  10.   def initialize
  11.     super(20, 72, 640, 400)
  12.     @column_max = 2
  13.     refresh
  14.     self.index = 0
  15.     # 战斗中的情况下将窗口移至中央并将其半透明化
  16.     if $game_temp.in_battle
  17.       self.y = 64
  18.       self.height = 256
  19.       self.back_opacity = 160
  20.     end
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # ● 获取物品
  24.   #--------------------------------------------------------------------------
  25.   def item
  26.     return @data[self.index]
  27.   end
  28.   #--------------------------------------------------------------------------
  29.   # ● 刷新
  30.   #--------------------------------------------------------------------------
  31.   def refresh
  32.     if self.contents != nil
  33.       self.contents.dispose
  34.       self.contents = nil
  35.     end
  36.     @data = []
  37.     # 添加报务
  38.     for i in 1...$data_items.size
  39.       if $game_party.item_number(i) > 0
  40.         @data.push($data_items[i])
  41.       end
  42.     end
  43.     # 在战斗中以外添加武器、防具
  44.     unless $game_temp.in_battle
  45.       for i in 1...$data_weapons.size
  46.         if $game_party.weapon_number(i) > 0
  47.           @data.push($data_weapons[i])
  48.         end
  49.       end
  50.       for i in 1...$data_armors.size
  51.         if $game_party.armor_number(i) > 0
  52.           @data.push($data_armors[i])
  53.         end
  54.       end
  55.     end
  56.     # 如果项目数不是 0 就生成位图、重新描绘全部项目
  57.     @item_max = @data.size
  58.     if @item_max > 0
  59.       self.contents = Bitmap.new(width - 32, row_max * 52)
  60.       for i in 0...@item_max
  61.         draw_item(i)
  62.       end
  63.     end
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ● 描绘项目
  67.   #     index : 项目编号
  68.   #--------------------------------------------------------------------------
  69.   def draw_item(index)
  70.     item = @data[index]
  71.     case item
  72.     when RPG::Item
  73.       number = $game_party.item_number(item.id)
  74.     when RPG::Weapon
  75.       number = $game_party.weapon_number(item.id)
  76.     when RPG::Armor
  77.       number = $game_party.armor_number(item.id)
  78.     end
  79.     if item.is_a?(RPG::Item) and
  80.        $game_party.item_can_use?(item.id)
  81.       self.contents.font.color = normal_color
  82.     else
  83.       self.contents.font.color = disabled_color
  84.     end
  85.     x = 4 + index % 2 * (288 + 32)
  86.     y = index / 2 * 52
  87.     rect = Rect.new(x, y, self.width / @column_max - 52, 52)
  88.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  89.     bitmap = RPG::Cache.icon(item.icon_name)
  90.     opacity = self.contents.font.color == normal_color ? 255 : 128
  91.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 52, 52), opacity)
  92.     self.contents.draw_text(x + 50, y, 212, 52, item.name, 0)
  93.     self.contents.draw_text(x + 240, y, 16, 52, ":", 1)
  94.     self.contents.draw_text(x + 256, y, 24, 52, number.to_s, 2)
  95.   end
  96.   #--------------------------------------------------------------------------
  97.   # ● 刷新帮助文本
  98.   #--------------------------------------------------------------------------
  99.    def page_row_max
  100.     # 窗口的高度,设置画面的高度减去 32 ,除以 1 行的高度 32
  101.     return (self.height - 52) / 52
  102.   end
  103.   #--------------------------------------------------------------------------
  104.   # ● 获取 1 页可以显示的项目数
  105.   #--------------------------------------------------------------------------
  106.   def page_item_max
  107.     # 将行数 page_row_max 乘上列数 @column_max
  108.     return page_row_max * @column_max
  109.   end
  110.   def update_help
  111.     @help_window.set_text(self.item == nil ? "" : self.item.description)
  112.   end
  113.   #--------------------------------------------------------------------------
  114.   # ● 刷新光标矩形
  115.   #--------------------------------------------------------------------------
  116. def update_cursor_rect
  117.     # 光标位置不满 0 的情况下
  118.     if @index < 0
  119.       self.cursor_rect.empty
  120.       return
  121.     end
  122.     # 获取当前的行
  123.     row = @index / @column_max
  124.     # 当前行被显示开头行前面的情况下
  125.     if row < self.top_row
  126.       # 从当前行向开头行滚动
  127.       self.top_row = row
  128.     end
  129.     # 当前行被显示末尾行之后的情况下
  130.     if row > self.top_row + (self.page_row_max - 1)
  131.       # 从当前行向末尾滚动
  132.       self.top_row = row - (self.page_row_max - 1)
  133.     end
  134.     # 计算光标的宽
  135.     cursor_width = self.width / @column_max - 32
  136.     # 计算光标坐标
  137.     x = @index % @column_max * (cursor_width + 32)
  138.     y = @index / @column_max * 52 - self.oy
  139.     # 更新国标矩形
  140.     self.cursor_rect.set(x, y, cursor_width, 52)
  141.   end
  142.   #-----------------------
  143.   def update
  144.     super
  145.     # 可以移动光标的情况下
  146.     if self.active and @item_max > 0 and @index >= 0
  147.       # 方向键下被按下的情况下
  148.       
  149.       # R 键被按下的情况下
  150.       if Input.repeat?(Input::R)
  151.         # 显示的最后行在数据中最后行上方的情况下
  152.         if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
  153.           # 光标向后移动一页
  154.           $game_system.se_play($data_system.cursor_se)
  155.           @index = [@index + self.page_item_max, @item_max - 1].min
  156.           self.top_row += self.page_row_max
  157.         end
  158.       end
  159.       # L 键被按下的情况下
  160.       if Input.repeat?(Input::L)
  161.         # 显示的开头行在位置 0 之后的情况下
  162.         if self.top_row > 0
  163.           # 光标向前移动一页
  164.           $game_system.se_play($data_system.cursor_se)
  165.           @index = [@index - self.page_item_max, 0].max
  166.           self.top_row -= self.page_row_max
  167.         end
  168.       end
  169.     end
  170.     # 刷新帮助文本 (update_help 定义了继承目标)
  171.     if self.active and @help_window != nil
  172.       update_help
  173.     end
  174.     # 刷新光标矩形
  175.     update_cursor_rect
  176.   end
  177.   
  178. end
复制代码
  1. #==============================================================================
  2. # ■ Window_Help
  3. #------------------------------------------------------------------------------
  4. #  特技及物品的说明、角色的状态显示的窗口。
  5. #   若要更改属性,请搜索element_set={1=>"火",2=>"冰",3=>"光",4=>"暗"} 改成对应属性即可
  6. #==============================================================================
  7. UNSHOW_STATE=[1,2,3,4,5]#记录不显示的状态数组
  8. UNSHOW_ELEMENT=[1,2,3,4,5]#记录不显示的属性数组
  9. class Window_Help < Window_Base
  10.   #--------------------------------------------------------------------------
  11.   # ● 初始化对像
  12.   #--------------------------------------------------------------------------
  13.   def initialize
  14.     super(150,200, 180, 430)
  15.     self.opacity = 150
  16.     self.z=150
  17.     self.visible = false
  18.     self.contents = Bitmap.new(width - 32, height - 32)
  19.     description=""
  20.     @item=nil
  21.     @armor=nil
  22.     @weapon=nil
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 设置文本
  26.   #     text  : 窗口显示的字符串
  27.   #     align : 对齐方式 (0..左对齐、1..中间对齐、2..右对齐)
  28.   #--------------------------------------------------------------------------
  29.   def set_text(data, align=nil)
  30.     # 如果文本和对齐方式的至少一方与上次的不同
  31.     if align != nil
  32.         # 再描绘窗口和文本
  33.       self.width = 640
  34.       self.height = 64
  35.       self.x=0
  36.       self.y=0
  37.       self.contents = Bitmap.new(width - 32, height - 32)
  38.       self.contents.clear
  39.       self.contents.font.color = normal_color
  40.       self.contents.font.size = 20
  41.       self.contents.draw_text(4, 0, self.width - 48, 32, data, align)
  42.       self.visible = true
  43.       return
  44.     end
  45.     if data == nil
  46.       self.visible=false
  47.       @data = nil
  48.     end
  49.     if data != nil && @data != data
  50.       @data=data
  51.       self.visible=true
  52.       self.width = 180
  53.       self.height = 200
  54.       self.x=180
  55.       self.y=430
  56.       self.contents = Bitmap.new(width - 32, height - 32)
  57.       case @data
  58.       when RPG::Item
  59.         set_item_text(@data)
  60.       when RPG::Weapon
  61.         set_weapon_text(@data)
  62.       when RPG::Armor
  63.         set_armor_text(@data)
  64.       when RPG::Skill
  65.         set_skill_text(@data)
  66.       end
  67.     else
  68.       return
  69.     end
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● 设置敌人
  73.   #     enemy : 要显示名字和状态的敌人
  74.   #--------------------------------------------------------------------------
  75.   def set_enemy(enemy)
  76.     text = enemy.name
  77.     state_text = make_battler_state_text(enemy, 0, false)
  78.     if state_text != ""
  79.       text += "  " + state_text
  80.     end
  81.     set_text(text, 1)
  82.     @data=nil
  83.   end
  84.   #--------------------------------------------------------------------------
  85.   # ● 设置角色
  86.   #     actor : 要显示状态的角色
  87.   #--------------------------------------------------------------------------
  88.   def set_actor(actor)
  89.     if actor != @actor
  90.         self.width = 640
  91.         self.height = 64
  92.         self.x=0
  93.         self.y=0
  94.         self.contents = Bitmap.new(width - 32, height - 32)
  95.         self.contents.clear
  96.         self.contents.font.size=20
  97.         self.contents.font.color = normal_color
  98.       draw_actor_name(actor, 4, 0)
  99.       draw_actor_state(actor, 140, 0)
  100.       draw_actor_hp(actor, 284, 0)
  101.       draw_actor_sp(actor, 460, 0)
  102.       @actor = actor
  103.       @text = nil
  104.       self.visible = true
  105.     end
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ● 校正帮助窗口位置
  109.   #--------------------------------------------------------------------------
  110.   def set_pos(x,y,width,oy,index,column_max)
  111.     #光标坐标
  112.     cursor_width = width / column_max - 32
  113.     xx = index % column_max * (cursor_width + 32)
  114.     yy = index / column_max * 32 - oy
  115.     self.x=xx+x+150
  116.     self.y=yy+y+30
  117.     if self.x+self.width>640
  118.       self.x=640-self.width
  119.     end
  120.     if self.y+self.height>480
  121.       self.y=480-self.height
  122.     end  
  123.   end
  124. end
  125. class Window_Help < Window_Base
  126.   #--------------------------------------------------------------------------
  127.   # ● 物品帮助窗口
  128.   #--------------------------------------------------------------------------
  129.   def set_item_text(item)
  130.     @item=item
  131.     description=""
  132.     description+=@item.description
  133.     x=0
  134.     y=0
  135.        # 取得屬性、附加狀態、解除狀態之副本
  136.    element_set = @item.element_set.clone
  137.    plus_state_set = @item.plus_state_set.clone
  138.    minus_state_set = @item.minus_state_set.clone
  139.    # 過濾不顯示的描述
  140.    element_set -= UNSHOW_ELEMENT
  141.    plus_state_set -= UNSHOW_STATE
  142.    minus_state_set -= UNSHOW_STATE
  143.     height=1     #依要显示的内容确定高
  144.     #由描叙确定高
  145.     height+=description.size/3/10
  146.     if description.size%10!=0
  147.       height+=1
  148.     end
  149.     height+=3  #空行,效果范围,价格
  150.     if @item.recover_hp_rate!=0 #HP 回复率。
  151.       height+=1
  152.     end   
  153.     if @item.recover_hp!=0 #HP 回复量。
  154.       height+=1
  155.     end
  156.     if @item.recover_sp_rate!=0 #SP 回复率。
  157.       height+=1
  158.     end
  159.     if @item.recover_sp!=0 #SP 回复量。
  160.       height+=1
  161.     end
  162.     if @item.parameter_type!=0 #增加能力值
  163.       height+=1
  164.     end      
  165.     if element_set.empty?!=true  #属性。为属性 ID 的数组
  166.       height+=1
  167.     end
  168.     if plus_state_set.empty?!=true  #附加状态。为状态 ID 的数组
  169.       height+=plus_state_set.size  
  170.     end
  171.     if minus_state_set.empty?!=true  #解除状态。为状态 ID 的数组
  172.       height+=minus_state_set.size   
  173.     end     
  174.     self.height=height*15+40+15   
  175.     self.contents = Bitmap.new(self.width - 32,self.height - 32)
  176.     self.contents.clear
  177.     #描绘名字
  178.     text=@item.name
  179.     self.contents.font.color =text_color(6)
  180.     self.contents.font.size=18
  181.     if text!=nil
  182.       self.visible = true
  183.       self.contents.draw_text(0,0, @item.name.size*7, 20, text, 0)
  184.     else
  185.       self.visible = false
  186.     end
  187.     x=0
  188.     y+=1
  189.     text=description
  190.     #描绘描叙
  191.     while ((text = description.slice!(/./m)) != nil)
  192.       self.contents.font.color = normal_color
  193.       self.contents.font.size=14
  194.       self.contents.draw_text(x*15, y*15+5, 14, 14, text, 0)
  195.       x+=1
  196.       if x==10#每行10个字
  197.         x=0
  198.         y+=1      
  199.       end
  200.     end
  201.     #由特技属性确定高
  202.     #效果范围
  203.     scope = {0=>"特殊物品",1=>"敌单体",2=>"敌全体",3=>"己方单体",4=>"己方全体",5=>"己方昏死单体",6=>"己方昏死全体",7=>"使用者"}#HASH表
  204.     text="范围:"+scope[@item.scope]
  205.     x=0
  206.     y+=2  #空一行
  207.     self.contents.font.color = normal_color
  208.     self.contents.font.size=14
  209.     self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  210.     #价格
  211.       x=0
  212.       y+=1      
  213.       text="价格:"+@item.price.to_s
  214.       self.contents.font.color = normal_color
  215.       self.contents.font.size=14   
  216.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  217.    
  218.     #HP 回复率   
  219.     if @item.recover_hp_rate!=0
  220.       x=0
  221.       y+=1      
  222.       text="回复HP:"+@item.recover_hp_rate.to_s+"%"
  223.       self.contents.font.color = normal_color
  224.       self.contents.font.size=14   
  225.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)      
  226.     end
  227.     #HP回复量
  228.     if @item.recover_hp!=0
  229.       x=0
  230.       y+=1      
  231.       text="回复HP:"+@item.recover_hp.to_s
  232.       self.contents.font.color = normal_color
  233.       self.contents.font.size=14   
  234.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  235.     end
  236.      #SP 回复率
  237.     if @item.recover_sp_rate!=0
  238.       x=0
  239.       y+=1      
  240.       text="回复SP:"+@item.recover_sp_rate.to_s+"%"
  241.       self.contents.font.color = normal_color
  242.       self.contents.font.size=14   
  243.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  244.     end
  245.     #SP 回复量
  246.     if @item.recover_sp!=0
  247.       x=0
  248.       y+=1      
  249.       text="回复SP:"+@item.recover_sp.to_s
  250.       self.contents.font.color = normal_color
  251.       self.contents.font.size=14   
  252.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  253.     end
  254.     #增加能力值
  255.     if @item.parameter_type!=0
  256.       parameter_type={1=>"MaxHP",2=>"MaxSP",3=>$data_system.words.str,4=>$data_system.words.dex,5=>$data_system.words.agi,6=>$data_system.words.int}
  257.       x=0
  258.       y+=1
  259.       if @item.parameter_points>0
  260.         text="增益:"+parameter_type[@item.parameter_type]+" +"+@item.parameter_points.to_s
  261.       else
  262.         text="减少:"+parameter_type[@item.parameter_type]+@item.parameter_points.to_s
  263.       end
  264.       self.contents.font.color = normal_color
  265.       self.contents.font.size=14   
  266.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  267.     end      
  268.    
  269.     #物品属性   
  270.     if element_set.empty?!=true  #属性。为属性 ID 的数组
  271.       text="属性:"
  272.       for i in 0...element_set.size
  273.         text+=$data_system.elements[element_set[i]]+" "
  274.       end
  275.       x=0
  276.       y+=1
  277.       self.contents.font.color = normal_color
  278.       self.contents.font.size=14
  279.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  280.     end
  281.     #附加状态
  282.     if plus_state_set.empty?!=true  #附加状态。为状态 ID 的数组
  283.       text="附加状态:"
  284.       x=0
  285.       y+=1
  286.       self.contents.font.color = normal_color
  287.       self.contents.font.size=14
  288.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  289.       y-=1
  290.       x+=text.size*5      
  291.       for i in 0...plus_state_set.size
  292.         y+=1
  293.         text=$data_states[plus_state_set[i]].name        
  294.         self.contents.font.color = normal_color
  295.         self.contents.font.size=14
  296.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)        
  297.       end  
  298.     end
  299.     #解除状态
  300.     if minus_state_set.empty?!=true  #解除状态。为状态 ID 的数组
  301.       text="解除状态:"
  302.       x=0
  303.       y+=1
  304.       self.contents.font.color = normal_color
  305.       self.contents.font.size=14
  306.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  307.       y-=1
  308.       x+=text.size*5      
  309.       for i in 0...minus_state_set.size
  310.         y+=1
  311.         text=$data_states[minus_state_set[i]].name        
  312.         self.contents.font.color = normal_color
  313.         self.contents.font.size=14
  314.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)        
  315.       end  
  316.     end     
  317.   end
  318. end
  319. class Window_Help < Window_Base
  320.     #--------------------------------------------------------------------------
  321.   # ● 武器帮助窗口
  322.   #--------------------------------------------------------------------------
  323.   
  324.   def set_weapon_text(weapon)
  325.     @weapon=weapon
  326.     description=""
  327.     description+=@weapon.description
  328.    # 取得屬性、附加狀態、解除狀態之副本
  329.    element_set = @weapon.element_set.clone
  330.    plus_state_set = @weapon.plus_state_set.clone
  331.    minus_state_set = @weapon.minus_state_set.clone
  332.    # 過濾不顯示的描述
  333.    element_set -= UNSHOW_ELEMENT
  334.    plus_state_set -= UNSHOW_STATE
  335.    minus_state_set -= UNSHOW_STATE
  336.     x=0
  337.     y=0
  338.     height=1     #依要显示的内容确定高
  339.     #由描叙确定高
  340.     height+=description.size/3/10
  341.     if description.size%10!=0
  342.       height+=1
  343.     end
  344.     height+=4  #2个空行,攻击,价格
  345.     if @weapon.pdef!=0 #物理防御
  346.       height+=1
  347.     end      
  348.     if @weapon.mdef!=0 #魔法防御
  349.       height+=1
  350.     end
  351.     if @weapon.str_plus!=0 #力量
  352.       height+=1
  353.     end
  354.     if @weapon.dex_plus!=0#体质
  355.       height+=1
  356.     end
  357.     if @weapon.agi_plus!=0#敏捷
  358.       height+=1
  359.     end
  360.     if @weapon.int_plus!=0 #智力
  361.       height+=1
  362.     end      
  363.     if element_set.empty?!=true  #属性。为属性 ID 的数组
  364.       height+=1
  365.     end  
  366.     if plus_state_set.empty?!=true  #附加状态。为状态 ID 的数组
  367.       height+=plus_state_set.size  
  368.     end
  369.     if minus_state_set.empty?!=true  #解除状态。为状态 ID 的数组
  370.       height+=minus_state_set.size   
  371.     end     
  372.     self.height=height*15+40+15   
  373.     self.contents = Bitmap.new(self.width - 32,self.height - 32)
  374.     self.contents.clear
  375.     #描绘名字
  376.     text=@weapon.name
  377.     self.contents.font.color = text_color(6)#颜色脚本
  378.     self.contents.font.size=18
  379.     if text!=nil
  380.       self.visible = true
  381.       self.contents.draw_text(0,0, @weapon.name.size*7, 20, text, 0)
  382.     else
  383.       self.visible = false
  384.     end
  385.     x=0
  386.     y+=1
  387.     text=description
  388.     #描绘描叙
  389.     while ((text = description.slice!(/./m)) != nil)
  390.       self.contents.font.color = normal_color
  391.       self.contents.font.size=14
  392.       self.contents.draw_text(x*15, y*15+5, 14, 14, text, 0)
  393.       x+=1
  394.       if x==10#每行10个字
  395.         x=0
  396.         y+=1      
  397.       end
  398.     end
  399.     #由特技属性确定高
  400.     #攻击
  401.       x=0
  402.       y+=2 #空行     
  403.       text="攻击:"+@weapon.atk.to_s
  404.       self.contents.font.color = text_color(6)#颜色脚本
  405.       self.contents.font.size=14   
  406.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)      
  407.     #价格
  408.       x=0
  409.       y+=1      
  410.       text="价格:"+@weapon.price.to_s
  411.       self.contents.font.color = normal_color
  412.       self.contents.font.size=14   
  413.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  414.     if @weapon.pdef!=0 #物理防御
  415.       x=0
  416.       y+=1      
  417.       text="物理防御:"+@weapon.pdef.to_s
  418.       self.contents.font.color = text_color(6)#颜色脚本
  419.       self.contents.font.size=14   
  420.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  421.     end      
  422.     if @weapon.mdef!=0 #魔法防御
  423.       x=0
  424.       y+=1      
  425.       text="魔法防御:"+@weapon.mdef.to_s
  426.       self.contents.font.color = text_color(6)#颜色脚本
  427.       self.contents.font.size=14   
  428.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  429.     end
  430.     #武器属性   
  431.     if element_set.empty? != true  #属性。为属性 ID 的数组
  432.       text="武器属性"
  433.       x=0
  434.       y+=1
  435.       self.contents.font.size=14
  436.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  437.       y-=1
  438.       x+=text.size*5
  439.       for i in 0...element_set.size
  440.       y+=1  
  441.       text=$data_system.elements[element_set[i]] + " "
  442.       self.contents.font.size=14
  443.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  444.     end
  445.     end
  446.     #附加状态
  447.     if plus_state_set.empty? != true  #附加状态。为状态 ID 的数组
  448.       text="附加状态:"
  449.       x=0
  450.       y+=1
  451.       self.contents.font.color = normal_color
  452.       self.contents.font.size=14
  453.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  454.       y-=1
  455.       x+=text.size*5      
  456.       for i in 0...plus_state_set.size
  457.         y+=1
  458.         text=$data_states[plus_state_set[i]].name        
  459.         self.contents.font.color = normal_color
  460.         self.contents.font.size=14
  461.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)        
  462.       end  
  463.     end
  464.     #解除状态
  465.     if minus_state_set.empty? != true  #解除状态。为状态 ID 的数组
  466.       text="解除状态:"
  467.       x=0
  468.       y+=1
  469.       self.contents.font.color = normal_color
  470.       self.contents.font.size=14
  471.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  472.       y-=1
  473.       x+=text.size*5      
  474.       for i in 0...minus_state_set.size
  475.         y+=1
  476.         text=$data_states[minus_state_set[i]].name        
  477.         self.contents.font.color = normal_color
  478.         self.contents.font.size=14
  479.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)        
  480.       end  
  481.     end
  482.     y+=1 #空行
  483.     if @weapon.str_plus!=0 #力量
  484.       x=0
  485.       y+=1
  486.       if @weapon.str_plus > 0
  487.         text=$data_system.words.str+"  + "+@weapon.str_plus.to_s
  488.       else
  489.         str_minus=-@weapon.str_plus
  490.         text=$data_system.words.str+"  - "+str_minus.to_s
  491.       end
  492.       self.contents.font.color = text_color(6)#颜色脚本
  493.       self.contents.font.size=14   
  494.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  495.     end
  496.     if @weapon.dex_plus!=0#体质
  497.       x=0
  498.       y+=1      
  499.       if @weapon.dex_plus > 0
  500.         text=$data_system.words.dex+"  + "+@weapon.dex_plus.to_s
  501.       else
  502.         dex_minus=-@weapon.dex_plus
  503.         text=$data_system.words.dex+"  - "+dex_minus.to_s
  504.       end
  505.       self.contents.font.color = text_color(6)#颜色脚本
  506.       self.contents.font.size=14   
  507.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  508.     end
  509.     if @weapon.agi_plus!=0#敏捷
  510.       x=0
  511.       y+=1      
  512.       if @weapon.agi_plus > 0
  513.         text=$data_system.words.agi+"  + "+@weapon.agi_plus.to_s
  514.       else
  515.         agi_minus=-@weapon.agi_plus
  516.         text=$data_system.words.agi+"  - "+agi_minus.to_s
  517.       end
  518.       self.contents.font.color = text_color(6)#颜色脚本
  519.       self.contents.font.size=14   
  520.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  521.     end
  522.     if @weapon.int_plus!=0 #智力
  523.       x=0
  524.       y+=1      
  525.       if @weapon.int_plus > 0
  526.         text=$data_system.words.int+"  + "+@weapon.int_plus.to_s
  527.       else
  528.         int_minus=-@weapon.int_plus
  529.         text=$data_system.words.int+"  - "+int_minus.to_s
  530.       end
  531.       self.contents.font.color = text_color(6)#颜色脚本
  532.       self.contents.font.size=14   
  533.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  534.     end
  535.   end
  536. end
  537. class Window_Help < Window_Base
  538.     #--------------------------------------------------------------------------
  539.   # ● 防具帮助窗口
  540.   #--------------------------------------------------------------------------
  541.     def set_armor_text(armor)
  542.     @armor=armor
  543.     description=""
  544.     description+=@armor.description
  545.    # 取得屬性、附加狀態、解除狀態之副本
  546.    element_set = @armor.guard_element_set.clone
  547.    guard_state_set = @armor.guard_state_set.clone
  548.    # 過濾不顯示的描述
  549.    element_set -= UNSHOW_ELEMENT
  550.    guard_state_set -= UNSHOW_STATE
  551.     x=0
  552.     y=0
  553.     height=1     #依要显示的内容确定高
  554.     #由描叙确定高
  555.     height+=description.size/3/10
  556.     if description.size%10 !=0
  557.       height+=1
  558.     end
  559.     height+=2  #2个空行,价格
  560.     if @armor.pdef !=0 #物理防御
  561.       height+=1
  562.     end      
  563.     if @armor.mdef !=0 #魔法防御
  564.       height+=1
  565.     end
  566.     if @armor.str_plus !=0 #力量
  567.       height+=1
  568.     end
  569.     if @armor.dex_plus !=0#体质
  570.       height+=1
  571.     end
  572.     if @armor.agi_plus !=0#敏捷
  573.       height+=1
  574.     end
  575.     if @armor.int_plus !=0 #智力
  576.       height+=1
  577.     end      
  578.     if element_set.empty? != true  #属性防御。为属性 ID 的数组
  579.       height+=1
  580.     end  
  581.     if guard_state_set.empty? != true  #状态防御。为状态 ID 的数组
  582.       height+=guard_state_set.size  
  583.     end   
  584.     self.height=height*16+70  
  585.     self.contents = Bitmap.new(self.width - 32,self.height - 32)
  586.     self.contents.clear
  587.     #描绘名字
  588.     text=@armor.name
  589.     self.contents.font.color = text_color(6)#颜色脚本
  590.     self.contents.font.size=18
  591.     if text!=nil
  592.       self.visible = true
  593.       self.contents.draw_text(0,0, @armor.name.size*7, 20, text, 0)
  594.     else
  595.       self.visible = false
  596.     end
  597.     x=0
  598.     y+=1
  599.     text=description
  600.     #描绘描叙
  601.     while ((text = description.slice!(/./m)) != nil)
  602.       self.contents.font.color = normal_color
  603.       self.contents.font.size=14
  604.       self.contents.draw_text(x*15, y*15+5, 14, 14, text, 0)
  605.       x+=1
  606.       if x==10#每行10个字
  607.         x=0
  608.         y+=1      
  609.       end
  610.     end
  611.     #由特技属性确定高
  612.       x=0
  613.       y+=2#空行      
  614.       text="价格:"+@armor.price.to_s
  615.       self.contents.font.color = normal_color
  616.       self.contents.font.size=14   
  617.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  618.       x=0
  619.       y+=1      
  620.     if @armor.pdef!=0 #物理防御
  621.       text="物理防御:"+@armor.pdef.to_s
  622.       self.contents.font.color = text_color(6)#颜色脚本
  623.       self.contents.font.size=14   
  624.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  625.       x=0
  626.       y+=1      
  627.     end      
  628.     if @armor.mdef!=0 #魔法防御
  629.       text="魔法防御:"+@armor.mdef.to_s
  630.       self.contents.font.color = text_color(6)#颜色脚本
  631.       self.contents.font.size=14   
  632.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  633.       x=0
  634.       y+=1      
  635.     end
  636.     #属性防御   
  637.     if element_set.empty? !=true  #属性。为属性 ID 的数组
  638.       text="属性防御:"
  639.       for i in 0...element_set.size
  640.         text+=$data_system.elements[element_set[i]]+" "
  641.       end
  642.       x=0
  643.       y+=1
  644.       self.contents.font.color = normal_color
  645.       self.contents.font.size=14
  646.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  647.     end
  648.     #状态防御
  649.     if guard_state_set.empty?!=true  #附加状态。为状态 ID 的数组
  650.       text="状态防御:"
  651.       x=0
  652.       y+=1
  653.       self.contents.font.color = normal_color
  654.       self.contents.font.size=14
  655.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  656.       y-=1
  657.       x+=text.size*5      
  658.       for i in 0...guard_state_set.size
  659.         y+=1
  660.         text=$data_states[guard_state_set[i]].name        
  661.         self.contents.font.color = normal_color
  662.         self.contents.font.size=14
  663.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)        
  664.       end  
  665.     end
  666. #    y+=1 #空行
  667.     if @armor.str_plus!=0 #力量
  668.       x=0
  669.       y+=1
  670.       if @armor.str_plus > 0
  671.         text=$data_system.words.str+"  + "+@armor.str_plus.to_s
  672.       else
  673.         str_minus=-@armor.str_plus
  674.         text=$data_system.words.str+"  - "+str_minus.to_s
  675.       end
  676.       self.contents.font.color = text_color(6)#颜色脚本
  677.       self.contents.font.size=14   
  678.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  679.     end
  680.     if @armor.dex_plus!=0#体质
  681.       x=0
  682.       y+=1      
  683.       if @armor.dex_plus > 0
  684.         text=$data_system.words.dex+"  + "+@armor.dex_plus.to_s
  685.       else
  686.         dex_minus=-@armor.dex_plus
  687.         text=$data_system.words.dex+"  - "+dex_minus.to_s
  688.       end
  689.       self.contents.font.color = text_color(6)#颜色脚本
  690.       self.contents.font.size=14   
  691.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  692.     end
  693.     if @armor.agi_plus!=0#敏捷
  694.       x=0
  695.       y+=1      
  696.       if @armor.agi_plus > 0
  697.         text=$data_system.words.agi+"  + "+@armor.agi_plus.to_s
  698.       else
  699.         agi_minus=-@armor.agi_plus
  700.         text=$data_system.words.agi+"  - "+agi_minus.to_s
  701.       end
  702.       self.contents.font.color = text_color(6)#颜色脚本
  703.       self.contents.font.size=14   
  704.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  705.     end
  706.     if @armor.int_plus!=0 #智力
  707.       x=0
  708.       y+=1      
  709.       if @armor.int_plus > 0
  710.         text=$data_system.words.int+"  + "+@armor.int_plus.to_s
  711.       else
  712.         int_minus=-@armor.int_plus
  713.         text=$data_system.words.int+"  - "+int_minus.to_s
  714.       end
  715.       self.contents.font.color = text_color(6)#颜色脚本
  716.       self.contents.font.size=14   
  717.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  718.     end
  719.   end
  720. end
  721. class Window_Help < Window_Base
  722.     #--------------------------------------------------------------------------
  723.   # ● 技能帮助窗口
  724.   #--------------------------------------------------------------------------
  725.   def set_skill_text(skill)
  726.     @skill=skill
  727.     description=""
  728.     description+=@skill.description
  729.    # 取得屬性、附加狀態、解除狀態之副本
  730.    element_set = @skill.element_set.clone
  731.    plus_state_set = @skill.plus_state_set.clone
  732.    minus_state_set = @skill.minus_state_set.clone
  733.    # 過濾不顯示的描述
  734.    element_set -= UNSHOW_ELEMENT
  735.    plus_state_set -= UNSHOW_STATE
  736.    minus_state_set -= UNSHOW_STATE
  737.     x=0
  738.     y=0
  739.     height=1     #依要显示的内容确定高
  740.     #由描叙确定高
  741.     height+=description.size/3/10
  742.     if description.size%10!=0
  743.       height+=1
  744.     end
  745.     height+=4  #空行,效果范围,消费SP,命中率
  746.     if @skill.power!=0  #威力,威力为0,则可能为状态魔法
  747.       height+=1
  748.     end
  749.     if element_set.empty?!=true  #属性。为属性 ID 的数组
  750.       height+=1
  751.     end  
  752.     if plus_state_set.empty?!=true  #附加状态。为状态 ID 的数组
  753.       height+=plus_state_set.size  
  754.     end
  755.     if minus_state_set.empty?!=true  #解除状态。为状态 ID 的数组
  756.       height+=minus_state_set.size   
  757.     end     
  758.     self.height=height*15+40+15   
  759.     self.contents = Bitmap.new(self.width - 32,self.height - 32)
  760.     self.contents.clear
  761.     #描绘名字
  762.     text=@skill.name
  763.     self.contents.font.color =text_color(6)
  764.     self.contents.font.size=18
  765.     if text!=nil
  766.       self.visible = true
  767.       self.contents.draw_text(0,0, @skill.name.size*7, 20, text, 0)
  768.     else
  769.       self.visible = false
  770.     end
  771.     x=0
  772.     y+=1
  773.     text=description
  774.     #描绘描叙
  775.     while ((text = description.slice!(/./m)) != nil)
  776.       self.contents.font.color = normal_color
  777.       self.contents.font.size=14
  778.       self.contents.draw_text(x*15, y*15+5, 14, 14, text, 0)
  779.       x+=1
  780.       text
  781.       if x==10#每行10个字
  782.         x=0
  783.         y+=1      
  784.       end
  785.     end
  786.     #由特技属性确定高
  787.     #效果范围
  788.    
  789.     scope = {0=>"特殊技能",1=>"敌单体",2=>"敌全体",3=>"己方单体",4=>"己方全体",5=>"己方昏死单体",6=>"己方昏死全体",7=>"使用者"}#HASH表
  790.     text="范围:"+scope[@skill.scope]
  791.     x=0
  792.     y+=2  #空一行
  793.     self.contents.font.color = normal_color
  794.     self.contents.font.size=14
  795.     self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  796.    
  797.     #威力
  798.     if @skill.power!=0
  799.       x=0
  800.       y+=1
  801.       c=@skill.power > 0 ? @skill.power : -1* @skill.power
  802.       text="威力:"+c.to_s
  803.       self.contents.font.color = normal_color
  804.       self.contents.font.size=14   
  805.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  806.     end  
  807.     #描绘消费SP
  808.     x=0
  809.     y+=1
  810.     text="消耗SP:"+@skill.sp_cost.to_s
  811.     self.contents.font.color = normal_color
  812.     self.contents.font.size=14   
  813.     self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  814.     #命中率
  815.     x=0
  816.     y+=1
  817.     text="命中率:"+@skill.hit.to_s+"%"
  818.     self.contents.font.color = normal_color
  819.     self.contents.font.size=14
  820.     self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  821.     #攻击属性
  822.    
  823.     if element_set.empty? != true  #属性。为属性 ID 的数组
  824.       text="属性:"
  825.       for i in 0...element_set.size
  826.         text+=$data_system.elements[element_set[i]]+" "
  827.       end
  828.       x=0
  829.       y+=1
  830.       self.contents.font.color = normal_color
  831.       self.contents.font.size=14
  832.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  833.     end
  834.     #附加状态
  835.     if plus_state_set.empty? != true  #附加状态。为状态 ID 的数组
  836.       text="附加状态:"
  837.       x=0
  838.       y+=1
  839.       self.contents.font.color = normal_color
  840.       self.contents.font.size=14
  841.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  842.       y-=1
  843.       x+=text.size*5      
  844.       for i in 0...plus_state_set.size
  845.         y+=1
  846.         text=$data_states[plus_state_set[i]].name        
  847.         self.contents.font.color = normal_color
  848.         self.contents.font.size=14
  849.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)        
  850.       end  
  851.     end
  852.     #解除状态
  853.     if minus_state_set.empty? != true  #解除状态。为状态 ID 的数组
  854.       text="解除状态:"
  855.       x=0
  856.       y+=1
  857.       self.contents.font.color = normal_color
  858.       self.contents.font.size=14
  859.       self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)
  860.       y-=1
  861.       x+=text.size*5      
  862.       for i in 0...minus_state_set.size
  863.         y+=1
  864.         text=$data_states[minus_state_set[i]].name        
  865.         self.contents.font.color = normal_color
  866.         self.contents.font.size=14
  867.         self.contents.draw_text(x, y*15+5, text.size*6, 14, text, 0)        
  868.       end  
  869.     end     
  870.   end
  871. end
  872. class Window_Item < Window_Selectable
  873.   #--------------------------------------------------------------------------
  874.   # ● 刷新帮助文本
  875.   #--------------------------------------------------------------------------
  876.   def update_help
  877. #    @help_window.set_text(self.item == nil ? "" : self.item.description)
  878.     @help_window.set_text(item)
  879.     #校正帮助窗口位置
  880.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  881.   end
  882. end
  883. class Window_Skill < Window_Selectable
  884.   #--------------------------------------------------------------------------
  885.   # ● 刷新帮助文本
  886.   #--------------------------------------------------------------------------
  887.   def update_help
  888. #    @help_window.set_text(self.skill == nil ? "" : self.skill.description)
  889.     @help_window.set_text(skill)
  890.     #校正帮助窗口位置
  891.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  892.   end
  893. end
  894. class Window_EquipRight < Window_Selectable
  895.   def update_help
  896. #    @help_window.set_text(self.item == nil ? "" : self.item.description)
  897.     @help_window.set_text(item)
  898.     #校正帮助窗口位置
  899.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  900.   end
  901. end
  902. class Window_EquipItem < Window_Selectable
  903.   def update_help
  904. #    @help_window.set_text(self.item == nil ? "" : self.item.description)
  905.     @help_window.set_text(item)
  906.     #校正帮助窗口位置
  907.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  908.   end
  909. end
  910. class Window_ShopBuy < Window_Selectable
  911.   def update_help
  912.     @help_window.set_text(item)
  913.     #校正帮助窗口位置
  914.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  915.   end
  916. end
  917. class Window_ShopSell < Window_Selectable
  918.   def update_help
  919.     @help_window.set_text(item)
  920.     #校正帮助窗口位置
  921.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  922.   end
  923. end
复制代码
回复 支持 反对

使用道具 举报

3

主题

8

帖子

69

积分

②入门

积分
69
 楼主| 发表于 2010-1-27 20:58:49 | 显示全部楼层
LS的同学辛苦了,多谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2025-7-2 21:02 , Processed in 0.011690 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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