Jump to content
New account registrations are disabed. This website is now an archive. Read more here.
Shalaren Metropolis

I have 2 requests

Recommended Posts

I have a new Request!

look into this scripit

 

#-----------------------------------------------------------------
# Slipknot's Menu
#   created by Slipknot
#-----------------------------------------------------------------
class Scene_Menu
#-----------------------------------------------------------------
def initalize (menu_index = 0)
  @menu_index = menu_index
end
#-----------------------------------------------------------------
def main
  opa = 180
  @spriteset = Spriteset_Map.new
  s1 = $data_system.words.item
  s2 = $data_system.words.skill
  s3 = $data_system.words.equip
  s4 = "Status"; s5 = "Save"
  s8 = "Exit"; s7 = "Options"; s6 = "Map";@tip = rand(4)
  @command = WCommand.new (152,[s1,s2,s3,s4,s5,s6,s7,s8],1)
  @command.index = @menu_index
  @command.x = 320 - @command.width/2
  @command.y = 480 - @command.height
  @command.opacity = opa
  if $game_party.actors.size == 0
    @command.dis(1,1); @command.dis(2,1); @command.dis(3,1)
  end
  if $game_system.save_disabled
    @command.dis(4,1)
  end
  if itemdis; @command.dis(0,1); end
  @playtime = PlayTime.new
  @playtime.opacity = opa
  @help = MenuWin.new(22,$defaultfonttype,opa)
  @help.y = 480 - @help.height; @help.x = 640 - @help.width
  @tips = MenuWin.new(20,"Arial",opa)
  @tips.y = 480 - @tips.height
  @imagen = Sprite.new
  @imagen.bitmap=RPG::Cache.picture("necro2")
  ox = @imagen.bitmap.width/2
  oy = @imagen.bitmap.height/2
  @opt = Window_Command.new(160,["Skin","BGM volumen","SE volumen"])
  @skin = Window_Command.new(100,["Black","Blue","Red"])
  @bgm = Slipknot_Slider.new("BGM")
  @bgm.index = $game_system.bgm_volume
  @se = Slipknot_Slider.new("SE")
  @se.index = $game_system.se_volume
  yo = 240 - @opt.height/2
  xo = 16
  xox = xo + @opt.width
  visact(@opt,false); @opt.x = xo; @opt.y = yo
  visact(@skin,false); @skin.x = xox; @skin.y = yo
  visact(@bgm,false); @bgm.x = xox; @bgm.y = yo
  visact(@se,false); @se.x = xox; @se.y = yo
  @optwins = [@opt,@skin,@bgm,@se]
  for i in @optwins; i.z = @command.z + 100; i.opacity = opa; end
  @imagen.x = 320 - ox
  @imagen.y = 240 - oy
  @imagen.opacity = 110
  @gold = Gold.new; @gold.x = 440
  @gold.y = 0; @gold.opacity = opa
  @status = Window_MenuStatus.new
  @status.x = 56; @status.y = 0
  @status.z = 2000; @status.visible = false
  @wins = [@command,@status,@gold,@playtime,@help,
  @tips,@imagen,@opt,@skin,@bgm,@se]
  Graphics.transition
  loop do
    Graphics.update; Input.update; update
    if $scene != self; break; end
  end
  Graphics.freeze; @spriteset.dispose
  for i in @wins; i.dispose; end
end
#-----------------------------------------------------------------
def update
  for i in @wins; i.update; end
  update_tips
  if @command.active; update_command
    update_help; return
  end
  if @status.active; update_status; return; end
  if @opt.active; update_opt; return; end
  if @sbs; update_sbs; return; end
end
#-----------------------------------------------------------------
def update_opt
  if Input.trigger?(Input::B)
    visact(@opt,false)
    @command.active = true
  end
  if Input.trigger?(Input::C)
    case @opt.index
    when 0; optacc(@skin)
    when 1; optacc(@bgm)
    when 2; optacc(@se)
    end; return
  end
end
#-----------------------------------------------------------------
def optacc(w)
  @opt.active = false; @sbs = true; visact(w,true)
end
#-----------------------------------------------------------------
def update_sbs
  if Input.trigger?(Input::B)
    case @opt.index
    when 0; optcan(@skin)
    when 1; optcan(@bgm)
    when 2; optcan(@se)
    end
  end
  case @opt.index
  when 1; volacc(1,@bgm.index); return
  when 2; volacc(2,@se.index); return
  end
  if Input.trigger?(Input::C) and @skin.active
    case @skin.index
    when 0; skinacc("SlipBlack","SlipBlack")
    when 1; skinacc("SlipBlue","SlipBlue")
    when 2; skinacc("SlipRed","SlipRed")
    end
    return
  end
