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

Project1

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

[推荐问答] 横版战斗移除不死之身状态

[复制链接]

Lv2.观梦者

会吐槽的画师

梦石
0
星屑
782
在线时间
3431 小时
注册时间
2011-6-10
帖子
6535
跳转到指定楼层
1
发表于 2014-12-31 08:06:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 上贺茂润 于 2014-12-31 08:08 编辑

横版战斗力有一种机制:在技能动作结束前目标会有enemy.immortal = true 也就是不死之身的状态
相同的角色也有actor.immortal = true 但是有一个问题 有时候会出现角色或者敌人hp=0不死的情况
这里请教如何在战斗回合行动前或者后强制判断hp ==0然后解除不死之身

@正太君 @丁凯乐 @至尊无敌大小远
横版行动顺序ATB脚本:
RUBY 代码复制
  1. #==============================================================================
  2. module N02
  3. #--------------------------------------------------------------------------
  4. # ● 戦闘開始時のATBゲージ初期値セッティング
  5. #--------------------------------------------------------------------------
  6.   # ATBゲージ初期値(アクター) 数値はゲージに対しての%
  7.   ATB_BASE_ACTOR = 30
  8.   # ATBゲージ初期値(エネミー)
  9.   ATB_BASE_ENEMY = 30
  10.   # ATBゲージ初期値に加えられるランダム値(アクターエネミー共通)
  11.   ATB_BASE_ADD = 30
  12. #--------------------------------------------------------------------------
  13. # ● アクティブタイプ(ユーザー設定を無効にした時のみ効果があります)
  14. #--------------------------------------------------------------------------
  15.   # パーティコマンド(戦う・逃げる)選択中もゲージアップするならtrue
  16.   ATB_PARTY_COMMAND_WAIT = true
  17.   # 戦闘コマンド(攻撃・スキル等)選択中もゲージアップするならtrue
  18.   ATB_COMMAND_WAIT = false
  19.   # ターゲット選択中もゲージアップするならtrue
  20.   ATB_TARGET_WAIT = false
  21.   # スキル/アイテム選択中もゲージアップするならtrue
  22.   ATB_SELECT_WAIT = false
  23.   # 行動アクション中もゲージアップするならtrue (※自身の行動時はストップします)
  24.   ATB_ACTION_WAIT = false
  25. #--------------------------------------------------------------------------
  26. # ● ボタン入力によるゲージのアクティブ制御
  27. #--------------------------------------------------------------------------
  28.   # Shiftキーを押している間、ゲージスピードを4倍に加速させる機能を利用するならtrue
  29.   ATB_SHIFT_BOOST = true
  30.   # Ctrlキーを押している間、強制的にゲージアップする機能を利用するならtrue
  31.   ATB_CTRL_ACTIVE = true
  32.   # Altキーを押している間、強制的にゲージを止める機能を利用するならtrue
  33.   ATB_ALT_WAIT = true
  34. #--------------------------------------------------------------------------
  35. # ● ATBゲージアップスピード(ユーザー設定を無効にした時のみ効果があります)
  36. #--------------------------------------------------------------------------
  37.   # 1が最遅 5くらいがゆったり 10くらいが平均 20あたりで大した速さだ 500で なん…だと…?
  38.   ATB_SPEED = 10
  39. #--------------------------------------------------------------------------
  40. # ● ATBゲージアップスピード基準
  41. #--------------------------------------------------------------------------
  42.   # ATBゲージアップスピードをどこに合わせるか
  43.   #  0;固定値
  44.   #  1;戦闘参加者の中で最も高い俊敏性
  45.   #  2;戦闘参加者の中で最も低い俊敏性
  46.   #  3;戦闘参加者の俊敏性の平均
  47.   ATB_BASE_SPEED = 1
  48.   # 上の設定で 0;固定値 にした場合の基準となる俊敏性値
  49.   ATB_ABSOLUTE_SPEED = 50
  50. #--------------------------------------------------------------------------
  51. # ● 先制、不意打ち(バックアタック)時の後攻者ATBゲージペナルティ
  52. #--------------------------------------------------------------------------
  53.   # 数値の分、後攻者の初期値がマイナスでスタートします。100でゲージ1本分
  54.   ATB_BACKATTACK = 50
  55. #--------------------------------------------------------------------------
  56. # ● 逃走失敗時のATBゲージペナルティ
  57. #--------------------------------------------------------------------------
  58.   # 逃走失敗時、味方全員のゲージがマイナスでリスタートします。100でゲージ1本分
  59.   ATB_RUN_NG = 50
  60. #--------------------------------------------------------------------------
  61. # ● 戦闘ターンカウント設定
  62. #--------------------------------------------------------------------------
  63.   #  0;戦闘参加人数分行動したら1ターン経過
  64.   #  1;戦闘参加人数の半分が行動したら1ターン経過
  65.   #  2;誰か一人でも行動したら1ターン経過
  66.   ATB_TURN_COUNT = 1
  67. #--------------------------------------------------------------------------
  68. # ● スリップダメージ(毒やHP自動回復など)POPタイミング設定
  69. #--------------------------------------------------------------------------
  70.   #  0;自身が行動する直前にHP数値POP処理、行動後にMP数値POP処理
  71.   #  1;1ターン経過ごとに全員同時POP処理
  72.   ATB_SLIP_DAMAGE = 0
  73. #--------------------------------------------------------------------------
  74. # ● 戦闘不能時のゲージ処理
  75. #--------------------------------------------------------------------------
  76.   # 戦闘不能から復帰した際のATBゲージ初期値(%) 100で瞬間復帰、マイナスにもできます
  77.   ATB_DEAD_COUNT = 20
  78. #--------------------------------------------------------------------------
  79. # ● アクション終了後のATBゲージ設定
  80. #--------------------------------------------------------------------------
  81. # 行動後のゲージ再スタート量(%)  ずっと下にID指定の個別設定があります
  82.   ATB_ATTACK_RESET = 20   # 通常攻撃
  83.   ATB_GUARD_RESET  =  0   # 防御
  84.   ATB_SKILL_RESET  =  0   # スキル
  85.   ATB_ITEM_RESET   =  0   # アイテム
  86.   ATB_NONACT_RESET = 40   # 無行動
  87. #--------------------------------------------------------------------------
  88. # ● エネミーのATBゲージを表示するか ※エネミー設定で個別にできます
  89. #--------------------------------------------------------------------------
  90.   ATB_ENEMY_ON = true
  91. #--------------------------------------------------------------------------
  92. # ● アクション時にATBゲージを隠すか
  93. #--------------------------------------------------------------------------
  94.   ATB_ACTION_ACTOR_OFF = false # アクター
  95.   ATB_ACTION_ENEMY_OFF =  true # エネミー
  96. #--------------------------------------------------------------------------
  97. # ● ATBゲージ位置調整  バックアタック時はX軸が自動で修正されます
  98. #--------------------------------------------------------------------------
  99.   #                     X軸  Y軸
  100.   ATB_POSITION_ACTOR = [ 40, -5] # アクター
  101.   ATB_POSITION_ENEMY = [  0, 20] # エネミー
  102.   # アクターのATBゲージをデフォルトのHPウインドウ内に表示するならtrue(上記設定は無視されます)
  103.   ATB_POSITION_HPWINDOW = true
  104. #--------------------------------------------------------------------------
  105. # ● ATBゲージ位置調整2 上でゲージをHPウインドウに表示するをtrueにした時限定
  106. #--------------------------------------------------------------------------
  107. # ゲージ位置を個別指定   一人目    二人目    三人目    四人目        
  108. #                X軸  Y軸  X軸  Y軸  X軸  Y軸  X軸  Y軸
  109.   ATB_PARTY_POSITION = [[470,90],[490,130],[510,170],[530,210],[550,250],[570,290]]
  110. # 戦闘メンバー最大数を独自に増やした時は上の設定位置も人数分増やしてください
  111. #--------------------------------------------------------------------------
  112. # ● ATBゲージグラフィック設定(システムフォルダ内にあるATBゲージ画像関連)
  113. #--------------------------------------------------------------------------
  114.   # 画像ファイル名"atb_bar"は行動待ちのゲージ "act_bar"はチャージゲージ
  115.   # "atb_bar_active"はゲージ満タン時に表示される画像 "atb_bar_skin"はゲージスキン
  116.   # この4つの画像は座標設定を簡略化するため同じ画像サイズにして重ねて表示します
  117.   # 多少凝ったスキンが利用できるようにここで透明部分を除いた幅を指定します
  118.   #
  119.   # ゲージ画像の横幅(実際の画像ピクセル幅ではなく、透明部分を除いたピクセル幅)
  120.   # 1000できれいに割り切れる数字がベストです
  121.   ATB_WIDTH = 50
  122.   # ゲージのスタート位置(X座標で何ピクセル目からゲージグラフィックがあるか指定)
  123.   ATB_SPACE = 2
  124. #--------------------------------------------------------------------------
  125. # ● ATBゲージ(青色ゲージ)満タン時の効果音
  126. #--------------------------------------------------------------------------
  127.   #                  ピッチ 音量  SEファイル名
  128.   ATB_MAX_SOUND01 = [150,  70, "Decision2"]
  129. #--------------------------------------------------------------------------
  130. # ● ACTゲージ(赤色ゲージ)満タン時の効果音
  131. #--------------------------------------------------------------------------
  132.   #                  ピッチ 音量  SEファイル名
  133.   ACT_MAX_SOUND01 = [150,  70, "Chime2"]
  134. #--------------------------------------------------------------------------
  135. # ● コマンドキャラ送り時の効果音
  136. #--------------------------------------------------------------------------
  137.   #                  ピッチ 音量  SEファイル名
  138.   NEXT_SOUND01    = [135,  70, "Miss"]
  139. #--------------------------------------------------------------------------
  140. # ● ユーザー設定(ウエイトやバトルスピードを遊び手が選択する)セッティング
  141. #--------------------------------------------------------------------------
  142.   # ユーザー設定を有効にしメニューに入れるならtrue falseで以下の設定は全て無視
  143.   ATB_CUSTOMIZE = false
  144.   # シーン項目のコマンド名 コマンドはステータスの次に入ります
  145.   ATB_CUSTOMIZE_NAME = "ATB設定"
  146.  
  147.   # アクティブ・ウエイト設定 上にあったアクティブタイプ(ATB_PARTY_COMMAND_WAITなど)は無視されます
  148.   # この設定の名称
  149.   ATB_MODE_NAME = "バトルモード"
  150.   # 3種類の項目がウインドウに並びます
  151.   # 下の番号(0~4)の位置をtrueにするとその場面がアクティブになります
  152.   #
  153.   # [0]パーティコマンド選択中  [1]戦闘コマンド選択中  [2]ターゲット選択中
  154.   # [3]スキル/アイテム選択中   [4]行動アクション中
  155.   #
  156.   #             モード名称           [0]     [1]     [2]     [3]     [4]
  157.   ATB_MODE1 = ["ウエイト",        false,  false,  false,  false,  false,]
  158.   ATB_MODE2 = ["セミアクティブ",  false,  false,  false,  false,   true,]
  159.   ATB_MODE3 = ["アクティブ",       true,   true,   true,   true,   true,]
  160.   # 上3種類のモードで表示されるヘルプコメント
  161.   ATB_MODE1_HELP = "全ての場面で時間が止まります"
  162.   ATB_MODE2_HELP = "戦闘アクション中のみ時間が経過します"
  163.   ATB_MODE3_HELP = "全ての場面で時間が経過します"
  164.   # ニューゲーム時の初期選択 [0]MODE1 [1]MODE2 [2]MODE3
  165.   ATB_NEWGAME_MODE = 1
  166.  
  167.   # バトルスピード設定  上にあったATBゲージアップスピード(ATB_SPEED)は無視されます
  168.   # この設定の名称
  169.   ATB_SPEED_NAME = "バトルスピード"
  170.   # この設定のヘルプコメント
  171.   ATB_SPEED_HELP = "数値が大きいほどゲージが早く溜まります"
  172.   # 下の番号(1~9)が項目に並ぶので、それぞれゲージアップスピードを設定します
  173.   # 上のATBゲージアップスピード(ATB_SPEED)は無視されます
  174.   #
  175.   #                [1]   [2]   [3]   [4]   [5]   [6]   [7]   [8]   [9]
  176.   ATB_SPEED_MODE = [  1,    2,    4,    6,   10,    20,   40,  100,  500]
  177.   # ニューゲーム時の初期選択 数値がそのままカーソル位置になります
  178.   ATB_NEWGAME_SPEED = 5
  179. #--------------------------------------------------------------------------
  180. # ● ターゲット選択時のヘルプ表示セッティング
  181. #--------------------------------------------------------------------------
  182.   # 文字ステートを表示するならtrue
  183.   WORD_STATE_DISPLAY = true
  184.   # 何もステートがない時に表示する文字 ""とすると非表示になります
  185.   WORD_NORMAL_STATE = "正常"
  186.   # HPゲージを表示するならtrue ステート表示と併用可
  187.   HP_DISPLAY = true
  188.   # 上記設定をアクターに適用するならtrue
  189.   ACTOR_DISPLAY = true
  190.   # 上記設定を適用しないエネミーID  複数ある場合は[1,2,3]のように
  191.   ENEMY_NON_DISPLAY = []
  192.   # 非表示にするステートID  複数ある場合は[1,2,3]のように
  193.   STATE_NON_DISPLAY = []
  194. end
  195. module RPG
  196. #==============================================================================
  197. # ■ module RPG
  198. #------------------------------------------------------------------------------
  199. #  スキル設定
  200. #==============================================================================
  201. class Skill
  202.  
  203.   def charge
  204.     case @id
  205.     when 133
  206.       return [ 4, 40, 0, ""]
  207.     end
  208.     # 上記ID以外のスキルは即時実行
  209.     return [ 4, 20, 0, ""]
  210.   end  
  211. #--------------------------------------------------------------------------
  212. # ● アクション終了後のATBゲージ設定 100でゲージ1本分
  213. #--------------------------------------------------------------------------
  214.   def recharge
  215.     case @id
  216.     when 1
  217.       return 30
  218.     end
  219.     # 上記ID以外のスキルは共通設定を使用
  220.     return N02::ATB_SKILL_RESET
  221.   end
  222.  
  223.   def union_action
  224.     return [
  225.  
  226.     [ 98,  99],
  227.     [100, 101, 102, 103],
  228.  
  229.     []]
  230.   end
  231. end
  232. #==============================================================================
  233. # ■ module RPG
  234. #------------------------------------------------------------------------------
  235. #  アイテム設定
  236. #==============================================================================
  237. class Item
  238. #--------------------------------------------------------------------------
  239. # ● チャージ設定 設定はスキルと同じ。
  240. #--------------------------------------------------------------------------  
  241.   def charge
  242.     case @id
  243.     when 1
  244.       return [ 4, 20, 0, ""]
  245.     end
  246.     # 上記ID以外のアイテムは即時実行
  247.     return [ 4, 0, 0, ""]
  248.   end
  249. #--------------------------------------------------------------------------
  250. # ● アクション終了時のATBゲージ設定 100でゲージ1本分
  251. #--------------------------------------------------------------------------
  252.   def recharge
  253.     case @id
  254.     when 1
  255.       return 0
  256.     end
  257.     # 上記ID以外のアイテムは共通設定を使用
  258.     return N02::ATB_ITEM_RESET
  259.   end
  260. end
  261. #==============================================================================
  262. # ■ module RPG
  263. #------------------------------------------------------------------------------
  264. #  ステート設定
  265. #==============================================================================
  266. class State
  267.  
  268.   def atb_damage
  269.     case @id
  270.     when 8
  271.       return -100
  272.     end
  273.     # 上記ID以外のステート
  274.     return 0
  275.   end
  276. #--------------------------------------------------------------------------
  277. # ● 上記ATBダメージでゲージ0以下を許可するならtrue
  278. #--------------------------------------------------------------------------
  279.   def atb_minus_damage
  280.     return false
  281.   end  
  282. end  
  283. #==============================================================================
  284. # ■ module RPG
  285. #------------------------------------------------------------------------------
  286. #  武器設定
  287. #==============================================================================
  288. class Weapon
  289.  
  290.   def charge
  291.     case @id
  292.     when 2
  293.       return [ 4, 0, 0, ""]
  294.     end
  295.     # 上記ID以外の武器は即時実行
  296.     return [ 4, 0, 0, ""]
  297.   end
  298.  
  299.   def charge_bonus
  300.     case @id
  301.     when 1
  302.       return 0
  303.     end
  304.     # 上記ID以外の武器は即時実行
  305.     return 0
  306.   end
  307.  
  308.   def recharge
  309.     case @id
  310.     when 1
  311.       return 20
  312.     end
  313.     # 上記ID以外の武器は共通設定を使用
  314.     return N02::ATB_ATTACK_RESET
  315.   end
  316. #--------------------------------------------------------------------------
  317. # ● 戦闘開始時のATBゲージ初期値 この数値だけ加算(マイナスで減算)されます 100でゲージ1本分
  318. #--------------------------------------------------------------------------
  319. # 二刀時は両方の武器の平均になります
  320.   def atb_base
  321.     case @id
  322.     when 1
  323.       return 0
  324.     end
  325.     # 上記ID以外の武器
  326.     return 0
  327.   end
  328. end
  329. #==============================================================================
  330. # ■ module RPG
  331. #------------------------------------------------------------------------------
  332. #  防具設定 装備している数の分だけ効果は累積されます
  333. #==============================================================================
  334. class Armor
  335. #--------------------------------------------------------------------------
  336. # ● チャージ補正。特定の防具装備時にチャージ時間を短くしたい時とかに
  337. #--------------------------------------------------------------------------
  338.   def charge_bonus
  339.     case @id
  340.     when 1
  341.       return 0
  342.     end
  343.     # 上記ID以外の防具は即時実行
  344.     return 0
  345.   end
  346. #--------------------------------------------------------------------------
  347. # ● 戦闘開始時のATBゲージ初期値 この数値だけ加算(マイナスで減算)されます
  348. #--------------------------------------------------------------------------
  349.   def atb_base
  350.     case @id
  351.     when 1
  352.       return 0
  353.     end
  354.     # 上記ID以外の防具
  355.     return 0
  356.   end
  357. end
  358. end
  359. #==============================================================================
  360. # ■ Game_Actor
  361. #------------------------------------------------------------------------------
  362. #  アクター設定
  363. #==============================================================================
  364. class Game_Actor < Game_Battler
  365. #--------------------------------------------------------------------------
  366. # ● アクターごとのチャージ設定(素手時) 設定はスキルと同じ。
  367. #--------------------------------------------------------------------------
  368.   def charge
  369.     case @actor_id
  370.     when 1
  371.       return [ 4, 0, 0, ""]
  372.     end
  373.     # 上記ID以外のアクターは即時実行
  374.     return [ 4, 0, 0, ""]
  375.   end
  376. #--------------------------------------------------------------------------
  377. # ● アクション終了時のATBゲージ設定(素手時)
  378. #--------------------------------------------------------------------------
  379. # 通常攻撃で素手時のみ効果があります
  380.   def recharge
  381.     case @actor_id
  382.     when 1
  383.       return 20
  384.     end
  385.     # 上記ID以外のアクターは共通設定を使用
  386.     return N02::ATB_ATTACK_RESET
  387.   end
  388. #--------------------------------------------------------------------------
  389. # ● 戦闘開始時のATBゲージ初期値(共通設定を無視します)
  390. #--------------------------------------------------------------------------
  391.   def atb_base
  392.     case @actor_id
  393.     when 1
  394.       return 30
  395.     end
  396.     # 上記ID以外のアクターは共通設定を使用
  397.     return N02::ATB_BASE_ACTOR
  398.   end
  399. #--------------------------------------------------------------------------
  400. # ● ATBゲージを表示するアクターを指定 表示するならtrue
  401. #--------------------------------------------------------------------------
  402.   def atb_on
  403.     case @actor_id
  404.     when 1
  405.       return true
  406.     end
  407.     # 上記ID以外のアクター設定
  408.     return true
  409.   end
  410. end  
  411. #==============================================================================
  412. # ■ Game_Enemy
  413. #------------------------------------------------------------------------------
  414. #  エネミー設定
  415. #==============================================================================
  416. class Game_Enemy < Game_Battler
  417. #--------------------------------------------------------------------------
  418. # ● エネミーごとのチャージ設定(素手時) 設定はスキルと同じ。
  419. #--------------------------------------------------------------------------
  420.   def charge
  421.     case @enemy_id
  422.     when 1
  423.       return [ 4, 20, 0, ""]
  424.     end
  425.     # 上記ID以外のエネミーは即時実行
  426.     return [ 4, 0, 0, ""]
  427.   end
  428. #--------------------------------------------------------------------------
  429. # ● アクション終了時のATBゲージ設定(素手時)
  430. #--------------------------------------------------------------------------
  431. # 通常攻撃で素手時のみ効果があります
  432.   def recharge
  433.     case @enemy_id
  434.     when 1
  435.       return 20
  436.     end
  437.     # 上記ID以外のアクターは共通設定を使用
  438.     return N02::ATB_ATTACK_RESET
  439.   end
  440. #--------------------------------------------------------------------------
  441. # ● 戦闘開始時のATBゲージ初期値(共通設定を無視します)
  442. #--------------------------------------------------------------------------
  443.   def atb_base
  444.     case @enemy_id
  445.     when 1
  446.       return 10
  447.     end
  448.     # 上記ID以外のエネミーは共通設定を使用
  449.     return N02::ATB_BASE_ENEMY
  450.   end
  451. #--------------------------------------------------------------------------
  452. # ● ATBゲージを表示するエネミーを指定(共通設定を無視します) 表示するならtrue
  453. #--------------------------------------------------------------------------
  454.   def atb_on
  455.     case @enemy_id
  456.     when 1
  457.       return true
  458.     end
  459.     # 上記ID以外のエネミーは共通設定を使用
  460.     return N02::ATB_ENEMY_ON
  461.   end
  462. end




