Guest Access
Administrator
Administrator
Administrator
profile
G@MeF@Ce
profile
@reala - yes I made that adjustment on my version I will share with you after I post a few things... as simple as a side scrolling platform game may look, there's alot of touches to it huh? ^,^
Administrator
Show Signature
Active Member
Active Member
Active Member
profile
Reala
profile
Yea lol, I think it's cause it's on XP n XP was meant for Overhead games.
Active Member
Show Signature
Active Member
Administrator
Administrator
Administrator
profile
G@MeF@Ce
profile
exactly... many have said to use gamemaker and that RMXP couldn't handle it...
well after a few years later... suprise! ^,^
runs real smooth even with the dash and blurr...
have you tried the double tap dash blurr and double jump?
well after a few years later... suprise! ^,^
runs real smooth even with the dash and blurr...
have you tried the double tap dash blurr and double jump?
Administrator
Show Signature
Active Member
Active Member
Active Member
profile
Reala
profile
Yea, used it in my last game. I wanna know how to get the character to blur when they're running normally, like in Castlevania.
Active Member
Show Signature
Active Member
Administrator
Administrator
Administrator
profile
G@MeF@Ce
profile
instructions are in the blur script... you can use the blur on enemies too!
[You must be registered and logged in to see this link.]
will update the Xplat script with a new module to set different weight for each enemy as wiggles recommended.
[You must be registered and logged in to see this link.]
will update the Xplat script with a new module to set different weight for each enemy as wiggles recommended.
Administrator
Show Signature
Active Member
Active Member
Active Member
profile
Reala
profile
So in $game_map.events[X].blur = true
Wut do i replace X with for it to blur on the actor. I put 0 n got a error
Wut do i replace X with for it to blur on the actor. I put 0 n got a error
Active Member
Show Signature
Active Member
Administrator
Administrator
Administrator
profile
G@MeF@Ce
profile
ok Gamerz we have a newer version of the Xplat!
this newer version includes setting different weight for your enemies based upon enemy_ID.
First I will include the edited XAS-Movement then the Xplat script in the following post.
~(G|F
1.) Replace the XAS-Movement script with this one:
this newer version includes setting different weight for your enemies based upon enemy_ID.
First I will include the edited XAS-Movement then the Xplat script in the following post.
~(G|F
1.) Replace the XAS-Movement script with this one:
- Spoiler:
- Code:
#===============================================================================
#===============================================================================
# MOVEMENT SYSTEM / THROW / JUMP / FALL - Xplat edit
#===============================================================================
#===============================================================================
#===============================================================================
# Game_Character
#===============================================================================
class Game_Character
#--------------------------------------------------------------------------
# Throw
#--------------------------------------------------------------------------
def jump_forward(range)
jump_range = range
dc = @direction
unless jumping?
p = jump_range
range.times do
unless jumping?
if dc == 6
jump(jump_range,0) if throw_event?(jump_range,0,p)
elsif dc == 4
jump(-jump_range,0) if throw_event?(-jump_range,0,p)
elsif dc == 2
jump(0,jump_range) if throw_event?(0,jump_range,p)
elsif dc == 8
jump(0,-jump_range) if throw_event?(0,-jump_range,p)
end
jump(0,0) if jump_range == 1
jump_range -= 1
p -= 1
end
end
end
end
#--------------------------------------------------------------------------
# Player Pos
#--------------------------------------------------------------------------
def player_pos
@x = $game_player.x
@y = $game_player.y
end
#--------------------------------------------------------------------------
# Go Event Pos
#--------------------------------------------------------------------------
def event_pos
$game_player.jump(0,0)
$game_player.x = @x
$game_player.y = @y
end
#--------------------------------------------------------------------------
# Player Pos
#--------------------------------------------------------------------------
def jump_pos(x,y)
@x = x
@y = y
jump(0,0)
end
#--------------------------------------------------------------------------
# Conditional Move
#--------------------------------------------------------------------------
def cond_move(x,y,d)
if @x == x and @y == y
if d == 2
move_down
elsif d == 4
move_left
elsif d == 6
move_right
else
move_up
end
end
end
#--------------------------------------------------------------------------
# Passable?
#--------------------------------------------------------------------------
alias xas_passable passable?
def passable?(x, y, d)
new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
if self.is_a?(Game_Player) and $game_system.fly == true
return true
end
if self.is_a?(Game_Event)
if self.event_name == "Somaria"
$game_variables[XAS_SKILL::SOMARIA_VARIABLE_ID_X] = new_x
$game_variables[XAS_SKILL::SOMARIA_VARIABLE_ID_Y] = new_y
end
end
#Platform ------------------------------------------------------
if !$game_switches[XPLAT_SWITCH_ID]#-------------------------------[x-plat]#2
if $game_map.terrain_tag(x, y) == XAS::FALL_TERRAIN and
$game_system.fly == false
if self.is_a?(Game_Event) and self.event_name == "Platform"
@move_frequency = 7
@d = self.direction
if self.x == $game_player.x and self.y == $game_player.y
unless $game_player.moving2? or
jumping?
$game_player.walk_anime = false
$game_player.move_speed = @move_speed
$game_player.x = new_x
$game_player.y = new_y
end
end
end
end
end # xplat - end #2
if $game_map.terrain_tag(new_x, new_y) != XAS::FALL_TERRAIN and
self.is_a?(Game_Player)
$game_player.walk_anime = true
end
#Swimming Terrain ------------------------------------------
if $game_map.terrain_tag(new_x, new_y) == XAS::SWIMMING_TERRAIN
if self.is_a?(Game_Player) and
$game_switches[XAS::SWIMMING_ACTIVE_SWITCH_ID] == false
return false
end
if self.is_a?(Game_Event)
if self.through == true
return true
end
if self.event_name != "Aquatic"
return false
end
end
end
if self.is_a?(Game_Event) and self.event_name == "Aquatic" and
$game_map.terrain_tag(new_x, new_y) != XAS::SWIMMING_TERRAIN
return false
end
xas_passable(x, y, d)
end
#--------------------------------------------------------------------------
# Passable Throw?
#--------------------------------------------------------------------------
def passable_throw?(x, y, d)
new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
unless $game_map.valid?(new_x, new_y)
return false
end
if @through
return true
end
unless $game_map.passable?(x, y, d, self)
return false
end
unless $game_map.passable?(new_x, new_y, 10 - d)
return false
end
if self.is_a?(Game_Event) and not @through
if $game_map.terrain_tag(new_x, new_y) == XAS::FALL_TERRAIN
return false
end
end
for event in $game_map.events.values
if event.x == new_x and event.y == new_y
unless event.through
if self != $game_player
return false
end
if event.character_name != ""
return false
end
end
end
end
if $game_player.x == new_x and $game_player.y == new_y
unless $game_player.through
if @character_name != ""
return false
end
end
end
return true
end
#-------------------------------------------------------------------------------
# Player Dir
#-------------------------------------------------------------------------------
def player_dir
if !$game_switches[XPLAT_SWITCH_ID] #-------------------------------[x-plat]#2
if $game_map.terrain_tag(@x, @y) == XAS::FALL_TERRAIN and
self.is_a?(Game_Player)
for event in $game_map.events.values
if event.event_name == "Platform" and
event.x == x and event.y == y
new_x = @x + (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
new_y = @y + (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
if $game_map.terrain_tag(new_x, new_y) != XAS::FALL_TERRAIN
case Input.dir4
when 2
move_down
when 4
move_left
when 6
move_right
when 8
move_up
end
else
case Input.dir4
when 2
turn_down
when 4
turn_left
when 6
turn_right
when 8
turn_up
end
end
end
end
end
end
end #----xplat #2
#-------------------------------------------------------------------------------
# Fall Check?
#-------------------------------------------------------------------------------
def fall_check?(x, y, d)
if $game_map.terrain_tag(x, y) == XAS::FALL_TERRAIN
for event in $game_map.events.values
if event.event_name == "Platform" and
event.x == x and event.y == y
if self.is_a?(Game_Player)
case Input.dir4
when 2
move_down
when 4
move_left
when 6
move_right
when 8
move_up
end
end
if self.is_a?(Game_Event)
@fall_safe_time = 10
end
return false
end
end
end
return true
end
#-------------------------------------------------------------------------------
# Fall Check2?
#-------------------------------------------------------------------------------
def fall_check2?(x, y, d)
new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
for event in $game_map.events.values
if event.event_name == "Platform" and
event.x == @x and event.y == @y
return false
end
end
return true
end
#--------------------------------------------------------------------------
# Jumpa
#--------------------------------------------------------------------------
def jumpa(x_plus, y_plus, high)
if x_plus != 0 or y_plus != 0
if x_plus.abs > y_plus.abs
x_plus < 0 ? turn_left : turn_right
else
y_plus < 0 ? turn_up : turn_down
end
end
new_x = @x + x_plus
new_y = @y + y_plus
if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0)
straighten
@x = new_x
@y = new_y
distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round
@jump_peak = high + distance - @move_speed
@jump_count = @jump_peak * 2
@stop_count = 0
end
end
#--------------------------------------------------------------------------
# Jumpa?
#--------------------------------------------------------------------------
def jumpa?(x_plus, y_plus,p )
terrain_disable = $game_map.terrain_tag(@x + x_plus, @y + y_plus)
if XAS::TERRAIN_NO_JUMP_TYPE1.include?(terrain_disable)
return false
end
new_x = @x + (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
new_y = @y + (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
terrain_disable2 = $game_map.terrain_tag(new_x,new_y)
if XAS::TERRAIN_NO_JUMP_TYPE2.include?(terrain_disable2)
return false
end
v = 1
org_x = @x + x_plus
org_y = @y + y_plus
p.times do
new_x2 = org_x + (@direction == 6 ? -v : @direction == 4 ? + v : 0)
new_y2 = org_y + (@direction == 2 ? -v : @direction == 8 ? + v : 0)
terrain_disable3 = $game_map.terrain_tag(new_x2,new_y2)
if XAS::TERRAIN_NO_JUMP_TYPE2.include?(terrain_disable3)
return false
end
for event in $game_map.events.values
if event.x == new_x2 and event.y == new_y2
if event.event_name == "No_Jump" and
event.through == false
return false
end
end
end
v += 1
end
return true
end
#--------------------------------------------------------------------------
# Throw Event?
#--------------------------------------------------------------------------
def throw_event?(x_plus, y_plus,p )
dir = $game_player.direction
terrain_disable = $game_map.terrain_tag(@x + x_plus, @y + y_plus)
if XAS::TERRAIN_NO_JUMP_TYPE1.include?(terrain_disable)
return false
end
new_x = @x + (dir == 6 ? 1 : dir == 4 ? -1 : 0)
new_y = @y + (dir == 2 ? 1 : dir == 8 ? -1 : 0)
terrain_disable2 = $game_map.terrain_tag(new_x,new_y)
if XAS::TERRAIN_NO_JUMP_TYPE2.include?(terrain_disable2)
return false
end
v = 1
org_x = @x + x_plus
org_y = @y + y_plus
p.times do
new_x2 = org_x + (dir == 6 ? -v : dir == 4 ? + v : 0)
new_y2 = org_y + (dir == 2 ? -v : dir == 8 ? + v : 0)
terrain_disable3 = $game_map.terrain_tag(new_x2,new_y2)
if XAS::TERRAIN_NO_JUMP_TYPE2.include?(terrain_disable3)
return false
end
for event in $game_map.events.values
if event.x == new_x2 and event.y == new_y2
if event.event_name == "No_Jump" and
event.through == false
return false
end
end
end
v += 1
end
return true
end
#--------------------------------------------------------------------------
# Input Real
#--------------------------------------------------------------------------
def input_real?
if Input.press?(Input::RIGHT) or Input.press?(Input::LEFT) or
Input.press?(Input::UP) or Input.press?(Input::DOWN)
return true
end
$game_player.jump(0,0) unless terrain_tag == 2
return false
end
#--------------------------------------------------------------------------
# Pular
#--------------------------------------------------------------------------
def pular
if input_real? and
terrain_tag != XAS::FALL_TERRAIN
if @move_speed == XAS::DASH_SPEED + $game_system.move_speed
range = XAS::JUMP_RANGE_DASH
else
range = XAS::JUMP_RANGE_NORMAL
end
jump_range = range
unless jumping?
p = jump_range
range.times do
unless jumping?
if @direction == 6
jump(jump_range,0) if jumpa?(jump_range,0,p)
elsif @direction == 4
jump(-jump_range,0) if jumpa?(-jump_range,0,p)
elsif @direction == 2
jump(0,jump_range) if jumpa?(0,jump_range,p)
elsif @direction == 8
jump(0,-jump_range) if jumpa?(0,-jump_range,p)
end
jump(0,0) if jump_range == 1
jump_range -= 1
p -= 1
end
end
end
end
end
#--------------------------------------------------------------------------
# Throw
#--------------------------------------------------------------------------
def throw(range)
jump_range = range
dc = $game_player.direction
unless jumping?
p = jump_range
range.times do
unless jumping?
if dc == 6
jump(jump_range,0) if throw_event?(jump_range,0,p)
elsif dc == 4
jump(-jump_range,0) if throw_event?(-jump_range,0,p)
elsif dc == 2
jump(0,jump_range) if throw_event?(0,jump_range,p)
elsif dc == 8
jump(0,-jump_range) if throw_event?(0,-jump_range,p)
end
jump(0,0) if jump_range == 1
jump_range -= 1
p -= 1
end
end
end
end
#--------------------------------------------------------------------------
# Throw 2
#--------------------------------------------------------------------------
def throw2
dc = $game_player.direction
if dc == 6
move_right
elsif dc == 4
move_left
elsif dc == 2
move_down
elsif dc == 8
move_up
end
jump(0,0)
end
#--------------------------------------------------------------------------
# Throw Update
#--------------------------------------------------------------------------
def throw_update
if self.throw_on == true and
$game_temp.trow_active_now == true and
$game_temp.take_time <= 15
self.throw_on = false
$game_temp.carry = false
$game_temp.carry_time = 0
$game_temp.trow_active = false
$game_temp.trow_active_now = false
$game_temp.take_time = 15
throw(XAS::THROW_POWER)
elsif self.throw_on == true and
$game_temp.trow_active_now == true and
$game_temp.take_time == 18
$game_temp.trow_active = false
$game_temp.trow_active_now = false
$game_temp.take_time = 15
$game_temp.carry = false
$game_temp.carry_time = 0
self.throw_on = false
throw2
elsif self.throw_on == true
@x = $game_player.x
@y = $game_player.y
@move_speed = $game_player.move_speed
if self.battler != nil and self.battler.is_a?(Game_Enemy)
if $game_temp.carry_time > 0 and not
(XAS_BA_ENEMY::ENEMY_OBJECT.include?(self.battler.id) or
XAS_BA_ENEMY::ITEM_ENEMY.include?(self.battler.id) or
XAS_BA_ENEMY::KNOCK_BACK_DISABLES.include?(self.battler.id))
if img_hit_enemy_exist?
unless self.battler.xas_states_stop == true
@character_name = @page.graphic.character_name + "_Hit"
end
@collision_attack = false
end
end
end
if ($game_temp.carry == true and $game_temp.carry_time == 0) or
@actor.states.include?(XAS::STOP_ID) or
@actor.states.include?(XAS::SLEEP_ID) or
$game_player.knockbacking? or
$game_temp.fall == true or
$game_system.swimming == true
$game_temp.trow_active = false
$game_temp.trow_active_now = false
$game_temp.take_time = 15
$game_temp.carry = false
$game_temp.carry_time = 0
self.throw_on = false
d = $game_player.direction
if d == 2
move_down
elsif d == 4
move_left
elsif d == 6
move_right
else
move_up
end
$game_temp.fall = false
end
end
end
end
#===============================================================================
# GAME_PLAYER
#===============================================================================
class Game_Player < Game_Character
include MOG
attr_accessor :move_speed
attr_accessor :need_refresh
attr_accessor :direction_fix
attr_accessor :walk_anime
attr_accessor :step_anime
attr_accessor :x
attr_accessor :y
#--------------------------------------------------------------------------
# Clear Setting
#--------------------------------------------------------------------------
def clear_setting
$game_temp.trow_active = false
$game_temp.trow_active_now = false
$game_temp.take_time = 0
$game_temp.carry = false
$game_temp.carry_time = 0
$game_temp.xas_charge_time = 0
$game_temp.xas_anime_loop = 0
$game_temp.xas_anime_loop2 = 0
$game_temp.force_action_now_id = 0
$game_temp.force_action_id = 0
$game_temp.rendan_item = 0
$game_temp.item_rendan = 0
$game_temp.rendan_skill = 0
$game_temp.skill_rendan = 0
$game_temp.rendan_attack = 0
$game_temp.attack_rendan = 0
$game_temp.rendan_attack2 = 0
$game_temp.attack_rendan2 = 0
$game_temp.cast_skill_id = 0
$game_temp.cast_time = 0
$game_temp.cast_type = 0
$game_temp.dodge = false
$game_temp.dodge_time = 0
$game_temp.lock_jump = false
$game_temp.jump_count = 0
$game_temp.lock_command = false
$game_temp.one_action = false
$game_temp.somaria_active = false
$game_temp.somaria_second_action = false
$game_variables[XAS_SKILL::SOMARIA_VARIABLE_ID_X] = 0
$game_variables[XAS_SKILL::SOMARIA_VARIABLE_ID_Y] = 0
end
#--------------------------------------------------------------------------
# Clear Setting 2
#--------------------------------------------------------------------------
def clear_setting2
$game_temp.xas_charge_time = 0
$game_temp.xas_anime_loop = 0
$game_temp.xas_anime_loop2 = 0
$game_temp.force_action_now_id = 0
$game_temp.force_action_id = 0
$game_temp.rendan_item = 0
$game_temp.item_rendan = 0
$game_temp.rendan_skill = 0
$game_temp.skill_rendan = 0
$game_temp.rendan_attack = 0
$game_temp.attack_rendan = 0
$game_temp.rendan_attack2 = 0
$game_temp.attack_rendan2 = 0
$game_temp.cast_skill_id = 0
$game_temp.cast_time = 0
$game_temp.cast_type = 0
$game_temp.dodge = false
$game_temp.dodge_time = 0
$game_temp.lock_command = false
$game_temp.one_action = false
end
#--------------------------------------------------------------------------
# Clear Setting 3
#--------------------------------------------------------------------------
def clear_setting3
$game_temp.xas_charge_time = 0
$game_temp.xas_anime_loop = 0
$game_temp.xas_anime_loop2 = 0
$game_temp.rendan_item = 0
$game_temp.item_rendan = 0
$game_temp.rendan_skill = 0
$game_temp.skill_rendan = 0
$game_temp.rendan_attack = 0
$game_temp.attack_rendan = 0
$game_temp.rendan_attack2 = 0
$game_temp.attack_rendan2 = 0
$game_temp.dodge = false
$game_temp.dodge_time = 0
$game_temp.lock_command = false
end
#--------------------------------------------------------------------------
# Damage
#--------------------------------------------------------------------------
def damage(value)
actor = $game_party.actors[0]
return if actor == nil or actor.hp == 0
$game_player.battler.damage = value
$game_player.battler.damage_pop = true
$game_player.blow(0,0)
$game_player.jump(0,0)
actor.hp -= value
end
#--------------------------------------------------------------------------
# Hero Dash Graphic?
#--------------------------------------------------------------------------
def hero_dash_graphic?(actor)
if moving?
RPG::Cache.character(actor.character_name.to_s + "_dash", actor.character_hue) rescue return false
end
end
#--------------------------------------------------------------------------
# Hero Dash Quarter Graphic?
#--------------------------------------------------------------------------
def hero_dash_quarter_graphic?(actor)
if moving?
RPG::Cache.character(actor.character_name.to_s + "_dash_quarter", actor.character_hue) rescue return false
end
end
#--------------------------------------------------------------------------
# Hero Quarter Graphic?
#--------------------------------------------------------------------------
def hero_quarter_graphic?(actor)
RPG::Cache.character(actor.character_name.to_s + "_quarter", actor.character_hue) rescue return false
end
#--------------------------------------------------------------------------
# Hero Charge Graphic?
#--------------------------------------------------------------------------
def hero_charge_graphic?(actor)
nome = Database_Bullet::SELF_MOTIONS[@wp_tool_id]
RPG::Cache.character(actor.character_name + nome.to_s + "_Charge", actor.character_hue) rescue return false
end
#--------------------------------------------------------------------------
# Jump Shadow Update
#--------------------------------------------------------------------------
def jump_shadow_update
if jumping?
if @jump_count >= @jump_peak
n = @jump_count - @jump_peak
else
n = @jump_peak - @jump_count
end
$game_temp.jump_y = (@jump_peak * @jump_peak - n * n) / 2
$game_temp.jump_count = @jump_count
if @jump_count < 45
$game_temp.lock_jump = true
end
else
$game_temp.lock_jump = false
$game_temp.jump_count = 0
end
end
#--------------------------------------------------------------------------
# Temp Update
#--------------------------------------------------------------------------
def temp_update
$game_temp.rendan_attack -= 1 if $game_temp.rendan_attack > 0
$game_temp.rendan_attack2 -= 1 if $game_temp.rendan_attack2 > 0
$game_temp.rendan_skill -= 1 if $game_temp.rendan_skill > 0
$game_temp.rendan_item -= 1 if $game_temp.rendan_item > 0
$game_temp.cast_time -= 1 if $game_temp.cast_time > 0
$game_temp.cast_ani += 1 if $game_temp.cast_time > 0
$game_temp.take_time -= 1 if $game_temp.take_time > 0
$game_temp.carry_time -= 1 if $game_temp.carry_time > 0
$game_temp.fall_time -= 1 if $game_temp.fall_time > 0
$game_temp.dodge_time_real -= 1 if $game_temp.dodge_time_real > 0
$game_temp.swimming_se_time += 1 if $game_system.swimming == true
$game_temp.slow_motion -= 1 if $game_temp.slow_motion > 0
if $game_temp.cast_time <= 0
$game_temp.cast_time = 0
$game_temp.cast_ani = 0
end
if $game_temp.cast_ani > 40 * XAS::STATES_LOOP_SPEED and
$game_temp.cast_time > 0
$game_temp.cast_ani = 0
$game_player.animation_id = XAS_SKILL::DEFAULT_CAST_ANIMATION_ID
end
if $game_temp.dodge_time > 0 and
$game_temp.dodge == true
$game_temp.dodge_time -= 1
elsif $game_temp.dodge_time <= 0
$game_temp.dodge = false
end
if $game_temp.slow_motion > 0
Graphics.frame_rate = 1
else
Graphics.frame_rate = XAS::GAME_FRAME
end
end
#--------------------------------------------------------------------------
# Move Speed Update
#--------------------------------------------------------------------------
def move_speed_update
return if @actor == nil
unless $game_system.map_interpreter.running? or
$game_temp.message_window_showing
if XAS::DASH_SYSTEM == true
$game_system.move_refresh += 1
if @actor.states.include?(XAS::CT_DOWN_ID)
ct_meter_limit = XAS::CT_METER_SPEED * XAS::CT_POWER
else
ct_meter_limit = XAS::CT_METER_SPEED
end
if $game_system.move_refresh > ct_meter_limit
$game_system.move_refresh = 0
end
if $game_switches[XAS::CT_DISABLE_SWITCH] == true
ct_speed_down = 0
ct_speed_up = 0
elsif @actor.states.include?(XAS::CT_UP_ID)
ct_speed_down = 1
ct_speed_up = XAS::CT_POWER
ct_speed_up = 0 if $game_temp.xas_charge_time > 5
elsif @actor.states.include?(XAS::CT_DOWN_ID)
ct_speed_down = XAS::CT_POWER
ct_speed_up = 1
ct_speed_up = 0 if $game_temp.xas_charge_time > 5
else
ct_speed_down = 1
ct_speed_up = 1
ct_speed_up = 0 if $game_temp.xas_charge_time > 5
end
if Input.press?(XAS_COMMAND::DASH_BUTTON) or
($game_temp.shield_active == true and
XAS_ABS_SETUP::DEFENSE_SYSTEM_ACTIVE == true and
XAS_ABS_SETUP::DEFENSE_COST_TYPE == 0)
if $game_system.move_refresh == 0
$game_system.move_meter -= ct_speed_down if $game_player.action == nil
end
else
if $game_system.move_refresh == 0
unless ($game_temp.shield_active == true and
XAS_ABS_SETUP::DEFENSE_SYSTEM_ACTIVE == true and
XAS_ABS_SETUP::DEFENSE_COST_TYPE == 1)
$game_system.move_meter += ct_speed_up
end
end
end
end
end
end
#--------------------------------------------------------------------------
# Throw?
#--------------------------------------------------------------------------
def throw?
new_x = @x + (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
new_y = @y + (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
if $game_temp.cast_time > 0
return false
end
if $game_system.fly == true
return false
end
if $game_system.swimming == true
return false
end
if $game_temp.fall == true
return false
end
for event in $game_map.events.values
if event.x == new_x and event.y == new_y
if event.event_name == "Throw" or event.event_name == "Somaria" and
event.throw_on == false and
event.through == false
$game_temp.somaria_active = true if event.event_name == "Somaria"
if event.erased == true
return false
end
if event.event_name == "Somaria"
$game_variables[XAS_SKILL::SOMARIA_VARIABLE_ID_X] = 0
$game_variables[XAS_SKILL::SOMARIA_VARIABLE_ID_Y] = 0
end
if event.battler != nil and
(event.battler.hp == 0 or
event.collapse_done == true)
return false
end
if event.battler != nil and not
(XAS_BA_ENEMY::ITEM_ENEMY.include?(event.battler.id) or
XAS_BA_ENEMY::ENEMY_OBJECT.include?(event.battler.id))
$game_temp.carry = true
$game_temp.carry_time = 40 * XAS::ENEMY_CARRY_TIME
end
event.throw_on = true
$game_temp.trow_active = true
$game_temp.take_time = 12
event.jump(0,0)
return true
end
end
end
return false
end
#--------------------------------------------------------------------------
# Throw Player Update
#--------------------------------------------------------------------------
def throw_player_update
return if ($mog_rgss_xas_extra_skill != nil and Input.press?(Input::L))
if Input.trigger?(XAS_COMMAND::DROP_BUTTON) and
$game_temp.trow_active == true and
$game_temp.take_time == 0
$game_temp.take_time == 0
$game_temp.trow_active_now = true
$game_temp.take_time = 20
$game_temp.somaria_active = false
end
if Input.trigger?(XAS_COMMAND::THROW_BUTTON) and
$game_switches[XAS::THROW_ACTIVE_SWITCH_ID] == true and
$game_temp.take_time == 0 and
$game_temp.rendan_attack < 3 and
$game_temp.rendan_skill < 3 and
$game_temp.rendan_item < 3 and not
($game_system.map_interpreter.running? or
$game_temp.message_window_showing or
$game_map.starting? or jumping? or
self.action != nil or self.knockbacking? or
$game_system.swimming == true)
if $game_temp.trow_active == false
throw?
else
if $game_temp.trow_active == true
$game_temp.trow_active = false
$game_temp.trow_active_now = true
$game_temp.take_time = 17
action_id = XAS::THROW_SKILL_ID
$game_temp.somaria_active = false
if action_id != nil or action_id != 0
$game_temp.force_action_now_id = action_id
end
end
end
end
end
#--------------------------------------------------------------------------
# Fall Terrain Update
#--------------------------------------------------------------------------
def fall_terrain_update
if terrain_tag == XAS::FALL_TERRAIN and
terrain_tag != nil
if $game_temp.fall == false and
fall_check?(@x, @y, @direction) and
@fall_safe_time == 0
$game_temp.fall = true
$game_temp.fall_time = XAS::FALL_TIME + 10
@actor.hit_it = XAS::FALL_TIME + XAS_BA::KNOCK_BACK_DURATION_HERO + 5
$game_player.animation_id = XAS::FALL_ANIMATION_ID
$game_temp.lock_command = true
$game_temp.one_action = false
$game_temp.somaria_active = false
elsif $game_temp.fall == true and
$game_temp.fall_time == 0
$game_temp.fall = false
$game_temp.player_transferring = true
$game_temp.player_new_map_id = $game_map.map_id
$game_temp.player_new_x = $game_temp.pre_x
$game_temp.player_new_y = $game_temp.pre_y
$game_temp.player_new_direction = @direction
damage_per = @actor.maxhp * XAS::FALL_DAMAGE_PER / 100
damage_per = 1 if damage_per < 1
$game_player.battler.damage = damage_per
$game_player.battler.damage_pop = true
@actor.hp -= damage_per
blow(0,0)
$game_player.animation_id = XAS::FALL_ANIMATION_ID2
end
end
$game_temp.fall = false if $game_temp.fall_time == 0
end
#--------------------------------------------------------------------------
# Swimming Terrain Update
#--------------------------------------------------------------------------
def swimming_terrain_update
if terrain_tag == XAS::SWIMMING_TERRAIN and
terrain_tag != nil
if $game_system.swimming == false
$game_system.se_play(XAS::SWIMMING_SE)
$game_temp.swimming_se_time = 0
$game_player.clear_setting2
$game_temp.somaria_active = false
end
$game_system.swimming = true
$game_temp.terrain_speed = -1
else
$game_system.swimming = false
$game_temp.terrain_speed = 0
end
end
#--------------------------------------------------------------------------
# Swimming Se Update
#--------------------------------------------------------------------------
def swimming_se_update
if $game_system.swimming == true and
$game_temp.swimming_se_time > 40 and
moving?
$game_temp.swimming_se_time = 0
$game_system.se_play(XAS::SWIMMING_SE)
end
end
#--------------------------------------------------------------------------
# Normal Terrain Update
#--------------------------------------------------------------------------
def normal_terrain_update
if terrain_tag == 0
$game_temp.terrain_speed = 0
$game_system.swimming = false
end
end
#--------------------------------------------------------------------------
# Terrain Effect Update
#--------------------------------------------------------------------------
def terrain_effect_update
unless (moving2? or jumping? or $game_system.fly == true)
fall_terrain_update
swimming_terrain_update if $game_switches[XAS::SWIMMING_ACTIVE_SWITCH_ID] == true
end
swimming_se_update
normal_terrain_update
end
#--------------------------------------------------------------------------
# Movement Update
#--------------------------------------------------------------------------
def movement_update
unless terrain_tag == XAS::FALL_TERRAIN or
terrain_tag == XAS::SLIP_TERRAIN or
self.action != nil
$game_temp.pre_x = @x
$game_temp.pre_y = @y
end
$game_player.walk_anime = true
$game_temp.lock_command = false
if !$game_switches[XPLAT_SWITCH_ID] #-------------------------------[x-plat]
if @actor.states.include?(XAS::CONFUSE_ID) == true
case Input.dir8
when 1
move_right
move_up
@quarter = 9
when 2
move_up
@quarter = 0
when 3
move_up
move_left
@quarter = 7
when 4
move_right
@quarter = 0
when 6
move_left
@quarter = 0
when 7
move_down
move_right
@quarter = 3
when 8
move_down
@quarter = 0
when 9
move_left
move_down
@quarter = 1
end
else
case Input.dir8
when 1
move_left
move_down
@quarter = 1
when 2
move_down
@quarter = 0
when 3
move_down
move_right
@quarter = 3
when 4
move_left
@quarter = 0
when 6
move_right
@quarter = 0
when 7
move_up
move_left
@quarter = 7
when 8
move_up
@quarter = 0
when 9
move_right
move_up
@quarter = 9
end
end
end
end #-------------------------------------------------------------------[x-plat]
#--------------------------------------------------------------------------
# Dash Update
#--------------------------------------------------------------------------
def dash_update
if !$game_switches[XPLAT_SWITCH_ID] #-------------------------------[x-plat]
# return if ($mog_rgss_xas_extra_skill != nil and Input.press?(Input::L))
if Input.press?(XAS_COMMAND::DASH_BUTTON) and
XAS::DASH_SYSTEM == true and
$game_switches[XAS::CT_DISABLE_SWITCH] == false and
$game_temp.xas_charge_time <= 5
if $game_system.move_meter > XAS::DASH_ACTIVE_PERC
if hero_dash_graphic?(@actor)
@character_name = @actor.character_name + "_dash"
else
@character_name = @actor.character_name
end
@move_speed = XAS::DASH_SPEED + $game_system.move_speed + $game_temp.terrain_speed
else
@move_speed = XAS::NORMAL_SPEED + $game_system.move_speed + $game_temp.terrain_speed
if @quarter > 0 and
hero_quarter_graphic?(@actor)
@character_name = @actor.character_name + "_quarter"
else
@character_name = @actor.character_name
end
end
else
@move_speed = XAS::NORMAL_SPEED + $game_system.move_speed + $game_temp.terrain_speed
if @quarter > 0 and
hero_quarter_graphic?(@actor)
@character_name = @actor.character_name + "_quarter"
else
@character_name = @actor.character_name
end
end
end
end #-------------------------------------------------------------------[x-plat]
#--------------------------------------------------------------------------
# Text Popup Update
#--------------------------------------------------------------------------
def text_popup_update
$game_temp.misc_text_time -= 1 if $game_temp.misc_text_time > 0
if $game_temp.misc_text_time == 0 and
$game_temp.misc_text_pop == true
$game_player.battler.damage = $game_temp.misc_text
$game_player.battler.damage_pop = true
$game_temp.misc_text_time = 20
$game_temp.misc_text_pop = false
end
end
#--------------------------------------------------------------------------
# Scroll Map Update
#--------------------------------------------------------------------------
def scroll_map_update(last_real_x,last_real_y)
if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
$game_map.scroll_down(@real_y - last_real_y)
end
if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
$game_map.scroll_left(last_real_x - @real_x)
end
if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
$game_map.scroll_right(@real_x - last_real_x)
end
if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
$game_map.scroll_up(last_real_y - @real_y)
end
end
#--------------------------------------------------------------------------
# Check Trigger Update
#--------------------------------------------------------------------------
def check_trigger_update(last_moving)
unless moving?
if last_moving and
$game_system.fly == false
result = check_event_trigger_here([1,2])
if result == false
unless $DEBUG and Input.press?(Input::CTRL)
if @encounter_count > 0
@encounter_count -= 1
end
end
end
end
if Input.trigger?(Input::C) and
$game_temp.trow_active == false and
$game_temp.take_time == 0
check_event_trigger_here([0])
check_event_trigger_there([0,1,2])
end
end
end
#--------------------------------------------------------------------------
# Update
#--------------------------------------------------------------------------
def update
@actor = $game_party.actors[0]
if @actor != nil
player_dir
temp_update
move_speed_update
throw_player_update
terrain_effect_update
jump_shadow_update
text_popup_update
@quarter = 0 unless moving?
end
last_moving = moving?
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing or
$game_temp.dodge_time_real > 0 or $game_temp.lock_jump == true or
$game_temp.take_time > 0 or $game_temp.fall == true
if @actor != nil
movement_update
dash_update
else
case Input.dir4
when 2
move_down
when 4
move_left
when 6
move_right
when 8
move_up
end
end
end
last_real_x = @real_x
last_real_y = @real_y
super
scroll_map_update(last_real_x,last_real_y)
check_trigger_update(last_moving)
end
end
#===============================================================================
# Sprite_Character
#===============================================================================
class Sprite_Character < RPG::Sprite
#--------------------------------------------------------------------------
# Update
#--------------------------------------------------------------------------
alias xas_charsprite_update update
def update
xas_charsprite_update
# Sprites X Y Effects
if @character_name.include?("Shadow") and
$game_player.jumping?
if $game_player.direction == 2 or
$game_player.direction == 8
self.x = @character.screen_x
self.y = ($game_player.screen_y - 5) + $game_temp.jump_y
else
self.x = $game_player.screen_x
self.y = @character.screen_y
end
if $game_temp.jump_count < 2
self.visible = false
end
#Height Correction
elsif @character_name[/\((\d+)\)/]
self.x = @character.screen_x
self.y = @character.screen_y + $1.to_i
#Throw
elsif @character.throw_on == true and
$game_temp.take_time == 0
self.x = $game_player.screen_x
self.y = $game_player.screen_y - XAS::OBJECT_Y
self.bush_depth = 0
else
self.visible = false if @character_name.include?("Shadow")
self.x = @character.screen_x + @character.extra_x
self.y = @character.screen_y + @character.extra_y
self.opacity = @character.opacity + @character.extra_opacity
self.z = 99999
end
# Zoom
if @zoom_x != @character.zoom_x or
@zoom_y != @character.zoom_y
@zoom_x = @character.zoom_x
@zoom_y = @character.zoom_y
self.zoom_x = @character.zoom_x
self.zoom_y = @character.zoom_y
end
end
end
Administrator
Show Signature
Administrator
Administrator
Administrator
profile
G@MeF@Ce
profile
2.) Insert the new XPLAT script below XAS-window:
it keeps getting better and better ^,^
I also recommend that you use the following scripts as well
Double Tap Dash / Blurr
8-way Shooting + terrain
Xas Creep
- Spoiler:
- Code:
#===============================================================================
# XAS Platform Script! V2.3 1-3-2011
#===============================================================================
# By: Gameface101 and Mr Wiggles
#
# Based off of parts from Cogwheel's Platform Script (66rpg.com)
#
#===============================================================================
# platform enable Switch, to toggle platform mode on or off.
#===============================================================================
XPLAT_SWITCH_ID = 1
#===============================================================================
# Button to make hero jump!
#===============================================================================
JUMP_BUTTON = Input::X
#===============================================================================
# Height adjustment for a single jump, 0 (lowest) - 6 (highest)
#===============================================================================
JUMPADD = 4
#===============================================================================
# number of jumps that can be done in the air. # (set value to = 1, 2, or 3)
#===============================================================================
AIR_JUMP = 0
=begin
change in game by using a script command:
$game_player.air_jump = value
$game_variables[1]
=end
#===============================================================================
# Jump sound settings | JUMP_SOUND file stored in Audio/SE folder
#===============================================================================
JUMP_SOUND = "" # Play Sound when jump
JUMP_VOLUME = 60 # set volume for jump sound
JUMP_PITCH = 100 # set the pitch for jump sound
#===============================================================================
# Character graphic offset: to align the hero's sprite with the tileset
# to appear standing on the ground instead of floating above it.
#===============================================================================
UP = 48 # default = 48 (values must be 0 - 63)
DOWN = 0 # default = 16
SIDE = 32 # default = 32
#===============================================================================
# Enemy Gravity Module: when = enemy_id | return = amount of gravity
#===============================================================================
module E_drop
def self.enemy_weight(id)
case id
when 2
return 10
when 8
return 50
#when 10 # <= just add
#return 1 # <= above else
else
return 0
end
end
end
=begin
# Types of Events for platform:
#
# Add one of these words in upper case in a comment on the first page of the
# event.
#
# FIXED = non-moving event unaffected by platform gravity
# AIR = moving event unaffected by platform gravity
=end
#==============================================================================
# Game_Player
#==============================================================================
class Game_Player < Game_Character
attr_reader :event
attr_accessor :airjump
#===============================================================================
# ●
#===============================================================================
alias platform_init initialize
def initialize
platform_init #reset crash
@event = 4
@jumpnow = 0
@twojump = 0
@apassed = false
@revise_x = 0
@revise_y = 0
@move = false
@airjump = AIR_JUMP
super
end
#===============================================================================
# ●
#===============================================================================
alias xplat_update update
def update
xplat_update
if $game_switches[XPLAT_SWITCH_ID]
if @revise_x == nil and @revise_y == nil
@revise_x = 0
@revise_y = 0
end
if @move_route_forcing
last_moving = moving?
last_real_x = @real_x
last_real_y = @real_y
if (@revise_x != 0 or @revise_y != 0) and !jumping? and !@move
if @revise_x != @real_x - @x * 128 or @revise_y != @real_y - @y * 128
@revise_x = @real_x - @x * 128
@revise_y = @real_y - @y * 128
end
distance1 = 2 ** @move_speed
distance2 = Math.sqrt(@revise_x ** 2 + @revise_y ** 2)
if distance1 > distance2
@real_x = @real_x - @revise_x
@real_y = @real_y - @revise_y
@revise_x = 0
@revise_y = 0
else
@real_x -= (distance1 * @revise_x / distance2).round
@real_y -= (distance1 * @revise_y / distance2).round
@revise_x = @real_x - @x * 128
@revise_y = @real_y - @y * 128
end
anime_update
else
super
end
else
@move = false
#===============================================================================
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
@event_run = false
@move = true
platform = $game_switches[XPLAT_SWITCH_ID]
case Input.dir8
when 1
platform ? move_lower_left_p : move_left_p
when 2
move_down_p #if !platform
when 3
platform ? move_lower_right_p : move_right_p
when 4
move_left_p
when 6
move_right_p
when 7
platform ? move_upper_left_p : move_left_p
when 8
move_up_p if !platform
when 9
platform ? move_upper_right_p : move_right_p
end
end
#===============================================================================
last_real_x = @real_x
last_real_y = @real_y
@real_x = @x * 128 + @revise_x #---speed correction
@real_y = @y * 128 + @revise_y
last_moving = moving?
move_on
if (last_real_x != @real_x or last_real_y != @real_y)
@move_distance = 0 if @move_distance == nil
@move_distance += Math.sqrt((last_real_x - @real_x) ** 2 +
(last_real_y - @real_y) ** 2)
if @move_distance >= 128
@move_distance %= 128
increase_steps
end
anime_update
else
@pattern = 0
end
end
if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
$game_map.scroll_down(@real_y - last_real_y)
end
if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
$game_map.scroll_left(last_real_x - @real_x)
end
if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
$game_map.scroll_right(@real_x - last_real_x)
end
if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
$game_map.scroll_up(last_real_y - @real_y)
end
if last_moving
result = check_event_trigger_here([1,2])
if result == true
if (last_real_x / 128.0).round != @x and
(last_real_y / 128.0).round != @y
if @direction == 2 or @direction == 8
if (last_real_x / 128.0).round > @x
turn_left
else
turn_right
end
else
if (last_real_y / 128.0).round > @y
turn_up
else
turn_down
end
end
elsif (last_real_x / 128.0).round > @x
turn_left
elsif (last_real_x / 128.0).round < @x
turn_right
elsif (last_real_y / 128.0).round > @y
turn_up
elsif (last_real_y / 128.0).round < @y
turn_down
end
end
if result == false
unless $DEBUG and Input.press?(Input::CTRL)
if @encounter_count > 0
@encounter_count -= 1
end
end
end
end
#===============================================================================
# ● Jump
#===============================================================================
jump_max = (JUMPADD + 6) * 10
# jump button!
if Input.press?(JUMP_BUTTON) and !Input.press?(Input::DOWN)
@twojump = 1 if @twojump == 0 and down1(((@x * 128 + @revise_x) / 128.0
).round, ((@y * 128 + @revise_y) / 128.0).round, 5, true)
if (not @apassed) and @twojump <= @airjump
@apassed = true
@jumpnow = jump_max
@twojump += 1
else
@jumpnow += 3
end
else
@apassed = false
end
# Play jump sound
if Input.trigger?(JUMP_BUTTON) and !Input.press?(Input::DOWN)
@jumping_through = true#test
$game_system.se_play(RPG::AudioFile.new(JUMP_SOUND, JUMP_VOLUME, JUMP_PITCH))
end
#===============================================================================
# ● Gravity
#===============================================================================
@jumpnow -= 10
if @jumpnow < 0
@jumpnow = [@jumpnow, -jump_max].max
if not down1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, -@jumpnow, true)
@jumpnow = 0
@twojump = 0
end
elsif @jumpnow > 0
@jumpnow = [@jumpnow, jump_max].min
if not up1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, @jumpnow, true)
@jumpnow = 0
end
end
#===============================================================================
# ● Temp Through - jump through ground
#===============================================================================
@wait_time = 0 if @wait_time == nil
@old_y = @y if @old_y == nil
if @y < @old_y
if !$game_map.passable?(@x, @y-1, 8) and $game_map.passable?(@x, @y-1, 1)#2
@jumping_through = true
@through = true
@wait_time = 8
end
end
# Drop through ground
if Input.trigger?(JUMP_BUTTON) and Input.press?(Input::DOWN)
if !$game_map.passable?(@x, @y+1, 8) and $game_map.passable?(@x, @y+1, 2)
@jumping_through = true
@through = true
@wait_time = 4
end
end
@wait_time -= 1 if @wait_time > 0
if @jumping_through and @wait_time == 0
@jumping_through = false
@through = false
end
#===============================================================================
if !$game_map.passable?(@x, @y, 10)
@jumping_through = true
@through = true
@wait_time = 4
@y -= 1
end
#===============================================================================
# change sprite
@chara_wait = 0 if @chara_wait == nil
actor = $game_party.actors[0]
if Input.press?(JUMP_BUTTON) and !Input.press?(Input::DOWN)
@character_name = actor.character_name + "" # "_ROLL Jump Extension
@changed_set = true
@chara_wait = 10
end
# change back
if @changed_set and @chara_wait == 0
@character_name = actor.character_name
@changed_set = false
else
@chara_wait -= 1 if @chara_wait > 0
end
@old_y = @y
end # platform check
#===============================================================================
if Input.trigger?(Input::C)
check_event_trigger_here([0])
check_event_trigger_there([0,1,2])
end
end
#===============================================================================
alias moveto_original moveto
def moveto(x, y)
@revise_x = 0
@revise_y = 0
moveto_original(x, y)
end
#===============================================================================
def anime_update
if @walk_anime
@anime_count += 1.5
elsif @step_anime
@anime_count += 1
end
if @anime_count > 16 - @move_speed * 2 #crash
if not @step_anime and @stop_count > 0
@pattern = @original_pattern
else
@pattern = (@pattern + 1) % 4
end
@anime_count = 0
end
end
end
#==============================================================================
# Game_Event
#==============================================================================
class Game_Event < Game_Character
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
alias original_update update
def update
#check_jump_event if $game_switches[XPLAT_SWITCH_ID]
original_update
if $game_switches[XPLAT_SWITCH_ID] and $game_map.passable?(@x, @y+1, 2)
unless @id > 999 or @air_event or @fixed_event
@y += 1
end
end
end
#--------------------------------------------------------------------------
# Check if jumped on event
#--------------------------------------------------------------------------
def check_jump_event
px = $game_player.real_x
py = $game_player.real_y
if (px >= @real_x - 28 and px <= @real_x + 28) and
(py >= @real_y - 128 and py <= @real_y + 128)
$game_player.shoot(4)
end
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
alias refresh_original refresh
def refresh
refresh_original
unless @page == nil
for i in @page.list
if i.code == 108 or i.code == 408
# Code for Air event
if i.parameters[0].upcase[/AIR/] != nil
@air_event = true
end
# Code for Fixed event
if i.parameters[0].upcase[/FIXED/] != nil
@fixed_event = true
end
end
end
end
if @air_event and $game_switches[XPLAT_SWITCH_ID]
if @y != @old_y
case rand(6)
when 0..2; turn_right
when 3..6; turn_left
end
@old_y = @y
end
end
end
end
#==============================================================================
# Game_Character
#==============================================================================
class Game_Character
#--------------------------------------------------------------------------
def move_on
if @y < (@y + @revise_y / 128.0).round
@y += 1
@revise_y -= 128
end
if @x > (@x + @revise_x / 128.0).round
@x -= 1
@revise_x += 128
end
if @x < (@x + @revise_x / 128.0).round
@x += 1
@revise_x -= 128
end
if @y > (@y + @revise_y / 128.0).round
@y -= 1
@revise_y += 128
end
end
#--------------------------------------------------------------------------
def last_move?(x, y, direction, distance)
if direction == 2 or direction == 6
distance *= -1
end
if (direction == 2 or direction == 8) and
(y / 128.0).round != ((y - distance) / 128.0).round
return true
end
if (direction == 4 or direction == 6) and
(x / 128.0).round != ((x - distance) / 128.0).round
return true
end
return false
end
#--------------------------------------------------------------------------
def update_move
distance = 2 ** @move_speed
if @y * 128 > @real_y
@real_y = [@real_y + distance, @y * 128].min
# event gravity
if self.is_a?(Game_Event) and $game_switches[XPLAT_SWITCH_ID] and
@air_event == nil
@real_y += E_drop::enemy_weight(self.battler.id)#- test
end
end
if @x * 128 < @real_x
@real_x = [@real_x - distance, @x * 128].max
end
if @x * 128 > @real_x
@real_x = [@real_x + distance, @x * 128].min
end
if @y * 128 < @real_y
@real_y = [@real_y - distance, @y * 128].max
end
if @walk_anime
@anime_count += 1.5
elsif @step_anime
@anime_count += 1
end
end
#--------------------------------------------------------------------------
def moving?
if not $game_switches[XPLAT_SWITCH_ID] or self.is_a?(Game_Event)
result = (@real_x != @x * 128 or @real_y != @y * 128)
return result
end
if @move_route_forcing
return false
else
return (@x != (@real_x / 128.0).round or @y != (@real_y / 128.0).round)
end
end
#--------------------------------------------------------------------------
def moving_a?
if @move == false
if (@move_route.list[@move_route_index].code <= 14 or
@move_route.list[@move_route_index].code == 25)
@move = true
end
return false
end
moving?
end
#--------------------------------------------------------------------------
alias default_update_jump update_jump
def update_jump
# if not in platform run old method
unless $game_switches[XPLAT_SWITCH_ID]
default_update_jump
return
end
@jump_count -= 1
@real_x = (@real_x * @jump_count + @x * 128) / (@jump_count + 1)
@real_y = (@real_y * @jump_count + @y * 128) / (@jump_count + 1)
if @jump_count == 0
@revise_x = 0
@revise_y = 0
end
end
#--------------------------------------------------------------------------
# * Move Upper Left
#--------------------------------------------------------------------------
alias original_move_upper_left move_upper_left
def move_upper_left
if $game_switches[XPLAT_SWITCH_ID] and @air_event == nil
move_left
return
end
original_move_upper_left
end
#--------------------------------------------------------------------------
# * Move Upper Right
#--------------------------------------------------------------------------
alias original_move_upper_right move_upper_right
def move_upper_right
if $game_switches[XPLAT_SWITCH_ID] and @air_event == nil
move_right
return
end
original_move_upper_right
end
#--------------------------------------------------------------------------
# * Move Lower Left
#--------------------------------------------------------------------------
alias original_move_lower_left move_lower_left
def move_lower_left
if $game_switches[XPLAT_SWITCH_ID] and @air_event == nil
move_left
return
end
original_move_lower_left
end
#--------------------------------------------------------------------------
# * Move Lower Right
#--------------------------------------------------------------------------
alias original_move_lower_right move_lower_right
def move_lower_right
if $game_switches[XPLAT_SWITCH_ID] and @air_event == nil
move_right
return
end
original_move_lower_right
end
#--------------------------------------------------------------------------
def move_down_p
turn_down
distance = 2 ** @move_speed
down1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance, true)
end
def move_down_aaaagq
distance = 2 ** @move_speed
down1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance, true)
end
#--------------------------------------------------------------------------
def down1(x, y, distance, down = false)
result = down2(x, y, distance)
if result == false
@event_run = check_event_trigger_touch(x, y+1)
return result
end
if @revise_x < -SIDE
result = down2(x, y + 1, distance, 4)
result &= down2(x - 1, y, distance)
if result == false
if down
move_lower_right_p
if @revise_x > SIDE
@revise_x = SIDE
end
end
return result
end
elsif @revise_x > SIDE
result = down2(x, y + 1, distance, 6)
result &= down2(x + 1, y, distance)
if result == false
if down
move_lower_left_p
if @revise_x < -SIDE
@revise_x = -SIDE
end
end
return result
end
end
@revise_y += distance
return result
end
#--------------------------------------------------------------------------
def down2(x, y, distance, d = 2)
if @revise_y + distance > DOWN
unless passable?(x, y, d)
if @revise_y < DOWN
@revise_y = DOWN
end
return false
end
end
return true
end
#--------------------------------------------------------------------------
def move_left_p
turn_left
distance = 2 ** @move_speed #crash?
left1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance, true)
end
#--------------------------------------------------------------------------
def left1(x, y, distance, left = false)
result = left2(x, y, distance)
if result == false
@event_run = check_event_trigger_touch(x-1, y)
return result
end
if @revise_y < -UP and $game_switches[XPLAT_SWITCH_ID]
result = left2(x - 1, y, distance, 8)
result &= left2(x, y - 1, distance)
if result == false
if left
move_lower_left_p
if @revise_y > DOWN
@revise_y = DOWN
end
end
return result
end
elsif @revise_y > DOWN and $game_switches[XPLAT_SWITCH_ID]
result = left2(x - 1, y, distance, 2)
result &= left2(x, y + 1, distance)
if result == false
if left
move_upper_left_p
if @revise_y < -UP
@revise_y = -UP
end
end
return result
end
end
@revise_x -= distance
return result
end
#--------------------------------------------------------------------------
def left2(x, y, distance, d = 4)
if @revise_x - distance < -SIDE
unless passable?(x, y, d)
if @revise_x > -SIDE
@revise_x = -SIDE
end
return false
end
end
return true
end
#--------------------------------------------------------------------------
def move_right_p
turn_right
distance = 2 ** @move_speed
right1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance, true)
end
#--------------------------------------------------------------------------
def right1(x, y, distance, right = false)
result = right2(x, y, distance)
if result == false
@event_run = check_event_trigger_touch(x+1, y)
return result
end
if @revise_y < -UP and $game_switches[XPLAT_SWITCH_ID]
result = right2(x + 1, y, distance, 8)
result &= right2(x, y - 1, distance)
if result == false
if right
move_lower_right_p
if @revise_y > DOWN
@revise_y = DOWN
end
end
return result
end
elsif @revise_y > DOWN and $game_switches[XPLAT_SWITCH_ID]
result = right2(x + 1, y, distance, 2)
result &= right2(x, y + 1, distance)
if result == false
if right
move_upper_right_p
if @revise_y < -UP
@revise_y = -UP
end
end
return result
end
end
@revise_x += distance
return result
end
#--------------------------------------------------------------------------
def right2(x, y, distance, d = 6)
if @revise_x + distance > SIDE
unless passable?(x, y, d)
if @revise_x < SIDE
@revise_x = SIDE
end
return false
end
end
return true
end
#--------------------------------------------------------------------------
def move_up_p
turn_up
distance = 2 ** @move_speed
up1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance, true)
end
def move_up_aaaagq
distance = 2 ** @move_speed
up1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance, true)
end
#--------------------------------------------------------------------------
def up1(x, y, distance, up = false)
result = up2(x, y, distance)
if result == false
@event_run = check_event_trigger_touch(x, y-1)
return result
end
if @revise_x < -SIDE
result = up2(x, y - 1, distance, 4)
result &= up2(x - 1, y, distance)
if result == false
if up
move_upper_right_p
if @revise_x > SIDE
@revise_x = SIDE
end
end
return result
end
elsif @revise_x > SIDE
result = up2(x, y - 1, distance, 6)
result &= up2(x + 1, y, distance)
if result == false
if up
move_upper_left_p
if @revise_x < -SIDE
@revise_x = -SIDE
end
end
return result
end
end
@revise_y -= distance
return result
end
#--------------------------------------------------------------------------
def up2(x, y, distance, d = 8)
if @revise_y - distance < -UP
unless passable?(x, y, d)
if @revise_y > -UP
@revise_y = -UP
end
return false
end
end
return true
end
#--------------------------------------------------------------------------
def move_lower_left_p
unless @direction_fix
@direction = (@direction == 6 ? 4 : @direction == 8 ? 2 : @direction)
end
distance = (2 ** @move_speed) / Math.sqrt(2)
if @direction == 2
turn_left unless down1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_down if @event_run
unless @event_run
if last_move?(@real_x, @real_y, 2, distance)
result = check_event_triggers_here([1,2], false)
if result == true
return
end
end
move_on
if @revise_y > DOWN and -UP > @revise_y - distance
@revise_y = DOWN
end
turn_down unless left1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_left if @event_run
end
else
turn_down unless left1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_left if @event_run
unless @event_run
if last_move?(@real_x, @real_y, 4, distance)
result = check_event_triggers_here([1,2], false)
if result == true
return
end
end
move_on
if @revise_x + distance> SIDE and -SIDE > @revise_x
@revise_x = -SIDE
end
turn_left unless down1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_down if @event_run
end
end
end
#------------------------------------------------------------------------------
def move_lower_right_p
unless @direction_fix
@direction = (@direction == 4 ? 6 : @direction == 8 ? 2 : @direction)
end
distance = (2 ** @move_speed) / Math.sqrt(2)
if @direction == 2
turn_right unless down1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_down if @event_run
unless @event_run
if last_move?(@real_x, @real_y, 2, distance)
result = check_event_triggers_here([1,2], false)
if result == true
return
end
end
move_on
if @revise_y > DOWN and -UP > @revise_y - distance
@revise_y = DOWN
end
turn_down unless right1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_right if @event_run
end
else
turn_down unless right1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_right if @event_run
unless @event_run
if last_move?(@real_x, @real_y, 6, distance)
result = check_event_triggers_here([1,2], false)
if result == true
return
end
end
move_on
if @revise_x > SIDE and -SIDE > @revise_x - distance
@revise_x = SIDE
end
turn_right unless down1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_down if @event_run
end
end
end
#--------------------------------------------------------------------------
def move_upper_left_p
unless @direction_fix
@direction = (@direction == 6 ? 4 : @direction == 2 ? 8 : @direction)
end
distance = (2 ** @move_speed) / Math.sqrt(2)
if @direction == 8
turn_left unless up1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_up if @event_run
unless @event_run
if last_move?(@real_x, @real_y, 8, distance)
result = check_event_triggers_here([1,2], false)
if result == true
return
end
end
move_on
if @revise_y + distance > DOWN and -UP > @revise_y
@revise_y = -UP
end
turn_up unless left1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_left if @event_run
end
else
turn_up unless left1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_left if @event_run
unless @event_run
if last_move?(@real_x, @real_y, 4, distance)
result = check_event_triggers_here([1,2], false)
if result == true
return
end
end
move_on
if @revise_x > SIDE and -SIDE > @revise_x - distance
@revise_x = SIDE
end
turn_left unless up1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_up if @event_run
end
end
end
#--------------------------------------------------------------------------
def move_upper_right_p
unless @direction_fix
@direction = (@direction == 4 ? 6 : @direction == 2 ? 8 : @direction)
end
distance = (2 ** @move_speed) / Math.sqrt(2)
if @direction == 8
turn_right unless up1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_up if @event_run
unless @event_run
if last_move?(@real_x, @real_y, 8, distance)
result = check_event_triggers_here([1,2], false)
if result == true
return
end
end
move_on
if @revise_y + distance > DOWN and -UP > @revise_y
@revise_y = -UP
end
turn_up unless right1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_right if @event_run
end
else
turn_up unless right1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_right if @event_run
unless @event_run
if last_move?(@real_x, @real_y, 6, distance)
result = check_event_triggers_here([1,2], false)
if result == true
return
end
end
move_on
if @revise_x > SIDE and -SIDE > @revise_x - distance
@revise_x = SIDE
end
turn_right unless up1(((@x * 128 + @revise_x) / 128.0).round,
((@y * 128 + @revise_y) / 128.0).round, distance)
turn_up if @event_run
end
end
end
#--------------------------------------------------------------------------
def check_event_triggers_here(triggers, run = true)
result = false
if $game_system.map_interpreter.running?
return result
end
for event in $game_map.events.values
if event.x == ((@x * 128 + @revise_x) / 128.0).round and
event.y == ((@y * 128 + @revise_y) / 128.0).round and
triggers.include?(event.trigger)
if not event.jumping? and event.over_trigger?
if event.list.size > 1
if run == true
event.start
end
result = true
end
end
end
end
return result
end
#--------------------------------------------------------------------------
alias default_move_custom move_type_custom
def move_type_custom
unless $game_switches[XPLAT_SWITCH_ID]
default_move_custom
return
end
if jumping? or moving_a?
return
end
while @move_route_index < @move_route.list.size
command = @move_route.list[@move_route_index]
if command.code == 0
if @move_route.repeat
@move_route_index = 0
end
unless @move_route.repeat
if @move_route_forcing and not @move_route.repeat
@move_route_forcing = false
@move_route = @original_move_route
@move_route_index = @original_move_route_index
@original_move_route = nil
end
@stop_count = 0
end
return
end
if command.code <= 14
case command.code
when 1
move_down
when 2
move_left
when 3
move_right
when 4
move_up
when 5
move_lower_left
when 6
move_lower_right
when 7
move_upper_left
when 8
move_upper_right
when 9
move_random
when 10
move_toward_player
when 11
move_away_from_player
when 12
move_forward
when 13
move_backward
when 14
jump(command.parameters[0], command.parameters[1])
end
if not @move_route.skippable and not moving? and not jumping?
return
end
@move_route_index += 1
return
end
if command.code == 15
@wait_count = command.parameters[0] * 2 - 1
@move_route_index += 1
return
end
if command.code >= 16 and command.code <= 26
case command.code
when 16
turn_down
when 17
turn_left
when 18
turn_right
when 19
turn_up
when 20
turn_right_90
when 21
turn_left_90
when 22
turn_180
when 23
turn_right_or_left_90
when 24
turn_random
when 25
turn_toward_player
when 26
turn_away_from_player
end
@move_route_index += 1
return
end
if command.code >= 27
case command.code
when 27
$game_switches[command.parameters[0]] = true
$game_map.need_refresh = true
when 28
$game_switches[command.parameters[0]] = false
$game_map.need_refresh = true
when 29
@move_speed = command.parameters[0]
when 30
@move_frequency = command.parameters[0]
when 31
@walk_anime = true
when 32
@walk_anime = false
when 33
@step_anime = true
when 34
@step_anime = false
when 35
@direction_fix = true
when 36
@direction_fix = false
when 37
@through = true
when 38
@through = false
when 39
@always_on_top = true
when 40
@always_on_top = false
when 41
@tile_id = 0
@character_name = command.parameters[0]
@character_hue = command.parameters[1]
if @original_direction != command.parameters[2]
@direction = command.parameters[2]
@original_direction = @direction
@prelock_direction = 0
end
if @original_pattern != command.parameters[3]
@pattern = command.parameters[3]
@original_pattern = @pattern
end
when 42
@opacity = command.parameters[0]
when 43
@blend_type = command.parameters[0]
when 44
$game_system.se_play(command.parameters[0])
when 45
result = eval(command.parameters[0])
end
@move_route_index += 1
return
end
end
end
end
it keeps getting better and better ^,^
I also recommend that you use the following scripts as well
Double Tap Dash / Blurr
8-way Shooting + terrain
Xas Creep
Administrator
Show Signature
Active Member
Active Member
Active Member
profile
Reala
profile
I tried the new platform script, what's different about it?
Active Member
Show Signature
Active Member
Administrator
Administrator
Administrator
profile
G@MeF@Ce
profile
this newer version includes setting different weight for your enemies based upon enemy_ID.
Administrator
Show Signature
Similar topics