Guest Access
Active Member
Active Member
Active Member
profile
Reala
profile
Yea but there gonna make some awesome new addon
EDIT: How?
EDIT: How?
Active Member
Show Signature
Active Member
EVENTALIST
EVENTALIST
Active Member
Active Member
EVENTALIST
EVENTALIST
EVENTALIST
profile
mr_wiggles
profile
oh i scripted my own version from XAS 3.7
EVENTALIST
Show Signature
EVENTALIST
C.O.R.N.
Administrator
Administrator
Administrator
profile
G@MeF@Ce
profile
^,^ - yeah wiggles is much more than just amazing event systems...
he conjured up the core for XPLAT!
ok I had a rough weekend, but I found time to make this and share with y'all...
check out XAS3.82 + 8XPLATT v1.1 :-D
just a sample, still got some more tweakin' to do like bombs dropping with gravity and gravity speed so different enemies can show a different weight...
made edits to the XAS moving and tool effect scripts, added the 8-way shooting by Hackel and the killer platform script...
he conjured up the core for XPLAT!
ok I had a rough weekend, but I found time to make this and share with y'all...
check out XAS3.82 + 8XPLATT v1.1 :-D
just a sample, still got some more tweakin' to do like bombs dropping with gravity and gravity speed so different enemies can show a different weight...
made edits to the XAS moving and tool effect scripts, added the 8-way shooting by Hackel and the killer platform script...
Administrator
Show Signature
Tutorial Wizardmaster
Tutorial Wizardmaster
Tutorial Wizardmaster
profile
calvin624
profile
That was fast Gameface
Downloading now.
Downloading now.
Tutorial Wizardmaster
Show Signature
Active Member
Active Member
Active Member
profile
Reala
profile
YEA! But i can barely use it cuz i got school in 30 min > And that WAS fast thanx
Its a master piece, but the XAS fall system doesnt work good with it, so is it a way to make a common event thats parallel process and activatse when a terrain tag has a certain number?
EDIT: Nvm, i got it now and it works. one more problem. If theres a 2 row line of ground, when i jump on it, it looks normal. If theres a 3 row strip of land, then when i jump on it, im in between the walkable part (grass) and the unwalkable part (dirt un der the grass) idk the cause of this but its not gonna stop me from using this. And how do i disable the roll system. I mean after u jump and hold the button, u stay in jump position. Ik its suppose to be rolling, but how do i stop it?
Its a master piece, but the XAS fall system doesnt work good with it, so is it a way to make a common event thats parallel process and activatse when a terrain tag has a certain number?
EDIT: Nvm, i got it now and it works. one more problem. If theres a 2 row line of ground, when i jump on it, it looks normal. If theres a 3 row strip of land, then when i jump on it, im in between the walkable part (grass) and the unwalkable part (dirt un der the grass) idk the cause of this but its not gonna stop me from using this. And how do i disable the roll system. I mean after u jump and hold the button, u stay in jump position. Ik its suppose to be rolling, but how do i stop it?
Active Member
Show Signature
Active Member
Administrator
Administrator
Administrator
profile
G@MeF@Ce
profile
^ thanks for the bugz, next version will hopefully have those corrections...
to disable roll, try this edit to the script
*also did you see how I used the switch to disable jumping during a textbox?
to disable roll, try this edit to the script
- Spoiler:
- Code:
#==============================================================================
# XAS Platform Script! V2.2 (disable roll)
#==============================================================================
# By: Gameface101 and Mr Wiggles
#
# Based off of parts from Cogwheel's Platform Script (66rpg.com)
#==============================================================================
# CONFIG
#==============================================================================
# Character graghic offset, used for makeing the character look like they are
# standing on the ground insted of floating on it. (valuse must be 0 - 63)
UP = 48 # default = 48
DOWN = 0 # default = 16
SIDE = 32 # default = 32
#------------------------------------------------------------------------------
JUMPADD = 4 # How High can you jump, 0 (lowest) - 6 (highest)
#------------------------------------------------------------------------------
XPLAT_SWITCH_ID = 1 # platform disable Switch, to turn platform mode
# on or off.
#------------------------------------------------------------------------------
AIR_JUMP = 0 # number of jumps that can be done in the air.
# can be changed in game by useing a script command:
# $game_player.air_jump = value
# $game_variables[1]
# (set value to = 1, 2, or 3)
#------------------------------------------------------------------------------
JUMP_BUTTON = Input::X # Button used to jump with
JUMP_SOUND = "V_attack2" # Play Sound when jump
JUMP_VOLUME = 60 # set volume for jump sound
JUMP_PITCH = 100 # set the pitch for jump sound
#------------------------------------------------------------------------------
# Types of Events for platform:
# Add one of these words in upper case in a comment on the first page of the
# event.
#
# FIXED = Event is un effected by platform
# AIR = Event will be "flying"
#==============================================================================
#==============================================================================
# Game_Player
#==============================================================================
class Game_Player < Game_Character
attr_reader :event
attr_accessor :airjump
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias platform_init initialize
def initialize
platform_init #crash on reset
@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] # platform check
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, and $game_map.passable?(@x, @y-1, 1)#2
@jumping_through = true
@through = true
@wait_time = 8#-----------------------bug
end
end
# Drop through ground
if Input.trigger?(JUMP_BUTTON) and Input.press?(Input::DOWN)
if !$game_map.passable?(@x, @y+1, 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
#---------------------- Unstuck fix --------------------------------
# if !$game_map.passable?(@x, @y, 10)
# @jumping_through = true
# @through = true
# @wait_time = 8#4
# @y -= 1
# end
#---------------------- Jump Character Set --------------------------------
# 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
#---------------------- Event 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 origonal_update update
def update
#check_jump_event if $game_switches[XPLAT_SWITCH_ID]
origonal_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_origonal refresh
def refresh
refresh_origonal
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 == 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 += DOWN
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 origonal_move_upper_left move_upper_left
def move_upper_left
if $game_switches[XPLAT_SWITCH_ID] and @air_event == nil
move_left
return
end
origonal_move_upper_left
end
#--------------------------------------------------------------------------
# * Move Upper Right
#--------------------------------------------------------------------------
alias origonal_move_upper_right move_upper_right
def move_upper_right
if $game_switches[XPLAT_SWITCH_ID] and @air_event == nil
move_right
return
end
origonal_move_upper_right
end
#--------------------------------------------------------------------------
# * Move Lower Left
#--------------------------------------------------------------------------
alias origonal_move_lower_left move_lower_left
def move_lower_left
if $game_switches[XPLAT_SWITCH_ID] and @air_event == nil
move_left
return
end
origonal_move_lower_left
end
#--------------------------------------------------------------------------
# * Move Lower Right
#--------------------------------------------------------------------------
alias origonal_move_lower_right move_lower_right
def move_lower_right
if $game_switches[XPLAT_SWITCH_ID] and @air_event == nil
move_right
return
end
origonal_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,
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,
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 =
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
# if not in platform run old method
unless $game_switches[XPLAT_SWITCH_ID]
default_move_custom
return
end
# New method:
if jumping? or moving_a?
return
end
# 移動コマンドのリストの最後に到達するまでループ
while @move_route_index < @move_route.list.size
# 移動コマンドを取得
command = @move_route.list[@move_route_index]
# コマンドコード 0 番 (リストの最後) の場合
if command.code == 0
# オプション [動作を繰り返す] が ON の場合
if @move_route.repeat
# 移動ルートのインデックスを最初に戻す
@move_route_index = 0
end
# オプション [動作を繰り返す] が OFF の場合
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
# オプション [移動できない場合は無視] が OFF で、移動失敗の場合
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 # 右に 90 度回転
turn_right_90
when 21 # 左に 90 度回転
turn_left_90
when 22 # 180 度回転
turn_180
when 23 # 右か左に 90 度回転
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 # スイッチ ON
$game_switches[command.parameters[0]] = true
$game_map.need_refresh = true
when 28 # スイッチ OFF
$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 # 移動時アニメ ON
@walk_anime = true
when 32 # 移動時アニメ OFF
@walk_anime = false
when 33 # 停止時アニメ ON
@step_anime = true
when 34 # 停止時アニメ OFF
@step_anime = false
when 35 # 向き固定 ON
@direction_fix = true
when 36 # 向き固定 OFF
@direction_fix = false
when 37 # すり抜け ON
@through = true
when 38 # すり抜け OFF
@through = false
when 39 # 最前面に表示 ON
@always_on_top = true
when 40 # 最前面に表示 OFF
@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 # SE の演奏
$game_system.se_play(command.parameters[0])
when 45 # スクリプト
result = eval(command.parameters[0])
end
@move_route_index += 1
return
end
end
end
end
*also did you see how I used the switch to disable jumping during a textbox?
Administrator
Show Signature
Active Member
Active Member
Active Member
profile
Reala
profile
Okay, disregard the walk through the ground thing. It was problems with how I setup my maps, but the new disable roll script gave me errors, is there a specific line that makes the actor roll after a jump?
Active Member
Show Signature
Active Member
Similar topics