Hello all, while I signed up for an account here a few months ago, I've mostly been lurking and taking advantage of the great resources on here. I'm still learning my way around RMXP, but I've been making steady progress with it ^_^
As a teenager I often made my own games using the Games Factory, and somewhat studied QBasic, Visual Basic, and Java. Punk rock won my heart though, so I put most of it away when I started playing bass in various punk bands. Fast forward almost a decade ( @_@) and I'm still playing in punk bands (and making my own electronic music on the side). I stumbled upon RMXP after deciding that the time I put into playing video games should go into creating them instead. I've been bumbling my way around it since ^_^
I look forward to meeting the rest of you. Thank you for all the lovely resources on this forum ^_^
Soundcloud links:
Forgotten - Chiptune Mix (http://snd.sc/Qb8d2R) - Darker track, made in FL Studio 9 with various 8-bit VSTis, video game soundfonts, and NES/Game Boy samples. So not a 'true' chiptune xD
Collection of various more upbeat tunes (http://snd.sc/ZDi01T) - kinda self-explanatory ;) Also made in FL Studio. I used more stuff to make these than I care to list ;) (PM me if you're interested!)
Feel free to use these in your game. They are released under a Creative Commons Attribution-NonCommercial-ShareAlike (http://creativecommons.org/licenses/by-nc-sa/3.0/) license. (http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png)
Welcome to CP :)
Or rather, welcome out in the open!
:welcome:
I'm a music producer myself. :)
Welcome. I'll criticize your music sometime when I'm not tired as hell. :P I have some things to say there.
Until then, I hope you enjoy your time here. I'm a music producer as well, check out my music here:
www.ksciaa.bandcamp.com
and here
www.soundcloud.com/ksciaa
Welcome to cp.
Welcome to Chaos!
Welcome to CP :)!
Thanks everyone for the warm welcome ^_^.
Quote from: Subsonic_Noise on November 13, 2012, 08:03:29 pm
Welcome. I'll criticize your music sometime when I'm not tired as hell. :P I have some things to say there.
Until then, I hope you enjoy your time here. I'm a music producer as well, check out my music here:
www.ksciaa.bandcamp.com
and here
www.soundcloud.com/ksciaa
I look forward to your critique, I know I'm not the best at making music (I blame playing punk 'music' for so long xD). I really dig your tracks, you're a much better composer than I ;)
Quote from: Blizzard on November 13, 2012, 03:03:23 pm
I'm a music producer myself. :)
I would love to hear your music as well Blizzard! ^_^
Sure thing. You have demos on my website: http://www.blizzard-borealis.com
And basically my full first album and parts of my second on Soundcloud, including some free and commercial remixes: http://soundcloud.com/blizzard-borealis
I seriously have to finish that second album already. >_>
I haven't posted in a welcome topic for awhile. Welcome to Chaos! Hope you stick around, we need some activity around here. D:
Quote from: Blizzard on November 14, 2012, 03:07:02 pm
Sure thing. You have demos on my website: http://www.blizzard-borealis.com
And basically my full first album and parts of my second on Soundcloud, including some free and commercial remixes: http://soundcloud.com/blizzard-borealis
Great stuff, trance is my favorite music to rave to ^_^
QuoteI seriously have to finish that second album already. >_>
I Know that feel all too well @_@
Quote from: gameus on November 15, 2012, 07:22:33 am
I haven't posted in a welcome topic for awhile. Welcome to Chaos! Hope you stick around, we need some activity around here. D:
I plan on sticking around; y'all seem like a friendly, intelligent bunch. I'm looking forward to getting to you know you and RMXP better ^_^
Welcome to Chaos :haha:
RMXP is starting to get outdated, even thought I haven't tried the following versions :facepalm:
:shy:
Quote from: Apidcloud on November 15, 2012, 07:56:17 pm
RMXP is starting to get outdated, even thought I haven't tried the following versions :facepalm:
:shy:
It may be getting outdated (so to speak), but that just means there's more resources and help available for it ^_^ Is VX really any better?
Also I'd love to try out ARC, but seeing as it's currently unfinished it makes it a wee bit difficult to release a game you make with it xD
Well, in terms of performance in scripting, it really gets better (so I herd :D)
Graphical wise, I don't have a clue, but it seems cleaner :-*
Quote from: candi.horror on November 15, 2012, 06:49:31 pm
Quote from: Blizzard on November 14, 2012, 03:07:02 pm
Sure thing. You have demos on my website: http://www.blizzard-borealis.com
And basically my full first album and parts of my second on Soundcloud, including some free and commercial remixes: http://soundcloud.com/blizzard-borealis
Great stuff, trance is my favorite music to rave to ^_^
IDK if you were able to listen to my most recent stuff, because I had to remove it. You know, the guys from the label said I should remove still unreleased tracks. ._.; But I am planning to finish this album within the next few months.
I only heard what you currently have on your Soundcloud, so I suppose I missed out on your unreleased tracks. I'm looking forward to hearing your second album, getting an album (or even a demo) finished can be rough but i swear it's worth it. I wish you luck in finishing it.
I would also like to complement you as a scripter, Blizzard. Blizz-ABS is a wonderful piece of work. I plan on using it for my side-scrolling mecha ARPG. However, it is still missing a gravity/platformer plugin. To this end, I hope I can contribute. I've never scripted in Ruby before, but I did rack up a good deal of experience as a teenager with Visual Basic (3.0 and 4.0). I still remember bits of it, although I wouldn't call myself proficient in it anymore by any means. Regardless I feel like I have the experience to use creating this platformer plug-in as a crash course in RBSS/Ruby. Thank you for the inspiration, I found the plug-in I need but it is for XAS. While XAS is a flashy ABS, with a somewhat somewhat straightforward configuration; its code feels weird to me, the reliance on event 'tools' seems wasteful in terms of performance, the AI is wanting, and there's no anti-lag system. Your ABS is simply superior in every way, and I look forward to the challenge of creating a plug-in worthy of it.
Well, off to scripting school (http://forum.chaos-project.com/index.php/topic,57.0.html) I go, wish me luck!
[spoiler]
I hope to be able to utilize some of the Platformer Plug-In for XAS for this. If you're interested, here's what I'm working with. I will be referencing the Blizz-ABS manual in-depth to see if/how I can convert this; failing that gutting what I can and creating the rest around that.
[code]#==============================================================================
# XAS Platform Script! V3.5
#==============================================================================
# By: mr_wiggles, moghunter, g@mef@ce
#
# Based off of parts from Cogwheel's Platform Script (66rpg.com)
#==============================================================================
# CONFIG
#==============================================================================
XPLAT_SWITCH_ID = 1 # platform disable Switch, to turn platform mode
# on or off.
#-------------------------------------------------------------------------------
# Character graphic offset, used for making the character look like they are
# standing on the ground instead of floating on it. (values 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)
#------------------------------------------------------------------------------
AIR_JUMP = 1 # number of jumps that can be done in the air.
# can be changed in game by using a script command:
# $game_player.air_jump = value
# $game_variables[1]
# (set value to = 1, 2, or 3)
#------------------------------------------------------------------------------
JUMP_STAMINA = 20 # ct cost when jump
JUMP_NEED = 10 # ct requirement to jump
#------------------------------------------------------------------------------
JUMP_BUTTON = Input::X # Button used to jump with
JUMP_SOUND = "V_Attack3" # Play Sound when jump
JUMP_VOLUME = 100 # set volume for jump sound
JUMP_PITCH = 100 # set the pitch for jump sound
JUMP_ANIMATION_ID = 0
AIR_JUMP_ANIMATION_ID = 250
GROUND_ANIMATION_ID = 250
#------------------------------------------------------------------------------
# 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
attr_accessor :revise_x
attr_accessor :revise_y
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
def initialize
super
@event = 4
@jumpnow = 0
@twojump = 0
@apassed = false
@revise_x = 0
@revise_y = 0
@move = false
@airjump = AIR_JUMP
@correct_height = false
end
#--------------------------------------------------------------------------
# ● can_jump? # +++ EDITED ++++
#--------------------------------------------------------------------------
def can_jump?(jump_max)
return false if $game_system.map_interpreter.running?
return false if @move_route_forcing
return false if self.knockbacking?
return false if self.acting?
return false if self.battler.hp == 0
return false if $game_player.pickup_lock
return false if $game_temp.xas_charge_time > 10
return false if Input.press?(Input::DOWN)
return false if $game_system.action_meter<= JUMP_NEED
return true
end
#--------------------------------------------------------------------------
# ● can_xplat_move? # +++ EDITED ++++
#--------------------------------------------------------------------------
def can_xplat_move?
return false if moving?
return false if $game_system.map_interpreter.running?
return false if @move_route_forcing
return false if @force_move_times > 0
return true
end
#--------------------------------------------------------------------------
# ● can_gravity? # +++ EDITED ++++
#--------------------------------------------------------------------------
def can_gravity?(jump_max)
return true
end
#--------------------------------------------------------------------------
# ● can_temp_through? # +++ EDITED ++++
#--------------------------------------------------------------------------
def can_temp_through?(jump_max)
return true
end
#--------------------------------------------------------------------------
# ● Movement Command # +++ EDITED ++++
#--------------------------------------------------------------------------
def update_xplat_movement_commnad
return unless can_xplat_move?
@event_run = false
@move = true
platform = $game_switches[XPLAT_SWITCH_ID]
case Input.dir8
when 1
#platform ? move_lower_left_p : move_left_p
move_left_p #+++ EDITED ++++
when 2
move_down_p# if !platform
when 3
#platform ? move_lower_right_p : move_right_p
move_right_p #+++ EDITED ++++
when 4
move_left_p
when 6
move_right_p
when 7
#platform ? move_upper_left_p : move_left_p
move_left_p #+++ EDITED ++++
when 8
turn_up#move_up_p# if !platform
when 9
#platform ? move_upper_right_p : move_right_p
move_right_p #+++ EDITED ++++
end
end
#--------------------------------------------------------------------------
# ● Jumping_Effect (Jump Button Pressed) # +++ EDITED ++++
#--------------------------------------------------------------------------
def update_xplat_jumping_effect(jump_max)
return unless can_jump?(jump_max)
@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
if @twojump > 0
$game_player.animation_id = AIR_JUMP_ANIMATION_ID
else
$game_player.animation_id = JUMP_ANIMATION_ID
end
@apassed = true
@jumpnow = jump_max
@twojump += 1
$game_system.se_play(RPG::AudioFile.new(JUMP_SOUND, JUMP_VOLUME, JUMP_PITCH))
@jumping_through = true
$game_system.action_meter -= JUMP_STAMINA
else
@jumpnow += 3
end
end
#--------------------------------------------------------------------------
# ● Gravity # +++ EDITED ++++
#--------------------------------------------------------------------------
def update_xplat_gravity(jump_max)
return unless can_gravity?(jump_max)
@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)
@correct_height = true if @twojump != 0 # ++++ EDITED ++++
@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
end
#--------------------------------------------------------------------------
# ● Temp Through # +++ EDITED ++++
#--------------------------------------------------------------------------
def update_xplat_temp_through(jump_max)
return unless can_temp_through?(jump_max)
# Jump up 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 = 2#-----------------------Xbug
end
end
# Drop down 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
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
alias xplat_update update
def update
xplat_update
@move_speed = XAS::NORMAL_SPEED if @move_speed == nil #+++ EDITED ++++
return if @force_move_times > 0 # ++++ EDITED ++++
if $game_switches[XPLAT_SWITCH_ID] # platform check
if @revise_x == nil and @revise_y == nil
@revise_x = 0
@revise_y = 0
@correct_height = false
end
# ++++ EDITED ++++
if (@jumpnow == 0 and @correct_height)
@revise_y = 0
@correct_height = false
$game_player.animation_id = GROUND_ANIMATION_ID
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
else
super
end
else
@move = false
update_xplat_movement_commnad # +++ EDITED ++++
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_update2 #-------------------------------------for dash
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
if Input.press?(JUMP_BUTTON)
update_xplat_jumping_effect(jump_max)
else
@apassed = false
end
#---------------------- Gravity --------------------------------
update_xplat_gravity(jump_max) # +++ EDITED ++++
#---------------------- Temp Through --------------------------------
update_xplat_temp_through(jump_max) # +++ EDITED ++++
#---------------------- Unstuck fix --------------------------------
# if !$game_map.passable?(@x, @y, 10)
# @jumping_through = true
# @through = true
# @wait_time = 8#4
# @y -= 1
# end
end # platform check
#---------------------- Event Check --------------------------------
#if Input.trigger?(Input::C)
# check_event_trigger_here([0])
# check_event_trigger_there([0,1,2])
#return if $game_map.events.values == event.battler #?
#end
end
#--------------------------------------------------------------------------
# ● Moveto
#--------------------------------------------------------------------------
alias moveto_original moveto
def moveto(x, y)
@revise_x = 0
@revise_y = 0
moveto_original(x, y)
end
#--------------------------------------------------------------------------
# ● Anime Update2 # ++++ EDITED ++++ for dash
#--------------------------------------------------------------------------
def anime_update2
if @walk_anime or @step_anime
@anime_count += 1.0
@anime_count += 1.0 if @pattern == 0
end
if @anime_count > 16 - @move_speed * 2
if not @step_anime and @stop_count > 0
@pattern = @original_pattern
else
@pattern = (@pattern + 1) % 4
end
@anime_count = 0
end
#ani?
end
end
#==============================================================================
# ■ Game_Character
#==============================================================================
class Game_Character
#--------------------------------------------------------------------------
# ● Move On
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Last Move?
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● check_move_platform # +++ EDITED ++++
#--------------------------------------------------------------------------
def check_move_platform(distance,d)
return
end
#--------------------------------------------------------------------------
# ● Update Move?
#--------------------------------------------------------------------------
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
check_move_platform(distance,2)
end
if @x * 128 < @real_x
@real_x = [@real_x - distance, @x * 128].max
check_move_platform(distance,4)
end
if @x * 128 > @real_x
@real_x = [@real_x + distance, @x * 128].min
check_move_platform(distance,6)
end
if @y * 128 < @real_y
@real_y = [@real_y - distance, @y * 128].max
check_move_platform(distance,8)
end
if @walk_anime
@anime_count += 1.5
elsif @step_anime
@anime_count += 1
end
end
#--------------------------------------------------------------------------
# ● Moving?
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Moving_a?
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Update_Jump
#--------------------------------------------------------------------------
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 and
self.tool_id == 0 #++++ EDITED ++++
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 and
self.tool_id == 0 #++++ EDITED ++++
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 and
self.tool_id == 0 #++++ EDITED ++++
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 and
self.tool_id == 0 #++++ EDITED ++++
move_right
return
end
origonal_move_lower_right
end
#--------------------------------------------------------------------------
# ● Move_Down_P
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Move_Down_aaaaqq
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Down1
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Down2
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Move_Left_P
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Left1
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Left2
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Move_Right_P
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Right1
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Right2
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Move_Up_P
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Move_Up_aaaaqq
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● UP1
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● UP2
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Move Lower Left P
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Move Lower Right P
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Move Upper Left P
#--------------------------------------------------------------------------
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
#+++ EDITED ++++ #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
#+++ EDITED ++++ #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
#--------------------------------------------------------------------------
# ● Move Upper Right P
#--------------------------------------------------------------------------
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
#+++ EDITED ++++ #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
#+++ EDITED ++++ #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
#--------------------------------------------------------------------------
# ● Check Event Triggers Here
#--------------------------------------------------------------------------
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).