end
#-----------------------------------------------------------------
def volacc(pla,vol)
  case pla; when 1
  $game_system.bgm_volume = vol
  when 2
  $game_system.se_volume = vol
  end
end
#-----------------------------------------------------------------
def skinacc(sk1,sk2)
  $game_system.se_play($data_system.decision_se)
  $game_system.windowskin_name = sk1
  $game_system.namewindowskin_name = sk2
end
#-----------------------------------------------------------------
def optcan(w)
  visact(w,false); @opt.active = true; @sbs = false
end
#-----------------------------------------------------------------
def update_help
  case @command.index
  when 0
    if itemdis; a = "(You don't have any)"
    else; a = ""; end
    @help.ref("See the party's items.",a)
  when 1; @help.ref("See the party's skills.","")
  when 2; @help.ref("See and change the party's","equipment.")
  when 3; @help.ref("See the complete status of","the party.")
  when 4; @help.ref("Saves the game.","")
  when 5; @help.ref("View the current map.","")
  when 6; @help.ref("Change some settings like","the volume and skin.")
  when 7; @help.ref("Restart or exits the game.","")
  end
end
#-----------------------------------------------------------------
def update_tips
  case @tip
  when 0; @tips.ref("Use the potions only when","you really are in danger.")
  when 1; @tips.ref("Put attention when someone","is near to reach a new level.")
  when 2; @tips.ref("Constantly save the game.","")
  when 3; @tips.ref("Always keep in your bag","items like potions & revives.")
  when 4; @tips.ref("If you found a new town","talk with everybody.")
  end
end
#-----------------------------------------------------------------
def itemdis
  @data = []
  for i in 1...$data_items.size
    if $game_party.item_number(i) > 0; @data.push($data_items[i]); end
  end
  for i in 1...$data_weapons.size
    if $game_party.weapon_number(i) > 0; @data.push($data_weapons[i]); end
  end
  for i in 1...$data_armors.size
    if $game_party.armor_number(i) > 0; @data.push($data_armors[i]); end
  end
  if @data.size == 0; return true; end
end
#-----------------------------------------------------------------
def update_command
  if Input.trigger?(Input::B)
    $game_system.se_play ($data_system.cancel_se)
    $scene = Scene_Map.new; return
  end
  if Input.trigger?(Input::C)
    if $game_party.actors.size == 0 and @command.index == 1..3
      $game_system.se_play ($data_system.buzzer_se)
      return
    end
    case @command.index
    when 0
      if itemdis
        $game_system.se_play($data_system.buzzer_se); return
      end; comacc(Menu_Item)
    when 1..3
      $game_system.se_play ($data_system.decision_se)
      @command.active = false; @status.index = 0
      visact(@status,true)
    when 4
      if $game_system.save_disabled
        $game_system.se_play($data_system.buzzer_se)
        return
      end; comacc(Scene_Save)
    when 5
      $game_system.se_play($data_system.decision_se)
      $scene = Scene_Minimap.new(1)
    when 6
      $game_system.se_play($data_system.decision_se)
      @opt.index = 0; visact(@opt,true)
      @command.active=false
    when 7; comacc(Scene_End); end
    return
  end
end
#-----------------------------------------------------------------
def comacc(a)
  $game_system.se_play($data_system.decision_se); $scene = a.new
end
#-----------------------------------------------------------------
def visact(w,tf)
  w.visible = tf; w.active = tf
end
#-----------------------------------------------------------------
def update_status
  if Input.trigger?(Input::B)
    $game_system.se_play ($data_system.cancel_se)
    @command.active = true
    visact(@status,false)
    @status.index = -1
    return
  end
  if Input.trigger?(Input::C)
    case @command.index
    when 1
      if $game_party.actors[@status.index].restriction >= 2
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      statacc(Scene_Skill)
    when 2; statacc(Scene_Equip)
    when 3; statacc(Scene_Status)
    end
    return
  end
end
#-----------------------------------------------------------------
def statacc(a)
  $game_system.se_play($data_system.decision_se); $scene = a.new(@status.index)
end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class PlayTime < Window_Base
#-----------------------------------------------------------------
def initialize
   super (0,0,200,80)
   self.contents = Bitmap.new (width - 32, height - 32)
   refresh
