Sidearm script problems

Started by Seox, June 18, 2009, 10:02:01 pm

Previous topic - Next topic

Seox

June 18, 2009, 10:02:01 pm Last Edit: June 18, 2009, 10:15:10 pm by Seox
Hiya. I'm having trouble with my sidearm script, which I'm creating ATM. Thing is, I've gotten the game to recognize the difference between firing the primary and secondary weapons, but when I fire the secondary, it doesn't use the secondary's stats. I THINK that the problem is somewhere in here:
class Game_Actor

 attr_accessor     :sidearm
 
 if $scene == Scene_Battle
 
 alias seox_animation1_id animation1_id
   def animation1_id
   if self.sidearm
   return sidearm_animation1_id
   else
   return seox_animation1_id
 end
end

animation1_id

 alias seox_animation2_id animation1_id
   def animation2_id
   if self.sidearm
   return sidearm_animation2_id
   else
   return seox_animation2_id
 end
end

animation2_id

 alias seox_base_atk base_atk
 def base_atk
   if self.sidearm
       print @actor_command_window.commands[0]
     return sidearm_atk
   else
   seox_base_atk
   end
 end

 base_atk

 alias seox_base_dex base_dex
 def base_dex
   if self.sidearm
     return sidearm_dex
   else
   seox_base_dex
 end
end

base_dex

 alias seox_base_agi base_agi
 def base_agi
   if self.sidearm
     return sidearm_agi
   else
   seox_base_agi
 end
end

base_agi

 alias seox_base_atk base_str
 def base_str
   if self.sidearm
     return sidearm_str
   else
   seox_base_str
 end
end

base_str

 alias seox_base_pdef base_pdef
 def base_pdef
   if self.sidearm
     return sidearm_pdef
   else
   seox_base_pdef
 end
end

base_pdef

 alias seox_base_mdef base_mdef
 def base_mdef
   if self.sidearm
     return sidearm_mdef
   else
   seox_base_mdef
 end
end

base_mdef

 alias seox_piercing piercing
 def piercing
   if self.sidearm
     sidearm_piercing
   else
   piercing
 end
end  
piercing
 end
 
end


Not sure about calling the methods just after the definitions. Just added it and tried it, and no difference

Anyone have anything? Please help me out!


Thank you ^_^


EDIT: I just tested the if with a print command. It never printed, even in battle. So, for some reason, the condition is returning false, or never being called.
... (<<<<<<<<<<<<<<< TEH DOTS OF DOOM. Hey, kinda catchy. :naughty:)

Blizzard

I think you messed up in the syntax. O_o And why are you using "if $scene == Scene_Battle" anyway? $scene is always nil when the script is being parsed. There's a big difference between "compile time" and "run time".
Check out our game brands:

Daygames
Game Night Games
Chugnar Games

Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Seox

Quote from: Blizzard on June 19, 2009, 04:59:35 am
I think you messed up in the syntax. O_o And why are you using "if $scene == Scene_Battle" anyway? $scene is always nil when the script is being parsed. There's a big difference between "compile time" and "run time".


Fixed all of the syntax.

class Game_Actor

  attr_accessor     :sidearm
 
  alias seox_animation1_id animation1_id
    def animation1_id
    if self.sidearm
    return sidearm_animation1_id
    else
    return seox_animation1_id
  end
end

  alias seox_animation2_id animation2_id
    def animation2_id
    if self.sidearm
    return sidearm_animation2_id
    else
    return seox_animation2_id
  end
end

  alias seox_base_atk base_atk
  def base_atk
    if self.sidearm
      return sidearm_atk
    else
    seox_base_atk
    end
  end

  alias seox_base_dex base_dex
  def base_dex
    if self.sidearm
      return sidearm_dex
    else
    seox_base_dex
  end
end

  alias seox_base_agi base_agi
  def base_agi
    if self.sidearm
      return sidearm_agi
    else
    seox_base_agi
  end
end

  alias seox_base_str base_str
  def base_str
    if self.sidearm
      return sidearm_str
    else
    seox_base_str
  end
end

  alias seox_base_pdef base_pdef
  def base_pdef
    if self.sidearm
      return sidearm_pdef
    else
    seox_base_pdef
  end
end

  alias seox_base_mdef base_mdef
  def base_mdef
    if self.sidearm
      return sidearm_mdef
    else
    seox_base_mdef
  end
end

  alias seox_piercing piercing
  def piercing
    if self.sidearm
      sidearm_piercing
    else
    seox_piercing
  end
