Project1
标题:
【补丁?】地图循环时的『接近主角』『远离主角』修正
[打印本页]
作者:
黄亦天
时间:
2011-2-2 09:33
标题:
【补丁?】地图循环时的『接近主角』『远离主角』修正
这个不知道有人发过没有……
新手第一次正式改出来的脚本……
(其实纯粹是小白鼠,曾经实验用了刚刚学到的类方法和函数,最后都没用上,直接做记录用分歧解决了……:L )
部分参考了诡异の猫前辈的VX_hotfix 2补丁
(不知道更新过了没有,那个我下载不了,最后是在某灯光脚本范例里找到的……貌似我找到的还不是完整版?)
(我找到的)诡异の猫前辈的脚本里只有『靠近』的循环方向设定,但是我用的是自定义路线——『接近主角』
于是就发现了这个问题……
以下是脚本:
#==========================================
# ■ VX_个人补丁? ●循环地图的『接近主角』与『远离主角』调整●
#------------------------------------------------------------------------------
# ◎ 基本没啥技术含量的补丁,在使用诡异の猫前辈的补丁后发现的问题
# 于是仿造其原理,修正了『接近主角』与『远离主角』时,靠近地图
# 边缘会使事件反方向移动到问题
# ☆ (远离主角时如果设置了循环,而地图较小,事件会慌张的在地图边
# 缘徘徊哦~~)
# ▲ 本脚本出产于 http://rpg.blue by:黄亦天
#==============================================
class Game_Character
#--------------------------------------------------------------------------
# ● 接近主角
#--------------------------------------------------------------------------
def move_toward_player
sx = @x - $game_player.x
sy = @y - $game_player.y
if sx != 0 or sy != 0
if sx.abs > sy.abs
if $game_map.loop_horizontal?
if sx > 0
sx.abs > ( $game_map.width / 2 ) ? move_right : move_left
else
sx.abs > ( $game_map.width / 2 ) ? move_left : move_right
end
else
sx > 0 ? move_left : move_right
end
if @move_failed and sy != 0
if $game_map.loop_vertical?
if sy > 0
sy.abs > ( $game_map.height / 2 ) ? move_down : move_up
else
sy.abs > ( $game_map.height / 2 ) ? move_up : move_down
end
else
sy > 0 ? move_up : move_down
end
end
else
if $game_map.loop_vertical?
if sy > 0
sy.abs > ( $game_map.height / 2 ) ? move_down : move_up
else
sy.abs > ( $game_map.height / 2 ) ? move_up : move_down
end
else
sy > 0 ? move_up : move_down
end
if @move_failed and sx != 0
if $game_map.loop_horizontal?
if sx > 0
sx.abs > ( $game_map.width / 2 ) ? move_right : move_left
else
sx.abs > ( $game_map.width / 2 ) ? move_left : move_right
end
else
sx > 0 ? move_left : move_right
end
end
end
end
end
#--------------------------------------------------------------------------
# ● 远离主角
#--------------------------------------------------------------------------
def move_away_from_player
sx = @x - $game_player.x
sy = @y - $game_player.y
if sx != 0 or sy != 0
if sx.abs > sy.abs
if $game_map.loop_horizontal?
if sx > 0
sx.abs > ( $game_map.width / 2 ) ? move_left : move_right
else
sx.abs > ( $game_map.width / 2 ) ? move_right : move_left
end
else
sx > 0 ? move_left : move_right
end
if @move_failed and sy != 0
if $game_map.loop_vertical?
if sy > 0
sy.abs > ( $game_map.height / 2 ) ? move_up : move_down
else
sy.abs > ( $game_map.height / 2 ) ? move_down : move_up
end
else
sy > 0 ? move_up : move_down
end
end
else
if $game_map.loop_vertical?
if sy > 0
sy.abs > ( $game_map.height / 2 ) ? move_up : move_down
else
sy.abs > ( $game_map.height / 2 ) ? move_down : move_up
end
else
sy > 0 ? move_up : move_down
end
if @move_failed and sx != 0
if $game_map.loop_horizontal?
if sx > 0
sx.abs > ( $game_map.width / 2 ) ? move_left : move_right
else
sx.abs > ( $game_map.width / 2 ) ? move_right : move_left
end
else
sx > 0 ? move_left : move_right
end
end
end
end
end
end
复制代码
以下是范例(混入了之前的三个补丁,VX_HKS1那个是上面的脚本)
接近主角与远离主角修正.rar
(291.82 KB, 下载次数: 74)
2011-2-2 09:22 上传
点击文件名下载附件
范例中的坐标窗口请54之,那个窗口开启后,若返回标题或者存档后读取都会很杯具~~
作者:
一瞬间的幻觉
时间:
2011-2-3 01:21
具体是什么用的。。有点迷糊
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1