Guest Access
Administrator
Administrator
![Administrator Administrator](https://2img.net/u/3113/12/83/19/album/g101_p11.gif)
Administrator
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? ^,^
G@MeF@Ce
![]() | ![]() | |
![]() | ||
![]() | ![]() |
![Administrator Administrator](https://2img.net/u/3113/12/83/19/album/g101_p11.gif)
profile
![](https://2img.net/u/3113/12/83/19/album/quote_13.png)
Administrator
Show Signature
Active Member
Active Member
![Active Member Active Member](https://2img.net/u/3113/12/83/19/album/active13.gif)
Active Member
profile
Yea lol, I think it's cause it's on XP n XP was meant for Overhead games.
Reala
![]() | ![]() | |
![]() | ||
![]() | ![]() |
![Active Member Active Member](https://2img.net/u/3113/12/83/19/album/active13.gif)
profile
![](https://2img.net/u/3113/12/83/19/album/quote_13.png)
Active Member
Show Signature
Active Member
Administrator
Administrator
![Administrator Administrator](https://2img.net/u/3113/12/83/19/album/g101_p11.gif)
Administrator
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?
G@MeF@Ce
![]() | ![]() | |
![]() | ||
![]() | ![]() |
![Administrator Administrator](https://2img.net/u/3113/12/83/19/album/g101_p11.gif)
profile
![](https://2img.net/u/3113/12/83/19/album/quote_13.png)
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 Active Member](https://2img.net/u/3113/12/83/19/album/active13.gif)
Active Member
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.
Reala
![]() | ![]() | |
![]() | ||
![]() | ![]() |
![Active Member Active Member](https://2img.net/u/3113/12/83/19/album/active13.gif)
profile
![](https://2img.net/u/3113/12/83/19/album/quote_13.png)
Active Member
Show Signature
Active Member
Administrator
Administrator
![Administrator Administrator](https://2img.net/u/3113/12/83/19/album/g101_p11.gif)
Administrator
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.
G@MeF@Ce
![]() | ![]() | |
![]() | ||
![]() | ![]() |
![Administrator Administrator](https://2img.net/u/3113/12/83/19/album/g101_p11.gif)
profile
![](https://2img.net/u/3113/12/83/19/album/quote_13.png)
[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 Active Member](https://2img.net/u/3113/12/83/19/album/active13.gif)
Active Member
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
Reala
![]() | ![]() | |
![]() | ||
![]() | ![]() |
![Active Member Active Member](https://2img.net/u/3113/12/83/19/album/active13.gif)
profile
![](https://2img.net/u/3113/12/83/19/album/quote_13.png)
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 Administrator](https://2img.net/u/3113/12/83/19/album/g101_p11.gif)
Administrator
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:
G@MeF@Ce
![]() | ![]() | |
![]() | ||
![]() | ![]() |
![Administrator Administrator](https://2img.net/u/3113/12/83/19/album/g101_p11.gif)
profile
![](https://2img.net/u/3113/12/83/19/album/quote_13.png)
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 Administrator](https://2img.net/u/3113/12/83/19/album/g101_p11.gif)
Administrator
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
G@MeF@Ce
![]() | ![]() | |
![]() | ||
![]() | ![]() |
![Administrator Administrator](https://2img.net/u/3113/12/83/19/album/g101_p11.gif)
profile
![](https://2img.net/u/3113/12/83/19/album/quote_13.png)
- 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 Active Member](https://2img.net/u/3113/12/83/19/album/active13.gif)
Active Member
profile
I tried the new platform script, what's different about it?
Reala
![]() | ![]() | |
![]() | ||
![]() | ![]() |
![Active Member Active Member](https://2img.net/u/3113/12/83/19/album/active13.gif)
profile
![](https://2img.net/u/3113/12/83/19/album/quote_13.png)
Active Member
Show Signature
Active Member
Administrator
Administrator
![Administrator Administrator](https://2img.net/u/3113/12/83/19/album/g101_p11.gif)
Administrator
profile
G@MeF@Ce
![]() | ![]() | |
![]() | ||
![]() | ![]() |
![Administrator Administrator](https://2img.net/u/3113/12/83/19/album/g101_p11.gif)
profile
![](https://2img.net/u/3113/12/83/19/album/quote_13.png)
this newer version includes setting different weight for your enemies based upon enemy_ID.
Administrator
Show Signature
Similar topics