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

RMXP Unlimited Project Discussion

All polls here  

29 members have voted

  1. 1. Main Character's Personality type?

    • Happy,cheerful,with a tortured past.
      7
    • Crafty,quick-witted,and cunning. The ideal thief.
      8
    • The Robin Hood type. A noble thief that steals for a divine purpose.
      1
    • The silent hero.( A.K.A.: "Link") The hero doesn't really have a personality,it's most decided by the player's actions.
      4
    • The cautious hero. Though,she has never been caught,she is well aware of the consequences. This type of thief steals for survival.
      9
  2. 2. Character Name?

    • Kate
      6
    • Kairun
      5
    • Kelly
      3
    • Emily
      2
    • Valerie
      10
    • Other (post required! You must give a name if you pick this option)
      3
  3. 3. Battle System?

    • Action Battle System (think Zelda or Kingdom Hearts)
      19
    • RMXP Default Battle System
      2
    • Real-time Active Battle System (think Final Fantasy)
      3
    • Tactical Battle System (no idea lol)
      5


Recommended Posts

I'm not fond of using the Kingdom Hearts Title Theme...I mean...we should really go for something more original, or at least something that people can't go "Oh, that's from <game>" thing. I tried to use as little music from other games as possible in mine.

Share this post


Link to post
Share on other sites
I'm not fond of using the Kingdom Hearts Title Theme...I mean...we should really go for something more original, or at least something that people can't go "Oh, that's from <game>" thing. I tried to use as little music from other games as possible in mine.

 

I wasn't implying using the actual theme(Maybe I was just a little...It's a really cool tune! ^.^;),I meant a slow pretty tune like "058-Slow01".

---------------------------------------------------

We could make a pinball minigame using her with her shield on. lol

I think I've seen a pinball game script somewhere.

 

Who's MSPainty?

Share this post


Link to post
Share on other sites

