Guest Access
ACTIVATED
ACTIVATED
ACTIVATED
profile
shogun3
profile
This is a script originally made for rpgmakervx by BulleXt.
I deleted the last portion of it to make it compatible with xp.
Instructions are on the script
I deleted the last portion of it to make it compatible with xp.
Instructions are on the script
- Code:
=begin
Paper Mario Walk
Version = 0.2
Author = BulletXt (bulletxt@gmail.com)
Description:
This script will make you move up/down keeping direction animation fixed
to lef/right like in sideview arcade games.
=end
#this is a switch ID, if ON it restores normal VX walking. By default this
#switch is OFF.
DISABLE_SCRIPT = 1
#this is the initial position player faces when game starts.
#possible values are: "left" or "right"
STARTING_POSITION_DIRECTION = "right"
########################## END CONFIGURATION ###################################
if STARTING_POSITION_DIRECTION == "right"
POSITION = 4
else
POSITION = 6
end
class Game_Character
alias bulletxt_move_down_paper move_down
def move_down(turn_ok = true)
current_direction = @direction
bulletxt_move_down_paper(turn_ok = true)
return if $game_switches[DISABLE_SCRIPT]
turn_right if current_direction == 6
turn_left if current_direction == 4
end
alias bulletxt_move_up_paper move_up
def move_up(turn_ok = true)
current_direction = @direction
bulletxt_move_up_paper(turn_ok = true)
return if $game_switches[DISABLE_SCRIPT]
turn_right if current_direction == 6
turn_left if current_direction == 4
end
end
ACTIVATED
Show Signature
ACTIVATED
Administrator
Administrator
Administrator
profile
G@MeF@Ce
profile
I've been secretly working on a platform script to seamlessly work with XAS.
this Paper Mario walk script looks very nice and simple,
I will have to test this out with XAS and see how it goes...
thanks for sharing! ^,^
this Paper Mario walk script looks very nice and simple,
I will have to test this out with XAS and see how it goes...
thanks for sharing! ^,^
Administrator
Show Signature
ACTIVATED
ACTIVATED
ACTIVATED
profile
shogun3
profile
it would be great to have a platform script (better than the one i'm using) to work with xas! Hope you can do it.
The paper mario script works well when the characters move, but if you want them to attack only left/right you have to change something (I think) here:
I'm not a scripter, but as you can see I tried to play with the script to see if I can do that, and it kinda worked.
The only thing is that I would like the enemies to attack me (in case of close attacks) only when player x=enemy x.
The paper mario script works well when the characters move, but if you want them to attack only left/right you have to change something (I think) here:
- Code:
module XRXS_BattlerAttachment
def attack_effect(attacker)
@actor = $game_party.actors[0]
if @actor == nil
return false
end
return super if self.battler.nil? or attacker.nil?
result = (not self.battler.dead? and self.battler.hiblink_duration.to_i <= 0)
if self.battler.hit_it.to_i > 0
return false
end
if attacker.battler.no_damage == true
return false
end
if attacker.collapse_done == true
return false
end
if attacker.jumping?
return false
end
if self.battler.is_a?(Game_Actor) and self.action != nil and
self.action.self_invicible == true and not
XAS_BA_ENEMY::IGNORE_HERO_SHIELD.include?(attacker.battler.id)
return false
end
if self.battler.is_a?(Game_Actor) and self.action != nil and
self.moving? and
((self.direction == 4 and attacker.direction == 6) or
(self.direction == 6 and attacker.direction == 4))and not
XAS_BA_ENEMY::IGNORE_HERO_SHIELD.include?(attacker.battler.id) and
self.action.id != $game_system.xas_action_shield_id
return false
end
if self.battler.is_a?(Game_Actor) and $game_temp.dodge_time_real > 0 and not
XAS_BA_ENEMY::IGNORE_HERO_SHIELD.include?(attacker.battler.id)
$game_player.battler.damage = XAS::DODGE_TEXT
$game_player.battler.damage_pop = true
self.battler.hit_it = 13
return false
end
if result
if XAS_ABS_SETUP::DEFENSE_SYSTEM_ACTIVE == true and
self.battler.is_a?(Game_Actor) and self.action != nil and
self.action.id == $game_system.xas_action_shield_id and
XAS_BA_ENEMY::IGNORE_HERO_SHIELD.include?(attacker.battler.id)
$game_temp.misc_text_time = 25
$game_temp.misc_text_pop = true
$game_temp.misc_text = XAS_ABS_SETUP::GUARD_BREAK_TEXT
$game_screen.start_shake(10,15,10)
$game_system.se_play(XAS_ABS_SETUP::GUARD_BREAK_SE)
end
if self.battler.is_a?(Game_Actor) and self.action != nil and
self.action.id == $game_system.xas_action_shield_id and not
XAS_BA_ENEMY::IGNORE_HERO_SHIELD.include?(attacker.battler.id) and
$game_system.move_meter >= XAS::DASH_ACTIVE_PERC and
XAS_ABS_SETUP::DEFENSE_SYSTEM_ACTIVE == true
$game_temp.meter_blink = 5
if ((self.direction == 4 and attacker.direction == 4) or
(self.direction == 6 and attacker.direction == 6))
$game_temp.defense_per = XAS_ABS_SETUP::BACK_DEFENSE_PERC
else
$game_temp.defense_per = XAS_ABS_SETUP::SIDE_DEFENSE_PERC
end
if $game_temp.defense_per > 0 and not
((self.direction == 4 and attacker.direction == 6) or
(self.direction == 6 and attacker.direction == 4))
$game_temp.misc_text_time = 25
$game_temp.misc_text_pop = true
$game_temp.misc_text = XAS_ABS_SETUP::DEFENSE_TEXT
end
end
if self.battler.is_a?(Game_Actor) and self.action != nil and
self.action.id == $game_system.xas_action_shield_id and not
XAS_BA_ENEMY::IGNORE_HERO_SHIELD.include?(attacker.battler.id)
if $game_system.move_meter >= XAS::DASH_ACTIVE_PERC and
((self.direction == 4 and attacker.direction == 6) or
(self.direction == 6 and attacker.direction == 4))
$game_temp.meter_blink = 5
$game_player.battler.damage = "Guardia"
$game_player.battler.damage_pop = true
$game_system.se_play(XAS_ABS_SETUP::SHIELD_SE)
unless XAS_BA_ENEMY::KNOCK_BACK_DISABLES.include?(attacker.battler.id)
attacker.blow(self.direction, 2)
attacker.jump(0,0)
end
if XAS_ABS_SETUP::DEFENSE_COST_TYPE == 1 and
XAS_ABS_SETUP::DEFENSE_SYSTEM_ACTIVE == true and
$game_switches[XAS::CT_DISABLE_SWITCH] == false
damage_ct = 10 + rand(10)
$game_system.move_meter -= damage_ct
end
self.battler.hit_it = 10
return false
else
if $game_system.move_meter < XAS::DASH_ACTIVE_PERC and
XAS_ABS_SETUP::DEFENSE_SYSTEM_ACTIVE == true and
$game_switches[XAS::CT_DISABLE_SWITCH] == false
$game_temp.misc_text_time = 20
$game_temp.misc_text_pop = true
$game_temp.misc_text = XAS_ABS_SETUP::GUARD_BREAK_TEXT
$game_screen.start_shake(10,15,10)
$game_system.se_play(XAS_ABS_SETUP::GUARD_BREAK_SE)
self.blow(attacker.direction, 1)
$game_temp.shield_active = false
end
end
end
self.battler.hit_it = XAS_BA::INVICIBLE_DURATION_HERO + 5
$game_temp.in_battle = true
self.battler.attack_effect(attacker.battler)
self.battler.damage_pop = true
if self.battler.damage != "Miss" #or
# self.battler.damage.to_i != 0
self.animation_id = attacker.battler.animation2_id
# $game_player.animation_id = self.battler.animation_id
unless self.battler.states.include?(XAS::INVINCIBLE_ID) or
self.battler.damage.to_i == 0
attack_blow_pw = XAS_BA_ENEMY::ATTACK_BLOW_POWER[attacker.battler.id]
if attack_blow_pw != nil
self.blow(attacker.direction, attack_blow_pw)
else
self.blow(attacker.direction, 1)
end
end
end
$game_temp.in_battle = false
if self.action != nil and self.is_a?(Game_Player) and not
(self.battler.xas_states_sleep == true or
self.battler.xas_states_stop == true)
else
if self.battler.damage.to_i > 0
if attacker.battler.xas_states_drain == true
drain_state_damage = self.battler.damage.to_i * XAS::DRAIN_RECOVER_PERC / 100
if drain_state_damage > 0
attacker.battler.damage = -drain_state_damage
attacker.battler.damage_pop = true
attacker.battler.hp += drain_state_damage
else
attacker.battler.damage = -1
attacker.battler.damage_pop = true
attacker.battler.hp += 1
end
if attacker.battler.is_a?(Game_Enemy) and
$mog_rgss_xas_enemy_hp != nil
$xas_enemy_old_hp = 0
$xas_enemy_name = $data_enemies[attacker.battler.id].name
$game_temp.xas_info_ref = 40 * MOG::ENEMY_INFO_FADE_TIME
$xas_enemy_hp = attacker.battler.hp
$xas_enemy_maxhp = attacker.battler.maxhp
$xas_info_ref = true
end
end
attack_blow_pw = XAS_BA_ENEMY::ATTACK_BLOW_POWER[attacker.battler.id]
if attack_blow_pw != nil
self.blow(attacker.direction, attack_blow_pw)
else
self.blow(attacker.direction, 1)
end
end
end
self.battler.hiblink_duration = self.damage_hiblink_duration
if self.is_a?(Game_Player)
self.need_refresh = true
end
end
@xrxs64c_defeat_done = false if @xrxs64c_defeat_done == nil
if not @xrxs64c_defeat_done and self.battler.dead?
defeat_process
@xrxs64c_defeat_done = true
end
end
def action_effect(bullet, action_id)
return super if self.battler.nil?
if self.battler.hiblink_duration.to_i > 0 and
not bullet.action.ignore_invincible
return false
end
if self.battler.hit_it.to_i > 0
return false
end
if self.battler.no_damage == true
return false
end
if self.collapse_done == true
return false
end
if action_id == $game_system.xas_action_shield_id
return false
end
skill_id = action_id
return if skill_id == nil
user = bullet.action.user
attacker = (user == nil ? nil : user.battler)
ally = Database_Bullet::ONLY_ALLY[action_id]
self_dam = Database_Bullet::SELF_DAMAGES[self.id]
if self.battler.is_a?(Game_Enemy) and user.battler.is_a?(Game_Enemy)
if ally == false
return false
end
end
if self.action != nil and bullet.action.self_invicible == true and
bullet.action.ignore_playershield == false and not
((self.battler.is_a?(Game_Enemy) and user.battler.is_a?(Game_Enemy)) or
(self.battler.is_a?(Game_Actor) and user.battler.is_a?(Game_Actor)))
return false
end
if self.battler.is_a?(Game_Enemy) and XAS_BA_ENEMY::ENEMY_OBJECT.include?(self.enemy_id)
return
end
if self.battler.is_a?(Game_Actor) and $game_temp.dodge_time_real > 0 and
bullet.action.ignore_playershield == false
$game_player.battler.damage = XAS::DODGE_TEXT
$game_player.battler.damage_pop = true
self.battler.hit_it = 10
return false
end
result = (user != nil and not self.battler.dead?)
skill_id = action_id
dirset = [1,2,3,4,6,7,8,9]
dir_index = (dirset.index(bullet.direction) + 2) % 4
dir_index3 = (dirset.index(bullet.direction)) % 4
shield = self.shield_actions.include?(action_id)
for direction in self.shield_directions
if self.shield_directions.include?(2) and
((self.direction == 6 and bullet.direction == 4) or
(self.direction == 4 and bullet.direction == 6))
shield = 2
elsif self.shield_directions.include?(8) and
((self.direction == 6 and bullet.direction == 6) or
(self.direction == 4 and bullet.direction == 4))
shield = 8
elsif self.shield_directions.include?(4) and
((self.direction == 2 and bullet.direction == 4) or
(self.direction == 8 and bullet.direction == 6) or
(self.direction == 6 and bullet.direction == 2) or
(self.direction == 4 and bullet.direction == 8))
shield = 4
elsif self.shield_directions.include?(6) and
((self.direction == 2 and bullet.direction == 6) or
(self.direction == 8 and bullet.direction == 4) or
(self.direction == 6 and bullet.direction == 8) or
(self.direction == 4 and bullet.direction == 2))
shield = 6
end
end
if (self.battler.is_a?(Game_Actor) and user.battler.is_a?(Game_Actor)) and
(XAS_SKILL::RANG_EFFECT.include?(skill_id) or
XAS_SKILL::HOOK_SHOT_EFFECT.include?(skill_id))
bullet.action.duration = 1
return
end
if XAS_ABS_SETUP::DEFENSE_SYSTEM_ACTIVE == true and
self.battler.is_a?(Game_Actor) and self.action != nil and
self.action.id == $game_system.xas_action_shield_id and
bullet.action.ignore_playershield == true
$game_temp.misc_text_time = 25
$game_temp.misc_text_pop = true
$game_temp.misc_text = XAS_ABS_SETUP::GUARD_BREAK_TEXT
$game_screen.start_shake(10,15,10)
$game_system.se_play(XAS_ABS_SETUP::GUARD_BREAK_SE)
end
if self.battler.is_a?(Game_Actor) and self.action != nil and
self.action.id == $game_system.xas_action_shield_id and
bullet.action.ignore_playershield == false and
$game_system.move_meter > XAS::DASH_ACTIVE_PERC and
XAS_ABS_SETUP::DEFENSE_SYSTEM_ACTIVE == true
$game_temp.meter_blink = 5
if ((self.direction == 4 and bullet.direction == 4) or
(self.direction == 6 and bullet.direction == 6))
$game_temp.defense_per = XAS_ABS_SETUP::BACK_DEFENSE_PERC
else
$game_temp.defense_per = XAS_ABS_SETUP::SIDE_DEFENSE_PERC
end
if $game_temp.defense_per > 0 and not
((self.direction == 4 and bullet.direction == 6) or
(self.direction == 6 and bullet.direction == 4))
$game_temp.misc_text_time = 25
$game_temp.misc_text_pop = true
$game_temp.misc_text = XAS_ABS_SETUP::DEFENSE_TEXT
end
end
if self.battler.is_a?(Game_Actor) and self.action != nil and
self.action.id == $game_system.xas_action_shield_id and
bullet.action.ignore_playershield == false
if $game_system.move_meter > XAS::DASH_ACTIVE_PERC and
((self.direction == 4 and bullet.direction == 6) or
(self.direction == 6 and bullet.direction == 4))
if bullet.action.multi_hit == true
self.battler.hit_it = 10
else
bullet.action.duration = 1
end
$game_player.battler.damage = XAS_ABS_SETUP::SHIELD_TEXT
$game_player.battler.damage_pop = true
$game_system.se_play(XAS_ABS_SETUP::SHIELD_SE)
if XAS_ABS_SETUP::DEFENSE_COST_TYPE == 1 and
XAS_ABS_SETUP::DEFENSE_SYSTEM_ACTIVE == true and
$game_switches[XAS::CT_DISABLE_SWITCH] == false
skill = $data_skills[skill_id]
$game_system.move_meter -= skill.sp_cost
end
I'm not a scripter, but as you can see I tried to play with the script to see if I can do that, and it kinda worked.
The only thing is that I would like the enemies to attack me (in case of close attacks) only when player x=enemy x.
ACTIVATED
Show Signature
ACTIVATED
C.O.R.N.
EVENTALIST
EVENTALIST
EVENTALIST
profile
mr_wiggles
profile
Yes that would be neat for a plat former script.
So this script will make the player look like they turned like paper mario does? - cool.
So this script will make the player look like they turned like paper mario does? - cool.
EVENTALIST
Show Signature
EVENTALIST