设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1295|回复: 1
打印 上一主题 下一主题

[已经过期] 关于混乱移动脚本的设定

[复制链接]

Lv5.捕梦者

梦石
18
星屑
13650
在线时间
1715 小时
注册时间
2017-1-12
帖子
1790

开拓者

跳转到指定楼层
1
发表于 2017-9-5 19:58:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
想请教一下这个脚本里关于混乱移动的设定,
我是希望变成中了“混乱移动”以后上下方向调转,左右方向调转。
现在状况貌似是中了一次后会变成上述情况,但是接连再中一次就不是这个调转顺序了(有可能按“下”的时候向左走)
  1. =begin
  2.       RGSS3
  3.       
  4.       ★混乱移動ステート★

  5.       キー入力割り当てがシャッフルされて正常に歩けなくなるステートを作ります。
  6.       
  7.       ● 使い方 ●========================================================
  8.       ステートのメモ欄に「混乱移動」と記述してください。
  9.       ====================================================================
  10.       
  11.       ● 注意 ●==========================================================
  12.       ニューゲームから始めないとエラーを吐きます。
  13.       ====================================================================
  14.       
  15.       ver1.00

  16.       Last Update : 2012/01/11
  17.       01/11 : RGSS2からの移植
  18.       
  19.       ろかん   http://kaisou-ryouiki.sakura.ne.jp/
  20. =end

  21. $rsi ||= {}
  22. $rsi["混乱移動ステート"] = true

  23. class RPG::State < RPG::BaseItem
  24.   def panic_move?
  25.     self.note.include?("混乱移動")
  26.   end
  27. end

  28. class Game_Actor < Game_Battler
  29.   #--------------------------------------------------------------------------
  30.   # ● 新しいステートの付加
  31.   #--------------------------------------------------------------------------
  32.   alias panic_move_add_new_state add_new_state
  33.   def add_new_state(state_id)
  34.     panic_move_add_new_state(state_id)
  35.     update_panic_move(state_id)
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● ステートの解除
  39.   #--------------------------------------------------------------------------
  40.   alias panic_move_remove_state remove_state
  41.   def remove_state(state_id)
  42.     panic_move_remove_state(state_id)
  43.     update_panic_move(state_id)
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # ● 混乱移動判定
  47.   #--------------------------------------------------------------------------
  48.   def panic_move?
  49.     states.any?{|state| state.panic_move?}
  50.   end
  51.   #--------------------------------------------------------------------------
  52.   # ● 混乱移動判定の更新
  53.   #--------------------------------------------------------------------------
  54.   def update_panic_move(state_id)
  55.     if $data_states[state_id].panic_move? && $game_party.members.include?(self)
  56.       $game_party.update_panic_move
  57.     end
  58.   end
  59. end

  60. class Game_Party < Game_Unit
  61.   #--------------------------------------------------------------------------
  62.   # ● アクターを加える
  63.   #--------------------------------------------------------------------------
  64.   alias panic_move_add_actor add_actor
  65.   def add_actor(actor_id)
  66.     panic_move_add_actor(actor_id)
  67.     update_panic_move
  68.   end
  69.   #--------------------------------------------------------------------------
  70.   # ● アクターを外す
  71.   #--------------------------------------------------------------------------
  72.   alias panic_move_remove_actor remove_actor
  73.   def remove_actor(actor_id)
  74.     panic_move_remove_actor(actor_id)
  75.     update_panic_move
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ● 混乱移動判定の更新
  79.   #--------------------------------------------------------------------------
  80.   def update_panic_move
  81.     $game_player.panic = members.any?{|actor| actor.panic_move?}
  82.   end
  83. end

  84. class Game_Player < Game_Character
  85.   #--------------------------------------------------------------------------
  86.   # ● 公開インスタンス変数
  87.   #--------------------------------------------------------------------------
  88.   attr_writer :panic
  89.   #--------------------------------------------------------------------------
  90.   # ● 公開メンバ変数の初期化
  91.   #--------------------------------------------------------------------------
  92.   alias panic_move_init_public_members init_public_members
  93.   def init_public_members
  94.     panic_move_init_public_members
  95.     @panic = false
  96.   end
  97.   #--------------------------------------------------------------------------
  98.   # ● 非公開メンバ変数の初期化
  99.   #--------------------------------------------------------------------------
  100.   alias panic_move_init_private_members init_private_members
  101.   def init_private_members
  102.     panic_move_init_private_members
  103.     @panic_input = {2=>8, 4=>4, 6=>2, 8=>6}
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ● 混乱移動判定の設定
  107.   #--------------------------------------------------------------------------
  108.   def panic=(bool)
  109.     set_panic_input if !@panic && bool
  110.     @panic = bool
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   # ● 混乱移動方向キーの割り当て
  114.   #--------------------------------------------------------------------------
  115.   def set_panic_input
  116.     list = [2, 4, 6, 8]
  117.     @panic_input.each_key{|key|
  118.       @panic_input[key] = list.delete_at(rand(list.size))
  119.     }
  120.   end
  121.   #--------------------------------------------------------------------------
  122.   # ● 方向ボタン入力による移動処理
  123.   #--------------------------------------------------------------------------
  124.   alias move_by_input_with_panic move_by_input
  125.   def move_by_input
  126.     @panic ? panic_move_by_input : move_by_input_with_panic
  127.   end
  128.   #--------------------------------------------------------------------------
  129.   # ● 方向ボタン入力による移動処理 (混乱中)
  130.   #--------------------------------------------------------------------------
  131.   def panic_move_by_input
  132.     return if !movable? || $game_map.interpreter.running?
  133.     move_straight(@panic_input[Input.dir4]) if Input.dir4 > 0
  134.   end
  135. end
复制代码

Lv4.逐梦者

梦石
0
星屑
6260
在线时间
1481 小时
注册时间
2015-7-25
帖子
652

开拓者

2
发表于 2017-9-9 21:14:46 | 只看该作者
RUBY 代码复制
  1. class Game_Player < Game_Character
  2.   def set_panic_input
  3.     @panic_input[2] = 8
  4.     @panic_input[4] = 6
  5.     @panic_input[6] = 4
  6.     @panic_input[8] = 2
  7.   end
  8. end
笨肉包的首款像素OC游戏《花城梦之心》尝试制作中~
目前的坑 【不可思议的迷宫】幽灵契约外传:歌莉娅
持续更新中~ 当前进度 v0.28
大版本更新时才会更新网盘文件,预计下次大版本更新:v0.30
完成度:
主线 15% 支线 0% 数据库 6% 系统 86% 美术 6%
两边同时填坑~
( 这里是笨肉包~专修魔法!目标是大魔法师!
( 坑太大啦,一个人填不完啦hhh 一定会填完的嗯...
( 每天都和bug们比试魔力~吾之魔法将扫平一切!
( 弱点是美术,魔法修行之余再补补课吧~
( 哼哼哼~这便是魔法的力量!
大家都离开啦,笨肉包也不知道还能坚持多久呀...
这是属于笨肉包一个人的旅行(再见了...蚊子湯,七重酱,笨肉包永远想你们!TwT
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-11-17 14:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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