end
#-----------------------------------------------------------------
def refresh
  self.contents.clear
  self.contents.font.color = system_color
  self.contents.draw_text (4,0,120,32,"Elapsed Time")
  @total_sec = Graphics.frame_count / Graphics.frame_rate
  hour = @total_sec / 60 / 60; min = @total_sec /60 % 60
  sec = @total_sec % 60
  text = sprintf ("%02d:%02d:%02d", hour, min, sec)
  self.contents.font.color = normal_color
  self.contents.draw_text (10, 24, 120, 28, text, 2)
end
#-----------------------------------------------------------------
def update
  super
  if Graphics.frame_count / Graphics.frame_rate != @total_sec
    refresh
  end
end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Gold < Window_Base
#-----------------------------------------------------------------
def initialize
  super (0,0,200,80)
  self.contents = Bitmap.new (width - 32, height - 32)
  if $game_party.gold < 1
    icon = RPG::Cache.icon("")
  elsif $game_party.gold < 100
    icon = RPG::Cache.icon("gold1")
  elsif $game_party.gold < 250
    icon = RPG::Cache.icon("gold2")
  elsif $game_party.gold < 500  
    icon = RPG::Cache.icon("gold3")
  elsif $game_party.gold < 1000
    icon = RPG::Cache.icon("gold4")
  else
    icon = RPG::Cache.icon("gold5")
  end
  gold = $game_party.gold.to_s
  unless gold.size > 4; money = gold
  else
    case gold.size
    when 5
      ary = gold.slice!(0,2)
      money = ary + ","+ gold
    when 6
      ary = gold.slice!(0,3)
      money = ary + ","+ gold
    when 7
      ary1 = gold.slice!(0,4)
      ary2 = ary1.slice!(1,4)
      money = ary1 + ","+ ary2 +","+ gold
    end
  end
  self.contents.draw_text (0,5,130,32, money.to_s, 2)
  self.contents.blt(130,8,icon,Rect.new(0,0,24,24))
end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Window_MenuStatus < Window_Selectable
#-----------------------------------------------------------------
def initialize
   super (0, 0, 528, 480)
   self.opacity = 210
   self.contents = Bitmap.new (width - 32, height - 32)
   refresh
   self.active = false; self.index = -1
end
#-------------------------------------------------------------
def refresh
  self.contents.clear
  @item_max = $game_party.actors.size
  for i in 0...$game_party.actors.size
    x = 94; y = i * 116
    actor = $game_party.actors[i]
    self.contents.draw_text(x,y,160,32,actor.name.upcase)
    draw_actor_class (actor, x+230, y)
    draw_actor_level (actor, x, y+32)
    draw_actor_state (actor, x+90, y+32)
    draw_actor_exp (actor, x, y+64)
    draw_actor_hpg (actor, x+230, y+35, 120,16)
    draw_actor_spg (actor, x+230, y+69,120,16)
  end
end
#-------------------------------------------------------------
def update_cursor_rect
  if @index < 0; self.cursor_rect.empty
  else; self.cursor_rect.set(0,@index * 116,self.width-32,96); end
end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class MenuWin < Window_Base
#-----------------------------------------------------------------
def initialize(fosi,fona,opa)
  super(0,0,247,88); self.opacity = opa
  self.contents = Bitmap.new (width - 32, height - 32)
  self.contents.font.size = fosi; self.contents.font.name = fona
  ref("","")
end
#-----------------------------------------------------------------
def ref(txt,txt2)
  self.contents.clear
  self.contents.draw_text(0,0,214,28,txt)
  self.contents.draw_text(0,28,214,28,txt2)
end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Slipknot_Slider < Window_Base
#-----------------------------------------------------------------
def initialize(text = "")
  super(0,0,160,290)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.active = false; @text = text
  if @index == nil; @index = 0; end
  @item_max = 100; self.visible = false
  @scale = 2; refresh
end
#-----------------------------------------------------------------
def index=(index)
  @index = index; refresh
end
#-----------------------------------------------------------------
def index
  return @index
end
#-----------------------------------------------------------------
def refresh
  self.contents.clear
  self.contents.draw_text(0,0,128,24,@text+" volume",1)
  self.contents.draw_text(30,32,80,24,"0%")
  self.contents.draw_text(30,82,80,24,"25%")
  self.contents.draw_text(30,132,80,24,"50%")
  self.contents.draw_text(30,182,80,24,"75%")
  self.contents.draw_text(30,232,80,24,"100%")
  curhei = 18; mish = @item_max * @scale + curhei
  self.contents.fill_rect(0,32,20,mish+8,Color.new(200,200,200,140))
  self.contents.fill_rect(2,34,16,mish+4,Color.new(128,128,128,190))
  self.contents.fill_rect(4,36,12,mish,Color.new(64,64,64,190))
  y = (@index*(@item_max*@scale))/@item_max + 36
  self.contents.fill_rect(3,y,14,curhei, Color.new(100,100,100,215))
  self.contents.fill_rect(6,y+4,8,curhei - 8, Color.new(90,90,90,215))
