Submit Your Article


 
RPG Maker

Welcome Guest ( Log In | Register )


  Games Resources RPG Maker VX RPG Maker XP Scripts Tutorials Downloads

2 Pages V   1 2 >  
Reply to this topicStart new topic
> Magica Scroll System
Dark Dragon
post Jan 27 2008, 01:14 AM
Post #1


Level 8
Group Icon

Group: Revolutionary
Posts: 116
Type: Event Designer
RM Skill: Skilled




Magica Scroll System
Version: 1.0
Type: Custom System


Introduction

This script allows you to equip your party with scrolls before entering a battle, which allows them to use certain skills. This will make a player think of a strategy before entring a battle and then applying it in the battle ground..

Features

  • A nicely designed Scene to handle the scrolls..
  • You can edit the scroll easily through the "items" slot and a ready made template for you to use on RGSS..
  • Additional "Switch trigger" function that will help you include the presence of scrolls in certain events..


Screenshots



Demo
http://www.fileshost.com/en/file/29880/Mag...System-exe.html

Script

#================================================================
=========
=====
# Blizzards "slice_text" add-on to the Window_Base class..
#==============================================================================
class Window_Base
def slice_text(text, width)
result, last_word, current_text = [], 0, ''
(0..text.size).each {|i|
if text[i, 1] == ' ' || i == text.size
word = text[last_word, i-last_word]
if self.contents.text_size("#{current_text} #{word}").width > width
result.push(current_text)
current_text = word
else
current_text += (current_text == '' ? word : " #{word}")
end
last_word = i+1
end}
result.push("#{current_text} #{text[last_word, text.size-last_word]}")
return result
end
end
#==============================================================================
# Set extra attributes that the system will need later..
#==============================================================================
# Set the extra attribute to relate items to scrolls..
module RPG
class Item < UsableItem
attr_accessor :scroll
end
end
# Set the extra attributes to manage the party's equipped scrolls..
class Game_Actor < Game_Battler
attr_accessor :scroll
attr_accessor :scroll2
attr_accessor :scroll3
end
#==============================================================================


[Show/Hide] Main_Scroll_Script

CODE
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Magica Scroll System
# Version: 1.0
# Type: Custom System
# Made by : Dark Dragon
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

#==============================================================================
#==============================================================================
#==============================================================================
class Scroll_Scene < Scene_Base
   #-----------------------------------------------------------------------------
  # Set classes which will be used later..
  #-----------------------------------------------------------------------------
  def start
    @window_scroll = Window_Scroll.new
    @window_charcter = WindowS_Charcter.new
    @scroll_details = Scroll_Details.new
    @current_scroll = Window_CurrentScroll.new
    @current_scroll.active = false
    @charcter_status = Window_CharcterScrollStatus.new
    @scroll_array = Scrolls::Scroll_Array.new
  end
  #-----------------------------------------------------------------------------
  #Dispose of the classes whe $scene != self
  #-----------------------------------------------------------------------------
  def terminate
    @window_scroll.dispose
    @window_charcter.dispose
    @scroll_details.dispose
    @current_scroll.dispose
    @charcter_status.dispose
  end
   #-----------------------------------------------------------------------------
  # Update each class in loops and set the @actor value..
  #-----------------------------------------------------------------------------
  def update
    @actor = $game_party.members[@window_charcter.index]
    @window_scroll.update
    @window_charcter.update
    @current_scroll.update
  #-----------------------------------------------------------------------------
  # Set the details in the Scroll_Details window according to the position of the index
  #-----------------------------------------------------------------------------
    if @window_scroll.active
    @scroll_details.update_details(@window_scroll.item)
  elsif @current_scroll.active
    case @current_scroll.index
    when 0
     if @actor.scroll != nil
        @scroll_details.update_details2(@actor.scroll.item_related)
      else
                @scroll_details.update_details2(nil)
        end
        when 1
       if @actor.scroll2 != nil
          @scroll_details.update_details2(@actor.scroll2.item_related)
        else
                  @scroll_details.update_details2(nil)
          end
          when 2
        if @actor.scroll3 != nil
            @scroll_details.update_details2(@actor.scroll3.item_related)
          else
                    @scroll_details.update_details2(nil)
          end
          
        end
      end
      
    @current_scroll.refresh(@actor)
    @charcter_status.refresh(@actor)