end 


 
end


It works, too.


I'm not sure, XD. I've had that problem occur quite often. $Scene starting out as nil, I mean. What do I do, in that situation? It seems like I should just leave it blank, but sometimes, I need to get something out of the scene, and, in that case, I have to go $scene.something. It instantly backhands me with a nilclass error. So I HAVE to say

if $scene == Scene_Chicken
$scene.feathers


But this time, I have NO IDEA what I was thinking. Meh.
... (<<<<<<<<<<<<<<< TEH DOTS OF DOOM. Hey, kinda catchy. :naughty:)

Blizzard

*adds proper indentation* ^_^

class Game_Actor

  attr_accessor :sidearm
 
  alias seox_animation1_id animation1_id
  def animation1_id
    if self.sidearm
      return sidearm_animation1_id
    else
      return seox_animation1_id
    end
  end

  alias seox_animation2_id animation2_id
  def animation2_id
    if self.sidearm
      return sidearm_animation2_id
    else
      return seox_animation2_id
    end
  end

  alias seox_base_atk base_atk
  def base_atk
    if self.sidearm
      return sidearm_atk
    else
      seox_base_atk
    end
  end

  alias seox_base_dex base_dex
  def base_dex
    if self.sidearm
      return sidearm_dex
    else
      seox_base_dex
    end
  end

  alias seox_base_agi base_agi
  def base_agi
    if self.sidearm
      return sidearm_agi
    else
      seox_base_agi
    end
  end

  alias seox_base_str base_str
  def base_str
    if self.sidearm
      return sidearm_str
    else
      seox_base_str
    end
  end

  alias seox_base_pdef base_pdef
  def base_pdef
    if self.sidearm
      return sidearm_pdef
    else
      seox_base_pdef
    end
  end

  alias seox_base_mdef base_mdef
  def base_mdef
    if self.sidearm
      return sidearm_mdef
    else
      seox_base_mdef
    end
  end

  alias seox_piercing piercing
  def piercing
    if self.sidearm
      sidearm_piercing
    else
      seox_piercing
    end
  end 
 
end

Check out our game brands:

Daygames
Game Night Games
Chugnar Games

Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Seox

Quote from: Blizzard on June 19, 2009, 12:18:07 pm
*adds proper indentation* ^_^

class Game_Actor

  attr_accessor :sidearm
 
  alias seox_animation1_id animation1_id
  def animation1_id
    if self.sidearm
      return sidearm_animation1_id
    else
      return seox_animation1_id
    end
  end

  alias seox_animation2_id animation2_id
  def animation2_id
    if self.sidearm
      return sidearm_animation2_id
    else
      return seox_animation2_id
    end
  end

  alias seox_base_atk base_atk
  def base_atk
    if self.sidearm
      return sidearm_atk
    else
      seox_base_atk
    end
  end

  alias seox_base_dex base_dex
  def base_dex
    if self.sidearm
      return sidearm_dex
    else
      seox_base_dex
    end
  end

  alias seox_base_agi base_agi
  def base_agi
    if self.sidearm
      return sidearm_agi
    else
      seox_base_agi
    end
  end

  alias seox_base_str base_str
  def base_str
    if self.sidearm
      return sidearm_str
    else
      seox_base_str
    end
  end

  alias seox_base_pdef base_pdef
  def base_pdef
    if self.sidearm
      return sidearm_pdef
    else
      seox_base_pdef
    end
  end

  alias seox_base_mdef base_mdef
  def base_mdef
    if self.sidearm
      return sidearm_mdef
    else
      seox_base_mdef
    end
  end

  alias seox_piercing piercing
  def piercing
    if self.sidearm
      sidearm_piercing
    else
      seox_piercing
    end
  end 
 
end




*Learns proper indentation.*
*Stops being lazy*
*Starts indenting*

^_^
... (<<<<<<<<<<<<<<< TEH DOTS OF DOOM. Hey, kinda catchy. :naughty:)

Blizzard

It makes your code much easier to read since on knows exactly where a class/method/block starts/ends. ^_^
Check out our game brands:

Daygames
Game Night Games
Chugnar Games

Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Seox

Quote from: Blizzard on June 19, 2009, 02:22:41 pm
It makes your code much easier to read since on knows exactly where a class/method/block starts/ends. ^_^


I know. I usually do it pretty well, because I'm a neat freak. Was just lazy. XD
... (<<<<<<<<<<<<<<< TEH DOTS OF DOOM. Hey, kinda catchy. :naughty:)