设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 69|回复: 0

[转载发布] Dash and Walking speed plus

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    前天 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    4471

    主题

    864

    回帖

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    22949
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    28314

    灌水之王

    发表于 4 天前 | 显示全部楼层 |阅读模式
    Ruby:       
    =begin===============================================================================Dash and Walking speed plus (by Zero_G)Version: RGSS================================================================================= Description ==This script will add a dashing feature and modifying the default walking(and dashing speed) of the main character.Speed during events will follow the game engine defaultsSpeed-Slow: 3-Normal: 4-Fast: 5== Terms of Use ==- Free for use in non-commercial projects with credits- Free for use in commercial projects- Please provide credits to Zero_G== Credits ==-This was based on a japanese script that I couldn't find the author  Event functionality was added by me == Changelog ==v1.1 - Changed update_move to Game_Player, so change of speed is only on player   and not on NPCs== Usage ==Just add the plugin.-------------------------------------------------------------------------------=endmodule ZERO    MOVE_SPEED = 5    DASH_KEY = Input::Aend$duringEvent = false$dashing = falseclass Game_Character    alias dash_force_move_route force_move_route    def force_move_route(move_route)        $duringEvent = true        dash_force_move_route(move_route)    endendclass Game_Player < Game_Character    # Override update_move    def update_move        # added condition        if $duringEvent            distance = 2 ** @move_speed        else            if $dashing                distance = 2 ** (ZERO::MOVE_SPEED + 1)            else                distance = 2 ** ZERO::MOVE_SPEED            end        end        # Rest is original code        if @y * 128 > @real_y            @real_y = [@real_y + distance, @y * 128].min        end        if @x * 128 < @real_x            @real_x = [@real_x - distance, @x * 128].max        end        if @x * 128 > @real_x            @real_x = [@real_x + distance, @x * 128].min        end        if @y * 128 < @real_y            @real_y = [@real_y - distance, @y * 128].max        end        if @walk_anime            @anime_count += 1.5        elsif @step_anime            @anime_count += 1        end    end     # Overwrite update    def update        # Add dashing        $dashing = false        if Input.press?(ZERO::DASH_KEY)            $dashing = true        end               last_moving = moving?        unless moving? or $game_system.map_interpreter.running? or               @move_route_forcing or $game_temp.message_window_showing          case Input.dir4          when 2            $duringEvent = false # Moving by input presses            move_down          when 4            $duringEvent = false            move_left          when 6            $duringEvent = false            move_right          when 8            $duringEvent = false            move_up          end        end        # Rest is original code        last_real_x = @real_x        last_real_y = @real_y        super        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        unless moving?          if last_moving            result = check_event_trigger_here([1,2])            if result == false              unless $DEBUG and Input.press?(Input::CTRL)                if @encounter_count > 0                  @encounter_count -= 1                end              end            end          end          if Input.trigger?(Input::C)            check_event_trigger_here([0])            check_event_trigger_there([0,1,2])          end        end    endend




    本贴来自国际rpgmaker官方论坛作者:Zero_G处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/dash-and-walking-speed-plus.127066/
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

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

    GMT+8, 2026-7-14 17:57 , Processed in 0.113325 second(s), 53 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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