#-----------------------------------------------------------------------------
  # Apply commands when C is pushed according to the active window..
  #-----------------------------------------------------------------------------
      if Input.trigger?(Input::C)
       if @window_scroll.active
        @window_scroll.active = false
        @current_scroll.active = true
    
      elsif @current_scroll.active
        case @current_scroll.index
        when 0
          unless @window_scroll.item == nil
      @scroll = @scroll_array.data(@window_scroll.item.scroll.id)
unless @actor.scroll == nil
      $game_party.gain_item(@actor.scroll.item_related, 1)
  end
      @actor.scroll = @scroll
      $game_party.consume_item(@window_scroll.item)
      @window_scroll.refresh
      @current_scroll.refresh2(@actor)
    else
unless @actor.scroll == nil
$game_party.gain_item(@actor.scroll.item_related, 1)
@window_scroll.refresh
@actor.scroll = nil
@current_scroll.refresh2(@actor)
end
end
@current_scroll.active = false
@window_scroll.active = true
          when 1
            unless @window_scroll.item == nil
      @scroll = @scroll_array.data(@window_scroll.item.scroll.id)
unless @actor.scroll2 == nil
      $game_party.gain_item(@actor.scroll2.item_related, 1)
  end
      @actor.scroll2 = @scroll
      $game_party.consume_item(@window_scroll.item)
      @window_scroll.refresh
      @current_scroll.refresh2(@actor)
    else
unless @actor.scroll2 == nil
$game_party.gain_item(@actor.scroll2.item_related, 1)
@window_scroll.refresh
@actor.scroll2 = nil
@current_scroll.refresh2(@actor)
end
end
@current_scroll.active = false
@window_scroll.active = true
            when 2
              unless @window_scroll.item == nil
      @scroll = @scroll_array.data(@window_scroll.item.scroll.id)
unless @actor.scroll3 == nil
      $game_party.gain_item(@actor.scroll3.item_related, 1)
  end
      @actor.scroll3 = @scroll
      $game_party.consume_item(@window_scroll.item)
      @window_scroll.refresh
      @current_scroll.refresh2(@actor)
    else
unless @actor.scroll3 == nil
$game_party.gain_item(@actor.scroll3.item_related, 1)
@window_scroll.refresh
@actor.scroll3 = nil
@current_scroll.refresh2(@actor)
end
end
@current_scroll.active = false
@window_scroll.active = true
        end
        
        
        end
      end
  #-----------------------------------------------------------------------------
  # Set the magical skills when aborting..and return to the scroll window if you are not..
  #-----------------------------------------------------------------------------
       if Input.trigger?(Input::B)
         if @window_scroll.active
      Magica.new
      $scene = Scene_Map.new
    elsif @current_scroll.active
      @current_scroll.active = false
      @window_scroll.active = true
      end
    end
end
end

#==============================================================================
#==============================================================================
#==============================================================================
#-----------------------------------------------------------------------------
  # Set the Scroll Selection Class..
  #-----------------------------------------------------------------------------
class Window_Scroll < Window_Selectable
  def initialize
    super(0,0,250,105)
    self.contents = Bitmap.new(200,300)
    self.index = 0
    refresh
  end
  def refresh
    self.contents.clear
  #-----------------------------------------------------------------------------
  # Push items with the first "Scroll" attribute on into the data array..
  #-----------------------------------------------------------------------------
    y = -1
    @data = []
    for i in 0 ... $game_party.items.size
if $game_party.items[i].is_a?(RPG::Item) and $game_party.items[i].element_set.include?(1)
    @data.push($game_party.items[i])
    y +=1
  self.contents.draw_text(35,y*23-2,200,32,$game_party.items[i].name)
  self.contents.draw_text(190,y*23-2,200,32,$game_party.item_number($game_party.items[i]))
        draw_icon($game_party.items[i].icon_index, 0, y*23-2)
   end
