注册会员 登录
Project1 返回首页

喵呜喵5的树洞 https://rpg.blue/?291206 [收藏] [复制] [分享] [RSS]

日志

【脚本】共同移动

热度 4已有 1963 次阅读2014-6-17 17:23 |个人分类:脚本

=begin
===============================================================================
  共同移动 By喵呜喵5
===============================================================================

【说明】

  在事件中的脚本编辑器里输入

    M5MT20151126.add(1,2,3)

  1,2,3 为地图事件的ID,用英文逗号隔开,数量不限

  接着按方向键时1、2、3号事件就会跟着玩家的操作一起移动

  输入

    M5MT20151126.remove(1,2)

  可以移除上面设置的1、2号事件,仅有3号事件跟着玩家的操作一起移动

  输入

    M5MT20151126.clear

  可以清除全部共同移动的事件

  0号事件表示玩家本身

  被设置为共同移动的事件将在切换地图后失效
  (若游戏发生了更新,此时读取存档时共同移动的事件也会失效)

=end
#==============================================================================
# 脚本部分
#==============================================================================
$m5script ||= {}; $m5script[:M5MT20151126] = 20151202
class << (M5MT20151126 = Module.new)
  def init
    @list = [0]
    $game_player.m5_20151126_move_together = true
  end
  def add(*list)
    (list -= @list).each do |i|
      (event = i == 0 ? $game_player : $game_map.events[i]) || next
      event.m5_20151126_move_together = true
      @list << i
    end
  end
  def remove(*list)
    (list &= @list).each do |i|
      (event = i == 0 ? $game_player : $game_map.events[i]) || next
      event.m5_20151126_move_together = false
    end
    @list -= list
  end
  def clear
    remove *@list
    init
  end
end
class Game_Map
  alias m5_20151126_setup setup
  def setup *args
    m5_20151126_setup *args
    M5MT20151126.init
  end
end
class Game_Character; attr_writer :m5_20151126_move_together; end
class Game_Player
  alias m5_20151126_movable? movable?
  def movable?
    m5_20151126_movable? && @m5_20151126_move_together
  end
end
class Game_Event
  def m5_20151126_movable?
    return false unless @m5_20151126_move_together
    return false if moving?
    return false if $game_message.busy? || $game_message.visible
    return false if $game_map.interpreter.running?
    true
  end
  def m5_20151126_move_by_input
    return unless m5_20151126_movable?
    move_straight(Input.dir4) if Input.dir4 > 0
  end
  alias m5_20151202_update update
  def update
    m5_20151202_update
    m5_20151126_move_by_input
  end
end
1

鸡蛋

鲜花

刚表态过的朋友 (1 人)

发表评论 评论 (1 个评论)

回复 duzine 2015-9-10 21:28
要如何取消共同移動呢?

facelist doodle 涂鸦笔

您需要登录后才可以评论 登录 | 注册会员

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-5 19:15

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部