end
#-----------------------------------------------------------------
def update
  if $game_system.windowskin_name != @windowskin_name
    @windowskin_name = $game_system.windowskin_name
    self.windowskin = RPG::Cache.windowskin(@windowskin_name)
  end
  if self.active and @item_max > 0
    if Input.repeat?(Input::UP)
      if @index != 0
        case @text
        when "BGM"
          @index -= 5
          $game_system.bgm_play($game_system.bgm_memorize)
        when "SE"
          $game_system.se_play($data_system.decision_se)
          @index -= 5
        end; return
      end
      $game_system.se_play($data_system.buzzer_se)
    end
    if Input.repeat?(Input::DOWN)
      if @index < @item_max
        case @text
        when "BGM"
          @index += 5
          $game_system.bgm_play($game_system.bgm_memorize)
        when "SE"
          $game_system.se_play($data_system.decision_se)
          @index += 5
        end; return
      end
      $game_system.se_play($data_system.buzzer_se)
    end
    refresh; return
  end
end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class WCommand < Window_Selectable
#-----------------------------------------------------------------
def initialize(width, commands,pos=0)
  super(0,0,width,commands.size*32+32)
  @item_max = commands.size
  @commands = commands
  self.contents = Bitmap.new(width-32,@item_max*32)
  @pos = pos; refresh; self.index = 0
end
#-----------------------------------------------------------------
def refresh
  self.contents.clear
  for i in 0...@item_max; draw_item(i, normal_color); end
end
#-----------------------------------------------------------------
def draw_item(index, color)
  self.contents.font.color = color
  rect = Rect.new(4,32*index, self.contents.width-8,32)
  self.contents.fill_rect(rect, Color.new(0,0,0,0))
  self.contents.draw_text(rect,@commands[index],@pos)
end
#-----------------------------------------------------------------
def dis(index,pos=0)
  @pos = pos; draw_item(index,disabled_color)
end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Game_System
#-----------------------------------------------------------------    
attr_accessor :bgm_volume
attr_accessor :se_volume
#-----------------------------------------------------------------
alias options_initiliaze initialize
def initialize
  options_initiliaze
  @bgm_volume = 100; @se_volume = 100    
end
#-----------------------------------------------------------------
def bgm_play(bgm)
  @playing_bgm = bgm
  if bgm != nil and bgm.name != ""
    Audio.bgm_play("Audio/BGM/"+bgm.name,bgm.volume * bgm_volume/100,bgm.pitch)
  else; Audio.bgm_stop
  end; Graphics.frame_reset
end
#-----------------------------------------------------------------
def bgs_play(bgs)
  @playing_bgs = bgs
  if bgs != nil and bgs.name != ""
    Audio.bgs_play("Audio/BGS/" + bgs.name, bgs.volume * se_volume / 100, bgs.pitch)
  else; Audio.bgs_stop
  end; Graphics.frame_reset
end
#-----------------------------------------------------------------
def me_play(me)
  if me != nil and me.name != ""
    Audio.me_play("Audio/ME/"+me.name, me.volume*se_volume / 100, me.pitch)
  else; Audio.me_stop
  end; Graphics.frame_reset
end
#-----------------------------------------------------------------
def se_play(se)
  if se != nil and se.name != ""
    Audio.se_play("Audio/SE/"+se.name,se.volume*se_volume/100,se.pitch)
  end
end
#-----------------------------------------------------------------
def namewindowskin_name
  if @namewindowskin_name == nil
    return "RaulBlue"
  else; return @namewindowskin_name; end
end
#-----------------------------------------------------------------
def namewindowskin_name=(namewindowskin_name)
  @namewindowskin_name = namewindowskin_name
end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Menu_Item
#-----------------------------------------------------------------
def main
  @what = ItemCommand.new
  @what.z = 100
  @help_window = Window_Help.new
  @help_window.visible = false
  @none = NoneWin.new
  @target_window = Window_Target.new
  visact(@target_window,false)
  @itemw = SoloItem.new
  @itemw.help_window = @help_window
  @weparm = WeaponArmor.new
  visact(@weparm,false); visact(@itemw,false)
  @wins = [@what,@help_window,@none,@target_window,@itemw,@weparm]
  Graphics.transition
  loop do
    Graphics.update
    Input.update; update
    if $scene != self; break; end
  end
  Graphics.freeze
  for i in @wins; i.dispose; end