end
  @data.push(nil)
  self.contents.font.color = text_color(6)
  self.contents.draw_text(5,@data.size*23-24,200,32,"Remove")
  self.contents.font.color = normal_color
  @item_max = @data.size
  end
   #-----------------------------------------------------------------------------
  # Return the data array into self.data
  #-----------------------------------------------------------------------------
def item
  return @data[self.index]
end

end

#==============================================================================
#==============================================================================
#==============================================================================
#-----------------------------------------------------------------------------
  # Set the Details Window..
  #-----------------------------------------------------------------------------
class Scroll_Details < Window_Base
  def initialize
    super(0,250,350,167)
  end
   #-----------------------------------------------------------------------------
  # Fill up the details when @scroll_window.active
  #-----------------------------------------------------------------------------
  def update_details(item)
    unless item == nil
    self.contents.font.size = 18
    if item != @text
      self.contents.clear
      self.contents.font.color = text_color(6)
      self.contents.draw_text(0,0,200,32,item.name)
      self.contents.font.color = normal_color
  text = slice_text(item.description, 400)
  text.each_index {|i| self.contents.draw_text(4, i*32+32, self.width - 35, 32, text[i])}
      @text = item
    end

    else
      if item != @text
    self.contents.clear
          self.contents.draw_text(4, 0, self.width - 40, 32, "Remove scroll equipped.")
      @text = item
      end
  end
end
#-----------------------------------------------------------------------------
  # Fill up the window when @current_scroll.active
  #-----------------------------------------------------------------------------
def update_details2(item)
    unless item == nil
    self.contents.font.size = 18
    if item != @text
      self.contents.clear
      self.contents.font.color = text_color(6)
      self.contents.draw_text(0,0,200,32,item.name)
      self.contents.font.color = normal_color
  text = slice_text(item.description, 400)
  text.each_index {|i| self.contents.draw_text(4, i*32+32, self.width - 35, 32, text[i])}
      @text = item
    end

    else
      if item != @text
    self.contents.clear
          self.contents.draw_text(4, 0, self.width - 40, 32, "There is no scroll equipped.")
      @text = item
      end
  end
end

end

#==============================================================================
#==============================================================================
#==============================================================================
#-----------------------------------------------------------------------------
  # Set up the character selection window..
  #-----------------------------------------------------------------------------
class WindowS_Charcter < Window_Selectable
  def initialize
    super(0,105,545,145)
      for actor in $game_party.members
      draw_actor_face(actor, actor.index*130+10, 10,96 )
      self.contents.font.color = text_color(5)
      draw_actor_name(actor,actor.index*130 +10, 10)
      draw_actor_class(actor, actor.index*130+10, 35)
      draw_actor_level(actor,actor.index*130 +10,60)
      self.contents.font.color = normal_color
      draw_actor_state(actor,actor.index*130 +90, 85 )
      @column_max = 4
      @item_max = $game_party.members.size
      self.index = 0
      end
    end
    
    def update_cursor
       self.cursor_rect.set(self.index  * 130, 0, 120, 120)
       end
     end
    
    
#==============================================================================
#==============================================================================
#==============================================================================
  #-----------------------------------------------------------------------------
  # Set the Current Actor Scroll window..
  #-----------------------------------------------------------------------------
     class Window_CurrentScroll < Window_Selectable
  def initialize
    super(250,0,295,105)
    @item_max = 3
    self.index = 0
  end
#-----------------------------------------------------------------------------
  # Fill up the window when contents is diffrent..
  #-----------------------------------------------------------------------------
    def refresh(actor)
    unless actor == nil
    self.contents.font.size = 18
    
    if actor != @text
      self.contents.clear
        self.contents.font.color = text_color(6)
     self.contents.draw_text(3,0,200,32,"")
       self.contents.font.color = normal_color
      if actor.scroll==nil
      self.contents.draw_text(45,-2,200,32,"No equipped scroll.")
       end
     unless actor.scroll==nil
  draw_icon(actor.scroll.item_related.icon_index, 0, -2)
  self.contents.draw_text(45,-2,200,32,actor.scroll.name)
end

