Finaly My Second Script
#1
Guedez's Dragon Transformation
by Guedez
V1.1
Dec 26 2005

This is a locked, single-post thread from Creation Asylum. Archived here to prevent its loss.
No support is given. If you are the owner of the thread, please contact administration.


Demo:
Unavaliable

Fixed:
-everyone was losing Sp every turn
-when it died, and you tried to transform again it back with 1 life
-Iten Window that was showing the stones

What it do?
- With this you can "transform yourself" into an crature (or another character) depending of an combination of stones
- Every turn that the character is transformed he loses 1/5 of the intinal sp cost
- if his life, or Sp comes to 0 he untransform
- if the battle end and he is transformed, he untransform
- you can use Reverse stone, it revert element and atributes (do not revert max sp and max hp) default id = 65
exemple, if you have 100 str and 50 int, with reverse you get (while transformade) 50 str and 100 int
- Mutation stone, it randomize from 1 to 200% of all atributes (do not change hp or sp)

Note:
this is only the basic you can transform one character only.

if anyone want to upgrade this i will realy apreciate, because its too poor... BUT WORK

Code:
#--------------------------------------------------------------
#Basic Acession System
#Made By: Guedez
#Thx To: SephirothSpawn511 and Shinobi Ninja
#--------------------------------------------------------------
#window_item modifications#
class Window_Item < Window_Selectable
  
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    for i in 1...$data_items.size
      unless $data_items[i].common_event_id == 1#change the 1 to any
          #common event you want, remember, this will not active the
          #common event, and dont use another item with
          #the same common event, or it will appear too
        if $game_party.item_number(i) > 0
          @data.push($data_items[i])
        end
      end
    end
    unless $game_temp.in_battle
      for i in 1...$data_weapons.size
        if $game_party.weapon_number(i) > 0
          @data.push($data_weapons[i])
        end
      end
      for i in 1...$data_armors.size
        if $game_party.armor_number(i) > 0
          @data.push($data_armors[i])
        end
      end
    end
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
end
#---------------------------------------------------------
#end of Window_Item modifications
#---------------------------------------------------------
#Scene battle Modifications#
class Scene_Battle
  
  def main

    $tranformation = []
    $game_temp.in_battle = true
    $game_temp.battle_turn = 0
    $game_temp.battle_event_flags.clear
    $game_temp.battle_abort = false
    $game_temp.battle_main_phase = false
    $game_temp.battleback_name = $game_map.battleback_name
    $game_temp.forcing_battler = nil
    $game_system.battle_interpreter.setup(nil, 0)
    @troop_id = $game_temp.battle_troop_id
    $game_troop.setup(@troop_id)
    s1 = $data_system.words.attack
    s2 = $data_system.words.skill
    s3 = $data_system.words.guard
    s4 = $data_system.words.item
    @actor_command_window = Window_Command.new(160, [s1, s2, s3, s4])
    @actor_command_window.y = 160
    @actor_command_window.back_opacity = 160
    @actor_command_window.height = 160
    @actor_command_window.active = false
    @actor_command_window.visible = false
    @party_command_window = Window_PartyCommand.new
    @help_window = Window_Help.new
    @help_window.back_opacity = 160
    @help_window.visible = false
    @status_window = Window_BattleStatus.new
    @message_window = Window_Message.new
    @spriteset = Spriteset_Battle.new
    @wait_count = 0
    if $data_system.battle_transition == ""
      Graphics.transition(20)
    else
      Graphics.transition(40, "Graphics/Transitions/" +
        $data_system.battle_transition)
    end
    start_phase1
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    $game_map.refresh
    Graphics.freeze
    @actor_command_window.dispose
    @party_command_window.dispose
    @help_window.dispose
    @status_window.dispose
    @message_window.dispose
    if @skill_window != nil
      @skill_window.dispose
    end
    if @item_window != nil
      @item_window.dispose
    end
    if @result_window != nil
      @result_window.dispose
    end
    @spriteset.dispose
    if $scene.is_a?(Scene_Title)
      Graphics.transition
      Graphics.freeze
    end
    if $BTEST and not $scene.is_a?(Scene_Gameover)
      $scene = nil
    end
  end
