Project1
标题:
在地图中玩家走一步,其他敌人陆续走一步
[打印本页]
作者:
蔡铭衍
时间:
2019-11-21 19:47
标题:
在地图中玩家走一步,其他敌人陆续走一步
在地图中玩家走一步,其他敌人陆续走一步,主角先接触敌人攻击,敌人先靠近的话攻击主角,能用事件做吗?
作者:
Nil2018
时间:
2019-11-21 23:46
Rogue-like????
#==============================================================================
# ■ Meow Face Rogue-like 移动 & 追逐
#------------------------------------------------------------------------------
# Author: Meow Face
#==============================================================================
=begin
功能:
=========
[1]只有在玩家移动时事件才能移动
(由开关控制)
[2]敌人保持半/完全隐藏状态,直到玩家靠近敌人
(惊不惊喜意不意外?)
[3]追逐模式,事件追逐范围内的玩家
(或者逃跑,你甚至可以设置自己的AI)
[4]在追逐开始前在事件头上显示惊讶心情气球
(你可以选择其他心情气球)
[5]事件在追逐玩家的过程中,使用强化型移动路线
(玩家在事件追逐范围内时径直走向玩家,否则使用普通追逐
当玩家距离10图块远时随机移动)
[6]追逐模式适用于rogee/正常移动
(所以你可以选择你最喜欢哪一个,rogue或正常)
============
如何使用:
============
[1]将此脚本放在Main之上,插件脚本下面
[2]将 <enemy> 标记放在事件的名称中
[3]将事件的移动类型更改为“接近”
[4]打开开关,开启rogue模式,关闭则恢复普通移动模式
=敌人逃跑=
**如果将移动类型设置为“自定义”,则可以设置自己的AI
**使用“远离”x 3,“随机移动”x 1,“向前移动一步”x 1
**当无法移动时,请勾上“忽略障碍”和“循环执行”
**你应该能够通过这种方式制作一个远离玩家的事件
==================
名称标签:<敌人>
==================
将 <enemy> 作为标记放在事件的名称中,以表明它是追逐的敌人。
带有 <enemy> 标签的事件可以在有或没有rogue移动开关的情况下进行追逐。
rogue/正常之间的唯一区别是,正常模式下事件不会等待玩家
而rogue模式下事件仅在玩家移动时移动。
===============
控制开关:(默认为1,可以更改)
===============
随时随地打开开关,在rogue移动和正常移动之间切换
Rogue移动仅适用于具有 <enemy> 名称标记的事件。
================
控制开关:
================
你可以设置打开/关闭rogue移动的开关
你可以设置关闭追踪模式的距离
你可以设置敌人在不追逐状态下的alpha/不透明度
你可以在追逐中设置敌人的速度/频率
=============
兼容性
=============
除非碰巧,否则此脚本不太可能与任何其他脚本冲突
使用我用于新方法的相同方法名称。旧方法都是别名。
=============
使用条款
=============
免费用于任何免费/商业游戏。
=end
#==============================================================================
module MF_RogueMove
#==============================================================================
# 设定部分
#==============================================================================
SW_ROGUE = 1 #开启/关闭rogue移动的开关号码(0 = 禁用此功能)
DISTANCE = 5 #追踪激活距离(1-10,10约是640x640像素)
HIDE_OPACITY = 128 # 当玩家不在敌人侦查范围内时,敌人的不透明度(0-255)
BALLOON = 1 #敌人发现玩家时显示的心情气球id(1-10,0 = 禁用此功能)
CHASE_SPEED = 4 #敌人追逐玩家时的速度(0-6)
CHASE_FREQUENCY = 6 #敌人追逐玩家时的移动频率(0-6)
DEFAULT_SPEED = 4 #敌人在不追逐玩家时移动速度(0-6)
DEFAULT_FREQUENCY = 3 #敌人在不追逐玩家时移动频率(0-6)
#==============================================================================
#设定结束
#编辑下面的的任何内容,风险自负!
#==============================================================================
end # DO NOT REMOVE THIS
#==============================================================================
class Game_Event < Game_Character
#--------------------------------------------------------------------------
# ◎ Alias Move Type: Move Toward Player
#--------------------------------------------------------------------------
alias meowface_mttp move_type_toward_player
def move_type_toward_player
if @event.name.include?('<enemy>') && distance_from_player <= MF_RogueMove::DISTANCE
move_toward_player
else
meowface_mttp
end
end
#--------------------------------------------------------------------------
# ◎ Alias update movement
#--------------------------------------------------------------------------
alias meowface_stop update_stop
def update_stop
if $game_switches[MF_RogueMove::SW_ROGUE] && @event.name.include?('<enemy>')
super
return update_self_movement if $game_player.moving?
else
meowface_stop
end
end
#--------------------------------------------------------------------------
# ○ New method: Get the Distance between Event and Player
#--------------------------------------------------------------------------
def distance_from_player
distance_x_from($game_player.x).abs + distance_y_from($game_player.y).abs
end
#--------------------------------------------------------------------------
# ○ New method: Start Chasing the Player
#--------------------------------------------------------------------------
def chase_player
if distance_from_player <= MF_RogueMove::DISTANCE
self.balloon_id = MF_RogueMove::BALLOON
@opacity = 255
@move_speed = MF_RogueMove::CHASE_SPEED
@move_frequency = MF_RogueMove::CHASE_FREQUENCY
else
@opacity = MF_RogueMove::HIDE_OPACITY
@move_speed = MF_RogueMove::DEFAULT_SPEED
@move_frequency = MF_RogueMove::DEFAULT_FREQUENCY
end
end
#--------------------------------------------------------------------------
# ◎ Alias Update Method
#--------------------------------------------------------------------------
alias meowface_rg_update update
def update
if @event.name.include?('<enemy>') && !$game_map.interpreter.running?
chase_player
end
meowface_rg_update
end
end
复制代码
作者:
蔡铭衍
时间:
2019-11-23 18:03
Nil2018 发表于 2019-11-21 23:46
Rogue-like????
感谢!!
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1