if actor.scroll2==nil
      self.contents.draw_text(45,21,200,32,"No equipped scroll.")
       end
     unless actor.scroll2==nil
  draw_icon(actor.scroll2.item_related.icon_index, 0, 21)
  self.contents.draw_text(45,21,200,32,actor.scroll2.name)
end
if actor.scroll3==nil
      self.contents.draw_text(45,44,200,32,"No equipped scroll.")
       end
unless actor.scroll3==nil
  draw_icon(actor.scroll3.item_related.icon_index, 0, 44)
  self.contents.draw_text(45,44,200,32,actor.scroll3.name)
end

     @text = actor
    end
    end
  end
  #-----------------------------------------------------------------------------
  # Fill up the window when C is pushed..
  #-----------------------------------------------------------------------------
    def refresh2(actor)
      unless actor == nil
    self.contents.font.size = 18
    self.contents.clear
        self.contents.font.color = text_color(6)
     self.contents.draw_text(3,0,200,32,"")
       self.contents.font.color = normal_color
      if actor.scroll==nil
      self.contents.draw_text(45,-2,200,32,"No equipped scroll.")
       end
     unless actor.scroll==nil
  draw_icon(actor.scroll.item_related.icon_index, 0, -2)
  self.contents.draw_text(45,-2,200,32,actor.scroll.name)
end
if actor.scroll2==nil
      self.contents.draw_text(45,21,200,32,"No equipped scroll.")
       end
     unless actor.scroll2==nil
  draw_icon(actor.scroll2.item_related.icon_index, 0, 21)
  self.contents.draw_text(45,21,200,32,actor.scroll2.name)
end
if actor.scroll3==nil
      self.contents.draw_text(45,44,200,32,"No equipped scroll.")
       end
unless actor.scroll3==nil
  draw_icon(actor.scroll3.item_related.icon_index, 0, 44)
  self.contents.draw_text(45,44,200,32,actor.scroll3.name)
end

     @text = actor
    end
end
end
#==============================================================================
#==============================================================================
#==============================================================================

class Window_CharcterScrollStatus < Window_Base
    #-----------------------------------------------------------------------------
  # Set up the characters window..
  #-----------------------------------------------------------------------------
  def initialize
    super(350,250,195,167)
  end
   #-----------------------------------------------------------------------------
  # Fill the window with the characters basic statues..
  #-----------------------------------------------------------------------------
  def refresh(actor )
    unless actor == nil
    self.contents.font.size = 18
    if actor != @text
      self.contents.clear
      x = 0
    draw_actor_hp(actor, x, 0)
    draw_actor_mp(actor, x, 32 )
    self.contents.font.size = 15
    draw_actor_parameter(actor, x, 60, 0)
    draw_actor_parameter(actor, x, 60 + 18, 1)
    draw_actor_parameter(actor, x, 60 + 18*2, 2)
    draw_actor_parameter(actor, x, 60+18*3, 3)
    @text = actor
    end
    end
    end
    end
#==============================================================================
#==============================================================================
#==============================================================================
#-----------------------------------------------------------------------------
  # Set the Scene_Title to set up the scrolls when starting a new game..
  #-----------------------------------------------------------------------------
class Scene_Title
  def load_database
    $data_actors        = load_data("Data/Actors.rvdata")
    $data_classes       = load_data("Data/Classes.rvdata")
    $data_skills        = load_data("Data/Skills.rvdata")
    $data_items         = load_data("Data/Items.rvdata")
    $data_weapons       = load_data("Data/Weapons.rvdata")
    $data_armors        = load_data("Data/Armors.rvdata")
    $data_enemies       = load_data("Data/Enemies.rvdata")
    $data_troops        = load_data("Data/Troops.rvdata")
    $data_states        = load_data("Data/States.rvdata")
    $data_animations    = load_data("Data/Animations.rvdata")
    $data_common_events = load_data("Data/CommonEvents.rvdata")
    $data_system        = load_data("Data/System.rvdata")
    $data_areas         = load_data("Data/Areas.rvdata")
   Set_Item_Scrolls.new
end
end


[Show/Hide] Magica_Handling