#------------------------------------------------------------
  def judge
    if @transformationid != nil and @transformationid != 0
      if $game_actors[@transformationid].hp == 0 or
        $game_actors[@transformationid].sp == 0
        if $game_actors[@transformationid].hp == 0
          $game_actors[@transformationid].hp = 1
        end
        untransform
        untransformm
      end
    end
    if $game_party.all_dead? or $game_party.actors.size == 0
      if $game_temp.battle_can_lose
        $game_system.bgm_play($game_temp.map_bgm)
        battle_end(2)
        return true
      end
      $game_temp.gameover = true
      return true
    end
    for enemy in $game_troop.enemies
      if enemy.exist?
        return false
      end
    end
    start_phase5
    return true
  end
#------------------------------------------------------------
  def battle_end(result)
    $game_temp.in_battle = false
    $game_party.clear_actions
    for actor in $game_party.actors
      actor.remove_states_battle
    end
    $game_troop.enemies.clear
    if $game_temp.battle_proc != nil
      $game_temp.battle_proc.call(result)
      $game_temp.battle_proc = nil
    end
    $scene = Scene_Map.new
  end

#------------------------------------------------------------
  def update_phase3
    if @enemy_arrow != nil
      update_phase3_enemy_select
    elsif @actor_arrow != nil
      update_phase3_actor_select
    elsif @skill_window != nil
      update_phase3_skill_select
    elsif @item_window != nil
      update_phase3_item_select
    elsif @dragon_stones != nil
      if @dragon_stones.active == true
      update_phase3_dragon_select
    elsif @okwindow.active == true
      update_dragon_transform
      end
    elsif @actor_command_window.active
      update_phase3_basic_command(@active_battler)
    end
  end
#------------------------------------------------------------
  def update_phase3_skill_select
    @skill_window.visible = true
    @skill_window.update
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      end_skill_select
      return
    end
    if Input.trigger?(Input::C)
      @skill = @skill_window.skill
      if @skill.name == "Acession" #chance "Acession" to the name of your
        #transformation skill
        $game_system.se_play($data_system.decision_se)
        end_skill_select
        scene_acession(@active_battler.id)
      end
      if @skill.name == "Restore Form" #chance "Restore Form" to the name of your
        #untransformation skill
        @active_battler.current_action.kind = 4      
        end_skill_select
        phase3_next_actor
      end
      if @skill == nil or not @active_battler.skill_can_use?(@skill.id) and not @skill.name == "Acession"
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      if not @skill.name == "Acession" and not
        @skill.name == "Restore Form" #here too
      $game_system.se_play($data_system.decision_se)
      @active_battler.current_action.skill_id = @skill.id
      @skill_window.visible = false
      if @skill.scope == 1
        start_enemy_select
      elsif @skill.scope == 3 or @skill.scope == 5
        start_actor_select
      else
        end_skill_select
        phase3_next_actor
      end
      return
    end
    end
  end
#------------------------------------------------------------
  def update_phase4_step2
    unless @active_battler.current_action.forcing
      if @active_battler.restriction == 2 or @active_battler.restriction == 3
        @active_battler.current_action.kind = 0
        @active_battler.current_action.basic = 0
      end
      if @active_battler.restriction == 4
        $game_temp.forcing_battler = nil
        @phase4_step = 1
        return
      end
    end
    @target_battlers = []
    case @active_battler.current_action.kind
    when 0  
      make_basic_action_result
    when 1
      make_skill_action_result
    when 2
      make_item_action_result
    when 3  
      transform
    when 4  
      untransform
    end
    if @phase4_step == 2
      @phase4_step = 3
    end
  end
#------------------------------------------------------------
  def update_phase4_step4
    for target in @target_battlers
      target.animation_id = @animation2_id
      target.animation_hit = (target.damage != "Errou!")
    end
    @wait_count = 8
    if @transformationsize != nil and @transformationsize !=0
      transformationn
    elsif @restoreform == true
      untransformm
    else
    @phase4_step = 5
    end
  end
#--------------------------------------------------
  def update_phase4_step6
    $game_temp.forcing_battler = nil
    if @common_event_id > 0
      common_event = $data_common_events[@common_event_id]
      $game_system.battle_interpreter.setup(common_event.list, 0)
    end
    if @transformationid != nil and @transformationid != 0 and @active_battler.id == @transformationid
      $game_actors[@transformationid].sp -= @spcost / 5
      $game_actors[@transformationid].damage = @spcost / 5
      $game_actors[@transformationid].damage_pop = true
      @status_window.refresh
    end
    @phase4_step = 1
  end
