查看: 99|回复: 0

[转载发布] 蛐蛐儿的简约(渣)菜单计划(二)

[复制链接]
  • TA的每日心情
    开心
    7 天前
  • 签到天数: 37 天

    连续签到: 3 天

    [LV.5]常住居民I

    2028

    主题

    32

    回帖

    7260

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5184
    OK点
    16
    积分
    7260
    发表于 同元一千年八月三日(秋) | 显示全部楼层 |阅读模式
    菜单计划一看这里:http://rpg.blue/thread-202640-1-1.html
    前言不再重复,外援脚本还是要用到的。
    全程未PS,效率各种渣


    效果截图:附加了一个简单的物品分类= =




    脚本正文:
    part1:
    1. class Scene_Item  def initialize  end  def main    @bitmap = Spriteset_Map.new    @z = Sprite.new    @z.bitmap = Bitmap.new(640, 480)    @z.bitmap.fill_rect(0,0,640,480,Color.new(0,0,0,150))    @z.bitmap.fill_rect(25,100,590,4,Color.new(255,255,255))    choose_bitmap = Bitmap.new(100,40)    choose_bitmap.font.size = 40    for i in 0...50      choose_bitmap.draw_text(i,0,100,40,"●")    end    @choose = Sprite.new    @choose.bitmap = choose_bitmap    @choose.x = 300    @choose.y = 60    @choose_text = Sprite.new    @choose_text.x = 300    @choose_text.y = 60    @choose_text.bitmap = Bitmap.new(640,40)    @choose_text.bitmap.font.size = 20    @choose_text.bitmap.font.color = Color.new(0,0,0)    @choose_text.bitmap.draw_text(0,0,90,40,"全部",1)    @help = Sprite.new    @help.bitmap = Bitmap.new(510, 20)    @help.x = 65    @help.y = 450    @help_text = Sprite.new    @help_text.bitmap = Bitmap.new(510, 20)    @help_text.bitmap.font.name = "宋体"    @help_text.bitmap.font.size = 13    @help_text.x = 65    @help_text.y = 450    for i in 0..255/5      @help.bitmap.fill_rect(i*5,0,5,20,Color.new(0,0,0,i*5))      @help.bitmap.fill_rect(510-i*5,0,5,20,Color.new(0,0,0,i*5))      @help.bitmap.fill_rect(i*5, 0, 5, 1, Color.new(255,255,255,i*5))      @help.bitmap.fill_rect(510-i*5, 0, 5, 1, Color.new(255,255,255,i*5))      @help.bitmap.fill_rect(i*5, 19, 5, 1, Color.new(255,255,255,i*5))      @help.bitmap.fill_rect(510-i*5, 19, 5, 1, Color.new(255,255,255,i*5))    end    a = 70    draw_item.each {|b| @choose_text.bitmap.draw_text(a,0,90,40,b,1)    a += 70}    @c_index = 0    @index = 0    @page = 0    @person = []    viewport = Viewport.new(10,36,130,408)    #=================================================================    $game_party.actors.each_index {|a|    @person[a] = RPG::Sprite.new(viewport)    @person[a].bitmap = Bitmap.new(130,416)    @person[a].bitmap.blt(0,0,    Bitmap.new("Graphics/Menu/#{$game_party.actors[a].name}"),    Rect.new(0,0,640,480))    @person[a].x = a * 130    @person[a].bitmap.fill_rect(23, 360, 92, 3, Color.new(0,0,0))    @person[a].bitmap.fill_rect(23, 370, 92, 3, Color.new(0,0,0))    @person[a].bitmap.fill_rect(24, 361,     (90*$game_party.actors[a].hp / $game_party.actors[a].maxhp).to_i, 1, Color.new(200,0,0))    @person[a].bitmap.fill_rect(24, 371,    (90*$game_party.actors[a].sp / $game_party.actors[a].maxsp).to_i, 1, Color.new(0,0,200))    @person[a].bitmap.font.size = 11    @person[a].bitmap.blur_draw_text(10, 350, 30, 20,    "HP",1,Color.new(0,0,0,10),2)    @person[a].bitmap.blur_draw_text(40, 350, 70, 20,    "#{$game_party.actors[a].hp}/#{$game_party.actors[a].maxhp}",    1,Color.new(0,0,0,10),2)    @person[a].bitmap.blur_draw_text(10, 360, 30, 20,    "SP",1,Color.new(0,0,0,10),2)    @person[a].bitmap.blur_draw_text(40, 360, 70, 20,    "#{$game_party.actors[a].sp}/#{$game_party.actors[a].maxsp}",    1,Color.new(0,0,0,10),2)    b = $game_party.actors[a].name.scan(/./)     b = 9 + @page      @index += 1      @iback.y = 4 + @index * 30 - @page * 30    else      return if @index  0        @data[0].push($data_armors[i])        @data[@data.size-1].push($data_armors[i])        b.push("防具") if !b.include?("防具")      end    end    @data.delete_at(@data.size-1) if @data[@data.size-1] == []    bitmap = Bitmap.new(300,22)    bitmap.font.size = 22    bitmap.font.color = Color.new(0,0,0)    for i in 0...250      bitmap.draw_text(i,0,22,22,"●")    end    viewport = Viewport.new(290,120,300,300)    @iback = RPG::Sprite.new(viewport)    @iback.bitmap = bitmap    @iback.blink_on    @iback.z = 8000    @iback.y = 4    for i in [email protected]      @item_back[i] = Sprite.new(viewport)      @item_back[i].bitmap = Bitmap.new(640,480)      @item_back[i].x = i * 300      @item_back[i].opacity = 50      @item[i] = Sprite.new(viewport)      @item[i].bitmap = Bitmap.new(640,480)      @item[i].bitmap.font.size = 14      @item[i].x = i * 300      @item[i].z = 9999    end    @max = []    @max[0] = 0    d = 0    @data.each_index {|a| d = 0 ;@max[a] = 0 ; @data[a].each{|c|     @item_back[a].bitmap.blt(0,d+4,bitmap,Rect.new(0,0,bitmap.width,bitmap.height))    @item[a].bitmap.blt(10,d+2,RPG::Cache.icon(c.icon_name),Rect.new(0,0,32,22))    @item[a].bitmap.draw_text(40,d,300,30,c.name)    case c    when RPG::Item      f = $game_party.item_number(c.id)    when RPG::Weapon      f = $game_party.weapon_number(c.id)    when RPG::Armor      f = $game_party.armor_number(c.id)    end    @item[a].bitmap.draw_text(0,d,252,30,f.to_s, 2)    @max[a] += 1    d += 30}}    return b  end  def use_draw_item    rect = Rect.new(0,@index * 30,640,30)    @item[@c_index].bitmap.fill_rect(rect, Color.new(0,0,0,0))    @item[@c_index].bitmap.blt(10,rect.y+2,    RPG::Cache.icon(@data[@c_index][@index].icon_name),Rect.new(0,0,32,22))    @item[@c_index].bitmap.draw_text(40,rect.y,300,30,@data[@c_index][@index].name)    case @data[@c_index][@index]    when RPG::Item      f = $game_party.item_number(@data[@c_index][@index].id)    when RPG::Weapon      f = $game_party.weapon_number(@data[@c_index][@index].id)    when RPG::Armor      f = $game_party.armor_number(@data[@c_index][@index].id)    end    @item[@c_index].bitmap.draw_text(0,rect.y,252,30,f.to_s, 2)  endend复制代码
    复制代码
    part2:[code]class Scene_Item  def use_item    @item_use = @data[@c_index][@index]    unless @item_use.is_a?(RPG::Item)      $game_system.se_play($data_system.buzzer_se)      return    end    unless $game_party.item_can_use?(@item_use.id)      $game_system.se_play($data_system.buzzer_se)      return    end    $game_system.se_play($data_system.decision_se)    if @item_use.scope >= 3      if @item_use.scope == 4 || @item_use.scope == 6        @target_window.index = -1        if $game_party.item_number(@item_use.id) == 0          $game_system.se_play($data_system.buzzer_se)          return        end        used = false        for i in $game_party.actors          used |= i.item_effect(@item_use)          @person[@s_index].flash(Color.new(255,255,255,100),10)        end        if @item_use.consumable          $game_party.lose_item(@item_use.id, 1)          use_draw_item        end      else        @status = true      end    else      if @item_use.common_event_id > 0        $game_temp.common_event_id = @item_use.common_event_id        $game_system.se_play(@item_use.menu_se)        if @item_use.consumable          $game_party.lose_item(@item_use.id, 1)          use_draw_item        end        $scene = Scene_Map.new        return      end    end  end  def update_status    Input.update    change_s if Input.trigger?(Input::LEFT)    change_s(true) if Input.trigger?(Input::RIGHT)    if Input.trigger?(Input::B)      $game_system.se_play($data_system.cancel_se)      unless $game_party.item_can_use?(@item_use.id)      end      @status = false      return    end    if Input.trigger?(Input::C)      if $game_party.item_number(@item_use.id) == 0        $game_system.se_play($data_system.buzzer_se)        @status = false        return      end      if @s_index >= 0        target = $game_party.actors[@s_index]        used = target.item_effect(@item_use)      end      if used        $game_system.se_play(@item_use.menu_se)        if @item_use.consumable          $game_party.lose_item(@item_use.id, 1)          use_draw_item        end        refresh_status        if $game_party.all_dead?          $scene = Scene_Gameover.new          @status = false          return        end        if @item_use.common_event_id > 0          $game_temp.common_event_id = @item_use.common_event_id          if @item_use.consumable            $game_party.lose_item(@item_use.id, 1)            use_draw_item          end          $scene = Scene_Map.new          @status = false          return        end      end      unless used        $game_system.se_play($data_system.buzzer_se)      end      @status = false      return    end  end  def refresh_status    @person[@s_index].bitmap.clear    @person[@s_index].bitmap.blt(0,0,    Bitmap.new("Graphics/Menu/#{$game_party.actors[@s_index].name}"),    Rect.new(0,0,640,480))    @person[@s_index].bitmap.fill_rect(23, 360, 92, 3, Color.new(0,0,0))    @person[@s_index].bitmap.fill_rect(23, 370, 92, 3, Color.new(0,0,0))    @person[@s_index].bitmap.fill_rect(24, 361,     (90*$game_party.actors[@s_index].hp / $game_party.actors[@s_index].maxhp).to_i, 1, Color.new(200,0,0))    @person[@s_index].bitmap.fill_rect(24, 371,    (90*$game_party.actors[@s_index].sp / $game_party.actors[@s_index].maxsp).to_i, 1, Color.new(0,0,200))    @person[@s_index].bitmap.font.size = 11    @person[@s_index].bitmap.blur_draw_text(10, 350, 30, 20,    "HP",1,Color.new(0,0,0,10),2)    @person[@s_index].bitmap.blur_draw_text(40, 350, 70, 20,    "#{$game_party.actors[@s_index].hp}/#{$game_party.actors[@s_index].maxhp}",    1,Color.new(0,0,0,10),2)    @person[@s_index].bitmap.blur_draw_text(10, 360, 30, 20,    "SP",1,Color.new(0,0,0,10),2)    @person[@s_index].bitmap.blur_draw_text(40, 360, 70, 20,    "#{$game_party.actors[@s_index].sp}/#{$game_party.actors[@s_index].maxsp}",    1,Color.new(0,0,0,10),2)    b = $game_party.actors[@s_index].name.scan(/./)     b

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

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

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-5-17 15:24 , Processed in 0.054624 second(s), 44 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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