CODE
#==============================================================================
# ■ Magica
#------------------------------------------------------------------------------
# Right, now here is where you can set each scroll's effects. Wether it was it was adding magical
# skills,  corresponding with other events, it doesn't matter !
# I made the basic commands which are setting a new skill,
#
# How to use :
#
# - Add the effects you want using the already setted methods under "def initialize"  :
#     (set_magica or switch_trigger)
#      the arguments are as follows :
#      set_magica(scroll_id,skill_id)
#      set_switch(scroll_id, switch, character)
#
#==============================================================================

class Magica
  
  def initialize #Add the scroll related skills below this line
end


#This is the method you'll be using for setting magic.
def set_magica(scroll_id,skill_id)
    for i in 0...$game_party.members.size
    @actor = $game_party.members[i]
     if @actor.scroll.id == $data_items[scroll_id].scroll.id or @actor.scroll2.id == $data_items[scroll_id].scroll.id or @actor.scroll3.id == $data_items[scroll_id].scroll.id
    @actor.learn_skill(skill_id)
    else
    @actor.forget_skill(skill_id)
    end
    end
end
   #This is the method you'll be using for triggering a switch
def switch_trigger(scroll_id, switch, character)
    if $game_party.members[character-1].scroll.id == $data_items[scroll_id].scroll.id or $game_party.members[character-1].scroll2.id == $data_items[scroll_id].scroll.id or $game_party.members[character-1].scroll3.id == $data_items[scroll_id].scroll.id
      $game_switches[switch] = true
    else
            $game_switches[switch] = false
      end
  end

end



[Show/Hide] Scroll_setting_Up

CODE
module Scrolls
  
  class Scroll_Array
    
    def initialize
      # Don't forget to add the scroll's class name in this array, and don't forget the ".new"
      @scroll_array = [Fire_Scroll.new, Water_Scroll.new,Blaze_Scroll.new,Ice_Scroll.new]
    end
    def data(id)
      for i in 0...@scroll_array.size
        if @scroll_array[i].id == id
       return @scroll_array[i]
          end
        end
      end
    
    end
   #=====================================================================
   #=====================================================================
#=====================================================================
    #How to set Scrolls :
    # 1 - Use the template below and follow the instructions
    # 2 - Add the <class name> with a ".new" sticked to the end of it in the Array above..
    # 3 - Add a line in the "Set_Item_Scrolls" class below using this syntax :
    #         $data_items[item_id].scroll = Scrolls::<class name>.new
    #         item_id : The id of the item related to the scroll
    #         <class name> : The name of the class of the scroll, again, don't forget the ".new"
    #4 - All the items related to scrolls must have the first attribute -name it "Scroll"- setted on..
    #     If you still have problems with functioning the script please revise the templates in the
    #     demonstration game, if you still experince problems, you can PM in the RRR forums
    #     or through msn live messanger through my e-mail : denarto0o0@hotmail.com
#=====================================================================
#=====================================================================

=begin

class <class name> #This can be anything but it should start with a capital letter
  def initialize
  end
  def id
    return <id> #This is the ID of the item you want the scroll to be related to..
  end
    def item_related
      return $data_items[id]
      end
  def name
      return <name> #The name of the scroll, you should name it like
                                #the item the scroll is related to although you can change it
                                # don't forget to put BETWEEN 2 QOUTE MARKZ
    end
  end
  
=end
#=====================================================================
#=====================================================================

end
  
  class Set_Item_Scrolls
    def initialize
      #Set the items related to the scrolls here
     $data_items[1].scroll = Scrolls::Water_Scroll.new
      $data_items[2].scroll = Scrolls::Fire_Scroll.new
       $data_items[5].scroll = Scrolls::Blaze_Scroll.new
      $data_items[6].scroll = Scrolls::Ice_Scroll.new
    end
    end


Instructions

Add the first scroll above main and add th other two below it..
Follow the instructions in the script..
And dont forget to set the Scroll Related items to the first attribute, and you preferably should name it "Scroll"..


Credits and Thanks

  • Blizzard - For his slice_text add-on to the Window_Base Class
  • Zeriab for his.... tipz >_>


Author's Notes
If you experience any problems regarding the script please try the demonstration first, if you STILL have problems feel free to PM or contact me through MSN live messenger ... my e-mail denarto0o0@hotmail.com

