【脚本】商店购买时 显示全部能力改变
rmxp吧
全部回复
仅看楼主
level 5
冥王星520 楼主
#==============================================================================
# ■ Window_ShopStatus
#------------------------------------------------------------------------------
#    商店画面、显示物品所持数与角色装备的窗口。
#==============================================================================
class Window_ShopStatus < Window_Base
   #--------------------------------------------------------------------------
   # ● 初始化对像
   #--------------------------------------------------------------------------
   def initialize
     super(368, 128, 272, 352)
     self.contents = Bitmap.new(width - 32, height - 32)
     self.contents.font.size = 16
     @item = nil
     refresh
   end
   #--------------------------------------------------------------------------
   # ● 刷新
   #--------------------------------------------------------------------------
   def refresh
     self.contents.clear
     if @item == nil
       return
     end
     case @item
     when RPG::Item
       number = $game_party.item_number(@item.id)
     when RPG::Weapon
       number = $game_party.weapon_number(@item.id)
     when RPG::Armor
       number = $game_party.armor_number(@item.id)
     end
     self.contents.font.color = system_color
     self.contents.draw_text(4, 0, 200, 32, "所持数")
     self.contents.font.color = normal_color
     self.contents.draw_text(204, 0, 32, 32, number.to_s, 2)
     if @item.is_a?(RPG::Item)
       return
     end
     # 添加装备品信息
     for i in 0...$game_party.actors.size
       # 获取角色
       actor = $game_party.actors[i]
       # 可以装备为普通文字颜色、不能装备设置为无效文字颜色
       if actor.equippable?(@item)
         self.contents.font.color = normal_color
       else
         self.contents.font.color = disabled_color
       end
       # 描绘角色名字
       j = 70
       self.contents.draw_text(0, 32 + j * i, 120, 32, actor.name)

2010年07月16日 18点07分 1
level 5
冥王星520 楼主
       # 获取当前的装备品
       if @item.is_a?(RPG::Weapon)
         item1 = $data_weapons[actor.weapon_id]
       elsif @item.kind == 0
         item1 = $data_armors[actor.armor1_id]
       elsif @item.kind == 1
         item1 = $data_armors[actor.armor2_id]
       elsif @item.kind == 2
         item1 = $data_armors[actor.armor3_id]
       else
         item1 = $data_armors[actor.armor4_id]
       end
       # 可以装备的情况
       #if actor.equippable?(@item)
         # 武器的情况
         i += 1
         if @item.is_a?(RPG::Weapon)
          
          
          
           atk1 = item1 != nil ? item1.atk : 0
           atk2 = @item != nil ? @item.atk : 0
          
           pdef1 = item1 != nil ? item1.pdef : 0
           pdef2 = @item != nil ? @item.pdef : 0
          
           str1 = item1 != nil ? item1.str_plus : 0
           str2 = @item != nil ? @item.str_plus : 0
          
           dex1 = item1 != nil ? item1.dex_plus : 0
           dex2 = @item != nil ? @item.dex_plus : 0
          
           agi1 = item1 != nil ? item1.agi_plus : 0
           agi2 = @item != nil ? @item.agi_plus : 0
          
           int1 = item1 != nil ? item1.int_plus : 0
           int2 = @item != nil ? @item.int_plus : 0
          
          
           @atk = atk2 - atk1

2010年07月16日 18点07分 2
level 5
冥王星520 楼主
           @str = str2 - str1
           @dex = dex2 - dex1
           @agi = agi2 - agi1
           @int = int2 - int1
           @pdef = pdef2 - pdef1
          
          
          
          
          
          
          
         x = -16
         self.contents.draw_text(80*0,         x+j * i, 112, 32,"攻击",0)
         self.contents.draw_text(80*1,         x+j * i, 112, 32,"力量",0)
         self.contents.draw_text(80*2,         x+j * i, 112, 32,"速度",0)
         self.contents.draw_text(80*0,         x+j * i+16, 112, 32,"敏捷",0)
         self.contents.draw_text(80*1,         x+j * i+16, 112, 32,"魔力",0)
         self.contents.draw_text(80*2,         x+j * i+16, 112, 32,"防御",0)
        
         #---------------------------------------------------------------------
         q=40-10
         if atk2 >= atk1
         self.contents.font.color = Color.new(159,251,162,255)
         self.contents.draw_text(80*0+q,       x+j * i, 112, 32,"↑",0)
         else
         self.contents.font.color = Color.new(255,0,0,255)
         self.contents.draw_text(80*0+q,        x+j * i, 112, 32,"↓",0)
         end
         #---------------------------------------------------------------------
         if str2 >= str1
         self.contents.font.color = Color.new(159,251,162,255)