end
#-----------------------------------------------------------------
def update
  for i in @wins; i.update; end
  if @itemw.active == false or @weparm.active == false
    @none.visible = true; @help_window.visible = false
  else; @none.visible = false; @help_window.visible = true; end
  if @what.active; update_what; return
  else; @help_window.visible = true; end
  if @itemw.active; update_item; return; end
  if @weparm.active; update_weparm; return; end
  if @target_window.active; update_target; return; end
end
#-----------------------------------------------------------------
def update_what
  if Input.trigger?(Input::B)
    $game_system.se_play($data_system.cancel_se)
    $scene = Scene_Menu.new(0)
    return
  end
  if Input.trigger?(Input::C)
    case @what.index
    when 0; visact(@what,false); visact(@itemw,true)
    when 1; visact(@what,false); visact(@weparm,true)
    when 2
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new(0)
    end
    return
  end
end
#-----------------------------------------------------------------
def update_item
  if Input.trigger?(Input::B)
    visact(@what,true); visact(@itemw,false); return
  end
  if Input.trigger?(Input::C)
    @item = @itemw.item
    unless @item.is_a?(RPG::Item)
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    unless $game_party.item_can_use?(@item.id)
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    $game_system.se_play($data_system.decision_se)
    if @item.scope >= 3
      @itemw.active = false
      @target_window.x = (@itemw.index + 1) % 2 * 304
      @target_window.visible = true
      @target_window.active = true
      if @item.scope == 4 || @item.scope == 6
        @target_window.index = -1
      else; @target_window.index = 0; end
    else
      if @item.common_event_id > 0
        $game_temp.common_event_id = @item.common_event_id
        $game_system.se_play(@item.menu_se)
        if @item.consumable
          $game_party.lose_item(@item.id, 1)
          @itemw.draw_item(@itemw.index)
        end
        $scene = Scene_Map.new; return
      end
    end; return
  end
end
#-----------------------------------------------------------------
def update_weparm
  if Input.trigger?(Input::B)
    visact(@what,true)
    visact(@weparm,false)
    return
  end
  @item = @weparm.item
  if Input.trigger?(Input::C)
    $game_system.se_play($data_system.buzzer_se)
    return
  end
end
#-----------------------------------------------------------------
def update_target
  if Input.trigger?(Input::B)
    $game_system.se_play($data_system.cancel_se)
    unless $game_party.item_can_use?(@item.id)
      @item_window.refresh
    end
    @itemw.active = true
    @target_window.visible = false
    @target_window.active = false
    return
  end
  if Input.trigger?(Input::C)
    if $game_party.item_number(@item.id) == 0
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    if @target_window.index == -1
      used = false
      for i in $game_party.actors
        used |= i.item_effect(@item)
      end
    end
    if @target_window.index >= 0
      target = $game_party.actors[@target_window.index]
      used = target.item_effect(@item)
    end
    if used
      $game_system.se_play(@item.menu_se)
      if @item.consumable
        $game_party.lose_item(@item.id, 1)
        @itemw.draw_item(@itemw.index)
      end
      @target_window.refresh
      if @item.common_event_id > 0
        $game_temp.common_event_id = @item.common_event_id
        $scene = Scene_Map.new; return
      end
    end
    unless used
      $game_system.se_play($data_system.buzzer_se)
    end; return
  end
end
#-----------------------------------------------------------------
def visact(w,tf)
  w.active = tf; w.visible = tf
end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class SoloItem < Window_Selectable
#-----------------------------------------------------------------
def initialize
  super(0,64,640,416)
  @column_max = 2
  refresh
  self.index = 0
end
#-----------------------------------------------------------------
def item
  return @data[self.index]
end
#-----------------------------------------------------------------
def refresh
  if self.contents != nil
    self.contents.dispose
    self.contents = nil
  end
  @data = []
  for i in 1...$data_items.size
    if $game_party.item_number(i) > 0
      @data.push($data_items[i])
    end
  end
  @item_max = @data.size
  if @item_max > 0
    self.contents = Bitmap.new(width - 32, row_max * 32)
    for i in 0...@item_max
      draw_item(i)
    end
  end