This post has been edited by Dark Dragon: Feb 1 2008, 02:41 PM


__________________________
وَلَقَدْ يَسَّرْنَا الْقُرْآنَ لِلذِّكْرِ فَهَلْ مِن مُّدَّكِرٍ



I have noticed that kewlness is mainly based on the behaviour of the kewl person, it doesnt matter wether u kewl or u nt kewl lol omg
I smell n00by, but is me ?
Go to the top of the page
 
+Quote Post
   
Kinnison
post Jan 27 2008, 01:39 AM
Post #2


The not-so-revolutionary guy
Group Icon

Group: Revolutionary
Posts: 162
Type: Event Designer
RM Skill: Masterful




Ah, now it's much better. Now an actor can use more scrolls at the same time? happy.gif


__________________________
[Show/Hide] Current Game Project:

[Show/Hide] On Hold:
Go to the top of the page
 
+Quote Post
   
Dark Dragon
post Jan 27 2008, 01:54 AM
Post #3


Level 8
Group Icon

Group: Revolutionary
Posts: 116
Type: Event Designer
RM Skill: Skilled




Yep, but you'll have to follow the instructions biggrin.gif
Sorry but you'll have to edit the scrolls using the RGSS editor along with the "items" in the Database mate..
I tried to make it as simple as possible..
Check out the demo it will explain everything happy.gif


__________________________
وَلَقَدْ يَسَّرْنَا الْقُرْآنَ لِلذِّكْرِ فَهَلْ مِن مُّدَّكِرٍ



I have noticed that kewlness is mainly based on the behaviour of the kewl person, it doesnt matter wether u kewl or u nt kewl lol omg
I smell n00by, but is me ?
Go to the top of the page
 
+Quote Post
   
jasonicus
post Jan 27 2008, 12:11 PM
Post #4


All Lies Lead to the Truth
Group Icon

Group: Revolutionary
Posts: 1,573
Type: Developer
RM Skill: Advanced




Good to see you have this up and running. I checked it out, pretty cool. I think I may try to add it as an option in the menu, would be better to have it that way.

This post has been edited by jasonicus: Jan 27 2008, 12:12 PM
Go to the top of the page
 
+Quote Post
   
neclords
post Jan 31 2008, 01:47 AM
Post #5


Love me! I wanna you to love me!
Group Icon

Group: Revolutionary
Posts: 196
Type: Event Designer
RM Skill: Beginner




This is Good...
Thanks


__________________________

~Time To sWallow tHe Pain and VaniSH OuR HuRt~
Go to the top of the page
 
+Quote Post
   
Koru-chan
post Feb 3 2008, 05:27 PM
Post #6


Level 7
Group Icon

Group: Revolutionary
Posts: 102
Type: Event Designer
RM Skill: Advanced




@jasonicus - if you do, please let us know. I'd love it as a menu item instead.

@Dark Dragon - I downloaded the demo and tried it out, is there any way to make characters able to have more than three scrolls on them at a time? If so, is that described in the notes somewhere or no?


__________________________



PM me if you want your own graph, please do NOT take and alter for your own.
Go to the top of the page
 
+Quote Post
   
woratana
post Feb 3 2008, 05:36 PM
Post #7


Looking for scripter to hire? PM me *O*
Group Icon

Group: +Gold Member
Posts: 1,038
Type: Scripter
RM Skill: Undisclosed




@Koru Chan
I think you may try to add scroll4 in every line same as scroll2 and scroll3

Anyway, wait for the owner is better~^^

@Dark Dragon
Nice Script~^^

I never script this long smile.gif
(Maybe I need to try one in the future)


__________________________
Check out my NEW blog!!!



MVP (Most Valuable Poster) Award 2008


Go to the top of the page
 
+Quote Post
   
Dark Dragon
post Feb 4 2008, 04:35 AM
Post #8


Level 8
Group Icon

Group: Revolutionary
Posts: 116
Type: Event Designer
RM Skill: Skilled




Thanks everyone happy.gif
Koru-Chan you can't just set that up, it will require LOTS of edits, I can do it for you exclusive if you want though tongue.gif
3 sounded like a nice number so I went on with it, if you really need four tell me..