The girl you drew. She looks pixely (so do all of my drawings, though). Also, the one with her in the shield has really poor anatomy...the arms look like long strings and the legs look really funky >> Just so you know (I can't do much better, but still)

Share this post


Link to post
Share on other sites
The girl you drew. She looks pixely (so do all of my drawings, though). Also, the one with her in the shield has really poor anatomy...the arms look like long strings and the legs look really funky >> Just so you know (I can't do much better, but still)

 

I was going for anorexic,you know since most thieves,if not all,go long periods without food or water due to poverty.

I could draw her 100x better on paper and scan it,but without an art kit,I can't color it.

If anyone else can draw her better,go right ahead.

The problem with drawing like that is any artist can draw a pretty picture,however,look closely.

See the edges?Paper isn't just white like most people think,its over a million different shades of gray.

You'll have to go through the outline with a fine toothed comb to remove every last bit of the paper it was drawn on.Done improperly and it will look like some five-year-old clipped it out of a coloring book.

RippedArt.jpg

 

This is what anorexia looks like in the final stages:

http://i117.photobucket.com/albums/o69/jesse66125/model.jpg

Gross,I know,but very sad. This one is actually a model who starved herself into oblivion,God rest her soul.

Share this post


Link to post
Share on other sites

Here's the XAS sprites I've been working on. Just import them under "Characters".

Standard Attack:

Hero_ATK_MOLDE.png

Damage Response:

Hero_HIT.png

Shield:

Hero_SHD_01.png

Skill 1(Item Use,Magic Use):

Hero_SKILL_01.png

Skill 2:

Hero_SKILL_02.png

Dagger Attack:

Hero_SWD_01.png

Throw Attack:

Hero_TRW.png

Spiral Upper Cut:

Hero_STF_01.png

Share this post


Link to post
Share on other sites

Updated Download Links:

 

-Updated Sound Version-

*May not work properly,but try these first.

 

RMXP Unlimited Download Section:

http://www.rmxpunlimited.net/forums/index....mp;showfile=186

 

Media Fire:

http://www.mediafire.com/?sharekey=35ab497...04e75f6e8ebb871

 

2 Shared:

http://www.2shared.com/file/5074562/fa0d5f...XP_Project.html

 

Megaupload:

http://www.megaupload.com/?d=HENOG696

 

----------------------------------------------------------------------

Alternatively Try these:

 

Media Fire:

http://www.mediafire.com/?mtmdkmxcbxg

 

2Shared:

http://www.2shared.com/file/5073920/e4a23a...AS_Hero_21.html

 

Megaupload:

http://www.megaupload.com/?d=UHBFAHJK

Share this post


Link to post
Share on other sites

Unable to find auio/BGM/Opening_01... So yeah..

 

 

The sprites look cool though.

Share this post


Link to post
Share on other sites
Unable to find auio/BGM/Opening_01... So yeah..

 

 

The sprites look cool though.

 

Works fine for me on all three downloads,but its not encripted so you just change the music via the database.

Just go under "System" and then change the Title screen music to whatever.

Non-default music sometimes gets corrupted during extraction.

------------------------------------------------

So,now that we've got the main character and the combat system down.

We need to work out a story,maps,hm...

Share this post


Link to post
Share on other sites

If you guys need title music, that's what I'm here for.

 

Like I said, just tell me what you want, and I'll get composing.

 

I'm very familiar with the KH title theme, and I can make something calm and soothing like it if you want.

Share this post


Link to post
Share on other sites
If you guys need title music, that's what I'm here for.

 

Like I said, just tell me what you want, and I'll get composing.

 

I'm very familiar with the KH title theme, and I can make something calm and soothing like it if you want.

 

Ok! Cool!

-------------------------------------

 

I thought up a new completely original storyline.

 

OK,her parents are a warlock and a witch and they're on the run from persecution. However,they do not want their child to be known as a witch and executed,so they abandon the child on the door step of the nearest orphanage they find.

Sadly,the orphanage they picked was just a little better than Hell itself. The child is mistreated severely and beaten within an inch of her life for the slightest disobediences. This is where she learns how to be a cautious thief who never gets caught. One day,she is attacked and choked by one of the "enforcers" and out of sheer terror she subconsciously puts up her light shield,knocking back the enforcer a good two spaces..

In pure rage,the enforcer shouts,"WITCH!",and goes in the for the killing blow with his night stick.

An older blind boy immediately jumps in and blocks the attack with his walking stick.

The boy grabs her hand and they take off running. They reach a back room with a high window,he quickly lifts her up so she can escape.

 

Unfortunately,life on the outside isn't much better than at the orphanage.

Wandering through the city alone,she is forced to fend for herself.

(This is where the palyer first takes control. With her light shield already equipped.)

Share this post


Link to post
Share on other sites

Hmm, sounds different, a little too cliche though. I'm checking out the demo now... and I don't think we have the char down.

Share this post


Link to post
Share on other sites
Hmm, sounds different, a little too cliché though. I'm checking out the demo now... and I don't think we have the char down.

 

how is it cliché? This storyline has never been used any any story,ever. Name one story that has ever used anything close to this concept.

This story was inspired by the History channel where a Jewish couple who abandoned their son on the doorstep of a German orphanage during 1943,so that he would live through the war. It was a very sad story. The parents were sent to Auschwitz,and the son survived by never knowing he was Jewish until 1971 when he met his uncle who told him the story.

Share this post


Link to post
Share on other sites

I mean the general idea is cliche, don't take it personally. I love the charset though. I don't know how this battle system works though, like the controls and stuff.

Share this post


Link to post
Share on other sites
I mean the general idea is cliché, don't take it personally. I love the charset though. I don't know how this battle system works though, like the controls and stuff.

 

Well Emily said killing the parents was "too cliché",so I picked a storyline where they lived.

 

The only other story idea I have left is if the father beats the girl so she's forced to run away.

The reason I picked the father to be abusive is because most mothers in just about any species would literally die to keep her children safe.

Something about 9 months of suffering and potentially 12 hours of beyond horrific labor pain just to bring the child into this world makes her very protective.There are a few exceptions to this rule of nature ofcourse.

If the mother does hate her child,chances are the father won't,too. I've read stories about cold-blooded murderers who were on death row,but who were the kindest fathers to their children.

Parental instincts,as they say.

 

Something has to happen to the parents for them to not be around.

You guys chose personality #4. That type of thief only steals as a last resort. Her parents CAN NOT be around to take care of her,or she wouldn't have a reason to steal.

Only in VERY rare cases do parents just abandon a child for no reason. Especially if the mother is alive and well.

Share this post


Link to post
Share on other sites

If you guys want to talk about clichés here's one.

"A young girl is magically transformed into a singer with the help of her two guardian angels."

 

This is a VERY old Japanese story,but two authors notablely made 1.4 billion dollars off of.(Yes,BILLION!)

Perhaps you've heard of these stories.

 

Full Moon Wo Sagashite:

86_Full_Moon_wo_Sagashite_203202cop.jpg

(Actually all of Arina Tanemura's stories are based off clichés,but she still makes millions of dollars a year.

Wonder why.)

 

Fancy Lala:

untitled.jpg

------------------------------------

Here's another really bad cliché.

"Battle Android Maids who serve their master with unwavering loyalty and love."

I could find you twenty other animes JUST like these.

 

Steel Angel Kurumi:

steel-angel-kurumi-1.jpg

Great anime,but it's kind of like white noise in Japan.

 

Mahoromatic:

maho.jpg

Share this post


Link to post
Share on other sites

Final Story Draft Idea:

 

The opening scene shows soldiers raiding a small village. They're looking for a special family who incredibly strong magic to use them as weapons. The family consists of a grandfather,a 12 year old boy,Philip,and a baby.

(The baby is Valerie,the main hero.)

The grandfather uses the last of his magic to stall the soldiers just long enough for the boy escape with the baby.

 

With the soldiers in hot pursuit,the boy is forced to abandon the baby on the doorstep of the nearest ophanage.

The soldiers,unaware of that he was even carrying a baby,continue chasing the boy and pass the ophanage without a second glance.

Soon after they catch the boy,they take him back to their castle and brain wash him into being their king's slave.

(Philip later bexomes one of the final bosses.)

Sadly,the orphanage the boy left Valerie at was just a little better than Hell itself. The child is mistreated severely and beaten within an inch of her life for the slightest disobediences. This is where she learns how to be a cautious thief who never gets caught.

 

One day,she is attacked and punished by one of the "enforcers" and out of sheer terror she subconsciously puts up her light shield,knocking back the enforcer flat on his butt.

In pure rage,the enforcer shouts,"WITCH!",and goes in the for the killing blow with his night stick.

An older blind boy,Lucas,immediately jumps in and blocks the attack with his walking stick.

The boy grabs her hand and they take off running. They reach a back room with a high window,he quickly lifts her up so she can escape.

 

Unfortunately,life on the outside isn't much better than at the orphanage.

Wandering through the city alone,she is forced to fend for herself.

(This is where the player first takes control. With her light shield already equipped.)

Share this post


Link to post
Share on other sites

Hey those are good animes, thery're my favorite (true I need to finish Mahoromatic and Steel Angel Kurumi, but still.....). The Final Story draft sounds good to me.

Share this post


Link to post
Share on other sites

I found a lock picking script by Dargor.

#======================================================================
========
# ** Lock Pick System
#------------------------------------------------------------------------------
#  Author: Dargor
#  Requested by: Isopaha
#  Version 1.6
#  25/06/2007
#==============================================================================
# * Instructions
#------------------------------------------------------------------------------
# - Setup an event and use the call script command: 
#      scene = Scene_LockPick.new(event_id, lock_level, max_try)
#   max_try: maximum number of trys before the lock is broken.
#            When set to -1, the lock can't be broken
#------------------------------------------------------------------------------
# * Note
#------------------------------------------------------------------------------
# - Thanks to Isopaha for requesting the script! And don't forget to 
#   give me credits!
#==============================================================================
module Lockpicking
 Actors = [1,2]
 Classes = [1,2,3]
 Use_Actors_Level = [2]
 Exp_Curve_File = "Data/Lockpick_Exp_Curve.rxdata"
 #--------------------------------------------------------------------------
 # * Generate Experience Curve
 #--------------------------------------------------------------------------
 def self.generate_exp_curve(base_exp = 2)
   file = File.new(Exp_Curve_File, "w")
   code = IO.readlines(Exp_Curve_File)
   for i in 0...100
     last_exp = 1 if last_exp.nil?
     formula = base_exp + last_exp + rand(3)
     exp = [[formula, last_exp+rand(2)].max, 9999].min
     code[i] = "Level #{i+1} = #{exp}\n"
     last_exp = exp
   end
   file.write(code)
 end
end
#==============================================================================
# ** Game_Temp
#------------------------------------------------------------------------------
#  This class handles temporary data that is not included with save data.
#  Refer to "$game_temp" for the instance of this class.
#==============================================================================

class Game_Temp
 #--------------------------------------------------------------------------
 # * Public Instance Variables
 #--------------------------------------------------------------------------
 attr_accessor :lockpick_success
 attr_accessor :lockpick_actor
 attr_accessor :lockpick_target_level
 attr_accessor :lockpick_levelup_flag
 attr_accessor :lockpick_use
 #--------------------------------------------------------------------------
 # * Alias Listing
 #--------------------------------------------------------------------------
 alias dargor_lock_temp_initialize initialize
 #--------------------------------------------------------------------------
 # * Object Initialization
 #--------------------------------------------------------------------------
 def initialize
   dargor_lock_temp_initialize
   @lockpick_success = false
   @lockpick_actor = nil
   @lockpick_target_level = 1
   @lockpick_levelup_flag = []
   @lockpick_use = 20
 end
 #--------------------------------------------------------------------------
 # * Repair Lock Pick (#use)
 #--------------------------------------------------------------------------
 def repair_lockpick(value=20)
   @lockpick_use = value
 end
end

#==============================================================================
# ** Game_System
#------------------------------------------------------------------------------
#  This class handles data surrounding the system. Backround music, etc.
#  is managed here as well. Refer to "$game_system" for the instance of 
#  this class.
#==============================================================================

class Game_System
 #--------------------------------------------------------------------------
 # * Public Instance Variables
 #--------------------------------------------------------------------------
 attr_accessor :lockpick_id
 #--------------------------------------------------------------------------
 # * Alias Listing
 #--------------------------------------------------------------------------
 alias dargor_lock_system_initialize initialize
 #--------------------------------------------------------------------------
 # * Object Initialization
 #--------------------------------------------------------------------------
 def initialize
   dargor_lock_system_initialize
   @lockpick_id = 33
 end
end

#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  This class handles the actor. It's used within the Game_Actors class
#  ($game_actors) and refers to the Game_Party class ($game_party).
#==============================================================================

class Game_Actor
 #--------------------------------------------------------------------------
 # * Public Instance Variables
 #--------------------------------------------------------------------------
 attr_accessor :lockpicking_level
 attr_accessor :lockpicking_level_max
 attr_accessor :lockpicking_exp
 #--------------------------------------------------------------------------
 # * Alias Listing
 #--------------------------------------------------------------------------
 alias dargor_lock_actor_setup setup
 #--------------------------------------------------------------------------
 # * Setup
 #     actor_id : actor ID
 #--------------------------------------------------------------------------
 def setup(actor_id)
   dargor_lock_actor_setup(actor_id)
   @lockpicking_level = 1
   @lockpicking_level_max = 100
   @lockpicking_exp = read_exp
 end
 def can_lockpick?
   return (Lockpicking::Actors.include?(id) and 
     Lockpicking::Classes.include?(@class_id))
 end
 #--------------------------------------------------------------------------
 # * Lock Pick (Lock picking process)
 #--------------------------------------------------------------------------
 def lockpick
   # Store the target lock level into lock_level
   lock_level = $game_temp.lockpick_target_level
   # Succes rate formula (depends on the lock picking level type)
   if Lockpicking::Use_Actors_Level.include?(@id)
     success_rate = (@level*100)/lock_level
     @lockpicking_level = @level
   else
     success_rate = (@lockpicking_level*100)/lock_level
   end
   # If lock pick use is 0, unequip it (Used when lock pick is a RPG::Weapon)
   if $game_temp.lockpick_use == 0
     #$game_temp.lockpick_actor.equip(0, 0)
     #$game_party.lose_weapon($game_system.lockpick_id, 1)
     return
   else
     $game_temp.lockpick_use -= 1
   end
   # Success Randomization
   if rand(100) <= success_rate
     # Skip exp/level step if using actor's level instead of 
     # lock picking level
     unless Lockpicking::Use_Actors_Level.include?(@id)
       last_level = @lockpicking_level
       @lockpicking_exp = 0 if @lockpicking_exp.nil?
       @lockpicking_exp += 1
       check_lockpicking_level 
       # Check for lock picking level up
       if last_level < @lockpicking_level
         $game_temp.lockpick_levelup_flag[@actor_id] = true
       else
         $game_temp.lockpick_levelup_flag[@actor_id] = false
       end
     end
     # Success
     $game_temp.lockpick_success = true
     return
   else
     # Failure
     $game_temp.lockpick_success = false
     return
   end
 end
 #--------------------------------------------------------------------------
 # * Read Current Lock Picking Exp
 #--------------------------------------------------------------------------
 def read_exp
   return 0 if @lockpicking_level == @lockpicking_level_max
   Lockpicking.generate_exp_curve unless FileTest.exist?(Lockpicking::Exp_Curve_File)
   file = File.open(Lockpicking::Exp_Curve_File)
   until file.eof?
     data = file.readline
     line = data.dup
     if data.include?("Level #{@lockpicking_level}")
       now_exp = line.split(' = ')
       exp = now_exp[1].to_i
       return exp
     end
   end
 end
 #--------------------------------------------------------------------------
 # * Read Lock Picking Exp Needed For Next Level
 #--------------------------------------------------------------------------
 def exp_needed
   return if @lockpicking_level == @lockpicking_level_max
   unless FileTest.exist?(Lockpicking::Exp_Curve_File)
     Lockpicking.generate_exp_curve
   end
   next_level = @lockpicking_level+1
   file = File.open(Lockpicking::Exp_Curve_File)
   until file.eof?
     data = file.readline
     line = data.dup
     if data.include?("Level #{next_level}")
       now_exp = line.split(' = ')
       exp = now_exp[1].to_i
       return exp
     end
   end
 end
 #--------------------------------------------------------------------------
 # * Check Lockpicking Level
 #--------------------------------------------------------------------------
 def check_lockpicking_level
   if @lockpicking_exp >= exp_needed
     @lockpicking_level += 1
   end
   return @lockpicking_level
 end
end

#==============================================================================
# ** Game_Event
#------------------------------------------------------------------------------
#  This class deals with events. It handles functions including event page 
#  switching via condition determinants, and running parallel process events.
#  It's used within the Game_Map class.
#==============================================================================

class Game_Event < Game_Character
 #--------------------------------------------------------------------------
 # * Public Instance Variables
 #--------------------------------------------------------------------------
 attr_accessor :broken       # broken
 #--------------------------------------------------------------------------
 # * Alias Listing
 #--------------------------------------------------------------------------
 alias lockpick_event_initialize initialize
 #--------------------------------------------------------------------------
 # * Object Initialization
 #--------------------------------------------------------------------------
 def initialize(map_id, event)
   @broken = false
   lockpick_event_initialize(map_id, event)
 end
 #--------------------------------------------------------------------------
 # * Broken?
 #--------------------------------------------------------------------------
 def broken?
   return @broken
 end
end

#==============================================================================
# ** Window_LockLevel
#------------------------------------------------------------------------------
#  This window displays lock picking variables (User level, Target level, #use).
#==============================================================================

class Window_LockLevel < Window_Base
 #--------------------------------------------------------------------------
 # * Object Initialization
 #--------------------------------------------------------------------------
 def initialize
   super(16,16,240,128)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.back_opacity = 160
   refresh
 end
 #--------------------------------------------------------------------------
 # * Refresh
 #--------------------------------------------------------------------------
 def refresh
   self.contents.clear
   if $game_temp.lockpick_actor.nil?
     return
   end
   # Draw User Lock Picking Level
   self.contents.font.color = system_color
   self.contents.draw_text(0,0,200,32,'Lock Picking Level:')
   self.contents.font.color = normal_color
   if Lockpicking::Use_Actors_Level.include?($game_temp.lockpick_actor.id)
     lockpicking_level = $game_temp.lockpick_actor.level.to_s
     self.contents.draw_text(0,0,200,32,lockpicking_level,2)
   else
     lockpicking_level = $game_temp.lockpick_actor.lockpicking_level.to_s
     self.contents.draw_text(0,0,200,32,lockpicking_level,2)
   end
   # Draw Target Lock Level
   self.contents.font.color = system_color
   self.contents.draw_text(0,32,160,32,'Target Lock Level:')
   self.contents.font.color = normal_color
   lock_level = $game_temp.lockpick_target_level.to_s
   self.contents.draw_text(0,32,200,32,lock_level,2)
   # Draw Lock Pick #use
   self.contents.font.color = system_color
   self.contents.draw_text(0,64,160,32,'Use:')
   self.contents.font.color = normal_color
   use = $game_temp.lockpick_use.to_s
   self.contents.draw_text(0,64,200,32,use,2)
 end
end

#==============================================================================
# ** Scene_LockPick
#------------------------------------------------------------------------------
#  This class performs lock picking screen processing.
#==============================================================================

class Scene_LockPick
 #--------------------------------------------------------------------------
 # * Object Initialization
 #--------------------------------------------------------------------------
 def initialize(event, level, max_try=-1)
   @event = $game_map.events[event]
   $game_temp.lockpick_target_level = level
   @max_try = max_try
 end
 #--------------------------------------------------------------------------
 # * Main Processing
 #--------------------------------------------------------------------------
 def main
   @step = 0
   @spriteset = Spriteset_Map.new
   @lockpick_level = Window_LockLevel.new
   @lockpick_message = Window_Help.new
   @lockpick_message.visible = false
   @lockpick_message.y = 416
   @lockpick_message.back_opacity = 160
   @lockpick_message.pause = true
   @commands = []
   for i in 0...$game_party.actors.size
     actor = $game_party.actors[i]
     @commands << actor.name if actor.can_lockpick?
   end
   @lockpick_commands = Window_Command.new(160,@commands)
   @lockpick_commands.x = 16
   @lockpick_commands.y = @lockpick_level.y + @lockpick_level.height
   @lockpick_commands.back_opacity = 160
   # Execute transition
   Graphics.transition
   # Main loop
   loop do
     # Update game screen
     Graphics.update
     # Update input information
     Input.update
     # Frame update
     update
     # Abort loop if screen is changed
     if $scene != self
       break
     end
   end
   # Refresh map
   $game_map.refresh
   # Prepare for transition
   Graphics.freeze
   @spriteset.dispose
   # Dispose of windows
   @lockpick_commands.dispose
   @lockpick_level.dispose
   @lockpick_message.dispose
 end
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------
 def update
   $game_party.refresh
   @lockpick_commands.update
   @lockpick_message.update
   @lockpick_level.refresh
   $game_temp.lockpick_actor = $game_party.actors[@lockpick_commands.index]
   unless @lockpick_message.visible
     equipped_weapon = $game_temp.lockpick_actor.weapon_id 
     if Input.trigger?(Input::C) #and equipped_weapon == $game_system.lockpick_id
       $game_system.se_play($data_system.decision_se)
       $game_temp.lockpick_actor.lockpick
       unless @max_try == -1 and not @event.broken
         @max_try -= 1
         @lockpick_message.visible = true
         if @max_try == 0
           @lockpick_message.set_text('Lock broken.',1)
           @event.broken = true
           @step = 3
           return
         end
       end
       if $game_temp.lockpick_use == 0
         @lockpick_message.set_text('Lock pick used up!',1)
         @step = 3
         return
       end
       if $game_temp.lockpick_success
         @lockpick_message.set_text('Lock pick success!',1)
         key = [$game_map.map_id, @event.id, "A"]
         $game_self_switches[key] = true
         $game_map.need_refresh = true
         if $game_temp.lockpick_levelup_flag[$game_temp.lockpick_actor.id]
           @step = 1
         else
           @step = 2
         end
       else
         @lockpick_message.set_text('Lock pick failed.',1)
         @step = 3
       end
       return
     #elsif Input.trigger?(Input::C) and equipped_weapon != $game_system.lockpick_id
      # name = $game_temp.lockpick_actor.name
      # @lockpick_message.set_text("#{name} doesn't have a lock pick!",1)
      # @step = 3
     elsif Input.trigger?(Input::B)
       $game_temp.lockpick_target_level = nil
       $game_temp.lockpick_actor = nil
       $scene = Scene_Map.new
       return
     end
   else
     actor_id = $game_temp.lockpick_actor.id
     if Input.trigger?(Input::C)
       #$game_system.se_play($data_system.decision_se)
       case @step
       when 1
         name = $game_temp.lockpick_actor.name
         new_level = $game_temp.lockpick_actor.lockpicking_level
         @lockpick_message.set_text("#{name}'s lock picking raised to level #{new_level}!",1)
         $game_temp.lockpick_levelup_flag[actor_id] == false
         @step = 2
       when 2
         $scene = Scene_Map.new
         return
       when 3
         @step = 0
         @lockpick_message.visible = false
       end
     end
   end
 end
end

Share this post


Link to post
Share on other sites
Huh? I'm getting an error with the script, at the very end of it, line 450.

 

Eh? Oh well,I can make a better lockpick system with just eventing.

-------------------------------------------

Okay,this is going to sound REALLY nerdy,but try to follow along.

 

I'm trying to decide on two differnt systems.

 

One is a random chance variable between twisting the lockpick to the left or to the right.

This one is based on luck rather than skill,and the player's lockpicking level determines wether the player can even attempt to pick that lock.

 

Two is one that uses the player's lockpicking level to determine a random chance fail-rate. The higher the lockpicking level,the lower the fail rate.

(It uses positive or negative numbers to determine wether the player failed or not.)

For example,if her lockpicking level is 1 and the lock's difficulty is 1,the random variable rate is between -5 and 5.(A 50% fail rate.)

If her lockpicking level is 2 and the lock's difficulty is still only 1,the random variable rate is between -2 and 5.

(A roughly 30% fail rate.)

 

It doesn't give the choice of turning the lockpick left or right.

Edited by Jesse66126

Share this post


Link to post
Share on other sites

OK,I got an add-on idea for Valerie's(main character) grandfather.

He comes in during the enemy soldiers' raid on the village. He looks like the harmless old man,110-Civilian10,

and then he transforms. He casts a youth spell on himself,making him 50 years younger,but still with gray hair. The spell he casts is a suicide spell,that restores his body to when he was at his strongest for a short time. He takes up his sword and starts slaughtering enemy soldiers left and right. Finally,He reaches the enemy general,who has crapped his pants by this point. Suddenly,He just stops moving with his sword two inches from the general's face. The grandfather is dead in full rigermortis,still standing in attack position.

 

-Rigermortis is when the body stiffens and becomes hard as a rock after death;is accelerated by great physical stress prior to death.

Share this post


Link to post
Share on other sites

Anyone know how to make a support character using XAS?

Like a character that fights along side the main character for a short time or during special events?

Share this post


Link to post
Share on other sites

Hmm, that would be interesting, I am going to look into the script and see if we can use a call event to make the enemies damaged whenever the grandpa dude touches them, maybe an animation will play.

 

*continues to write story idea*

Share this post


Link to post
Share on other sites
Hmm, that would be interesting, I am going to look into the script and see if we can use a call event to make the enemies damaged whenever the grandpa dude touches them, maybe an animation will play.

 

*continues to write story idea*

 

OK,I also got an idea for a new support character!

 

Seth Aiken,the rival thief. Seth plays an important role,he is a random event character who seems to show up

when ever Valerie is caught in a trap. He,then,offers his assistance,for a small fee of course! ;)

Seth also likes to loot areas is Valerie is too slow in getting to them. She will often find an empty chest or two with a note that says,"Seth was here."

Seth is sly and crafty,and when surrounded by enemies,he will suddenly use a smoke bomb and disappear leaving Valerie all alone to take care of them! He has no real loyalty to anyone except his own wallet.

Only if he is cornered by enemies with no way out,will he actually fight back. His attacks are lightning fast,but very weak,which is why he likes to avoid fighting when possible.

He's an opportunist,he sneaks after Valerie,when she has already cleared a path,and the guard is weak.

As the story develops,Seth becomes infatuated by Valerie after seeing her use her magic.

He begins to appear more and more often,explaining each encounter as "pure chance".

In one case,we could have Seth become a playable character and rescues Valerie from a trap,or maybe protects her from monsters when she is knocked unconscious.

Share this post


Link to post
Share on other sites

Sounds interesting if your story is used, the "Seth was here" was hilarious!

Share this post


Link to post
Share on other sites
Sounds interesting if your story is used, the "Seth was here" was hilarious!

 

Interesting "If". I'm waiting to see your story.

Sadoko.jpg

Share this post


Link to post
Share on other sites

This is the script I used for lockpicking in Crystals of Chaos. It's a puzzle script, so that the main character has to solve a puzzle to pick the lock. It's kind of cool, and I like the concept, cause then you can make it harder by adding more pieces as well as bringing down the time limit to solving it.

 

#======================================================================
========
# Piece Substitution Puzzle Game (PSPG)
#  By Ánemus
#   [url="http://www.arcadiumrpg.net"]http://www.arcadiumrpg.net[/url]
#==============================================================================
# 
# This time I present a simple script. This is the second version of an older
# script I made a long time ago. It's just a substitution puzzle game, but,
# with the right drawings, you can make a real challenge.
#
# For customizing this we have the next options:
#
# YELLOW: Indicates the color the Title of the puzzle will be. Red Green Blue
YELLOW = Color.new(255, 206, 0)
# LOSE_SOUND: Indicates the sound played when you lose.
LOSE_SOUND = "Audio/SE/058-Wrong02.ogg"
# WIN_SOUND: Indicates the sound played when you win.
WIN_SOUND = "Audio/SE/056-Right02.ogg"
# PIECE_SOUND: indicates the sound played when you select a piece.
PIECE_SOUND = "Audio/SE/105-Heal01.ogg"
# BIP_SOUND: Indicates the sound that is played when you are running out of
# time.
BIP_SOUND = "Audio/SE/Bip.wav"
# READY: Indicates the text shown when you start the game. Keep it short.
READY = "Ready?"
# DONE: Indicates teh text shown when you win the game. Keep it short.
DONE = "Done!"
# TIME: Indicates teh text shown when you lose the game. Keep it short.
TIME = "Time is up!"
#
# And that's it! The picture shal be 300 x 300 pixels.
#
# For calling the system use the next structure:
#
# $scene = Scene_Puzzle.new("image", pieces, seconds, variable)
#  -"image" is the picture (stored in pictures) 300x300 in size. The name of
#   the file goes between " ".
#  -pieces: is a number form 3 (minimum) to 6 (maximum) that indicates the 
#   number of pieces. 3 will make 3x3 6, 6x6.
#  -seconds: is the number of seconds. 60 seconds is a minute 120 is two...
#  -variable: is the variable where the result of the game is stored. Look at
#   the example to see how it is done (you need Local Switches and another page
#   in the event). 1 means lose, 2 means win.
#
#==============================================================================
# 
#==============================================================================
class Scene_Puzzle
#------------------------------------------------------------------------------  
 def initialize(image, pieces, sec, goto, text)
   @img = image
   @px = pieces
   @tm = sec
   @gt = goto
   @tx = text
   @cl = YELLOW
   @waitcount = 0
 end
#------------------------------------------------------------------------------
 def main
   @sprite = Spriteset_Map.new
   @t = WT.new
   @t.refresh @tm
   @m = Mdl.new (RPG::Cache.picture(@img), @tx, @cl)
   @p = WP.new (RPG::Cache.picture(@img), @px)
   @p.active = false
   @r = WR.new
   @r.z = 10000
   Audio.me_stop
   Audio.bgs_stop
   @fstc = false
   @fsti
   @ac = 0
   @waitcount = Graphics.frame_rate
   Graphics.transition
   loop do
     Graphics.update
     Input.update
     update
     if $scene != self
       break
     end
   end
   Graphics.freeze
   @c.dispose
   @t.dispose
   @m.dispose
   @p.dispose
   @sprite.dispose
 end
#------------------------------------------------------------------------------
 def update
   @waitcount -= 1 if @c == nil and @r == nil
   @p.update
   @p.active = true
   @t.update
   if @waitcount == 0
     @tm -= 1
     @t.refresh (@tm)
     @waitcount = Graphics.frame_rate
   end
   if @tm == 0 and @c == nil
     if @st
       Audio.bgm_stop
     end
     Audio.se_play(LOSE_SOUND, 70, 150)
     $game_variables[@gt] = 1
     @c = WL.new false
     @c.z = 10000
     @p.active = false
   end
   if Input.trigger?(Input::C)
     if @r != nil
       $game_system.se_play($data_system.decision_se)
       @r.dispose
       @r = nil
       @p.active = true
       return
     end
     if @c != nil
       $game_system.se_play($data_system.decision_se)
       $scene = Scene_Map.new
       return
     end
     if @fstc == false
       $game_system.se_play($data_system.decision_se)
       @fsti = @p.index
       @p.set_oldindex @fsti
       @fstc = true
     else
       if @fsti != @p.index
         Audio.se_play(WIN_SOUND, 70, 150)
         @p.change (@fsti, @p.index)
         if @p.win?
           if @st
             Audio.bgm_stop
           end
           Audio.se_play(PIECE_SOUND, 70, 150)
           $game_variables[@gt] = 2
           @c = WL.new true
           @c.z = 10000
           @p.active = false
         end
         @fstc = false
         @p.set_oldindex -1
       else
         $game_system.se_play($data_system.buzzer_se)
       end
     end
   end
   if Input.trigger?(Input::B)
     if @fstc == true
       $game_system.se_play($data_system.cancel_se)
       @fstc = false
       @p.set_oldindex -1
     end
   end
 end
end
#==============================================================================
# 
#==============================================================================
class WT < Window_Base
 def initialize
   super (418,224,149,64)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = $fontface
   self.contents.font.size = 25
   @time = 0
   refresh
 end
#------------------------------------------------------------------------------
 def refresh (t = 0)
   if @time < t
     @time = t
     @addv = 50/(15-7)
     @addf = 50/7
   end
   self.contents.clear
   if t <= 15 and t > 7
     color = Color.new(255,210,0)
     Audio.se_play(BIP_SOUND, 50+ (@addv * (15-t)).round, 100)
   elsif t <15 and t > 0
     color = Color.new(255,0,0)
     Audio.se_play(BIP_SOUND, 50 + (@addv * (15-t)).round, 100 + (@addf * (7-t)).round)
   else
     color = normal_color
   end
   min = t / 60
   sec = t % 60
   text = sprintf("%02d:%02d", min, sec)
   draw_text_outline(0, 6, 104, 32, text, 2, Color.new(0,0,0), color)
 end
end
#==============================================================================
# 
#==============================================================================
class Mdl < Window_Base
 def initialize (img, nam = "Puzzle", colr = YELLOW)
   super (145,40,458,172)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = $fontface
   self.contents.font.size = 25
   self.contents.font.color = normal_color
   bit = img
   x = -2
   y = -3
   for i in 0..100
     for a in 0..100
       self.contents.blt(i+318+x, a+32+y, bit, Rect.new(i*3, a*3, 1, 1), 200)
     end
   end
   for i in 0..100
     for a in 0..100
       self.contents.blt(i+318+x, a+32+y, bit, Rect.new(i*3+1, a*3+1, 1, 1), 200)
     end
   end
   for i in 0..100
     for a in 0..100
       self.contents.blt(i+318+x, a+32+y, bit, Rect.new(i*3+2, a*3+2, 1, 1), 200)
     end
   end
   @nm = nam
   refresh
 end
#------------------------------------------------------------------------------
 def refresh
   draw_text_outline (14,0, 300, 32, @nm, 0, Color.new(0,0,0), YELLOW)
 end
end
#==============================================================================
# 
#==============================================================================
class WP < Window_Base
 def initialize(image, num)
   if num <3
     num = 3
   end
   if num > 6
     num = 6
   end
   x = 640 - 331 -206 - 1
   super(x, 90, 360, 360)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = $fontface
   self.contents.font.size = $fontsize
   @im = image
   @num = num
   @fstch = false
   pieces = num*num
   pieces -= 1
   @op = []
   @us = []
   for i in 0..pieces
     @us.push i
   end
   i = 0
   for i in 0..pieces
     don = rand(@us.size - 1)
     @op.push (@us[don])
     @us[don] = nil
     replacearray
   end
   @column_max = @num
   @index = 0
   refresh
 end
#------------------------------------------------------------------------------
 def index
   return @index
 end
#------------------------------------------------------------------------------
 def set_index=(index)
   @index = index
   update_cursor_rect
 end
#------------------------------------------------------------------------------
 def set_oldindex (index)
   @oindex = index
 end
#------------------------------------------------------------------------------
 def refresh
   self.contents.clear
   bit = @im
   cw = bit.rect.width / @num
   ch = bit.rect.height / @num
   @d = cw
   @o =  255
   @re = true
   cox = coy = (6-@num)/2
   for i in 0...@op.size
     ln = ask_lin i
     picy = ask_picy i
     x = i - ln*@num
     picx = @op[i] - picy*@num
     src_rect = Rect.new(cw*picx, ch*picy, cw, ch)
     @o =  255
     @re = true
     if i == @index and i != @oindex
       @o = 150
     end
     if i == @oindex
       @o = 100
     end
     self.contents.blt((cw+1)*x+5+cox, (ch+1)*ln+4+coy, RPG::Cache.picture("back"), Rect.new (0, 0, cw+2, cw+2))
     self.contents.blt((cw+1)*x+6+cox, (ch+1)*ln+5+coy, bit, src_rect, @o)
   end
 end
#------------------------------------------------------------------------------
 def replacearray
   faf = []
   for i in 0...@us.size
     if @us[i] != nil
       faf.push (@us[i])
     end
   end
   @us = faf
 end
#------------------------------------------------------------------------------
 def update
   super
   if self.active == true
     ml = ask_lin (@op. size - 1)
     if Input.repeat?(Input::DOWN)
       $game_system.se_play($data_system.cursor_se)
       if @index > @num*ml-1
         @index -= @num *ml
       else
         @index += @num
       end
     end
     if Input.repeat?(Input::UP) or Input.trigger? (Input::UP)
       $game_system.se_play($data_system.cursor_se)
         @index -= @num
       if @index < 0
         @index +=@num * @num
       end
     end
     if Input.repeat?(Input::LEFT)
       $game_system.se_play($data_system.cursor_se)
       if @index == 0 or @index == @num or @index == @num*2 or @index == @num*3 or @index == @num*4 or @index == @num* 5 
         @index += @num-1
       else
         @index -= 1
       end
     end
     if Input.repeat?(Input::RIGHT)
       $game_system.se_play($data_system.cursor_se)
       if @index == (@num -1) or @index == ((@num*2) -1) or @index == ((@num * 3) -1) or @index == ((@num * 4)-1) or @index == ((@num * 5) -1) or @index == ((@num * 6) -1)
         @index -= @num - 1
       else
         @index += 1
       end
     end
     update_cursor_rect
     refresh
   end
 end
#------------------------------------------------------------------------------
 def change (i, a)
   res = @op[i]
   @op[i] = @op[a]
   @op[a] = res
   refresh
 end
#------------------------------------------------------------------------------
 def update_cursor_rect
   self.cursor_rect.empty
 end
#------------------------------------------------------------------------------
 def win?
   ol = 0
   for i in 0...@op.size
     if @op[i] == i
       ol += 1
     end
   end
   if ol == @num * @num
     return true
   else
     return false
   end
 end
#------------------------------------------------------------------------------
 def ask_lin (i)
   case @num
   when 4
     if i <4
       ln = 0
     end
     if i >3 and i<8
       ln = 1
     end
     if i >7 and i <12
       ln = 2
     end
     if i >11
       ln = 3
     end
   when 3
     if i <3
       ln = 0
     end
     if i >2 and i<6
       ln = 1
     end
     if i >5
       ln = 2
     end
   when 5
     if i <5
       ln = 0
     end
     if i >4 and i<10
       ln = 1
     end
     if i >9 and i <15
       ln = 2
     end
     if i >14 and i <20
       ln = 3
     end
     if i > 19
       ln = 4
     end
   when 6
     if i <6
       ln = 0
     end
     if i >5 and i<12
       ln = 1
     end
     if i >11 and i <18
       ln = 2
     end
     if i >17 and i <24
       ln = 3
     end
     if i > 23 and i < 30
       ln = 4
     end
     if i > 29
       ln = 5
     end
   end
   return ln
 end
#------------------------------------------------------------------------------
 def ask_picy (i)
     if @op[i] < @num 
       picy = 0
     end
     if @op[i] >@num-1 and @op[i]<@num *2
       picy = 1
     end
     if @op[i] >@num*2-1 and @op[i] < @num*3
       picy = 2
     end
     if @op[i] >@num*3-1 and @op[i] <@num * 4
       picy = 3
     end
     if @op[i] > @num * 4 -1 and @op[i] < @num * 5
       picy = 4
     end
     if @op[i] > @num*5 - 1
       picy = 5
     end
   return picy
 end
end
#==============================================================================
# 
#==============================================================================
class WL < Window_Base
 def initialize (caso)
   super (251,208,144,72)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = $fontface
   self.contents.font.size = $fontsize
   @cs = caso
   refresh
 end
#------------------------------------------------------------------------------
 def refresh
   self.contents.clear
   if @cs == true
     text = DONE
   else
     text = TIME
   end
   self.contents.font.color = normal_color
   draw_text_outline(1, 0, 104, 32, text, 1)
 end
end
#==============================================================================
# 
#==============================================================================
class WR< Window_Base
 def initialize
   super (251,208,144,72)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = $fontface
   self.contents.font.size = $fontsize
   refresh
 end
#------------------------------------------------------------------------------
 def refresh
   self.contents.clear
   text = READY
   draw_text_outline(1, 0, 104, 32, text, 1)
 end
end
#==============================================================================
# 
#==============================================================================
class Window_Base < Window
 def draw_text_outline(x, y, wid, hei, text, align = 0, line = Color.new(0,0,0),fore = normal_color)
   self.contents.font.color = line
   self.contents.draw_text(x + 1,y + 1,wid,hei,text, align)
   self.contents.draw_text(x + 1,y - 1,wid,hei,text, align)
   self.contents.draw_text(x - 1,y - 1,wid,hei,text, align)
   self.contents.draw_text(x - 1,y + 1,wid,hei,text, align)
   self.contents.draw_text(x - 1,y,wid,hei,text, align)
   self.contents.draw_text(x + 1,y,wid,hei,text, align)
   self.contents.draw_text(x ,y-1,wid,hei,text, align)
   self.contents.draw_text(x,y+1,wid,hei,text, align)
   self.contents.font.color = fore
   self.contents.draw_text(x,y,wid,hei,text, align)
 end
end

 

You run it with this

 

$scene = Scene_Puzzle.new ("Puzzle", 3, 60, 29, "Picking Lock")

To be honest...I don't know what each is...I know the 3 is how many columns (and rows I think as well) but I'm not sure what the rest is. One of them is the image -nods- I use it because it reminds me of the lock picking system used in Quest for Glory 4 and 5. In 4 you had to line up three boxes of the same color (and the colors changed constantly), and in 5 you had to basically play a memory game with statues. The time limit was set to 1 minute, and the amount of times you had to beat it increased while the mistakes you made decreased. The hardest lock left you with 2 misses, 7 times you had to win, and only one minute to do it in. It was awesome!

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...