end
#-----------------------------------------------------------------
def draw_item(index)
  item = @data[index]
  number = $game_party.item_number(item.id)
  if item.is_a?(RPG::Item) and
     $game_party.item_can_use?(item.id)
    self.contents.font.color = normal_color
  else
    self.contents.font.color = disabled_color
  end
  x = 4 + index % 2 * (288 + 32)
  y = index / 2 * 32
  rect = Rect.new(x, y, self.width / @column_max - 32, 32)
  self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  bitmap = RPG::Cache.icon(item.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, item.name, 0)
  self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
  self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
end
#-----------------------------------------------------------------
def update_help
  @help_window.set_text(self.item == nil ? "" : self.item.description)
end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class WeaponArmor < Window_Selectable
#-----------------------------------------------------------------
def initialize
  super(0, 64, 640, 416)
  @column_max = 2
  refresh
  self.index = 0
end
#-----------------------------------------------------------------
def item
  return @data[self.index]
end
#-----------------------------------------------------------------
def refresh
  if self.contents != nil
    self.contents.dispose
    self.contents = nil
  end
  @data = []
  for i in 1...$data_weapons.size
    if $game_party.weapon_number(i) > 0
      @data.push($data_weapons[i])
    end
  end
  for i in 1...$data_armors.size
    if $game_party.armor_number(i) > 0
      @data.push($data_armors[i])
    end
  end
  @item_max = @data.size
  if @item_max > 0
    self.contents = Bitmap.new(width - 32, row_max * 32)
    for i in 0...@item_max; draw_item(i); end
  end
end
#-----------------------------------------------------------------
def draw_item(index)
  item = @data[index]
  number = $game_party.weapon_number(item.id)
  self.contents.font.color = disabled_color
  x = 4 + index % 2 * (288 + 32)
  y = index / 2 * 32
  rect = Rect.new(x, y, self.width / @column_max - 32, 32)
  self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  bitmap = RPG::Cache.icon(item.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, item.name, 0)
  self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
  self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
end
#-----------------------------------------------------------------
def update_help
  @help_window.set_text(self.item == nil ? "" : self.item.description)
end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class NoneWin < Window_Base
#-----------------------------------------------------------------
def initialize; super(0,64,640,416); end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class ItemCommand < Window_Selectable
#-----------------------------------------------------------------
def initialize
  super(0,0,640,64)
  self.contents = Bitmap.new(width - 32, height - 32)
  @item_max = 3; @column_max = 3
  @commands = ["Items","Weapons and Armors","Leave"]
  refresh; self.index = 0
end
#-----------------------------------------------------------------
def refresh
  self.contents.clear
  for i in 0...@item_max; draw_item(i); end
end
#-----------------------------------------------------------------
def draw_item(index)
  x = 4+index * 212
  self.contents.draw_text(x,0,200,32,@commands[index])
end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Scene_Minimap
#-----------------------------------------------------------------
def initialize(n=0)
  @n = n
end
#-----------------------------------------------------------------
def main
  @spriteset = Spriteset_Map.new
  @contents = Slipknot_Contents.new
  @minimap = Sprite_MiniMap.new
  @width = @minimap.bitmap.width/2.5
  @height = @minimap.bitmap.height/2.5
  @minimap.x = 320 - (@minimap.bitmap.width/2.5)/2
  @minimap.y = 276 - (@minimap.bitmap.height/2.5)/2
  Graphics.transition
  loop do
    Graphics.update; Input.update; update
    if $scene != self; break; end
  end
  Graphics.freeze
  @minimap.dispose; @spriteset.dispose; @contents.dispose
end
#-----------------------------------------------------------------
def update
  if Input.trigger?(Input::B) or Input.trigger?(Input::A)
    $game_system.se_play($data_system.cancel_se)
    case @n
    when 0; $scene = Scene_Map.new
    when 1: $scene = Scene_Menu.new(5)
    end
  end
  @minimap.update; @contents.update
  if @width > 640
    if Input.repeat?(Input::LEFT)
      @minimap.x -= 2
    elsif Input.repeat?(Input::RIGHT)
      @minimap.x += 2
    end
    return
  end
  if @height > 448
    if Input.repeat?(Input::UP)
      @minimap.y -= 2
    elsif Input.repeat?(Input::DOWN)
      @minimap.y += 2
    end
  end
  return
end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Slipknot_Contents < Window_Base
#-----------------------------------------------------------------
def initialize
  super(0,0,640,480)
  self.opacity = 0; self.z = 110
  self.contents = Bitmap.new (width-32,height-32)
  self.contents.clear
  back_color = Color.new(0,0,0,128)
  self.contents.fill_rect(280,2,48,30,back_color)
  self.contents.draw_text(0,0,608,32,"MAP",1)
