RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
[REQUEST] Two Script Requests, Please!

0 Members and 1 Guest are viewing this topic.

**
Rep: +0/-0Level 74
Novice Video Game Developer
Hi, I'm working on a big project at the moment and I would like two scripts that I have not been able to find so far.

1) Quest Journal
I found modern_algebra's quest journal quite useful in the past, although I wouldn't like ALL, DONE, NOT DONE and FAILED anymore. I would like a quest journal which first gives you a list of the "Chapters" (with customisability please, so I can adjust in sequels etc) before showing you only quests in that Chapter. The quest scripting should be simple (like in modern_algebra's if possible). That is all for the quest journal, so if someone could script that, I'd be very grateful.

2) Inventory
I would appreciate if someone could script an inventory that shows you 8 options that you choose from at the top (out of Consumable, Battle, Adventure, Important, Weapons, Shields, Body and Head) on 2 rows (one for items, the other for equipment). Once a selection is made then it shows (in ID order by default, possibly alphabetical if you don't mind putting extra effort in) the items of that type. It would most appreciated if it defines the type of item by putting something like "consumable", or "adventure", etc, in the Item/Equipments Notes section, and nothing else. Thanks.

Thanks to anyone who tries in anyway to script these for me.
:D

*****
my name is Timothy what's yours
Rep:
Level 79
Hello
2014 Most Missed Member2014 Zero to Hero2014 Best IRC Quote2012 Zero To HeroSecret Santa 2012 ParticipantContestant - GIAW 9For frequently finding and reporting spam and spam bots2011 Zero to Hero
Well, for that second one - your inventory - I suppose some playing around with the categories feature in Cozziekuns' Simple Sort Inventory or my edited version of it, below.
Spoiler for PAC Inventory:
Code: [Select]
#===============================================================================
#
# Pacman Advanced Creative (PAC) Engine - Item Scene
# 26/5/2011
# Type: Menu
# Installation: Optional stuff.
# Level: Average
# With: Cozziekuns (apissted by Modern Algebra)
#
#===============================================================================
#
# Description:
# This is an inventory screen that sorts your items into categories and displays
# them neatly. It's super sexy, I promise.
#
#===============================================================================
#
# Instructions
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ? Materials but above ? Main. Remember to save.
# Change the modules to your liking. The "hard" parts have instructions of their
# own.
#
#===============================================================================

$imported = {} if $imported == nil
$imported["PACItems"] = true

module PAC
  module SYSTEM
    DISPLAY_TEXT = "Currently Displayed:"
   
#===============================================================================
# Extra Item Categories (Inspired by Modern Algebra)
# ------------------------------------------------------------------------------
# How should I go about explaining something like this? Well, basically, each
# item in the hash represents a certain category. For example, the first hash we
# see here is:
#
# 0 => [144, "All", false]
#
# The syntax of this is:
#
# Category ID => [Icon Number, Text, Prime]
#
# Probably the most important part, the category ID is the number you want to
# put into the notebox that the item contains. For example, if you wanted to
# make the item "World Map" into a key item, simply add the text:
#
# \item_category[4]
#
# into the notebox. Note that numbers 0, 1, 2, and 3 are special. They're prime
# categories. Sound special right? Not really, this just means you have to have
# them in the inventory for this script to work. I could've gotten rid of them,
# but that would've just given more work on your part (and mine), so bear with
# them, please. Icon Numbers and Text are pretty self explanatory.
#
# Last, but not least, is the "Prime" function (inspired by Kyraiki). Setting
# this to "true" means that anything in the prime category will not show up in
# the item, weapon or armour categories. You can set if you want it to show up
# in all.
#===============================================================================

    ITEM_CATEGORIES = {
   
      0 => [144, "All", false],
      1 => [64, "Items", false],
      2 => [26, "Weapons", false],
      3 => [40, "Armours", false],
      4 => [80, "Key Items", true],
      5 => [90, "Filler", false],
      6 => [92, "Scrolling", false],
      7 => [32, "Scrolling", false],
    }
   
    ITEM_CATEGORY_WIDTH = 300 # How wide you want your text window.
    KYRIAKI_ALL_CATEOGRY_PRIME = false # If you want prime key items to show up
    # in the all window.
    MAX_ITEM_ICONS = (544 - ITEM_CATEGORY_WIDTH) / 54 # The maximum
    # number of icons that will fit.
   
  end
end

#==============================================================================
# ** RPG::BaseItem
#------------------------------------------------------------------------------
#  The superclass of all states.
#==============================================================================

class RPG::BaseItem
  #--------------------------------------------------------------------------
  # * Cozziekuns Category Index
  #--------------------------------------------------------------------------
  def pac_inv_category_index
    @pac_inv_category_index = 0
    if self.note[/\\item_category\[(\d+)]/i] != nil
      @pac_inv_category_index = $1.to_i
    end
  return @pac_inv_category_index
  end
end

#==============================================================================
# ** Window_Item
#------------------------------------------------------------------------------
#  This window displays a list of inventory items for the item screen, etc.
#==============================================================================

class Window_Item < Window_Selectable
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  alias pac_inv_pis_refresh refresh
  def refresh(sort_index = 0)
   @sort_index = sort_index
   pac_inv_pis_refresh
 end
  #--------------------------------------------------------------------------
  # * Whether or not to include in item list
  #     item : item
  #--------------------------------------------------------------------------
  alias pac_inv_pis_include? include?
  def include?(item)
    val = pac_inv_pis_include?(item)
    return false if !val
    return case @sort_index
      when 0
        unless PAC::SYSTEM::KYRIAKI_ALL_CATEOGRY_PRIME
          if PAC::SYSTEM::ITEM_CATEGORIES[item.pac_inv_category_index][2]
            return false
          else
            return true
          end
        else
          return true
        end
      when 1
        if PAC::SYSTEM::ITEM_CATEGORIES[item.pac_inv_category_index][2]
          return false
        else
          return item.is_a?(RPG::Item)
        end
      when 2
        if PAC::SYSTEM::ITEM_CATEGORIES[item.pac_inv_category_index][2]
          return false
        else
          return item.is_a?(RPG::Weapon)
        end
      when 3
        if PAC::SYSTEM::ITEM_CATEGORIES[item.pac_inv_category_index][2]
          return false
        else
          return item.is_a?(RPG::Armor)
        end
      when 4..999
        return item.pac_inv_category_index == @sort_index
      end
    end
  end
 
#==============================================================================
# ** Window_ItemCategory
#------------------------------------------------------------------------------
#  This window displays what type of item is being displayed.
#==============================================================================

class Window_ItemCategory < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     x : window X coordinate
  #     y : window Y coordinate
  #--------------------------------------------------------------------------
  def initialize(x, y, width)
    super(x, y, width, WLH + 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh(sort_index = 0)
    @sort_index = sort_index
    @item_categories = PAC::SYSTEM::ITEM_CATEGORIES
    @item_categories_width = PAC::SYSTEM::ITEM_CATEGORY_WIDTH
    @category_string = PAC::SYSTEM::DISPLAY_TEXT
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, @item_categories_width - 40, WLH, @category_string, 0)
    self.contents.font.color = normal_color
    for i in 0...@item_categories.size
      if @sort_index == i
        self.contents.draw_text(4, 0, @item_categories_width - 40, WLH, @item_categories[i][1], 2)
      end
    end
  end
end

#==============================================================================
# ** Window_ItemSort
#------------------------------------------------------------------------------
#  This window displays what type of item is being displayed.
#==============================================================================

class Window_ItemSort < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     x : window X coordinate
  #     y : window Y coordinate
  #--------------------------------------------------------------------------
  def initialize(x, y, width)
    super(x, y, width, WLH + 32)
    @ox = 0
    if PAC::SYSTEM::MAX_ITEM_ICONS < PAC::SYSTEM::ITEM_CATEGORIES.size
      self.contents = Bitmap.new(self.width - 32 + ((PAC::SYSTEM::ITEM_CATEGORIES.size - PAC::SYSTEM::MAX_ITEM_ICONS) * 54), self.height - 32)
    end
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh(sort_index = 0)
    @sort_index = sort_index
    @item_categories = PAC::SYSTEM::ITEM_CATEGORIES
    @item_categories_width = PAC::SYSTEM::ITEM_CATEGORY_WIDTH
    self.contents.clear
    for i in 0...@item_categories.size
      @icon_x = 0 + (i * ((544 - @item_categories_width) / @item_categories.size))
      if @item_categories.size < PAC::SYSTEM::MAX_ITEM_ICONS
        draw_item(i)
      else
        draw_items(i)
      end
      if @sort_index == i
        if @item_categories.size < PAC::SYSTEM::MAX_ITEM_ICONS
          draw_icon(@item_categories[i][0], @icon_x, 0, true)
        else
          draw_icon(@item_categories[i][0], i * 54, 0, true)
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    icons_x = (544 - @item_categories_width) / @item_categories.size
    draw_icon(@item_categories[index][0], index * icons_x, 0, false)
  end
  #--------------------------------------------------------------------------
  # * Draw Items
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_items(index)
    draw_icon(@item_categories[index][0], index * 54, 0, false)
  end
end

#==============================================================================
# ** Window_PACItemHelp
#------------------------------------------------------------------------------
#  This window shows skill and item explanations along with actor status and
#  graphics fit for PAC scripts.
#==============================================================================

class Window_PACItemHelp < Window_Base
  def initialize
    super(0, 56, 544, WLH + 32)
  end
  def set_text(text, align = 0)
    if text != @text or align != @align
      self.contents.clear
      self.contents.font.color = normal_color
      self.contents.draw_text(4, 0, self.width - 40, WLH, text, align)
      @text = text
      @align = align
    end
  end
end

#==============================================================================
# ** Scene_Item
#------------------------------------------------------------------------------
#  This class performs the item screen procepisng.
#==============================================================================

class Scene_Item < Scene_Base
  #--------------------------------------------------------------------------
  # * Start procepisng
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    @viewport = Viewport.new(0, 0, 544, 416)
    @help_window = Window_PACItemHelp.new
    @help_window.viewport = @viewport
    @item_window = Window_Item.new(0, 112, 544, 304)
    @item_window.viewport = @viewport
    @item_window.help_window = @help_window
    @item_window.active = false
    @category_width = PAC::SYSTEM::ITEM_CATEGORY_WIDTH
    @category_window = Window_ItemCategory.new(544 - @category_width, 0, @category_width)
    @sort_window = Window_ItemSort.new(0, 0, 544 - @category_width)
    @target_window = Window_MenuStatus.new(0, 0)
    @sort_index = 0
    @item_categories = PAC::SYSTEM::ITEM_CATEGORIES
    hide_target_window
  end
  #--------------------------------------------------------------------------
  # * Termination Procepisng
  #--------------------------------------------------------------------------
  alias pac_pis_terminate terminate
  def terminate
    super
    pac_pis_terminate
    @sort_window.dispose
    @category_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Update Frame
  #--------------------------------------------------------------------------
  alias pac_pis_update update
  def update
    super
    pac_pis_update
    @sort_window.update
    @category_window.update
  end
  #--------------------------------------------------------------------------
  # * Update Item Selection
  #--------------------------------------------------------------------------
  def update_item_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      @item = @item_window.item
      if @item != nil
        $game_party.last_item_id = @item.id
      end
      if $game_party.item_can_use?(@item)
        Sound.play_decision
        determine_item
      else
        Sound.play_buzzer
      end
    elsif Input.trigger?(Input::X)
      @sort_index -= 1
      @sort_index %= @item_categories.size
      if @sort_index + 1 == @item_categories.size
        @sort_window.ox += 54 * (@item_categories.size - PAC::SYSTEM::MAX_ITEM_ICONS)
      else
        if @item_categories.size > PAC::SYSTEM::MAX_ITEM_ICONS and @sort_index > PAC::SYSTEM::MAX_ITEM_ICONS - 2
          @sort_window.ox -= 54
        end
      end
      @category_window.refresh(@sort_index)
      @sort_window.refresh(@sort_index)
      @item_window.refresh(@sort_index)
      @item_window.index = 0
      Sound.play_cursor
    elsif Input.trigger?(Input::Y)
      @sort_index += 1
      @sort_index %= @item_categories.size
      if @sort_index != 0
        if @item_categories.size > PAC::SYSTEM::MAX_ITEM_ICONS and @sort_index > PAC::SYSTEM::MAX_ITEM_ICONS - 1
          @sort_window.ox += 54
        end
      else
        @sort_window.ox = 0
      end
      @category_window.refresh(@sort_index)
      @sort_window.refresh(@sort_index)
      @item_window.refresh(@sort_index)
      @item_window.index = 0
      Sound.play_cursor
    elsif Input.trigger?(Input::A)
      @sort_index -= 1
      @sort_index %= @item_categories.size
      if @sort_index + 1 == @item_categories.size
        @sort_window.ox += 54 * (@item_categories.size - PAC::SYSTEM::MAX_ITEM_ICONS)
      else
        if @item_categories.size > PAC::SYSTEM::MAX_ITEM_ICONS and @sort_index > PAC::SYSTEM::MAX_ITEM_ICONS - 2
          @sort_window.ox -= 54
        end
      end
      @category_window.refresh(@sort_index)
      @sort_window.refresh(@sort_index)
      @item_window.refresh(@sort_index)
      @item_window.index = 0
      Sound.play_cursor
    end
  end
end

#===============================================================================
#
# END OF SCRIPT
#
#=================================400 yay=======================================
As for your first request, it really would be a minor edit on the grand scheme, but it would still take some time and effort.
it's like a metaphor or something i don't know

**
Rep: +0/-0Level 74
Novice Video Game Developer
Thanks Pacman. I'll see what I can do with that script :D.

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Best Member2012 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best RPG Maker User (Scripting)2011 Best Use of Avatar and Signature Space2010 Most Mature Member2010 Favourite Staff Member
Well, in the new version of the Quest Journal, you can customize the categories - meaning you can delete the all, complete, failed, active stuff and just have custom categories for each chapter. I attached a version of the demo where I did that - I obviously just assigned the quests to chapters randomly, but you can see how you would do it. The only thing you have to change to add new categories is you need to assign an icon in the ICONS array, you need to add it to the CUSTOM_CATEGORIES array, and you need to add the category symbol to each quest that you want to include in that category.

*****
my name is Timothy what's yours
Rep:
Level 79
Hello
2014 Most Missed Member2014 Zero to Hero2014 Best IRC Quote2012 Zero To HeroSecret Santa 2012 ParticipantContestant - GIAW 9For frequently finding and reporting spam and spam bots2011 Zero to Hero
I really should download that demo. I'm missing out on how awesome your script is.
So, uh, both requests solved?
it's like a metaphor or something i don't know

**
Rep: +0/-0Level 74
Novice Video Game Developer
Thanks so much you two. It's really helped a lot.
One thing, though, Pacman. Is it possible to remove the default catergories on the Item script? I don't mind if not, just I was wondering as I'd prefer to.

*****
my name is Timothy what's yours
Rep:
Level 79
Hello
2014 Most Missed Member2014 Zero to Hero2014 Best IRC Quote2012 Zero To HeroSecret Santa 2012 ParticipantContestant - GIAW 9For frequently finding and reporting spam and spam bots2011 Zero to Hero
Included in the default options, no.
it's like a metaphor or something i don't know