查看: 91|回复: 0

[转载发布] VA阻碍后延时穿过NPC事件

[复制链接]
  • TA的每日心情
    开心
    2024-5-10 09:55
  • 签到天数: 37 天

    连续签到: 3 天

    [LV.5]常住居民I

    2028

    主题

    32

    回帖

    7260

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5184
    OK点
    16
    积分
    7260
    发表于 同元一千年二月十一日(春) | 显示全部楼层 |阅读模式
    有时我们会需要做一个"持续移动后穿过NPC"的效果,避免被随意行走的NPC把路堵死。

    RUBY 代码
    [Ruby] 纯文本查看 复制代码
    # By Lanza Schneider
    # 2020.09.04
    # 在你想要穿过的事件中添加一条 crushable 注释即可
    class Game_Event
      def crushable?
        @crushable
      end
     
      alias :setup_page_2020090400 :setup_page
      def setup_page(*args)
        setup_page_2020090400 *args
        @crushable = false
        @page.list.each do |command|
          if command.code == 108 && command.parameters[0] == 'crushable'
            @crushable = true 
            break
          end
        end
      end
    end
     
    class Game_Player
      alias :update_2020090400 :update
      def update *args
        @crushed = false
        update_2020090400 *args
        @crush_count = @crushed ? @crush_count + 1 : 0
      end
     
      def collide_with_events?(x, y)
        $game_map.events_xy_nt(x, y).any? do |event|
          result = event.normal_priority? || self.is_a?(Game_Event)
          if result && event.crushable?
            @crushed = true
            result = false if @crush_count > 30
          end
          result
        end
      end
    end



                 本帖来自P1论坛作者Mr.Jin,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg. blue/forum.php?mod=viewthread&tid=483180  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-5-18 13:32 , Processed in 0.066277 second(s), 46 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表