end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Sprite_MiniMap < Sprite
#-----------------------------------------------------------------
INDEX  =
[
 26, 27, 32, 33,    4 , 27, 32, 33,    26,   5, 32, 33,      4,   5, 32, 33,    
 26, 27, 32, 11,    4 , 27, 32, 11,    26,   5, 32, 11,      4,   5, 32, 11,    
 26, 27, 10, 33,     4 , 27, 10, 33,    26,   5, 10, 33,    4,   5, 10, 33,
 26, 27, 10, 11,    4 , 27, 10, 11,    26,   5, 10, 11,      4,   5, 10, 11,  
 24, 25, 30, 31,    24,  5, 30, 31,    24, 25, 30, 11,     24,  5, 30, 11,  
 14, 15, 20, 21,     14, 15, 20, 11,   14, 15, 10, 21,     14, 15, 10, 11,
 28, 29, 34, 35,    28, 29, 10, 35,    4, 29, 34, 35,     4, 29, 10, 35,
 38, 39, 44, 45,     4, 39, 44, 45,     38, 5, 44, 45,      4, 5, 44, 45,
 24, 29, 30, 35,    14, 15, 44, 45,    12, 13, 18 ,19,    12, 13, 18, 11,
 16, 17, 22, 23,     16, 17, 10, 23,   40, 41, 46, 47,    4, 41, 46, 47,
 36, 37, 42, 43,     36,  5, 42, 43,    12, 17, 18, 23,    12, 13, 42, 43,
 36, 41, 42, 47,     16, 17, 46, 47,   12, 17, 42, 47,    0, 1, 6, 7
]
X = [0, 1, 0, 1]
Y = [0, 0, 1, 1]
#-----------------------------------------------------------------
def initialize
  super
  self.z = 100
  @map_id = -1
  update
end
#-----------------------------------------------------------------
def dispose
  if self.bitmap != nil
    self.bitmap.dispose
  end
  super
end
#-----------------------------------------------------------------
def update
  super
  if @map_id == $game_map.map_id
    return
  end
  @tile = 32
  @map_id = $game_map.map_id
  @d = $game_map.height
  @c = $game_map.width
  width = @c*@tile; hight = @d*@tile
  size = @d*@c
  self.bitmap = Bitmap.new(width, hight)
  self.bitmap.fill_rect(0,0,width, hight,Color.new(0,0,0) )
  for i in 0...size
    x = i % @c; y = i / @c
    for j in [0,1,2]
      pos = $game_map.data[x,y,j]
      if pos >= 384
        bmp = RPG::Cache.tile($game_map.tileset_name,pos,0)
        src_rect = Rect.new(0,0,@tile,@tile)
        self.bitmap.blt(x*@tile,y*@tile,bmp,src_rect)
      end
      if pos >= 48 and pos < 384
        id = pos / 48 - 1
        pos = pos % 48
        bmp = RPG::Cache.autotile($game_map.autotile_names[id])
        for g in 0..3
          h = 4 * pos + g
          y1 = INDEX[h] / 6
          x1 = INDEX[h] % 6
          src_rect = Rect.new(x1*16,y1*16,16,16)
          self.bitmap.blt(x*@tile+X[g]*16,y*@tile+Y[g]*16,bmp,src_rect)
        end
      end
    end
  end
  self.zoom_x = 40.0 / 100.0
  self.zoom_y = 40.0 / 100.0
end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Window_Base < Window
#-----------------------------------------------------------------
def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color)
 distance = (start_x - end_x).abs + (start_y - end_y).abs
 if end_color == start_color
   for i in 1..distance
     x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
     y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
     self.contents.fill_rect(x, y, width, width, start_color)
   end
 else
   for i in 1..distance
     x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
     y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
     r = start_color.red   * (distance-i)/distance + end_color.red   * i/distance
     g = start_color.green * (distance-i)/distance + end_color.green * i/distance
     b = start_color.blue  * (distance-i)/distance + end_color.blue  * i/distance
     a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance
     self.contents.fill_rect(x, y, width, width, Color.new(r, g, b, a))
   end
 end
