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

Project1

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

[已经过期] 物品界面可以显示装备名称及说明,装备界面没有显示

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
21 小时
注册时间
2014-11-1
帖子
10
跳转到指定楼层
1
发表于 2014-11-21 21:55:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 rpg66lzy 于 2014-11-22 21:42 编辑

RUBY 代码复制
  1. #==============================================================================
  2. # ■ Game_Temp游戏的调控
  3. #==============================================================================
  4. class Game_Temp
  5.  
  6.    #--------------------------------------------------------------------------
  7.    # ● Execute Pre Cache Skill Menu执行预缓存技能菜单
  8.    #--------------------------------------------------------------------------   
  9.   def execute_pre_cache_equip_menu
  10.        @pre_cache_equip_menu = []
  11.        @pre_cache_equip_menu.push(Cache.menu_equip("Background"))
  12.        @pre_cache_equip_menu.push(Cache.menu_equip("Layout_U"))
  13.        @pre_cache_equip_menu.push(Cache.menu_equip("Layout_R"))
  14.        @pre_cache_equip_menu.push(Cache.menu_equip("Layout_D"))
  15.        @pre_cache_equip_menu.push(Cache.menu_equip("Layout_L"))
  16.        @pre_cache_equip_menu.push(Cache.menu_equip("Par_Number"))
  17.    end   
  18.  
  19. end
  20.  
  21. #==============================================================================
  22. # ■ Scene_Skill现场技术
  23. #==============================================================================
  24. class Scene_Equip
  25.    include MOG_MENU_EQUIP
  26.    include MOG_MENU_BASE
  27.  
  28.    #--------------------------------------------------------------------------
  29.    # ● Main
  30.    #--------------------------------------------------------------------------        
  31.    def main
  32.        execute_setup
  33.        execute_loop
  34.        execute_dispose
  35.    end  
  36.  
  37.    #--------------------------------------------------------------------------
  38.    # ● Execute Setup
  39.    #--------------------------------------------------------------------------        
  40.    def execute_setup
  41.        @actor = $game_temp.actor_menu_temp
  42.        @actor_old = @actor
  43.        @phase = 0
  44.        create_sprites
  45.    end
  46.  
  47.    #--------------------------------------------------------------------------
  48.    # ● Execute Lopp
  49.    #--------------------------------------------------------------------------        
  50.    def execute_loop
  51.        Graphics.transition(10)
  52.        loop do
  53.           Input.update
  54.           update
  55.           Graphics.update
  56.           break if SceneManager.scene != self
  57.        end
  58.    end
  59.  
  60. end
  61.  
  62. #==============================================================================
  63. # ■ Window_EquipStatus装备状态窗口
  64. #==============================================================================
  65. class Window_EquipStatus < Window_Base
  66.  
  67.    #--------------------------------------------------------------------------
  68.    # ● Initializee初始化Zee
  69.    #--------------------------------------------------------------------------
  70.    def initialize(x, y)
  71.        super(x, y, window_width, window_height)
  72.        @actor = nil
  73.        @temp_actor = nil
  74.        self.visible = false
  75.    end
  76.  
  77.    #--------------------------------------------------------------------------
  78.    # ● Window Width窗口的宽度
  79.    #--------------------------------------------------------------------------
  80.    def window_width
  81.        return 208
  82.    end
  83.  
  84.   #--------------------------------------------------------------------------
  85.    # ● Window Height窗口的高度
  86.    #--------------------------------------------------------------------------
  87.    def window_height
  88.       return 296
  89.    end
  90.  
  91.   #--------------------------------------------------------------------------
  92.    # ● Visible Line Number可见的行数
  93.    #--------------------------------------------------------------------------
  94.    def visible_line_number
  95.        return 1
  96.    end
  97.    #--------------------------------------------------------------------------
  98.    # ● Actor角色
  99.    #--------------------------------------------------------------------------
  100.    def actor=(actor)
  101.        return if @actor == actor
  102.        @actor = actor
  103.    end
  104.  
  105.    #--------------------------------------------------------------------------
  106.    # ● Refresh刷新
  107.    #--------------------------------------------------------------------------
  108.    def refresh
  109.        contents.clear
  110.    end
  111.  
  112.    #--------------------------------------------------------------------------
  113.    # ● Set Temp Actor设置临时角色
  114.    #--------------------------------------------------------------------------
  115.    def set_temp_actor(temp_actor)
  116.        return if @temp_actor == temp_actor
  117.        @temp_actor = temp_actor
  118.        $game_temp.temp_actor_equip = @temp_actor
  119.    end
  120.  
  121. end
  122.  
  123. #==============================================================================
  124. # ■ Window_EquipCommand已装备窗口
  125. #==============================================================================
  126. class Window_EquipCommand < Window_HorzCommand
  127.  
  128.   #--------------------------------------------------------------------------
  129.    # ● Initialize初始化
  130.    #--------------------------------------------------------------------------
  131.    def initialize(x, y, width)
  132.        @window_width = width
  133.        super(x, y)
  134.    end
  135.  
  136.    #--------------------------------------------------------------------------
  137.    # ● Window Width窗口的宽度
  138.    #--------------------------------------------------------------------------
  139.    def window_width
  140.        @window_width
  141.    end
  142.  
  143.   #--------------------------------------------------------------------------
  144.    # ● Col Max最大标签
  145.    #--------------------------------------------------------------------------
  146.    def col_max
  147.        return 3
  148.    end
  149.  
  150.   #--------------------------------------------------------------------------
  151.    # ● Make Command List装备命令列表
  152.    #--------------------------------------------------------------------------
  153.    def make_command_list
  154.        add_command(Vocab::equip2,   :equip)
  155.        add_command(Vocab::optimize, :optimize)
  156.        add_command(Vocab::clear,    :clear)
  157.    end
  158.  
  159.    #--------------------------------------------------------------------------
  160.    # ● Draw Item得出项目
  161.    #--------------------------------------------------------------------------  
  162.    def draw_item(index)
  163.    end  
  164.  
  165. end
  166.  
  167. #==============================================================================
  168. # ■ Window_EquipSlot装备槽窗口
  169. #==============================================================================
  170. class Window_EquipSlot < Window_Selectable#窗口选择
  171.  
  172.   attr_reader   :status_window #状态窗口      
  173.   attr_reader   :item_window #项目窗口
  174.  
  175.    #--------------------------------------------------------------------------
  176.    # ● Initialize
  177.    #--------------------------------------------------------------------------
  178.    def initialize(x, y, width)
  179.        super(x, y, width, window_height)
  180.        @actor = nil   
  181.       refresh
  182.    end
  183.  
  184.    #--------------------------------------------------------------------------
  185.    # ● Window Height窗口高度
  186.    #--------------------------------------------------------------------------
  187.    def window_height
  188.        fitting_height(visible_line_number)
  189.    end
  190.  
  191.    #--------------------------------------------------------------------------
  192.    # ● Visible Line Number可见的行数
  193.    #--------------------------------------------------------------------------
  194.    def visible_line_number
  195.        return 5
  196.    end
  197.  
  198.    #--------------------------------------------------------------------------
  199.    # ● Actor角色
  200.    #--------------------------------------------------------------------------
  201.    def actor=(actor)
  202.        return if @actor == actor
  203.        @actor = actor
  204.        refresh
  205.    end
  206.  
  207.    #--------------------------------------------------------------------------
  208.    # ● Update更新
  209.    #--------------------------------------------------------------------------
  210.    def update
  211.        super
  212.        @item_window.slot_id = index if @item_window
  213.    end
  214.  
  215.    #--------------------------------------------------------------------------
  216.    # ● Item Max最大项
  217.    #--------------------------------------------------------------------------
  218.    def item_max
  219.        @actor ? @actor.equip_slots.size : 0#装备槽尺寸
  220.    end
  221.  
  222.    #--------------------------------------------------------------------------
  223.    # ● Item项目
  224.    #--------------------------------------------------------------------------
  225.    def item
  226.        @actor ? @actor.equips[index] : nil
  227.    end
  228.  
  229.    #--------------------------------------------------------------------------
  230.    # ● Draw Item得出项目
  231.    #--------------------------------------------------------------------------
  232.    def draw_item(index)
  233.        return unless @actor
  234.        rect = item_rect_for_text(index)
  235.        change_color(system_color, enable?(index))
  236.        set_font_equip
  237.        draw_item_name(@actor.equips[index], rect.x + 92, rect.y, enable?(index))
  238.    end
  239.  
  240.    #--------------------------------------------------------------------------
  241.    # ● Slot Name槽的名称
  242.    #--------------------------------------------------------------------------
  243.    def slot_name(index)
  244.        @actor ? Vocab::etype(@actor.equip_slots[index]) : ""
  245.    end
  246.  
  247.    #--------------------------------------------------------------------------
  248.    # ● Enable能够用
  249.    #--------------------------------------------------------------------------
  250.    def enable?(index)
  251.        @actor ? @actor.equip_change_ok?(index) : false
  252.    end
  253.  
  254.    #--------------------------------------------------------------------------
  255.    # ● Current Item Enabled目前能用的项目
  256.    #--------------------------------------------------------------------------
  257.    def current_item_enabled?
  258.      enable?(index)
  259.    end
  260.  
  261.    #--------------------------------------------------------------------------
  262.    # ● Status  Window状态窗口
  263.    #--------------------------------------------------------------------------
  264.    def status_window=(status_window)
  265.        @status_window = status_window
  266.        call_update_help
  267.    end
  268.  
  269.    #--------------------------------------------------------------------------
  270.    # ● Item Window项目窗口
  271.    #--------------------------------------------------------------------------
  272.    def item_window=(item_window)
  273.        @item_window = item_window
  274.        update
  275.    end
  276.  
  277.    #--------------------------------------------------------------------------
  278.    # ● Update Help更新的帮助
  279.    #--------------------------------------------------------------------------
  280.    def update_help
  281.        super
  282.        @help_window.set_item(item) if @help_window
  283.        $game_temp.temp_actor_equip = nil if @status_window
  284.    end
  285.  
  286. end
  287.  
  288.  
  289. #==============================================================================
  290. # ■ Window_EquipItem在项目窗口
  291. #==============================================================================
  292. class Window_EquipItem_Menu < Window_ItemList
  293.  
  294.    attr_reader   :status_window   
  295.    attr_accessor :windows_index
  296.  
  297.    #--------------------------------------------------------------------------
  298.    # ● Initialize初始化
  299.    #--------------------------------------------------------------------------
  300.    def initialize(x, y, width, height)
  301.        super
  302.        @actor = nil
  303.        @slot_id = 0
  304.        @windows_index = 0
  305.        self.visible = false
  306.        self.opacity = 0
  307.    end
  308.  
  309.    #--------------------------------------------------------------------------
  310.    # ● Col Max最大标签
  311.    #--------------------------------------------------------------------------
  312.    def col_max
  313.        return 1
  314.    end  
  315.  
  316.    #--------------------------------------------------------------------------
  317.    # ● Actor角色
  318.    #--------------------------------------------------------------------------
  319.    def actor=(actor)
  320.        return if @actor == actor
  321.        @actor = actor
  322.        self.oy = 0
  323.    end
  324.  
  325.   #--------------------------------------------------------------------------
  326.    # ● Setup安装程序
  327.    #--------------------------------------------------------------------------  
  328.    def setup(actor,equip_type,index)
  329.        @actor = actor
  330.        @slot_id = equip_type
  331.        @windows_index = index      
  332.        refresh
  333.    end  
  334.  
  335.    #--------------------------------------------------------------------------
  336.    # ● Slot ID槽号
  337.    #--------------------------------------------------------------------------
  338.    def slot_id=(slot_id)
  339.    end
  340.  
  341.    #--------------------------------------------------------------------------
  342.    # ● Include?包括
  343.    #--------------------------------------------------------------------------
  344.    def include?(item)
  345.        return true if item == nil
  346.        return false unless item.is_a?(RPG::EquipItem)
  347.        return false if @slot_id < 0
  348.        return false if item.etype_id != @actor.equip_slots[@slot_id]
  349.        return @actor.equippable?(item)
  350.    end
  351.  
  352.    #--------------------------------------------------------------------------
  353.    # ● Enable?使
  354.    #--------------------------------------------------------------------------
  355.    def enable?(item)
  356.        return true
  357.    end
  358.  
  359.    #--------------------------------------------------------------------------
  360.    # ● Select Last选择最后一次
  361.    #--------------------------------------------------------------------------
  362.    def select_last
  363.    end
  364.  
  365.    #--------------------------------------------------------------------------
  366.    # ● Status Window状态窗口
  367.    #--------------------------------------------------------------------------
  368.    def status_window=(status_window)
  369.        @status_window = status_window
  370.        call_update_help
  371.    end
  372.  
  373.    #--------------------------------------------------------------------------
  374.    # ● Update Help更新的帮助
  375.    #--------------------------------------------------------------------------
  376.    def update_help
  377.        super
  378.           if @actor && @status_window
  379.           temp_actor = Marshal.load(Marshal.dump(@actor))
  380.           temp_actor.force_change_equip(@slot_id, item)
  381.           $game_temp.temp_actor_equip = temp_actor
  382.        end
  383.    end
  384.  
  385.   #--------------------------------------------------------------------------
  386.    # ● Draw Item得出项目
  387.    #--------------------------------------------------------------------------
  388.    def draw_item(index)
  389.        item = @data[index]
  390.        if item
  391.            set_font_equip
  392.            rect = item_rect(index)
  393.            rect.width -= 4
  394.            draw_item_name(item, rect.x, rect.y, enable?(item))
  395.            draw_item_number(rect, item)
  396.        end
  397.    end      
  398.  
  399.    #--------------------------------------------------------------------------
  400.    # ● Draw Item Number得出项目编号
  401.    #--------------------------------------------------------------------------
  402.    def draw_item_number(rect, item)
  403.        draw_text(rect, sprintf(": %2d", $game_party.item_number(item)), 2)
  404.    end  
  405.  
  406. end
  407.  
  408. module MOG_EQUIP_STATUS  
  409.    LAYOUT_POSITION = [0,80]
  410.    FACE_POSITION = [120,-45]
  411.    PAR_POSITION = [5,32]
  412.    NAME_POSITION = [15,-5]
  413.    FONT_NAME = "Georgia"
  414.    FONT_SIZE = 18
  415.    FONT_BOLD = true
  416. end
  417.  
  418.  
  419. #==============================================================================
  420. # ■ Actor Menu Status角色状态菜单
  421. #==============================================================================
  422. class Actor_Equip_Status
  423.  
  424.    include MOG_EQUIP_STATUS  
  425.  
  426.    #--------------------------------------------------------------------------
  427.    # ● Initialize
  428.    #--------------------------------------------------------------------------
  429.    def initialize(actor)
  430.        @actor = actor
  431.        @actor_old = @actor
  432.        $game_temp.temp_actor_equip = nil
  433.        @old_temp_actor = $game_temp.temp_actor_equip
  434.        set_old_parameter
  435.        create_sprites
  436.    end
  437.  
  438.   #--------------------------------------------------------------------------
  439.    # ● Create Sprites
  440.    #--------------------------------------------------------------------------  
  441.    def create_sprites
  442.        @parameter_number = $game_temp.pre_cache_equip_menu[5]
  443.        @parameter_cw = @parameter_number.width / 11
  444.        @parameter_ch = @parameter_number.height / 3
  445.       create_layout
  446.        create_face
  447.        create_parameter
  448.        create_name
  449.    end
  450.  
  451.    #--------------------------------------------------------------------------
  452.    # ● Dispose
  453.    #--------------------------------------------------------------------------  
  454.    def dispose
  455.        dispose_layout
  456.        dispose_face
  457.        dispose_parameter
  458.        dispose_name
  459.    end
  460.  
  461.   #--------------------------------------------------------------------------
  462.    # ● Dispose Layout
  463.    #--------------------------------------------------------------------------   
  464.   def dispose_layout
  465.        @layout.dispose
  466.    end
  467.  
  468.    #--------------------------------------------------------------------------
  469.    # ● Dispose Face
  470.    #--------------------------------------------------------------------------   
  471.   def dispose_face
  472.        @face.dispose
  473.    end  
  474.  
  475.    #--------------------------------------------------------------------------
  476.    # ● Dispose Parameter
  477.    #--------------------------------------------------------------------------      
  478.    def dispose_parameter
  479.        @parameter.bitmap.dispose
  480.        @parameter.dispose
  481.    end
  482.  
  483.   #--------------------------------------------------------------------------
  484.    # ● Dispose Name
  485.    #--------------------------------------------------------------------------        
  486.    def dispose_name
  487.        @name.bitmap.dispose
  488.        @name.dispose
  489.    end
  490.  
  491.    #--------------------------------------------------------------------------
  492.    # ● Create Layout
  493.    #--------------------------------------------------------------------------
  494.    def create_layout
  495.        @layout = Sprite.new
  496.        @layout.bitmap = $game_temp.pre_cache_equip_menu[4]
  497.        @org_pos = [LAYOUT_POSITION[0],LAYOUT_POSITION[1]]
  498.        @layout.x = @org_pos[0] - 150
  499.        @layout.y = @org_pos[1]
  500.        @layout.z = 10
  501.        @layout.opacity = 0
  502.        @slide_range = (@org_pos[0] - 150)
  503.    end
  504.  
  505.   #--------------------------------------------------------------------------
  506.    # ● Create Parameter
  507.    #--------------------------------------------------------------------------
  508.   def create_parameter
  509.        @parameter = Sprite.new
  510.        @parameter.bitmap = Bitmap.new(@layout.bitmap.width,@layout.bitmap.height)
  511.        @org_pos_par = [@org_pos[0] + PAR_POSITION[0],
  512.                        @org_pos[1] + PAR_POSITION[1]]
  513.        @parameter.x = @org_pos_par[0] - 150
  514.        @parameter.y = @org_pos_par[1]
  515.        @parameter.z = 11
  516.        @parameter.opacity = 0
  517.        refresh_parameter
  518.    end
  519.  
  520.    #--------------------------------------------------------------------------
  521.    # ● Create Face
  522.    #--------------------------------------------------------------------------  
  523.    def create_face
  524.        [url=home.php?mod=space&uid=84331]@face[/url] = Sprite.new
  525.        @org_pos_face = [@org_pos[0] + FACE_POSITION[0],
  526.                         @org_pos[1] + FACE_POSITION[1]]
  527.       @face.x = @org_pos_face[0] - 150
  528.        @face.y = @org_pos_face[1]
  529.        @face.z = 11
  530.        @face.opacity = 0
  531.        refresh_face
  532.    end
  533.  
  534.    #--------------------------------------------------------------------------
  535.    # ● Create Name
  536.    #--------------------------------------------------------------------------   
  537.   def create_name
  538.        @name = Sprite.new
  539.        @name.bitmap = Bitmap.new(140,32)
  540.        @name.bitmap.font.name = FONT_NAME
  541.        @name.bitmap.font.size = FONT_SIZE
  542.        @name.bitmap.font.bold = FONT_BOLD
  543.        @org_pos_name = [@org_pos[0] + NAME_POSITION[0],
  544.                         @org_pos[1] + NAME_POSITION[1]]
  545.       @name.x = @org_pos_name[0] - 150
  546.        @name.y = @org_pos_name[1]
  547.        @name.z = 11
  548.        @name.opacity = 0
  549.        refresh_name     
  550.    end  
  551.  
  552.    #--------------------------------------------------------------------------
  553.    # ● Set Old Parameter
  554.    #--------------------------------------------------------------------------  
  555.    def set_old_parameter
  556.        @par = [] if @par == nil
  557.        @par.clear
  558.        @par = [
  559.        @actor.param(0),@actor.param(1),@actor.param(2),@actor.param(3),
  560.        @actor.param(4),@actor.param(5),@actor.param(6),@actor.param(7),
  561.        @old_temp_actor
  562.        ]
  563.    end   
  564.  
  565.    #--------------------------------------------------------------------------
  566.    # ● Can Refresh Parameter
  567.    #--------------------------------------------------------------------------
  568.   def can_refresh_parameter?
  569.        return true if @par[0] != @actor.param(0)
  570.        return true if @par[1] != @actor.param(1)
  571.        return true if @par[2] != @actor.param(2)
  572.        return true if @par[3] != @actor.param(3)
  573.        return true if @par[4] != @actor.param(4)
  574.        return true if @par[5] != @actor.param(5)
  575.        return true if @par[6] != @actor.param(6)
  576.        return true if @par[7] != @actor.param(7)
  577.        return true if @old_temp_actor != $game_temp.temp_actor_equip
  578.        return false
  579.    end  
  580.  
  581.    #--------------------------------------------------------------------------
  582.    # ● Refresh Name
  583.    #--------------------------------------------------------------------------      
  584.    def refresh_name   
  585.       @name.bitmap.clear
  586.        @name.bitmap.draw_text(0,0,140,32,@actor.name.to_s,0)
  587.    end
  588.  
  589.    #--------------------------------------------------------------------------
  590.    # ● Create Face
  591.    #--------------------------------------------------------------------------   
  592.    def refresh_parameter
  593.        set_old_parameter
  594.        @parameter.bitmap.clear
  595.        @old_temp_actor = $game_temp.temp_actor_equip
  596.        x = 180      
  597.        for p in 0...8
  598.            y = 24 * p
  599.            refresh_number(@parameter,@parameter_number,p,@parameter_cw,@parameter_ch,x,y,0)
  600.        end      
  601.        if $game_temp.temp_actor_equip != nil
  602.           x = 180 - (@parameter_cw * 7)
  603.           for p in 0...8
  604.               y = 24 * p
  605.               refresh_number(@parameter,@parameter_number,p,@parameter_cw,@parameter_ch,x,y,1)
  606.           end     
  607.       end
  608.    end
  609.  
  610.    #--------------------------------------------------------------------------
  611.    # ● Refresh Number
  612.    #--------------------------------------------------------------------------     
  613.    def refresh_number(sprite,image,p,number_cw,number_ch,x,y,type)
  614.        value = @actor.param(p)
  615.        new_value = 0
  616.        ch = 0
  617.        if type == 1         
  618.           if $game_temp.temp_actor_equip != nil
  619.              new_value = $game_temp.temp_actor_equip.param(p)
  620.           end         
  621.           d_value = new_value - value
  622.           if d_value < 0
  623.              ch = 2
  624.           elsif d_value > 0
  625.              ch = 1
  626.          else
  627.              ch = 0
  628.           end   
  629.           value = new_value
  630.        end
  631.        draw_arrow(sprite,image,number_cw,number_ch,x,y,ch)
  632.        draw_number(sprite,image,value,number_cw,number_ch,x,y,ch)
  633.    end
  634.  
  635.    #--------------------------------------------------------------------------
  636.    # ● Draw Arrow
  637.    #--------------------------------------------------------------------------        
  638.    def draw_arrow(sprite,image,number_cw,number_ch,x,y,ch)
  639.        nsrc_rect = Rect.new(number_cw * 10, number_ch * ch , number_cw , number_ch)
  640.        sprite.bitmap.blt(x + number_cw, y, image, nsrc_rect)     
  641.    end
  642.  
  643.    #--------------------------------------------------------------------------
  644.    # ● Draw Number
  645.    #--------------------------------------------------------------------------      
  646.    def draw_number(sprite,image,value,number_cw,number_ch,x,y,ch)
  647.        number = value.truncate.abs.to_s.split(//)
  648.        x2 = -number_cw * number.size
  649.        for i in 0..number.size  - 1
  650.            number_abs = number.to_i
  651.            nsrc_rect = Rect.new(number_cw * number_abs, number_ch * ch , number_cw , number_ch)
  652.            sprite.bitmap.blt(x + x2 + (number_cw  *  i), y, image, nsrc_rect)        
  653.        end      
  654.    end
  655.  
  656.    #--------------------------------------------------------------------------
  657.    # ● Refresh Face
  658.    #--------------------------------------------------------------------------  
  659.    def refresh_face
  660.       face_name = "Face" + @actor.id.to_s
  661.        @face.bitmap = Cache.menu(face_name.to_s)
  662.    end
  663.  
  664.    #--------------------------------------------------------------------------
  665.    # ● Update Move
  666.    #--------------------------------------------------------------------------  
  667.    def update_move
  668.        update_slide(0,@layout,@layout.x,@org_pos[0])
  669.        update_slide(1,@layout,@layout.y,@org_pos[1])      
  670.        update_slide(0,@parameter,@parameter.x,@org_pos_par[0])
  671.        update_slide(1,@parameter,@parameter.y,@org_pos_par[1])
  672.        update_slide(0,@face,@face.x,@org_pos_face[0])
  673.        update_slide(1,@face,@face.y,@org_pos_face[1])
  674.       update_slide(0,@name,@name.x,@org_pos_name[0])
  675.        update_slide(1,@name,@name.y,@org_pos_name[1])
  676.   end
  677.  
  678. #--------------------------------------------------------------------------
  679. # ● Update Slide
  680. #--------------------------------------------------------------------------                       
  681.    def update_slide(type,sprite,cp,np)
  682.        sprite.opacity += 5
  683.        sp = 3 + ((cp - np).abs / 10)
  684.        if cp > np
  685.          cp -= sp
  686.           cp = np if cp < np
  687.        elsif cp < np
  688.          cp += sp
  689.           cp = np if cp > np
  690.        end     
  691.        sprite.x = cp if type == 0
  692.        sprite.y = cp if type == 1
  693.    end      
  694.  
  695.    #--------------------------------------------------------------------------
  696.    # ● Refresh All
  697.    #--------------------------------------------------------------------------  
  698.    def refresh_all(actor)      
  699.       @actor = actor
  700.        refresh_parameter
  701.        refresh_face
  702.        refresh_name
  703.    end   
  704.  
  705.    #--------------------------------------------------------------------------
  706.    # ● Update
  707.    #--------------------------------------------------------------------------
  708.    def update(actor)
  709.        update_move
  710.        refresh_all(actor) if actor != @actor
  711.        refresh_parameter if can_refresh_parameter?
  712.    end      
  713.  
  714. end
  715.  
  716. #==============================================================================
  717. # ■ Scene_Equip现场装备1
  718. #==============================================================================
  719. class Scene_Equip
  720.  
  721.    #--------------------------------------------------------------------------
  722.    # ● Create Sprites
  723.    #--------------------------------------------------------------------------
  724.    def create_sprites
  725.        create_menu_background
  726.        create_layout
  727.        create_particles
  728.        create_help_window
  729.        create_status_window
  730.        create_command_window
  731.        create_slot_window
  732.        create_item_window
  733.        create_actor_status
  734.        set_sprite_position
  735.    end
  736.  
  737.    #--------------------------------------------------------------------------
  738.    # ● Set Sprite Position设定精灵的位置
  739.    #--------------------------------------------------------------------------  
  740.    def set_sprite_position
  741.        @status_window.opacity = 0
  742.        @command_window.opacity = 0
  743.        @slot_window.opacity = 0
  744.        @help_window.opacity = 0
  745.        @status_window.contents_opacity = 0
  746.        @command_window.contents_opacity = 0
  747.        @slot_window.contents_opacity = 0
  748.        @help_window.contents_opacity = 0      
  749.       @layout2.opacity = 0
  750.        @layout3.opacity = 0
  751.        @layout4.opacity = 0
  752.        @org_pos_help = [@help_window.x,@help_window.y]
  753.        @help_window.x = @org_pos_help[0]
  754.        @help_window.y = @org_pos_help[1] + 150     
  755.        @org_pos_com = [@command_window.x,@command_window.y]
  756.        @command_window.x = @org_pos_com[0]
  757.       @command_window.y = @org_pos_com[1] - 150
  758.        @org_pos_slot = [@slot_window.x,@slot_window.y]
  759.        @slot_window.x = @org_pos_slot[0] + 150
  760.        @slot_window.y = @org_pos_slot[1]      
  761.        @layout2.y = -150
  762.        @layout3.x = 150
  763.        @layout4.y = 150      
  764.   end
  765.  
  766.    #--------------------------------------------------------------------------
  767.    # ● Create Actor Status创建的演员的地位
  768.    #--------------------------------------------------------------------------  
  769.    def create_actor_status
  770.        @actor_status = Actor_Equip_Status.new(@actor)
  771.    end  
  772.  
  773.    #--------------------------------------------------------------------------
  774.    # ● Create Menu Background创建菜单背景
  775.    #--------------------------------------------------------------------------            
  776.    def create_menu_background
  777.        @background = Plane.new
  778.        @background.bitmap = $game_temp.pre_cache_equip_menu[0]
  779.        @background.z = 0
  780.        @background_scroll = [BACKGROUND_SCROLL_SPEED[0],BACKGROUND_SCROLL_SPEED[1]]
  781.    end   
  782.  
  783.    #--------------------------------------------------------------------------
  784.    # ● Create Layout创建布局
  785.    #--------------------------------------------------------------------------              
  786.    def create_layout     
  787.        @layout2 = Sprite.new
  788.        @layout2.bitmap = $game_temp.pre_cache_equip_menu[1]
  789.        @layout2.z = 3
  790.        @layout3 = Sprite.new
  791.        @layout3.bitmap = $game_temp.pre_cache_equip_menu[2]
  792.        @layout3.z = 3
  793.        @layout4 = Sprite.new
  794.        @layout4.bitmap = $game_temp.pre_cache_equip_menu[3]
  795.        @layout4.z = 3
  796.   end  
  797.  
  798.    #--------------------------------------------------------------------------
  799.    # ● Create Particles创建粒子
  800.    #--------------------------------------------------------------------------  
  801.    def create_particles
  802.        @particles_sprite =[]
  803.        for i in 0...NUMBER_OF_PARTICLES
  804.            @particles_sprite.push(Particles_Menu.new(nil))
  805.        end
  806.    end   
  807.  
  808.    #--------------------------------------------------------------------------
  809.    # ● Create Help Window创建帮助窗口
  810.    #--------------------------------------------------------------------------              
  811.    def create_help_window
  812.        @help_window = Window_Help.new
  813.        @help_window.x = 0
  814.        @help_window.y = Graphics.height - @help_window.height
  815.        @help_window.set_font_equip
  816.    end     
  817.  
  818.    #--------------------------------------------------------------------------
  819.    # ● Create Status Window创建状态窗口
  820.    #--------------------------------------------------------------------------
  821.    def create_status_window
  822.        @status_window = Window_EquipStatus.new(0, @help_window.height)
  823.        @status_window.viewport = @viewport
  824.        @status_window.actor = @actor
  825.        @status_window.y = 48
  826.    end
  827.  
  828.   #--------------------------------------------------------------------------
  829.    # ● Create Command Window创建命令窗口
  830.    #--------------------------------------------------------------------------
  831.    def create_command_window
  832.        @command_window = Window_EquipCommand.new(208, 0, 336)
  833.        @command_window.help_window = @help_window
  834.        @command_window.set_handler(:equip,    method(:command_equip))
  835.        @command_window.set_handler(:optimize, method(:command_optimize))
  836.        @command_window.set_handler(:clear,    method(:command_clear))
  837.        @command_window.set_handler(:cancel,   method(:return_scene))
  838.        @command_window.set_handler(:pagedown, method(:next_actor))
  839.        @command_window.set_handler(:pageup,   method(:prev_actor))
  840.    end
  841.  
  842.    #--------------------------------------------------------------------------
  843.    # ● Create Slot Window创建窗口内
  844.    #--------------------------------------------------------------------------
  845.    def create_slot_window
  846.        wx = @status_window.width
  847.        wy = @command_window.y + @command_window.height + 5
  848.        ww = Graphics.width - @status_window.width
  849.        @slot_window = Window_EquipSlot.new(wx, wy, ww)
  850.        @slot_window.help_window = @help_window
  851.        @slot_window.status_window = @status_window
  852.        @slot_window.actor = @actor
  853.        @slot_window.set_handler(:ok,       method(:on_slot_ok))
  854.        @slot_window.set_handler(:cancel,   method(:on_slot_cancel))
  855.        @slot_window.set_handler(:pagedown, method(:next_actor))
  856.        @slot_window.set_handler(:pageup,   method(:prev_actor))  
  857.    end
  858.  
  859.    #--------------------------------------------------------------------------
  860.    # ● Create Item Window创建项目窗口
  861.    #--------------------------------------------------------------------------
  862.    def create_item_window
  863.        @equip_window = []
  864.        index = 0
  865.        window_max = 5
  866.        for item in 0...window_max     
  867.            wx = @slot_window.x
  868.            wy = @slot_window.y + @slot_window.height + 5
  869.            ww = @slot_window.width
  870.            wh = @slot_window.height
  871.            @equip_window.push(Window_EquipItem_Menu.new(wx, wy, ww, wh))
  872.            @equip_window[item].setup(@actor,item, index)
  873.            @equip_window[item].visible = false
  874.            @equip_window[item].help_window = @help_window
  875.            @equip_window[item].status_window = @status_window
  876.            @equip_window[item].actor = @actor
  877.            @equip_window[item].set_handler(:ok,     method(:on_item_ok))
  878.            @equip_window[item].set_handler(:cancel, method(:on_item_cancel))
  879.            @equip_window[item].opacity = 0
  880.            @org_pos_equip = [@equip_window[item].x,@equip_window[item].y]
  881.            index += 1
  882.         end     
  883.  
  884.     end
  885.  
  886. end
  887.  
  888. #==============================================================================
  889. # ■ Scene_Equip现场装备2
  890. #==============================================================================
  891. class Scene_Equip
  892.  
  893.    #--------------------------------------------------------------------------
  894.    # ● Execute Dispose
  895.    #--------------------------------------------------------------------------        
  896.    def execute_dispose
  897.        Graphics.freeze
  898.        dispose_background
  899.        dispose_layout
  900.        dispose_particles
  901.        dispose_window
  902.        dispose_actor_status
  903.    end
  904.  
  905.    #--------------------------------------------------------------------------
  906.    # ● Dispose Background
  907.    #--------------------------------------------------------------------------  
  908.    def dispose_background
  909.        return if @background == nil
  910.        @background.dispose
  911.        @background = nil
  912.    end
  913.  
  914.    #--------------------------------------------------------------------------
  915.    # ● Dispose Layout
  916.    #--------------------------------------------------------------------------               
  917.   def dispose_layout
  918.        return if @layout2 == nil
  919.        @layout2.dispose
  920.        @layout3.dispose
  921.        @layout4.dispose
  922.        @layout2 = nil
  923.    end  
  924.  
  925. #--------------------------------------------------------------------------
  926. # ● Dispose Particles
  927. #--------------------------------------------------------------------------   
  928. def dispose_particles
  929.       return if @particles_sprite == nil
  930.       @particles_sprite.each {|sprite| sprite.dispose }
  931. end     
  932.  
  933.    #--------------------------------------------------------------------------
  934.    # ● Dispose Window
  935.    #--------------------------------------------------------------------------         
  936.   def dispose_window
  937.        @status_window.dispose
  938.        @command_window.dispose
  939.        @slot_window.dispose
  940.        @equip_window.each {|sprite| sprite.dispose }
  941.        @help_window.dispose
  942.    end  
  943.  
  944.    #--------------------------------------------------------------------------
  945.    # ● Dispose Actor Status
  946.    #--------------------------------------------------------------------------  
  947.    def dispose_actor_status
  948.        return if @actor_status == nil
  949.        @actor_status.dispose
  950.    end   
  951.  
  952. end
  953.  
  954. #==============================================================================
  955. # ■ Scene_Equip现场装备3
  956. #==============================================================================
  957. class Scene_Equip   
  958.  
  959.   #--------------------------------------------------------------------------
  960.    # ● Update Sprites
  961.    #--------------------------------------------------------------------------         
  962.   def update_sprites
  963.        update_actor_status
  964.        update_background
  965.        update_particles
  966.        update_window
  967.        update_move
  968.    end
  969.  
  970.    #--------------------------------------------------------------------------
  971.    # ● Update Move
  972.    #--------------------------------------------------------------------------
  973.    def update_move
  974.  
  975.       update_slide(0,@command_window,@org_pos_com[0],0)
  976.        update_slide(1,@command_window,@org_pos_com[1],0)
  977.  
  978.        update_slide(0,@help_window,@org_pos_help[0],0)
  979.        update_slide(1,@help_window,@org_pos_help[1],0)      
  980.  
  981.       update_slide(0,@slot_window,@org_pos_slot[0],0)
  982.        update_slide(1,@slot_window,@org_pos_slot[1],0)        
  983.  
  984.        update_slide(0,@layout2,0,1)
  985.        update_slide(1,@layout2,0,1)
  986.  
  987.        update_slide(0,@layout3,0,1)
  988.        update_slide(1,@layout3,0,1)      
  989.  
  990.        update_slide(0,@layout4,0,1)
  991.        update_slide(1,@layout4,0,1)      
  992.  
  993.    end
  994.  
  995. #--------------------------------------------------------------------------
  996. # ● Update Slide
  997. #--------------------------------------------------------------------------                       
  998.    def update_slide(type,sprite,np,op_type)
  999.        if op_type == 0
  1000.           sprite.contents_opacity += 5
  1001.        else
  1002.           sprite.opacity += 5
  1003.        end
  1004.        cp = type == 0 ? sprite.x : sprite.y
  1005.        sp = 3 + ((cp - np).abs / 10)
  1006.        if cp > np
  1007.          cp -= sp
  1008.           cp = np if cp < np
  1009.        elsif cp < np
  1010.          cp += sp
  1011.           cp = np if cp > np
  1012.        end     
  1013.        sprite.x = cp if type == 0
  1014.        sprite.y = cp if type == 1
  1015.    end   
  1016.  
  1017.    #--------------------------------------------------------------------------
  1018.    # ● Update Actor Status
  1019.    #--------------------------------------------------------------------------            
  1020.    def update_actor_status
  1021.        return if @actor_status == nil
  1022.        @actor_status.update(@actor)
  1023.    end
  1024.  
  1025.   #--------------------------------------------------------------------------
  1026.    # ● Update Background
  1027.    #--------------------------------------------------------------------------              
  1028.    def update_background
  1029.        return if @background == nil
  1030.        @background.ox += @background_scroll[0]
  1031.        @background.oy += @background_scroll[1]
  1032.    end   
  1033.  
  1034.    #--------------------------------------------------------------------------
  1035.    # ● Update Particles
  1036.    #--------------------------------------------------------------------------  
  1037.    def update_particles
  1038.        return if @particles_sprite == nil
  1039.        @particles_sprite.each {|sprite| sprite.update }
  1040.    end  
  1041.  
  1042.    #--------------------------------------------------------------------------
  1043.    # ● Update Window
  1044.    #--------------------------------------------------------------------------            
  1045.    def update_window
  1046.        @status_window.update
  1047.        @command_window.update
  1048.        @slot_window.update
  1049.        for equip in @equip_window
  1050.            update_slide(0,equip,@org_pos_equip[0],0)
  1051.            update_slide(1,equip,@org_pos_equip[1],0)           
  1052.            if equip.windows_index == @slot_window.index
  1053.               equip.visible = true
  1054.               equip.update  
  1055.            else
  1056.               equip.visible = false
  1057.            end
  1058.        end  
  1059.    end
  1060.  
  1061. end
  1062.  
  1063. #==============================================================================
  1064. # ■ Scene_Equip现场装备4
  1065. #==============================================================================
  1066. class Scene_Equip
  1067.  
  1068.    #--------------------------------------------------------------------------
  1069.    # ● Update
  1070.    #--------------------------------------------------------------------------      
  1071.    def update
  1072.        update_sprites
  1073.        update_command
  1074.    end
  1075.  
  1076.    #--------------------------------------------------------------------------
  1077.    # ● Command Equip
  1078.    #--------------------------------------------------------------------------
  1079.    def command_equip
  1080.        @slot_window.activate
  1081.        @slot_window.select(0)
  1082.    end
  1083.  
  1084.   #--------------------------------------------------------------------------
  1085.    # ● Command Optimize指令优化
  1086.    #--------------------------------------------------------------------------
  1087.    def command_optimize
  1088.        Sound.play_equip
  1089.        @actor.optimize_equipments
  1090.        @status_window.refresh
  1091.        @slot_window.refresh
  1092.        @command_window.activate
  1093.    end
  1094.  
  1095.    #--------------------------------------------------------------------------
  1096.    # ● Command Clear命令清除
  1097.    #--------------------------------------------------------------------------
  1098.    def command_clear
  1099.        Sound.play_equip
  1100.        @actor.clear_equipments
  1101.        @status_window.refresh
  1102.        @slot_window.refresh
  1103.        @command_window.activate
  1104.    end
  1105.  
  1106.    #--------------------------------------------------------------------------
  1107.    # ● On Slot OK
  1108.    #--------------------------------------------------------------------------
  1109.    def on_slot_ok
  1110.        @equip_window[@slot_window.index].activate
  1111.        @equip_window[@slot_window.index].select(0)
  1112.    end
  1113.  
  1114.    #--------------------------------------------------------------------------
  1115.    # ● On Slot Cancel
  1116.    #--------------------------------------------------------------------------
  1117.    def on_slot_cancel
  1118.        @slot_window.unselect
  1119.        @command_window.activate
  1120.    end
  1121.  
  1122.    #--------------------------------------------------------------------------
  1123.    # ● On Item OK
  1124.    #--------------------------------------------------------------------------
  1125.    def on_item_ok
  1126.        Sound.play_equip
  1127.        @actor.change_equip(@slot_window.index, @equip_window[@slot_window.index].item)
  1128.        @slot_window.activate
  1129.        @slot_window.refresh
  1130.        @equip_window[@slot_window.index].unselect
  1131.        @equip_window[@slot_window.index].refresh
  1132.    end
  1133.  
  1134.    #--------------------------------------------------------------------------
  1135.    # ● On Item Cancel
  1136.    #--------------------------------------------------------------------------
  1137.    def on_item_cancel
  1138.        @slot_window.activate
  1139.        @equip_window[@slot_window.index].unselect
  1140.    end
  1141.  
  1142.    #--------------------------------------------------------------------------
  1143.    # ● Return Scene
  1144.    #--------------------------------------------------------------------------         
  1145.   def return_scene
  1146.        Sound.play_cancel
  1147.        SceneManager.return
  1148.      end
  1149.  
  1150.    #--------------------------------------------------------------------------
  1151.    # ● ON Actor Charge
  1152.    #--------------------------------------------------------------------------
  1153.    def on_actor_change
  1154.        $game_temp.actor_menu_temp = @actor
  1155.        SceneManager.goto(Scene_Equip)
  1156.    end  
  1157.  
  1158. end
  1159.  
  1160. #==============================================================================
  1161. # ■ Scene_Equip现场装备5
  1162. #==============================================================================
  1163. class Scene_Equip
  1164.  
  1165.   #--------------------------------------------------------------------------
  1166.    # ● Update Command
  1167.    #--------------------------------------------------------------------------      
  1168.    def update_command
  1169.  
  1170.   end
  1171.  
  1172. end

脚本问题,在物品界面可以显示装备名称及说明,但在装备界面只能显示图标,无法显示名称和说明。
游戏脚本从各个地方收罗的,已经构架好了,
剩下这个问题一直无法解决,刚接触制作不到一个月,是个脚本盲,求大神
   

点评

你发个范例工程啥的上来吧,发代码请善用代码框<>。  发表于 2014-11-21 22:19

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

2
发表于 2014-11-22 07:27:47 | 只看该作者
能传工程吗···既然知道用那个fold=装备界面的脚本/fold把脚本收起来为什么不用code/code
代码复制
  1.  
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
21 小时
注册时间
2014-11-1
帖子
10
3
 楼主| 发表于 2014-11-22 19:55:06 | 只看该作者
chd114 发表于 2014-11-22 07:27
能传工程吗···既然知道用那个fold=装备界面的脚本/fold把脚本收起来为什么不用code/code
代码复制
  1.  
...

请教一下,这个有什么区别吗?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

4
发表于 2014-11-22 20:48:10 | 只看该作者
rpg66lzy 发表于 2014-11-22 02:55
请教一下,这个有什么区别吗?

能一键复制
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
21 小时
注册时间
2014-11-1
帖子
10
5
 楼主| 发表于 2014-11-22 21:44:00 | 只看该作者
chd114 发表于 2014-11-22 20:48
能一键复制

经过尝试,,总算弄对了,,,能帮我看看问题吗。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 04:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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