2010年07月16日 18点07分 3
level 5
冥王星520 楼主
         self.contents.draw_text(80*1+q,     x+j * i, 112, 32,"↑",0)
         else
         self.contents.font.color = Color.new(255,0,0,255)
         self.contents.draw_text(80*1+q,     x+j * i, 112, 32,"↓",0)
         end
         #---------------------------------------------------------------------
         if dex2 >= dex1
         self.contents.font.color = Color.new(159,251,162,255)
         self.contents.draw_text(80*2+q,     x+j * i, 112, 32,"↑",0)
         else
         self.contents.font.color = Color.new(255,0,0,255)
         self.contents.draw_text(80*2+q,     x+j * i, 112, 32,"↓",0)
         end
      
         #---------------------------------------------------------------------
         if agi2 >= agi1
         self.contents.font.color = Color.new(159,251,162,255)
         self.contents.draw_text(80*0+q,        x+j * i+16, 112, 32,"↑",0)
         else
         self.contents.font.color = Color.new(255,0,0,255)
         self.contents.draw_text(80*0+q,        x+j * i+16, 112, 32,"↓",0)
         end
         #---------------------------------------------------------------------
         if int2 >= int1
         self.contents.font.color = Color.new(159,251,162,255)
         self.contents.draw_text(80*1+q,        x+j * i+16, 112, 32,"↑",0)
         else
         self.contents.font.color = Color.new(255,0,0,255)
         self.contents.draw_text(80*1+q,        x+j * i+16, 112, 32,"↓",0)
         end
         #---------------------------------------------------------------------
         if pdef2 >= pdef1

2010年07月16日 18点07分 4
level 5
冥王星520 楼主
         self.contents.font.color = Color.new(159,251,162,255)
         self.contents.draw_text(80*2+q,        x+j * i+16, 112, 32,"↑",0)
         else
         self.contents.font.color = Color.new(255,0,0,255)
         self.contents.draw_text(80*2+q,        x+j * i+16, 112, 32,"↓",0)
         end
        
        
        
        
        
        
         #---------------------------------------------------------------------
         self.contents.font.color = Color.new(159,251,162,255)
         q=50
         self.contents.draw_text(80*0+q,     x+j * i, 112, 32,@atk.abs.to_s,0)
         self.contents.draw_text(80*1+q,     x+j * i, 112, 32,@str.abs.to_s,0)
         self.contents.draw_text(80*2+q,     x+j * i, 112, 32,@dex.abs.to_s,0)
        
         #---------------------------------------------------------------------
         self.contents.draw_text(80*0+q,      x+j * i+16, 112, 32,@agi.abs.to_s,0)
         self.contents.draw_text(80*1+q,      x+j * i+16, 112, 32,@int.abs.to_s,0)
         self.contents.draw_text(80*2+q,      x+j * i+16, 112, 32,@pdef.abs.to_s,0)
          
          
          
          
          
          
          
          
          
          
          
          
          

2010年07月16日 18点07分 5
level 5
冥王星520 楼主
         end
         # 防具的情况
         if @item.is_a?(RPG::Armor)
          
          
           str1 = item1 != nil ? item1.str_plus : 0
           str2 = @item != nil ? @item.str_plus : 0
           dex1 = item1 != nil ? item1.dex_plus : 0
           dex2 = @item != nil ? @item.dex_plus : 0
          
           agi1 = item1 != nil ? item1.agi_plus : 0
           agi2 = @item != nil ? @item.agi_plus : 0
           int1 = item1 != nil ? item1.int_plus : 0
           int2 = @item != nil ? @item.int_plus : 0
          
          
          
           pdef1 = item1 != nil ? item1.pdef : 0
           pdef2 = @item != nil ? @item.pdef : 0
           mdef1 = item1 != nil ? item1.mdef : 0
           mdef2 = @item != nil ? @item.mdef : 0
          
          
           @str   = str2 - str1
           @dex   = dex2 - dex1
           @agi   = agi2 - agi1
           @int   = int2 - int1
           @pdef = pdef2 - pdef1
           @mdef = mdef2 - mdef1
         x=-16  
         self.contents.draw_text(80*0,         x+j * i, 112, 32,"力量",0)
         self.contents.draw_text(80*1,         x+j * i, 112, 32,"速度",0)
         self.contents.draw_text(80*2,         x+j * i, 112, 32,"敏捷",0)
         self.contents.draw_text(80*0,         x+j * i+16, 112, 32,"魔力",0)

