Main Menu
  • Welcome to The RPG Maker Resource Kit.

Simple Script Shop

Started by Rune, May 26, 2007, 11:12:37 PM

0 Members and 4 Guests are viewing this topic.

Esmeralda

Quote from: Keith on May 28, 2007, 01:51:49 PM
If NAMKCOR wants to give that a go then that's good ;)
I've got my hands full with Rasse's request
Quote from: Rasse on May 27, 2007, 10:06:12 PM

Item Screen


Skill use

Aren't the item and skill menus like that anyway? O_o
Yeah, but I added the scrolling arrow   ;8
:taco: :taco: :taco:

Rune

Sincerely,
Your conscience.

tSwitch

#27
Quote from: Halestorm5 on May 28, 2007, 02:59:49 PM
Here are the Mock ups. They need to be compatable with a couple scripts tho.

MENU-
[spoiler]
The W,S,H,BA,A,A means Weapon,Shield,Helmet,BodyArmour,Accessory, Accessory. You will know why theres two Accessorys if you check the first script at the bottom.[/spoiler]

STATUS-
[spoiler]
Its rather self explanatory. Instead of 'Name Of Player' its the name of the selected player. The other box is obvious.[/spoiler]

ITEMS-
[spoiler]
I think its self-explanatory. It can be done with editing the original item place script I think. Below where it says 'Description Area' is the description of the highlighted item. Where price is, is the amount the item is worth and where amount is the amount you have of it is put. And the other box is pretty self explanatory.[/spoiler]

Here is the only 2 scripts which you need to make it compatable with-
Script Link 1 - http://anonym.to/?http://anonym.to/?http://anonym.to/?http://www.hbgames.org/forums/showthread.php?t=8883 It must have the power to read this script :)

Script Link 2 - http://anonym.to/?http://anonym.to/?http://anonym.to/?http://www.hbgames.org/forums/showthread.php?t=18933The Skill one.

Alright, I'll take this one.
what I want to know is this
Do you want the words "Description Area"
and you want the icons for the weapons and stuff displayed right?

btw, do you use a proxy?
If so you might want to stop as that's a bannable offence (I think...)

Also, you want me to make a CMS that is compatable with another CMS?
I'm quite confused...


FCF3a A+ C- D H- M P+ R T W- Z- Sf RLCT a cmn+++ d++ e++ f h+++ iw+++ j+ p sf+
Follow my project: MBlok | Find me on: Bandcamp | Twitter | Patreon

Halestorm5

No, I do not want Description Area there. I want whatever you think is good to put there.
A proxy? Huh? Whatever it is, nahhhhh...
U can choose if you want that last one of making it compatable with it. :)

Also, can you edit the original Skill screen to show the battler?

Rune

Quote from: NAMKCOR on May 28, 2007, 07:07:30 PM
btw, do you use a proxy?
If so you might want to stop as that's a bannable offence (I think...)

What's a proxy? :-\
Sincerely,
Your conscience.

tSwitch

Quote from: Halestorm5 on May 28, 2007, 07:27:27 PM
No, I do not want Description Area there. I want whatever you think is good to put there.
A proxy? Huh? Whatever it is, nahhhhh...
U can choose if you want that last one of making it compatable with it. :)

Also, can you edit the original Skill screen to show the battler?
alrite then.
I was just confused because it is pointless to make a CMS compatible with another CMS, as you can only use one menu at a time so it's kinda either one or the other.

also
Quote from: Keith on May 28, 2007, 08:16:54 PM
What's a proxy? :-\
It's a program that masks your IP address by scrambling it across multiple servers.
I saw all the anon.to or whatever in your leinks to hbgames.org so I thought Halestorm5 was using a proxy


FCF3a A+ C- D H- M P+ R T W- Z- Sf RLCT a cmn+++ d++ e++ f h+++ iw+++ j+ p sf+
Follow my project: MBlok | Find me on: Bandcamp | Twitter | Patreon

Rune

Sincerely,
Your conscience.

Esmeralda

