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

Project1

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

[已经解决] 关于持续一定次数的状态

[复制链接]

Lv4.逐梦者

梦石
1
星屑
5174
在线时间
1007 小时
注册时间
2012-5-14
帖子
69

开拓者

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

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

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

x
请问,如何制作出一个无回合限制,持续一定次数的状态?
比如一个状态加防御,持续被攻击3次

Lv3.寻梦者

梦石
0
星屑
1696
在线时间
761 小时
注册时间
2013-9-23
帖子
211

开拓者

2
发表于 2017-7-6 10:17:53 | 只看该作者
最不擅长的就是找到规约,于是把能贴的都贴出来吧。
==============
脚本原址
http://kaisou-ryouiki.sakura.ne.jp/
脚本
  1. =begin
  2.       RGSS3
  3.       
  4.       ★ 衝撃回数解除ステート ★

  5.       指定回数ダメージを受けた際に解除されるステートを作ることができます。
  6.       
  7.       ● 仕様 ●==========================================================
  8.       衝撃カウントは1以上のダメージを与えた時に限り変動します。
  9.       --------------------------------------------------------------------
  10.       解除確率はいまのところ一律100%となります。
  11.       ====================================================================
  12.       
  13.       ● 使い方 ●========================================================
  14.       データベースのステートのメモ欄に
  15.       「衝撃回数解除:n」という文字列を含ませて下さい。nには整数値を。
  16.       ====================================================================
  17.       
  18.       ver1.00

  19.       Last Update : 2011/12/17
  20.       12/17 : RGSS2からの移植
  21.       
  22.       ろかん   http://kaisou-ryouiki.sakura.ne.jp/
  23. =end

  24. $rsi ||= {}
  25. $rsi["衝撃回数解除ステート"] = true

  26. class RPG::State < RPG::BaseItem
  27.   def get_remove_shockcount
  28.     self.note.each_line{|line|
  29.       return $1.to_i if line =~ /衝撃回数解除:(\d+)/i
  30.     }
  31.     0
  32.   end
  33. end

  34. class Game_BattlerBase
  35.   #--------------------------------------------------------------------------
  36.   # ● ステート情報をクリア
  37.   #--------------------------------------------------------------------------
  38.   alias remove_shockcount_state_clear clear_states
  39.   def clear_states
  40.     remove_shockcount_state_clear
  41.     @shockcount_states = {}
  42.   end
  43. end

  44. class Game_Battler
  45.   #--------------------------------------------------------------------------
  46.   # ● 新しいステートの付加
  47.   #--------------------------------------------------------------------------
  48.   alias add_shockcount_state add_new_state
  49.   def add_new_state(state_id)
  50.     add_shockcount_state(state_id)
  51.     set_count_state(state_id)
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ● ステートの解除
  55.   #--------------------------------------------------------------------------
  56.   alias remove_shockcount_state remove_state
  57.   def remove_state(state_id)
  58.     remove_shockcount_state(state_id)
  59.     out_count_state(state_id)
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ● 新しく付加されたステートに解除衝撃回数がある場合、専用ハッシュに加える
  63.   #--------------------------------------------------------------------------
  64.   def set_count_state(state_id)
  65.     shock_count = $data_states[state_id].get_remove_shockcount
  66.     @shockcount_states[state_id] = shock_count unless shock_count.zero?
  67.   end
  68.   #--------------------------------------------------------------------------
  69.   # ● 解除されたステートが専用ハッシュに存在する場合に削除
  70.   #--------------------------------------------------------------------------
  71.   def out_count_state(state_id)
  72.     @shockcount_states.delete(state_id) if @shockcount_states.include?(state_id)
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● ダメージによるステート解除
  76.   #--------------------------------------------------------------------------
  77.   alias shockcount_state_remove_states_by_damage remove_states_by_damage
  78.   def remove_states_by_damage
  79.     shockcount_state_remove_states_by_damage
  80.     @shockcount_states.each_key{|key|
  81.       @shockcount_states[key] -= 1
  82.       if @shockcount_states[key].zero?
  83.         remove_state(key)
  84.         @result.removed_states << key
  85.       end
  86.     }
  87.   end
  88. end
复制代码


作用是制作一个受到指定回数伤害才解除的状态
状态备注栏内标记——
衝撃回数解除:n
n替换为数字,表示此状态受n次伤害后解除
如果所受伤害为0,则n不会减少

这个脚本我也没用过,从你的需求和脚本简介上看很符合。

点评

亲测可用,万分感谢。  发表于 2017-7-6 11:11

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 10:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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