#------------------------------------------------------------
def start_phase5
    if @transformationid != 0
      untransform
      untransformm
    end
    @phase = 5
    $game_system.me_play($game_system.battle_end_me)
    $game_system.bgm_play($game_temp.map_bgm)
    exp = 0
    gold = 0
    treasures = []
    for enemy in $game_troop.enemies
      unless enemy.hidden
        exp += enemy.exp
        gold += enemy.gold
        if rand(100) < enemy.treasure_prob
          if enemy.item_id > 0
            treasures.push($data_items[enemy.item_id])
          end
          if enemy.weapon_id > 0
            treasures.push($data_weapons[enemy.weapon_id])
          end
          if enemy.armor_id > 0
            treasures.push($data_armors[enemy.armor_id])
          end
        end
      end
    end
    treasures = treasures[0..5]
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      if actor.cant_get_exp? == false
        last_level = actor.level
        actor.exp += exp
        if actor.level > last_level
          @status_window.level_up(i)
        end
      end
    end
    $game_party.gain_gold(gold)
    for item in treasures
      case item
      when RPG::Item
        $game_party.gain_item(item.id, 1)
      when RPG::Weapon
        $game_party.gain_weapon(item.id, 1)
      when RPG::Armor
        $game_party.gain_armor(item.id, 1)
      end
    end
    @result_window = Window_BattleResult.new(exp, gold, treasures)
    @phase5_wait_count = 100
  end
#------------------------------------------------------------
  def make_action_orders
    @action_battlers = []
    for enemy in $game_troop.enemies
      @action_battlers.push(enemy)
    end
    for actor in $game_party.actors
      @action_battlers.push(actor)
    end
    for battler in @action_battlers
      battler.make_action_speed
    end
    @action_battlers.sort! {|a,b|
      b.current_action.speed - a.current_action.speed }
  end
end
#------------------------------------------------------------
#END OF BATTLE MODIFICATIONS
#------------------------------------------------------------
#------------------------------------------------------------
class Scene_Battle
#------------------------------------------------------------  


=begin
This space is for the most important part of the script, the stones

If you dont want any bug, give the stone a name, and an common event
id, the default is 1, you can change it in lines 16 and 583
they will define what dragon he will transform, the definitions are in
lines 636 to 772 (default ones), also the default stones are
id = 1, id = 2, id = 3, you can change it in those lines too.

=end
  def scene_acession(actorid)
    @transformationanimation1 = 101 #this is the id of the before
    #transformation animation
    @transformationanimation2 = 102 #this is the id of the after
    #transformation animation
    @actorid = actorid
    $selectedstones = []
    @actor_command_window.active = false
    @actor_command_window.visible = false
    @status_window.visible = false
    @actorid = actorid
    start_item_dragon
  end
#------------------------------------------------------------    
    def update_dragon_transform
    @actor_command_window.active == false
    @actor_command_window.visible == false
    @dragon_stones.visible = true
    @okwindow.update
    if Input.trigger?(Input::A) #when you want to change the stone selection
      #cursor to transform you must press "A"
      $game_system.se_play($data_system.decision_se)
      @dragon_stones.active = true
      @okwindow.active = false
    end
    if Input.trigger?(Input::C)
      case @okwindow.index
      when 0
        @active_battler.current_action.kind = 3
        for @item in $selectedstones
          $game_party.gain_item(@item.id, 1)
        end
        end_item_dragon
        end_skill_select
        phase3_next_actor
      when 1
        for @item in $selectedstones
          $game_party.gain_item(@item.id, 1)
        end
        $selectedstones = []
        @okwindow.index = 0
        @dragon_stones.active = true
        @okwindow.active = false
        @dragon_stones.refresh
        @selected_stones.refresh
      when 2
      $game_system.se_play($data_system.cancel_se)
      for @item in $selectedstones
        $game_party.gain_item(@item.id, 1)
      end
      end_item_dragon
      return
    end
  end
end