Quote from: Keith on May 28, 2007, 09:43:19 PM
Quote from: Rasse on May 27, 2007, 10:06:12 PM

Status  ;8

You want the word status at the top, or other?
Well... maybe the character name, if possible. Otherwise that word 'Status'.
:taco: :taco: :taco:

Rune

Sincerely,
Your conscience.

Qig

Oooh qig gots a request


The menu


Equip



Status
Working on world of sorrow again.

Rune

Unless Shinami wants to take on your request... you'll have to hold on... I'm busy trying to figure out how to display a character's battler <.<;

@Rasse - Your script should be finished today... I only got round to it late last night...
If it's not done by tonight then shoot me
Sincerely,
Your conscience.

Falcon

Keith, if you need help with a battler method, feel free to MSN me, I believe you have mine.

Rune

That's true... will do later :P
Sincerely,
Your conscience.

Shinami


class Window_Base < Window
  def draw_actor_battler(actor, x, y)
    bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
    cw = bitmap.width
    ch = bitmap.height
    rect = Rect.new(0, 0, cw, ch)
    self.contents.blt(x, y, bitmap, rect)
  end#of "def draw_actor_battler(actor, x, y)"
end#of class Window_Base
I'm tired and didn't check to make sure this is right but it should be. Basically, I just changed RPG::Cache.character to RPG::Cache.battler and changed cw/ch to store the full size of the battler instead of 1/4th the size like it does with character graphics. Also, the arguments work just like any other draw_actor syntax in Window_Base. Now, I'm going to put my PS2 back together and go to sleep..

Rune

#39
Strange... I tried exactly the same... and it didn't work then... but I put in that and it worked fine...
Wonder what I did wrong :-\

[EDIT]
Rasse, your menu is done... it's just the menu screen though... i'll post the status screen later ;)
[spoiler]$data_mapinfos = load_data('Data/MapInfos.rxdata')

class Window_Steps
  def initialize
    super(0, 0, 480, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $defaultfonttype
    self.contents.font.size = $defaultfontsize
    refresh
  end
  def refresh
  contents.clear
  contents.font.color = system_color
  contents.draw_text(4, 0, 120, 32, 'Location')
  contents.font.color = normal_color
  name = $data_mapinfos[$game_map.map_id].name 
  contents.draw_text(0, 32, 128, 32, name)
  end
end

class Scene_Menu
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  def main
    s1 = "Items"
    s2 = "Skills"
    s3 = "Status"
    s4 = "Equip"
    s5 = "Exit"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5])
    @command_window.index = @menu_index
    if $game_party.actors.size == 0
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    if $game_system.save_disabled
      @command_window.disable_item(4)
    end
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 0
    @playtime_window.y = 320
    @steps_window = Window_Steps.new
    @steps_window.x = 160
    @steps_window.y = 0
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 416
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 64
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @command_window.dispose
    @playtime_window.dispose
    @steps_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
  def update
    @command_window.update
    @playtime_window.update
    @steps_window.update
    @gold_window.update
    @status_window.update
    if @command_window.active
      update_command
      return
    end
    if @status_window.active
      update_status
      return
    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_window.index < 4
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      case @command_window.index
      when 0
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Item.new
      when 1
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 3
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 4
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_End.new
      end
      return
    end
  end
  def update_status
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    if Input.trigger?(Input::C)
      case @command_window.index
      when 1
        if $game_party.actors[@status_window.index].restriction >= 2
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Skill.new(@status_window.index)
      when 2
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Status.new(@status_window.index)
      when 3
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Equip.new(@status_window.index)
      end
      return
    end
  end