__________________________
وَلَقَدْ يَسَّرْنَا الْقُرْآنَ لِلذِّكْرِ فَهَلْ مِن مُّدَّكِرٍ



I have noticed that kewlness is mainly based on the behaviour of the kewl person, it doesnt matter wether u kewl or u nt kewl lol omg
I smell n00by, but is me ?
Go to the top of the page
 
+Quote Post
   
Koru-chan
post Feb 9 2008, 03:39 PM
Post #9


Level 7
Group Icon

Group: Revolutionary
Posts: 102
Type: Event Designer
RM Skill: Advanced




Basically, my problem is that I needed more of a materia system for my game, but no one replied with a script to my request thread and now that thread is on page 2 where no one will ever find it. :/ so I decided to use this instead, but I need significantly more than 3 per character. Like, closer to 8. I thought it might be a simple edit but don't worry about it, I'll find another way to do the system I need. Sorry to make a fuss.


__________________________



PM me if you want your own graph, please do NOT take and alter for your own.
Go to the top of the page
 
+Quote Post
   
Kevvviiinnn
post Mar 2 2008, 02:45 PM
Post #10



Group Icon

Group: Member
Posts: 4
Type: Musician
RM Skill: Masterful




How can you make it so the scrolls can do things like:

    Add or removes stat points (defense, agility)
    Activate a state (POW up, paralysis, confusion) permanently unless scroll is removed
    Cut MP usage in half (or something of that sort)


Wonderful script by the way, I like it. Keep up the good work wink.gif
Go to the top of the page
 
+Quote Post
   
Aldaen
post Mar 3 2008, 07:19 PM
Post #11


Level 3
Group Icon

Group: Member
Posts: 42
Type: Developer
RM Skill: Skilled




The demo's download link doesn't work anymore :/


__________________________


Go to the top of the page
 
+Quote Post
   
AnalogMan
post Mar 13 2008, 02:41 AM
Post #12



Group Icon

Group: Member
Posts: 1
Type: None
RM Skill: Undisclosed




QUOTE (jasonicus @ Jan 27 2008, 11:18 AM) *
Good to see you have this up and running. I checked it out, pretty cool. I think I may try to add it as an option in the menu, would be better to have it that way.

I've already done this. Here's the instructions:

Open the script editor and go to Scene_Menu.

Find this line "def create_command_window"

Add a s7 option named "Scrolls", so it looks like so:
CODE
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::save
    s6 = Vocab::game_end
    s7 = "Scrolls"


Then find the line
CODE
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])

Right under and add s7 wherever you want it to appear. I added mine just after s4, Status.
CODE
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s7, s5, s6])


Almost done. Finally, find:
CODE
when 4      # Save
        $scene = Scene_File.new(true, false, false)

And copy it, so it looks like so:
CODE
when 4      # Save
        $scene = Scene_File.new(true, false, false)
when 4      # Save
        $scene = Scene_File.new(true, false, false)


Update the first one to read:
CODE
     when 4      # Scrolls
        $scene = Scroll_Scene.new


And change the second 4 to 5, and 5 to 6. End result should be like so:
CODE
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new
      when 1,2,3  # Skill, equipment, status
        start_actor_selection
      when 4      # Scrolls
        $scene = Scroll_Scene.new
      when 5      # Save
        $scene = Scene_File.new(true, false, false)
      when 6      # End Game
        $scene = Scene_End.new


Extra: If you want to return to the menu when exiting the scroll screen, find inside Main_Scroll_Script:
CODE
      if Input.trigger?(Input::B)
         if @window_scroll.active
      Magica.new
      $scene = Scene_Map.new


and replace $scene=Scene_Map.new with:
play.Sound_cancel
$scene=Scene_Menu.new(4)


You'll also want to enter Scene_File and Scene_End and find their Scene_Menu.new(x) lines and increase x by 1 so that your cursor remains on that option once exiting out. Failure to do so will cause the selection to move up one when returning from either of those two options. By changing all these (x) in all options to 0 the cursor will always begin back at the top of the menu when exiting from a screen.