end
#----------------------------------------------------------------
def draw_actor_hpg(actor, x, y, width = 120, height = 12)
  w = width * actor.hp / actor.maxhp
  hp_color_1 = Color.new(255,   0,   0, 192)
  hp_color_2 = Color.new(255, 96,   0, 192)
  self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  x -= 1
  y += (height/4).floor
  self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  x -= 1
  y += (height/4).ceil
  self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  x -= 1
  y += (height/4).ceil
  self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  if width - 32 >= 108
    hp_x = x + width - 108
    flag = true
  elsif width - 32 >= 48
    hp_x = x + width - 48
  end
  self.contents.font.color = actor.hp == 0 ? knockout_color :
  actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
  self.contents.draw_text(hp_x - 40, y - 25, 48, 32, actor.hp.to_s, 2)
  self.contents.font.color = normal_color
  self.contents.draw_text(hp_x + 8, y - 25, 12, 32, "/", 1)
  self.contents.draw_text(hp_x + 20, y - 25, 48, 32, actor.maxhp.to_s)
  self.contents.font.color = system_color
  self.contents.draw_text(hp_x - 70, y - 25, 32, 32, "HP")
end
#-----------------------------------------------------------------
def draw_actor_spg(actor, x, y, width = 120, height = 12)
  w = width * actor.sp / actor.maxsp
  hp_color_1 = Color.new(  0,   0, 225, 192)
  hp_color_2 = Color.new(  0, 128, 225, 192)
  self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  x -= 1
  y += (height/4).floor
  self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  x -= 1
  y += (height/4).ceil
  self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  x -= 1
  y += (height/4).ceil
  self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  if width - 32 >= 108
    sp_x = x + width - 108
    flag = true
  elsif width - 32 >= 48
    sp_x = x + width - 48
  end
  self.contents.font.color = actor.hp == 0 ? knockout_color :
  actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
  self.contents.draw_text(sp_x - 40, y - 25, 48, 32, actor.sp.to_s, 2)
  self.contents.font.color = normal_color
  self.contents.draw_text(sp_x + 8, y - 25, 12, 32, "/", 1)
  self.contents.draw_text(sp_x + 20, y - 25, 48, 32, actor.maxsp.to_s)
  self.contents.font.color = system_color
  self.contents.draw_text(sp_x - 70, y - 25, 32, 32, "MP")
end  
#-----------------------------------------------------------------
end

 

it is a custom menu

and it has some more features.

but I want to change the list.

right now its

  • Item
  • Skill
  • Equip
  • Status
  • Save
  • Map
    shows minimap
  • Options
    - Skin
    - BGM Volume
    - SE Volume
  • Exit

 

so I want to chanfe that list,

I want to take the Skin option down (I dont want people switching skins in gameplay)

I want to take the Map off the Menu just take it off there

and instead of the skill in me Menu

put it so instead of going to skill window

it will go to the hotkeys window in Blizz ABS.

 

  • Item
  • Hotkey
  • Equip
  • Status
  • Save
  • Options
    - BGM Volume
    - SE Volume
  • Exit

 

Itried doing it my self, but I fail as usual X:.

 

 

 

The rest of my requests that will probably never get completed

 

49861678.png

I am using Blizz abs, and the mouse system.

what I want to know is what ways are there to do that so

instead of using the menu you'll have that Icon set on the side all gameplay

and you can click on them with the mouse to get to what you need.

 

I hate the Menu X: I hate it in games.. so I want to disable the menu. abd do so

you'll have those icons on the side.

 

and

 

mapyb.png

ok so whats in red is just to explain what to do with it.

and what I put in the green is what not to be as a picture (forgot to mark the map name too so..)

I want to be able to put any background picture for the hud I want.. design it the way i want

and the bars to be pictures to.. like have "hp_bar" and the part I wasted "hp_bar_empty" if you get my point

the name to be writen in the program it self (with no picture) and the hp\mp amount also.

 

next

the map name to move to be above the minimap it self. you can see in the picture what I mean. and to be able to put to the minimap a background!.

 

now for the hotkeys, i want to be able to put pictures instead of these red sqares. so the icons will be on these pictures..

hope you get my point. now the exp bar.. i want to put as a picture to with "exp_bar" and "exp_bar_empty" and live the writen words in the scripit on them.

 

and move the gold, to the middle there, look at the picture, where the map name was located.

and put a picture behind where it says "G" I'll put a coin or something.

 

im using the "Landith :: HUD" if you didnt figure that out.

 

besically you dont have to move to many things.. just change them, and put the possibility to put a picture instead.

something just like that

mapdt.png

oh and yeah, by this picture.. if you know how.. to put on the exp bat that is shows % too.

thanks.

 

 

Edited by Shalaren Metropolis

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...