end
[/spoiler]
Replace Scene_Menu with that
And replace Window_MenuStaus with this
[spoiler]class Window_MenuStatus < Window_Selectable
  def initialize
    super(0, 0, 480, 416)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $defaultfonttype
    self.contents.font.size = $defaultfontsize
    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 = 64
      y = i * 100
      actor = $game_party.actors[i]
      draw_actor_graphic(actor, x - 32, y + 60)
      draw_actor_name(actor, x, y)
      draw_actor_class(actor, x + 144, y)
      draw_actor_level(actor, x, y + 16)
      draw_actor_state(actor, x + 90, y + 48)
      draw_actor_exp(actor, x, y + 32)
      draw_actor_hp(actor, x + 236, y + 16)
      draw_actor_sp(actor, x + 236, y + 32)
    end
  end
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(0, @index * 100, self.width - 32, 80)
    end
  end
end
[/spoiler]

You'll have to get a large party script or something else of the sort... I couldn't work out how to make the scrolling menus :-\

I've rearranged some windows to try and make it look better... if you don't like it, or you have any queries, PM me ;)

@Shinami - The scrolling thing didn't work :-\
Sincerely,
Your conscience.

Shinami

#40
That is VERY strange. I'll double check to make sure I didn't do anything special for vertical scrolling.

EDIT:

def draw_item(index)
    skill = @data[index]
    if @actor.skill_can_use?(skill.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    x = 4 + index % 1 * (288 + 32)
    y = index * 32
    rect = Rect.new(0, -35, self.width / @column_max - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    bitmap = RPG::Cache.icon(skill.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y + 5, bitmap, Rect.new(0, 0, 24, 24), opacity)
    cw = contents.text_size(skill.name).width
    self.contents.draw_text(0 + bitmap.width, y, cw, 32, skill.name, 0)
    self.contents.draw_text(0 + 180, y, 48, 32, skill.sp_cost.to_s, 2)
  end


That's the draw_skill method inside the skill windows that I altered. All I recall changing was this since they affect the way everything is structured on the screen.

x = 4 + index % 1 * (288 + 32)
    y = index * 32

Rune

I meant with the menu status window :D
Sincerely,
Your conscience.

Shinami

Heading to sleep right now. I'll look into this later on because now I'm curious about the difference between a skill/item window and the menu_status window.

Rune

#43
Skill/item windows scroll anyway don't they?
All Rasse wants scrolling is Window_Target and Window_MenuStatus :P (Correct me if i'm wrong)

@Rasse - Replace Window_Status with this
[spoiler]class Window_Base < Window
  def draw_actor_battler(actor, x, y)
    bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
    cw = bitmap.width
    ch = bitmap.height
    rect = Rect.new(0, 0, cw, ch)
    self.contents.blt(x, y, bitmap, rect)
  end
end

class Window_StatusTop < Window_Base
  def initialize
    super(0, 0, 640, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $defaultfonttype
    self.contents.font.size = $defaultfontsize
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.font.color = crisis_color
    self.contents.draw_text(272, 0, 128, 32, "Status")
  end
end

class Window_Status < Window_Base
  def initialize(actor)
    super(0, 0, 640, 416)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $defaultfonttype
    self.contents.font.size = $defaultfontsize
    @actor = actor
    refresh
  end
  def refresh
    self.contents.clear
    draw_actor_battler(@actor, 160, 128)
    draw_actor_graphic(@actor, 32, 96)
    draw_actor_name(@actor, 4, 0)
    draw_actor_class(@actor, 4 + 144, 0)
    draw_actor_level(@actor, 96, 32)
    draw_actor_state(@actor, 96, 64)
    draw_actor_hp(@actor, 320, 16, 172)
    draw_actor_sp(@actor, 320, 48, 172)
    draw_actor_parameter(@actor, 320, 80, 0)
    draw_actor_parameter(@actor, 320, 112, 1)
    draw_actor_parameter(@actor, 320, 144, 2)
    draw_actor_parameter(@actor, 320, 176, 3)
    draw_actor_parameter(@actor, 320, 208, 4)
    draw_actor_parameter(@actor, 320, 240, 5)
    draw_actor_parameter(@actor, 320, 272, 6)
    self.contents.font.color = system_color
    self.contents.draw_text(320, 304, 80, 32, "Exp:")
    self.contents.draw_text(320, 338, 80, 32, "Next Level:")
    self.contents.font.color = normal_color
    self.contents.draw_text(320 + 72, 304, 84, 32, @actor.exp_s, 2)
    self.contents.draw_text(320 + 72, 338, 84, 32, @actor.next_rest_exp_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(0, 200, 96, 32, "Equipment:")
    draw_item_name($data_weapons[@actor.weapon_id], 0, 224)
    draw_item_name($data_armors[@actor.armor1_id], 0, 256)
    draw_item_name($data_armors[@actor.armor2_id], 0, 288)
    draw_item_name($data_armors[@actor.armor3_id], 0, 320)
    draw_item_name($data_armors[@actor.armor4_id], 0, 352)
  end
  def dummy
    self.contents.font.color = system_color
    self.contents.draw_text(320, 112, 96, 32, $data_system.words.weapon)
    self.contents.draw_text(320, 176, 96, 32, $data_system.words.armor1)
    self.contents.draw_text(320, 240, 96, 32, $data_system.words.armor2)
    self.contents.draw_text(320, 304, 96, 32, $data_system.words.armor3)
    self.contents.draw_text(320, 368, 96, 32, $data_system.words.armor4)
    draw_item_name($data_weapons[@actor.weapon_id], 0, 224)
    draw_item_name($data_armors[@actor.armor1_id], 0, 256)
    draw_item_name($data_armors[@actor.armor2_id], 0, 288)
    draw_item_name($data_armors[@actor.armor3_id], 0, 320)
    draw_item_name($data_armors[@actor.armor4_id], 0, 352)
  end
end
[/spoiler]
And change Scene_Status to this
[spoiler]class Scene_Status
  def initialize(actor_index = 0, equip_index = 0)
    @actor_index = actor_index
  end
  def main
    @actor = $game_party.actors[@actor_index]
    @status_window = Window_Status.new(@actor)
    @status_window.y = 64
    @top_window = Window_StatusTop.new
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @status_window.dispose
    @top_window.dispose
  end
  def update
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new(2)
      return
    end
    if Input.trigger?(Input::R)
      $game_system.se_play($data_system.cursor_se)
      @actor_index += 1
      @actor_index %= $game_party.actors.size
      $scene = Scene_Status.new(@actor_index)
      return
    end
    if Input.trigger?(Input::L)
      $game_system.se_play($data_system.cursor_se)
      @actor_index += $game_party.actors.size - 1
      @actor_index %= $game_party.actors.size
      $scene = Scene_Status.new(@actor_index)
      return
    end
  end
end
[/spoiler]

Any queries, PM me ;)
Sincerely,
Your conscience.

tSwitch

@Halestorm5: I'm almost done with your menu.
here are the pictures of the status and inventory screens



I added a bit extra to the Status screen because it looked pretty empty with only the battler on one side



That really came out well too.

I'll give it all to you in a single script when it's done, I just wanna know if you like it so far.


FCF3a A+ C- D H- M P+ R T W- Z- Sf RLCT a cmn+++ d++ e++ f h+++ iw+++ j+ p sf+
Follow my project: MBlok | Find me on: Bandcamp | Twitter | Patreon

Halestorm5

I really like the looks of it.

And, if its not too much, can you instead of showing black as the background, can you make the map the player is on show instead? But grey shaded?

tSwitch

I was actually going to try and figure out how to do that, I thought it would look nice, seeing as the windows don't take up the whole screen.


FCF3a A+ C- D H- M P+ R T W- Z- Sf RLCT a cmn+++ d++ e++ f h+++ iw+++ j+ p sf+
Follow my project: MBlok | Find me on: Bandcamp | Twitter | Patreon


Rune

In def main stick in
@spriteset = Spriteset_Map.new
Then all you need to do is add it into the update and dispose lists ;)
Sincerely,
Your conscience.

tSwitch



FCF3a A+ C- D H- M P+ R T W- Z- Sf RLCT a cmn+++ d++ e++ f h+++ iw+++ j+ p sf+
Follow my project: MBlok | Find me on: Bandcamp | Twitter | Patreon