Project1

标题: 有【体力、更换行走图】的按键加速 [打印本页]

作者: 纸飞机哟    时间: 2011-10-15 17:06
标题: 有【体力、更换行走图】的按键加速
本帖最后由 纸飞机哟 于 2011-10-15 17:06 编辑

  花了点时间做了这样的脚本……因为小短篇里面需要……
  此脚本的功能就是能够按键加速,加速时扣CT,CT没了仍按着奔跑键的话,就会进入疲劳奔跑状态,
默认是:奔跑速度>疲劳奔跑速度>行走速度,不过你也可以自定义,因为这个脚本比较自由,很多东西
都可以调整……这个脚本里面还设定了当奔跑时改变行走图的设定。
  图我就不放了,各位自行试一下就知道了。

  脚本:
  1.    #==========================================================================#
  2.   #-------------------------脚本名称:带CT的奔跑系统-------------------------#
  3. #-----------------------------作者:纸飞机哟-------------------------------#
  4. #==========================================================================#
  5. #==系统相关设定==
  6. # 标有【*不可调】的请勿改动

  7.   # -控制开关
  8.   Speed_id = 2                # 开启速度影响的开关
  9.   Speed_fastspeed_id = 3      # 开启奔跑系统的开关
  10.   Speed_update = 4            # 开启刷新奔跑速度的开关
  11.   Speed_s = 5                 # 开启CT的开关
  12.   
  13.   # -奔跑耐力
  14.   Speed_ct_va = 2             # 奔跑耐力的变量
  15.   Speed_ct_best = 3           # 奔跑耐力上限的变量
  16.   Speed_ct_out = 6            # 当疲累时开启的开关
  17.   $Speed_ct_m = 0             # CT的模式【1:加CT 2:减CT】*不可调
  18.   $Speed_ct_t = 100           # CT刷新的等待时间
  19.   
  20.   # -奔跑速度
  21.   Speed_fastsname = "-跑步"   # 奔跑时行走图添加的名称
  22.   $Speed_move = 3             # 正常移动速度
  23.   $Speed_bestmove = 4.5       # 全速奔跑的速度
  24.   $Speed_i = Input::A         # 按这个按键加速
  25.   Speed_movep = 1/4           # 跑累时的速度【全速*减化比例+正常】
  26.   $Speed_a = 1                # 现在的行走状态【1:行走 2:奔跑 3:疲惫】*不可调
  27.   $Speed_s2 = 1               # 现在的行走状态2 *不可调
  28.   
  29. #================

  30. class Game_Player
  31.   #--------------------------------------------------------------------------
  32.   # ● 更新
  33.   #--------------------------------------------------------------------------
  34.   alias old_update update
  35.   def update # def
  36.    
  37.         if $game_switches[Speed_id] == true # 如果开启速度影响
  38.          
  39.          if $game_switches[Speed_fastspeed_id] == true # 如果奔跑系统开启
  40.     unless $game_system.map_interpreter.running? or
  41.       @move_route_forcing or $game_temp.message_window_showing # 如果不在事件中
  42.         $game_switches[Speed_ct_out] = true if $game_variables[Speed_ct_va] <=0
  43.         $game_switches[Speed_ct_out] = false if $game_variables[Speed_ct_va] > 0
  44.         if $game_player.moving? # 如果移动中
  45.        if  Input.press?($Speed_i) # 如果按下Z键
  46.         unless Input.press?(Input::UP) and Input.press?(Input::DOWN) or
  47.               Input.press?(Input::LEFT) and Input.press?(Input::RIGHT) # 如果不同时按下相反键
  48.           speed_v_update
  49.          if @move_speed != $Speed_bestmove # 如果速度≠奔跑速度
  50.            if $game_switches[Speed_ct_out] == true # 如果疲劳
  51.             $Speed_a = 3
  52.           else
  53.             $Speed_a = 2  
  54.             end # 如果疲劳
  55.             speed_character_update
  56.            end # 如果速度≠奔跑速度
  57.          else # 如果按下Z键
  58.            if @move_speed != $Speed_move # 如果速度≠正常速度
  59.              $Speed_a = 1
  60.             speed_character_update
  61.           end # 如果速度≠正常速度
  62.         end  # 如果按下Z键
  63.       else
  64.         #if @move_speed != $Speed_move # 如果速度≠正常速度
  65.              $Speed_a = 1
  66.             speed_character_update
  67.         #    end
  68.       end # 如果移动中
  69.      end
  70.     end # 如果不在事件中
  71.     old_update
  72.       unless moving? # 如果不在移动中
  73.          speed_v_update
  74.          if @move_speed != $Speed_move # 如果速度≠正常速度
  75.            $Speed_a = 1
  76.            speed_character_update
  77.            end # 如果速度≠正常速度
  78.          end # 如果不在移动中
  79.          speed_cttime if $game_switches[Speed_s] == true
  80.           end # 如果开启事件影响
  81.          end
  82.        end # def
  83. def speed_character_update # def 行走图、速度刷新
  84.   if  $Speed_a == 2
  85.     if $Speed_a2 != 2
  86.       @move_speed = $Speed_bestmove if $Speed_a == 2 and @move_speed != $Speed_bestmove
  87.     @character_name_run = @character_name
  88.     @character_name = @character_name + "-跑步"  
  89.     $Speed_a2 = 2
  90.     end
  91.   elsif   $Speed_a == 1
  92.     if $Speed_a2 != 1
  93.       @move_speed = $Speed_move if $Speed_a == 1 and @move_speed != $Speed_move
  94.     @character_name = @character_name_run unless @character_name_run == nil
  95.     $Speed_a2 = 1
  96.   end
  97.   elsif $Speed_a == 3
  98.     if $Speed_a2 != 3
  99.       @move_speed = $Speed_bestmove*Speed_movep+$Speed_move if $Speed_a == 3 and @move_speed != $Speed_bestmove*Speed_movep+$Speed_move
  100.     $Speed_a2 = 3
  101.     end
  102.    end
  103.   end # def 行走图、速度刷新
  104.   
  105.   def speed_v_update # def 速度变量检测
  106.     $Speed_move = 3 if $Speed_move == nil or $Speed_move == 0
  107.     $Speed_bestmove = 4.5 if $Speed_bestmove == nil or $Speed_bestmove == 0
  108.   end # def 速度变量检测
  109.   
  110.   
  111.   def speed_cttime # def CT刷新
  112.     @count = 0 if @count == nil
  113.     @count += 1
  114.     if @count > $Speed_ct_t
  115.       $game_variables[Speed_ct_va] -= 2 if $Speed_a == 2
  116.       $game_variables[Speed_ct_va] += 1 if $Speed_a == 1
  117.       p $Speed_a if $game_variables[Speed_ct_va] == 0
  118.       $game_variables[Speed_ct_va] = 0 if $game_variables[Speed_ct_va] < 0
  119.       $game_variables[Speed_ct_va] = $game_variables[Speed_ct_best] if $game_variables[Speed_ct_va] > $game_variables[Speed_ct_best]
  120.       @count = 0
  121.     end
  122.   end # def CT刷新end
复制代码

作者: fux2    时间: 2011-10-15 18:21
全局变量用多了不美观,不用保存的话就用模块变量啦。
作者: 墟源    时间: 2011-12-5 01:41
人物卡死不动,没有插入其他脚本的情况。。


话说这不算挖坟吧。。。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1