Main Menu
  • Welcome to The RPG Maker Resource Kit.

Custom Script Help Please

Started by IXFURU, July 13, 2011, 03:55:53 PM

0 Members and 1 Guest are viewing this topic.

IXFURU

I've been trying to create the following script to help someone with a problem, and it should be simple.  Yet, I keep getting a Syntax Error at the last end of the script:

#-------------------------------------------------------------------------
#                 IXFURUs_MIMIC_SKILLS
#                     By: Ixfuru
#
#--------------------------------------------------------------------------
#
#
#This script basically allows one actor to learn all the skills learned by another party member
#Originally, this idea was given to me by summonduel whose intent
#was to use the script in order to create a Transformed (Alter-Ego) of sorts
#which could learn skills while transformed, and when transformation ended, these
#skills would be given to the original character automatically to use in the
#character's normal form.  That said, I could think of several more uses for this
#script.
#------------------------------------------------------------------------------
#
#
module Ix_Mimic_Skills
#EDITTABLE
#
#1) This is the ID of the original actor in database.  This is the actor
#which will automatically learn all the given skills of the other actor,
#automatically.
Original_Actor = 1
#2)  This is the ID of the alter ego actor from the database, whose learned
#skills will automatically be added to the list of skills for the other actor.
Alter_Ego = 2
#3) This is the number of Switch which enables the script.  If switch is ON, then
# the script is enabled.
Mimic_Switch = 1
# In this scenario, the original actor only gains skills learned by alter ego when
#this switch is ON.  This will help with creating a common event to run parallel
#and/or causing other things to happen during transformation (if that's what you
#use it for) like changing actor graphic, time check for transformation active,
#and other things which may incur as a result of the switch being active.  Please
#note that this script only deals with the skills adding part and you'll have to
#add this extra stuff by yourself in events/common events.

end

#END EDITTABLE REGION
----------------------------------------------------------------------------------
class Mimic_Skills
  def initialize
    original = actor_id[Original_Actor]
    alter = actor_id[Alter_Ego]
    x = $game_switches[Mimic_Switch]
    y = skill.id[Mimic_Skill]  end
  def refresh
    while x == false
      if alter.learn_skill[y]
      original.learn_skill[y]
    else
      return
    end
  return
end


Is this script expecting another return of some sort?

ForeverZero

Your missing some "ends". If you use proper indenting it would stand out more for you.
Also the end for the methods need to be on a new line, or at the very least us a ; before them.

It looks more like you are writing Python code than Ruby.

cozziekuns

Add a line break between y = skill.id[Mimic_Skill] and end. Also, you need two more ends at the end (one for refresh and one for the class Mimic_Skills).

Edit: Ninja'd : (

IXFURU

#3
Good Lord!   I can't stand that I'm unable to do this simple script.  As many tutorials as I've watched.  This should be a simple one.

I just really suck at it, I reckon.

Anyway, thanks for the input, folks.  I just tried it a new way.  I got to thinking, that a) the "if" line isn't really checking anything.  So, I decided to try to rewrite the script.  This time, I placed in a bit of code to 'iterate' through a loop.  I don't want, after all, the loop to repeat infinitely.  Just once when a new skill is learned.  So, anyway, here's my third attempt, though this one makes it through alright, I get a No method Error '-@' for nil:NilClass when I run th program:

#-------------------------------------------------------------------------
#                 IXFURUs_MIMIC_SKILLS
#                     By: Ixfuru
#
#--------------------------------------------------------------------------
#
#
#This script basically allows one actor, who is not in party
# to gain the skills learned by another actor who is in the party.
#Originally, this idea was originally given to me by summonduel whose intent
#was to use the script in order to create a Transformed (Alter-Ego) of sorts
#which could learn skills while transformed, and when transformation ended, these
#skills would be given to the original character automatically to use in the
#character's normal form.  That said, I could think of several more uses for this
#script.
#------------------------------------------------------------------------------
#
#
module Ix_Mimic_Skills
#EDITTABLE
#
#1) This is the ID of the original actor in database.  This is the actor
#which will automatically learn all the given skills of the other actor,
#automatically.
ORIGINAL_ACTOR = 1
#2)  This is the ID of the alter ego actor from the database, whose learned
#skills will automatically be added to the list of skills for the other actor.
ALTER_EGO = 2
#3) This is the number of Switch which enables the script.  If switch is ON, then
# the script is enabled.
MIMIC_SWITCH = 1
# In this scenario, the original actor only gains skills learned by alter ego when
#this switch is ON.  This will help with creating a common event to run parallel
#and/or causing other things to happen during transformation (if that's what you
#use it for) like changing actor graphic, time check for transformation active,
#and other things which may incur as a result of the switch being active.  Please
#note that this script only deals with the skills adding part and you'll have to
#add this extra stuff by yourself in events/common events.

end

#END EDITTABLE REGION
----------------------------------------------------------------------------------
class Mimic_Skills < Game_Interpreter
  def initialize
    @original = 0
    @alter = 0
    @msw = 0
    mimic_skill = 0
  end
  def original
    original = actor.actor_id[ORIGINAL ACTOR]
  end
  def alter
    alter = actor.actor_id[ALTER_EGO]
  end
  def msw
    msw = $game_switches[MIMIC_SWITCH]
  end
  def mimic_skill
  mimic_skill = actor.learn_skill[skill_id]
  end
  def update
    while msw == true
      if alter.learn_skill = true
        mimic_skill = skill.skill_id[learn_skill]
        original.learn_skill[mimic_skill]
        else
          return 0
        end
        return 0
      end
      return
    end
end