2010年07月16日 18点07分 6
level 5
冥王星520 楼主
         self.contents.draw_text(80*1,         x+j * i+16, 112, 32,"防御",0)
         self.contents.draw_text(80*2,         x+j * i+16, 112, 32,"魔御",0)
        
         #---------------------------------------------------------------------
         q=30
         if str2 >= str1
         self.contents.font.color = Color.new(159,251,162,255)
         self.contents.draw_text(80*0+q,        x+j * i, 112, 32,"↑",0)
         else
         self.contents.font.color = Color.new(255,0,0,255)
         self.contents.draw_text(80*0+q,        x+j * i, 112, 32,"↓",0)
         end
         #---------------------------------------------------------------------
         if dex2 >= dex1
         self.contents.font.color = Color.new(159,251,162,255)
         self.contents.draw_text(80*1+q,     x+j * i, 112, 32,"↑",0)
         else
         self.contents.font.color = Color.new(255,0,0,255)
         self.contents.draw_text(80*1+q,     x+j * i, 112, 32,"↓",0)
         end
         #---------------------------------------------------------------------
         if agi2 >= agi1
         self.contents.font.color = Color.new(159,251,162,255)
         self.contents.draw_text(80*2+q,     x+j * i, 112, 32,"↑",0)
         else
         self.contents.font.color = Color.new(255,0,0,255)
         self.contents.draw_text(80*2+q,     x+j * i, 112, 32,"↓",0)
         end
      
         #---------------------------------------------------------------------
         if int2 >= int1
         self.contents.font.color = Color.new(159,251,162,255)

2010年07月16日 18点07分 7
level 5
冥王星520 楼主
         self.contents.draw_text(80*0+q,        x+j * i+16, 112, 32,"↑",0)
         else
         self.contents.font.color = Color.new(255,0,0,255)
         self.contents.draw_text(80*0+q,        x+j * i+16, 112, 32,"↓",0)
         end
         #---------------------------------------------------------------------
         q=40-10
         if pdef2 >= pdef1
         self.contents.font.color = Color.new(159,251,162,255)
         self.contents.draw_text(80*1+q,        x+j * i+16, 112, 32,"↑",0)
         else
         self.contents.font.color = Color.new(255,0,0,255)
         self.contents.draw_text(80*1+q,        x+j * i+16, 112, 32,"↓",0)
         end
         #---------------------------------------------------------------------
         if mdef2 >= mdef1
         self.contents.font.color = Color.new(159,251,162,255)
         self.contents.draw_text(80*2+q,        x+j * i+16, 112, 32,"↑",0)
         else
         self.contents.font.color = Color.new(255,0,0,255)
         self.contents.draw_text(80*2+q,        x+j * i+16, 112, 32,"↓",0)
         end
        
        
         #---------------------------------------------------------------------
         self.contents.font.color = Color.new(159,251,162,255)
         q=50
         self.contents.draw_text(80*0+q,      x+j * i, 112, 32,@str.abs.to_s,0)
         self.contents.draw_text(80*1+q,     x+j * i, 112, 32,@dex.abs.to_s,0)
         self.contents.draw_text(80*2+q,     x+j * i, 112, 32,@agi.abs.to_s,0)
        

2010年07月16日 18点07分 8
level 5
冥王星520 楼主
         #---------------------------------------------------------------------
         self.contents.draw_text(80*0+q,      x+j * i+16, 112, 32,@int.abs.to_s,0)
         self.contents.draw_text(80*1+q,        x+j * i+16, 112, 32,@pdef.abs.to_s,0)
         self.contents.draw_text(80*2+q,        x+j * i+16, 112, 32,@mdef.abs.to_s,0)
         end
         end
        
        
        
        
       self.contents.font.color = normal_color
       i -= 1
       #self.contents.font.size = 22
       # 描绘物品
       if item1 != nil
         x = 4
         y = 64 + 64 * i + 32
         #bitmap = RPG::Cache.icon(item1.icon_name)
         #opacity = self.contents.font.color == normal_color ? 255 : 128
         #self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
         #self.contents.draw_text(x + 28, y, 212, 32, item1.name)
       end
     end
   #end
   #--------------------------------------------------------------------------
   # ● 设置物品
   #      item : 新的物品
   #--------------------------------------------------------------------------
   def item=(item)
     if @item != item
       @item = item
       refresh
     end
   end
end

2010年07月16日 18点07分 9
level 1
这是……什么……
2010年07月17日 07点07分 10
level 5
冥王星520 楼主
回复:10楼
游戏脚本=-=
2010年07月17日 12点07分 11
level 5
冥王星520 楼主
回复:12楼
……插画?厉害
2010年07月19日 10点07分 13
level 5

我插个嘴说句话...
   我们吧其实是没有格式发帖这一谈的。
2010年07月19日 11点07分 14
level 5
冥王星520 楼主
回复:14楼
[瀑布汗~]
2010年07月20日 02点07分 15
1