菜单计划一看这里:
http://rpg.blue/thread-202640-1-1.html
前言不再重复,外援脚本还是要用到的。
全程未PS,效率各种渣
效果截图:附加了一个简单的物品分类= =
脚本正文:
part1:
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