Those of you using the Basic Menu Plus script to add location and game time data to the menu will have a slightly harder time, however it can work as I currently use this combination. If someone needs to know the extra steps involved, PM me.

This post has been edited by AnalogMan: Mar 13 2008, 03:17 AM
Go to the top of the page
 
+Quote Post
   
drmac032
post Mar 21 2008, 12:23 PM
Post #13


Level 1
Group Icon

Group: Member
Posts: 7
Type: Event Designer
RM Skill: Skilled




Is it possible to allow use of scrolls to only certain classes? huh.gif
Go to the top of the page
 
+Quote Post
   
post Mar 21 2008, 12:36 PM
Post #14





Group:
Posts: 0
Type: Writer
RM Skill: Undisclosed




Those were the words I was looking for

same as above would be cool, it's a shame everyone can use the scrolls, I'd like it to be a magical ability only known by a certain class
Go to the top of the page
 
+Quote Post
   
drmac032
post Mar 21 2008, 12:40 PM
Post #15


Level 1
Group Icon

Group: Member
Posts: 7
Type: Event Designer
RM Skill: Skilled




When I said that I was thinking of scholars.

This post has been edited by drmac032: Mar 21 2008, 12:40 PM
Go to the top of the page
 
+Quote Post
   
Dark Dragon
post Apr 6 2008, 08:09 AM
Post #16


Level 8
Group Icon

Group: Revolutionary
Posts: 116
Type: Event Designer
RM Skill: Skilled




Hello people, I'm sorry I was away for so much time, life (HIGH SCHOOL IS A #%^%$)
First off I'd like to thank Analog Man for saving me the time *thumbs up* tongue.gif
Now drmac and skye, those are minor detailed stuff you're talking about, so I couldn't put them in the script originally, I doubt the majority would want it like that. So I'll just make you this special edition and PM it, if anyone else needs it just PM me.
Should take a couple of days though D= I'm having mid-term exams, I'll try to do it as fast As I can.
Once again sorry people, and thank you Analog.
And Kevin, I'm sorry but I didn't add those stuff, I might improve the script later, nice suggestions, thank you.
<3 all


__________________________
وَلَقَدْ يَسَّرْنَا الْقُرْآنَ لِلذِّكْرِ فَهَلْ مِن مُّدَّكِرٍ



I have noticed that kewlness is mainly based on the behaviour of the kewl person, it doesnt matter wether u kewl or u nt kewl lol omg
I smell n00by, but is me ?
Go to the top of the page
 
+Quote Post
   
drmac032
post Apr 14 2008, 04:49 PM
Post #17


Level 1
Group Icon

Group: Member
Posts: 7
Type: Event Designer
RM Skill: Skilled




Thanks!
Go to the top of the page
 
+Quote Post
   
MastaNEC
post Jun 26 2008, 12:24 PM
Post #18


Level 2
Group Icon

Group: Member
Posts: 16
Type: Writer
RM Skill: Advanced




Am I the only one that notices the 4 "Ni**er" Classes in the demo???
Go to the top of the page
 
+Quote Post
   
The Wizard 007
post Jun 27 2008, 06:17 PM
Post #19


Jack of all trades
Group Icon

Group: Revolutionary
Posts: 118
Type: Developer
RM Skill: Skilled




I actually didn't notice until I checked it again to see if it was true. That's pretty messed up stuff.


__________________________
Currently working on:

Underground Syndicate (mafioso/modern type RPG)
Mind Maze (old school dungeon crawler with a different feel)
Dragon Adventure (Dragon Quest type fangame with more customization)
Dark Grind (Survival horror RPG)
Go to the top of the page
 
+Quote Post
   
jasonicus
post Jun 27 2008, 08:58 PM
Post #20


All Lies Lead to the Truth
Group Icon

Group: Revolutionary
Posts: 1,573
Type: Developer
RM Skill: Advanced




We've already been thru this with Dark Dragon. Drop it, no reason for a necro post about something that happened months ago.
Go to the top of the page
 
+Quote Post
   

2 Pages V   1 2 >
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Lo-Fi Version Time is now: 22nd May 2013 - 05:51 AM
RPG RPG Revolution is an Privacy Policy and Legal
eXTReMe Tracker