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.
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".
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.
*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
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*
^_^
It makes your code much easier to read since on knows exactly where a class/method/block starts/ends. ^_^
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