#------------------------------------------------------------    

    def update_phase3_dragon_select
    @actor_command_window.active == false
    @actor_command_window.visible == false
    @dragon_stones.visible = true
    @dragon_stones.update
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      for @item in $selectedstones
        $game_party.gain_item(@item.id, 1)
      end
      end_item_dragon
      return
    end
    if Input.trigger?(Input::A)
      $game_system.se_play($data_system.decision_se)
      @dragon_stones.active = false
      @okwindow.active = true
    end
    if Input.trigger?(Input::C)
      @item = @dragon_stones.item
      if @item != nil
      $game_system.se_play($data_system.decision_se)
        if $selectedstones.size < 3
          $selectedstones.push(@item)
          $game_party.lose_item(@item.id, 1)
          @dragon_stones.refresh
          @selected_stones.refresh
        else
          $game_system.se_play($data_system.decision_se)
          @dragon_stones.active = false
          @okwindow.active = true
        end
      else
        $game_system.se_play($data_system.buzzer_se)
      end
    end
  end
#------------------------------------------------------------------------
alias guedez_make_skill_result make_skill_action_result
  def make_skill_action_result
    unless @skill.name == "Acession" or "Restore Form"
      guedez_make_skill_result
    end
  end

def start_item_dragon
    s1 = "Transform"#change the text if you want
    s2 = "Clear"#change the text if you want
    s3 = "Cancel"#change the text if you want
    @okwindow = Window_Command.new(190, [s1, s2, s3])
    @okwindow.x=450
    @okwindow.y=64
    @okwindow.width=190
    @okwindow.height = 136
    @okwindow.active = false
    @dragon_stones = Dragon_Stones.new
    @dragon_stones.z = 1000
    @dragon_stones.help_window = @help_window
    @selected_stones = Selected_Stones.new
    @actor_command_window.active = false
    @actor_command_window.visible = false
  end
#----------------------------------------------------------
  def end_item_dragon
    @okwindow.dispose
    @dragon_stones.dispose
    @selected_stones.dispose
    @dragon_stones = nil
    @actor_command_window.active = true
    @actor_command_window.visible = true
    @status_window.visible = true
    start_skill_select
  end
end
#------------------------------------------------------------
class Ok_window < Window_Selectable
  def initialize
    super(450, 64, 190,136)
    self.index = 0
  end
end
    
#------------------------------------------------------------
class Selected_Stones < Window_Selectable
#------------------------------------------------------------
  def initialize
    super(0, 64, 450,136)
    @animation = 1
    @column_max = 1
    refresh
    self.index = 0
  end
#------------------------------------------------------------
  def item
    return $selectedstones[self.index]
  end
#------------------------------------------------------------  
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
  @item_max = $selectedstones.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