点评

这个问题如果能解决我就帮我弄成推荐贴  发表于 2014-12-31 17:08

评分

参与人数 1星屑 +100 收起 理由
丿梁丶小柒 + 100 推荐问题

查看全部评分

长名公主玩家群:372588926 攻略娱乐应有尽有
了解更多新RM游戏,游戏制作请加入RPGmaker支援群:113622890

Lv4.逐梦者 (版主)

聪仔

梦石
0
星屑
6182
在线时间
3077 小时
注册时间
2013-12-26
帖子
3145
2
发表于 2015-1-5 20:26:22 | 只看该作者
横板战斗系统3-3.rar (611.74 KB, 下载次数: 77)
第一步,和国王对话,然后战斗,证实可以产生不死的BUG...
第二步,打开脚本编辑器,找到第750行和915行,删除这两行前面的注释符号,使得这两行脚本生效...
第三步,战斗,测试BUG是否已经消除...的确是消除了,说明修复BUG只需加上这两句就可以了...

@丿梁丶小柒
白小柒版主大人,解决了【推荐问答】的帖子可以得到几张好人卡呢...是不是张呀...
润蜀黍,求塞糖...

点评

润叔大人这么信任我,我真开心呢...  发表于 2015-1-6 07:58
看正太这么自信一定是发现问题了 我回去试验试验先  发表于 2015-1-6 07:56

评分

参与人数 2星屑 +644 梦石 +2 收起 理由
上贺茂润 + 444
丿梁丶小柒 + 200 + 2 很多人提问过的问题终于被聪仔解决了。。.

查看全部评分

聪聪全国第三帅...
他们都叫我【人赢聪】
我的RM能力雷达图:

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 17:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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