#------------------------------------------------------------  
  def draw_item(index)
    update_cursor_rect
    item = $selectedstones[index]
    x = index % @column_max * 32
    y = index / @column_max * 32
    rect = Rect.new(x, y, 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    bitmap = RPG::Cache.icon(item.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y , bitmap, Rect.new(0, 0, 32, 32), opacity)
self.contents.draw_text(x + 28, y, 640 / @column_max, 32, item.name, 0)  
end
end
#------------------------------------------------------------
class Dragon_Stones < Window_Selectable
#------------------------------------------------------------
  def initialize
    super(0, 200, 640,280)
    @animation = 0
    @column_max = 5
    refresh
    self.index = 0
  end
#------------------------------------------------------------
  def item
    return @data[self.index]
  end
#------------------------------------------------------------
  
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end

    if @animation < 5
      @animation +=1
    elsif @animation > 4
      @animation = 1
    end
    @data = []
  for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        if $data_items[i].common_event_id == 1#change the 1 to any
          #common event you want, remember, this will not active the
          #common event, and dont use another item with
          #the same common event, or it will appear too
          @data.push($data_items[i])
        end
      end
    end
  @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 64, row_max * 64)
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
#------------------------------------------------------------  
  def draw_item(index)
    item = @data[index]
    x = index % @column_max * 640 / @column_max
    y = index / @column_max * 32
    rect = Rect.new(x, y, 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    bitmap = RPG::Cache.icon(item.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y , bitmap, Rect.new(0, 0, 32, 32), opacity)
self.contents.draw_text(x + 28, y, 640 / @column_max, 32, item.name, 0)  

end
#------------------------------------------------------------  
  def update_help
    @help_window.set_text(self.item == nil ? "" : self.item.description)
    @help_window.opacity = 255
  end
#------------------------------------------------------------  
end
def transform
  @stoneid=[]
  @spcost = 0
  @transformationsize = 0
  @element = ""
  @str = 0
  @dex = 0
  @agi = 0
  @int = 0
  @maxhp = $game_actors[@active_battler.id].maxhp
  @str = $game_actors[@active_battler.id].str
  @agi = $game_actors[@active_battler.id].agi
  @dex = $game_actors[@active_battler.id].dex
  @int = $game_actors[@active_battler.id].int
  @maxsp = $game_actors[@active_battler.id].maxsp

  for @item in $selectedstones
    @stoneid.push(@item.id)
  end
  for i in @stoneid #this ask for the iten id that you crated
    #(the onde with common_event == 1)
    case i
    when 52 #so define the iten id, and what it do
      @spcost += 5 #make the transformation cost more 150sp (change plz)
      @transformationsize += 1#make the transformation size change in 1
      #later explaained why
      @element += "fogo" #give it a element
      @maxhp *= 115 #plus hp in 100X
      @maxhp /= 100  #divide hp by 85, so it get an 100/85 hp plus
    when 53
      @spcost += 5 #exactaly the same, but with gelo
      @transformationsize += 1
      @element += "gelo"
      @maxhp *= 115
      @maxhp /= 100
    when 54
      @spcost += 5 #with trov�o
      @transformationsize += 1
      @element += "trov�o"
      @maxhp *= 115
      @maxhp /= 100
      @str *= 100
      @str /= 100
      @dex *= 100
      @dex /= 100
      @agi *= 100
      @agi /= 100
      @int *= 100
      @int /= 100
    when 55
      @spcost += 5 #with trov�o
      @transformationsize += 1
      @element += "terra"
      @maxhp *= 115
      @maxhp /= 100
      @str *= 100
      @str /= 100
      @dex *= 100
      @dex /= 100
      @agi *= 100
      @agi /= 100
      @int *= 100
      @int /= 100
    when 56
      @spcost += 8 #with trov�o
      @transformationsize += 1
      @element += "luz"
      @maxhp *= 115
      @maxhp /= 100
      @str *= 100
      @str /= 100
      @dex *= 100
      @dex /= 100
      @agi *= 100
      @agi /= 100
      @int *= 100
      @int /= 100
    when 57
      @spcost += 8 #with trov�o
      @transformationsize += 1
      @element += "trevas"
      @maxhp *= 115
      @maxhp /= 100
      @str *= 100
      @str /= 100
      @dex *= 100
      @dex /= 100
      @agi *= 100
      @agi /= 100
      @int *= 100
      @int /= 100
    when 58
      @spcost += 15 #with trov�o
      @transformationsize += 2
      @maxhp *= 100
      @maxhp /= 100
      @str *= 125
      @str /= 100
      @dex *= 100
      @dex /= 100
      @agi *= 100
      @agi /= 100
      @int *= 100
      @int /= 100
    when 59
      @spcost += 15 #with trov�o
      @transformationsize += 2
      @maxhp *= 100
      @maxhp /= 100
      @str *= 100
      @str /= 100
      @dex *= 125
      @dex /= 100
      @agi *= 100
      @agi /= 100
      @int *= 100
      @int /= 100
    when 60
      @spcost += 15 #with trov�o
      @transformationsize += 2
      @maxhp *= 100
      @maxhp /= 100
      @str *= 100
      @str /= 100
      @dex *= 100
      @dex /= 100
      @agi *= 125
      @agi /= 100
      @int *= 100
      @int /= 100
    when 61
      @spcost += 15 #with trov�o
      @transformationsize += 2
      @maxhp *= 100
      @maxhp /= 100
      @str *= 100
      @str /= 100
      @dex *= 100
      @dex /= 100
      @agi *= 100
      @agi /= 100
      @int *= 125
      @int /= 100
    when 62
      @spcost += 25
      @transformationsize += 10
      @maxhp *= 125
      @maxhp /= 100
      @str *= 100
      @str /= 100
      @dex *= 100
      @dex /= 100
      @agi *= 100
      @agi /= 100
      @int *= 100
      @int /= 100
     when 63
      @spcost += 25
      @transformationsize += 2
      @maxhp *= 150
      @maxhp /= 100
      @str *= 100
      @str /= 100
      @dex *= 100
      @dex /= 100
      @agi *= 100
      @agi /= 100
      @int *= 100
      @int /= 100
    when 64
      @spcost += 15
      @transformationsize += 1
      @maxhp *= 100
      @maxhp /= 100
      @str *= rand(200)
      @str /= 100
      @dex *= rand(200)
      @dex /= 100
      @agi *= rand(200)
      @agi /= 100
      @int *= rand(200)
      @int /= 100
    when 65
      @spcost += 15
      @transformationsize += 1
      @maxhp *= 100
      @maxhp /= 100
      str = @int
      dex = @agi
      agi = @dex
      int = @str
      @str = str
      @dex = dex
      @agi = agi
      @int = int
      @inverse = true
      end
    end
  
  @ordenedelements = "" #this organizate the elements, so you dont need
  #to think about stone order
  @invert_elements = ""
  if @inverse == true
    if @element.include?"gelo"
      @invert_elements +="fogo"
    end
    if @element.include?"fogo"
      @invert_elements +="gelo"
    end
    if @element.include?"terra"
      @invert_elements +="trov�o"
    end
    if @element.include?"trov�o"
      @invert_elements +="terra"
    end
    if @element.include?"trevas"
      @invert_elements +="luz"
    end
    if @element.include?"luz"
      @invert_elements +="trevas"
    end

  else
    if @element.include?"fogo"
        @ordenedelements +="fogo"
    end
    if @element.include?"gelo"
      @ordenedelements +="gelo"
    end
    if @element.include?"trov�o"
      @ordenedelements +="trov�o"
    end
    if @element.include?"terra"
        @ordenedelements +="terra"
    end
    if @element.include?"luz"
      @ordenedelements +="luz"
    end
    if @element.include?"trevas"
      @ordenedelements +="trevas"
    end
    if @inverse == true
      @ordenedelements = @invert_elements
    end
  end
  @inverse = false
  @active_battler.sp -= @spcost
  @sp = $game_actors[@active_battler.id].sp
  @status_window.refresh
  @help_window.set_text("Transform", 1) #this show a text in hep window
  #the same when you use a skill..
  @animation1_id = @transformationanimation1
  update_phase4_step3
end

def transformationn #here go the fun part
  unless $game_actors[@active_battler.id].sp < 1 #if he has more than 0 sp
    if @transformationsize > 2 #here you use the transformation size
      #with this, you can only transform into this dragon, if your
      #transformation size is equal or bigger than 3
      if @ordenedelements == "fogogelotrov�o"#this ask for the element
        $tranformation = (@active_battler.id)
        @transformationid = 9 #this is the dragon id, change this
        #to the dragon id you want to him transform (they are characters)
        $game_party.remove_actor(@active_battler.id)
        $game_party.add_actor(@transformationid)
        $game_actors[@transformationid].maxhp = @maxhp
        $game_actors[@transformationid].hp = @maxhp
        $game_actors[@transformationid].sp = @sp
        $game_actors[@transformationid].maxsp = @maxsp
        $game_actors[@transformationid].str = @str
        $game_actors[@transformationid].agi = @agi
        $game_actors[@transformationid].dex = @dex
        $game_actors[@transformationid].int = @int
      end
      #another dragon
    elsif @transformationsize < 3 #must be less than 3 in size
      if @ordenedelements == "fogo" #must be fogo
        $tranformation = (@active_battler.id)
        @transformationid = 10 #his ID
        $game_party.remove_actor(@active_battler.id)
        $game_party.add_actor(@transformationid)
        $game_actors[@transformationid].maxhp = @maxhp
        $game_actors[@transformationid].hp = @maxhp
        $game_actors[@transformationid].sp = @sp
        $game_actors[@transformationid].maxsp = @maxsp
        $game_actors[@transformationid].str = @str
        $game_actors[@transformationid].agi = @agi
        $game_actors[@transformationid].dex = @dex
        $game_actors[@transformationid].int = @int
        #another dragon
      elsif @ordenedelements == "gelo" #must be gelo
        $tranformation = (@active_battler.id)
        @transformationid = 11 #his id
        $game_party.remove_actor(@active_battler.id)
        $game_party.add_actor(@transformationid)
        $game_actors[@transformationid].maxhp = @maxhp
        $game_actors[@transformationid].hp = @maxhp
        $game_actors[@transformationid].sp = @sp
        $game_actors[@transformationid].maxsp = @maxsp
        $game_actors[@transformationid].str = @str
        $game_actors[@transformationid].agi = @agi
        $game_actors[@transformationid].dex = @dex
        $game_actors[@transformationid].int = @int
        # another
      elsif @ordenedelements == "trov�o"
        $tranformation = (@active_battler.id)
        @transformationid = 12 #id
        $game_party.remove_actor(@active_battler.id)
        $game_party.add_actor(@transformationid)
        $game_actors[@transformationid].maxhp = @maxhp
        $game_actors[@transformationid].hp = @maxhp
        $game_actors[@transformationid].sp = @sp
        $game_actors[@transformationid].maxsp = @maxsp
        $game_actors[@transformationid].str = @str
        $game_actors[@transformationid].agi = @agi
        $game_actors[@transformationid].dex = @dex
        $game_actors[@transformationid].int = @int
        #in case none of those above get selected by
        #the event, this last one is the default
        #and be sure he is the weakest possible, so no one
        #will try to use this
      else
        $tranformation = (@active_battler.id)
        @transformationid = 13 #failure id
        $game_party.remove_actor(@active_battler.id)
        $game_party.add_actor(@transformationid)
        $game_actors[@transformationid].maxhp = @maxhp /2
        $game_actors[@transformationid].hp = @maxhp/2
        $game_actors[@transformationid].sp = @sp/2
        $game_actors[@transformationid].maxsp = @maxsp/2
        $game_actors[@transformationid].str = @str /2
        $game_actors[@transformationid].agi = @agi /2
        $game_actors[@transformationid].dex = @dex /2
        $game_actors[@transformationid].int = @int /2
      end
    end
  end
@transformationsize = nil
#thx to Sepirothspawn511
id_array = []
for actor in $game_party.actors
id_array.push(actor)
end
#-------------------------
  for actor in id_array
    unless actor.id == @transformationid
      $game_party.remove_actor(actor.id)
    end
  end
  for actor in id_array
      unless actor.id == @transformationid
        $game_party.add_actor(actor.id)
      end
    end
    unless $game_actors[@active_battler.id].sp < 1
      $game_actors[@transformationid].animation_id = @transformationanimation2
    end
end
#--------------------------------------------------------------
def untransform
  unless $game_actors[@active_battler.id].hp == 1
    @help_window.set_text("Restore Form", 1) #this is like "transform"
    #explained above
  end
  @animation1_id = @transformationanimation1
  @restoreform = true
  update_phase4_step3
end

def untransformm
  id_array = []
  for actor in $game_party.actors
    id_array.push(actor)
  end
  @sp = $game_actors[@transformationid].sp
  for actor in id_array
    unless actor.id == @transformationid
      $game_party.remove_actor(actor.id)
    end
  end
  $game_party.add_actor($tranformation)
  $game_party.remove_actor(@transformationid)
  for actor in id_array
    unless actor.id == @transformationid
      $game_party.add_actor(actor.id)
    end
  end
  $game_actors[$tranformation].sp = @sp
  $game_actors[$tranformation].animation_id = @transformationanimation2
  @transformationid = 0
  @restoreform = false
end
}


Possibly Related Threads…
Thread Author Replies Views Last Post
  Emotion Script Ánemus 0 2,542 08-29-2008, 01:00 PM
Last Post: Ánemus
  Beran's iPod script Sniper308 0 3,008 08-09-2008, 01:00 PM
Last Post: Sniper308
  NeoABS & NeoSABS ()enemy processes script azrith001 0 2,706 04-04-2008, 01:00 PM
Last Post: azrith001
  Blur Effect Script Hadriel 0 2,953 01-30-2008, 01:00 PM
Last Post: Hadriel
  Warp Script Sheol 0 2,874 12-28-2007, 01:00 PM
Last Post: Sheol
  AIM Script Pack vgvgf 0 3,192 09-13-2007, 01:00 PM
Last Post: vgvgf
  Audio Encryption Script InfiniteSpawn 0 2,579 05-09-2007, 01:00 PM
Last Post: InfiniteSpawn
  Credits Script Remake avatarmonkeykirby 0 2,591 03-10-2007, 01:00 PM
Last Post: avatarmonkeykirby
  Leon Blade's Percent Script Leon Blade 0 2,591 03-05-2007, 01:00 PM
Last Post: Leon Blade
  Cogwheels original pixelmovement script!!! mechacrash 0 2,532 01-14-2007, 01:00 PM
Last Post: mechacrash



Users browsing this thread: 2 Guest(s)