Project1
标题:
请问如何做个无敌技能
[打印本页]
作者:
1230654789x
时间:
2011-10-4 21:28
标题:
请问如何做个无敌技能
就是主角用了这个技能。能在这个回合不受任何伤害 dsu_plus_rewardpost_czw
作者:
不会脚本
时间:
2011-10-4 21:39
无聊范例.rar
(237.56 KB, 下载次数: 114)
2011-10-4 21:38 上传
点击文件名下载附件
看范例!
作者:
1230654789x
时间:
2011-10-4 22:10
不会脚本 发表于 2011-10-4 21:39
看范例!
经测试,没有效果
作者:
ppipip110
时间:
2011-10-4 23:36
你直接将“防御力强化术”加强的防御力加到9999不久相当于无敌了吗?
作者:
昔日辉煌灬
时间:
2011-10-5 11:34
脚本:
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ ◆ 無敵ステート - KGC_Invincible ◆ VX ◆
#_/ ◇ Last update : 2009/09/13 ◇
#_/----------------------------------------------------------------------------
#_/ 無敵状態になるステートを作成します。
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
$imported = {} if $imported == nil
$imported["Invincible"] = true
module KGC
module Invincible
module Regexp
# 無敵タイプ
INV_TYPE = /<(?:INVINCIBLE_TYPE|無敵タイプ)\s*([^>]+)>/i
module State
# 無敵
INVINCIBLE = /<(物理|魔法)?(?:INVINCIBLE|無敵)(_PHYSIC|_MAGIC)?>/i
end
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ RPG::UsableItem
#==============================================================================
class RPG::UsableItem < RPG::BaseItem
#--------------------------------------------------------------------------
# ○ 無敵ステートのキャッシュを生成
#--------------------------------------------------------------------------
def create_invincible_cache
@__inv_type = nil
self.note.each_line { |line|
if line =~ KGC::Invincible::Regexp::INV_TYPE
@__inv_type = $1
end
}
@__inv_cached = true
end
#--------------------------------------------------------------------------
# ○ 無敵タイプ
#--------------------------------------------------------------------------
def invincible_type
create_invincible_cache unless @__inv_cached
return @__inv_type
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ RPG::State
#==============================================================================
class RPG::State
#--------------------------------------------------------------------------
# ○ 無敵ステートのキャッシュを生成
#--------------------------------------------------------------------------
def create_invincible_cache
@__inv_all = false
@__inv_physic = false
@__inv_magic = false
@__inv_type = nil
self.note.each_line { |line|
if line =~ KGC::Invincible::Regexp::INV_TYPE
@__inv_type = $1
end
if line =~ KGC::Invincible::Regexp::State::INVINCIBLE
valid = false
if $1 == "物理" || ($2 && $2.upcase == "_PHYSIC")
@__inv_physic = true
valid = true
end
if $1 == "魔法" || ($2 && $2.upcase == "_MAGIC")
@__inv_magic = true
valid = true
end
@__inv_all = true unless valid
end
}
@__inv_cached = true
end
#--------------------------------------------------------------------------
# ○ 無敵ステートか
#--------------------------------------------------------------------------
def is_invincible?
return (all_invincible? ||
physic_invincible? ||
magic_invincible? ||
invincible_type != nil
)
end
#--------------------------------------------------------------------------
# ○ 無敵タイプ
#--------------------------------------------------------------------------
def invincible_type
create_invincible_cache unless @__inv_cached
return @__inv_type
end
#--------------------------------------------------------------------------
# ○ 完全無敵
#--------------------------------------------------------------------------
def all_invincible
create_invincible_cache if @__inv_all == nil
return @__inv_all
end
alias all_invincible? all_invincible
#--------------------------------------------------------------------------
# ○ 物理無敵
#--------------------------------------------------------------------------
def physic_invincible
create_invincible_cache if @__inv_physic == nil
return @__inv_physic
end
alias physic_invincible? physic_invincible
#--------------------------------------------------------------------------
# ○ 魔法無敵
#--------------------------------------------------------------------------
def magic_invincible
create_invincible_cache if @__inv_magic == nil
return @__inv_magic
end
alias magic_invincible? magic_invincible
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :invincible # 無敵判定フラグ
#--------------------------------------------------------------------------
# ● 行動効果の保持用変数をクリア
#--------------------------------------------------------------------------
alias clear_action_results_KGC_Invincible clear_action_results
def clear_action_results
clear_action_results_KGC_Invincible
@invincible = false
end
#--------------------------------------------------------------------------
# ● 通常攻撃の効果適用
# attacker : 攻撃者
#--------------------------------------------------------------------------
alias attack_effect_KGC_Invincible attack_effect
def attack_effect(attacker)
invincible_effect(attacker)
return if @skipped
attack_effect_KGC_Invincible(attacker)
end
#--------------------------------------------------------------------------
# ● スキルの効果適用
# user : スキルの使用者
# skill : スキル
#--------------------------------------------------------------------------
alias skill_effect_KGC_Invincible skill_effect
def skill_effect(user, skill)
invincible_effect(user, skill)
return if @skipped
skill_effect_KGC_Invincible(user, skill)
end
#--------------------------------------------------------------------------
# ● アイテムの効果適用
# user : アイテムの使用者
# item : アイテム
#--------------------------------------------------------------------------
alias item_effect_KGC_Invincible item_effect
def item_effect(user, item)
invincible_effect(user, item)
return if @skipped
item_effect_KGC_Invincible(user, item)
end
#--------------------------------------------------------------------------
# ○ 無敵効果の適用
# user : 行動者
# obj : スキル/アイテム (nil なら通常攻撃)
#--------------------------------------------------------------------------
def invincible_effect(user, obj = nil)
@invincible = false
clear_action_results
return unless invincible?(user, obj)
@skipped = true
@invincible = true
end
#--------------------------------------------------------------------------
# ○ 無敵判定
# user : 行動者
# obj : スキル/アイテム (nil なら通常攻撃)
#--------------------------------------------------------------------------
def invincible?(user, obj = nil)
if !(actor? ^ user.actor?) && obj != nil
return false if obj.for_friend? # 味方なら無効化しない
end
physic = (obj == nil ? true : obj.physical_attack) # 物理フラグ
type = (obj == nil ? nil : obj.invincible_type) # 無敵タイプ
states.each { |state|
next unless state.is_invincible?
return true if state.all_invincible?
if type != nil
# 無敵タイプ指定あり
return true if state.invincible_type == type
else
# 無敵タイプ指定なし
return true if physic && state.physic_invincible?
return true if !physic && state.magic_invincible?
end
}
return false
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# ● 行動結果の表示
# target : 対象者
# obj : スキルまたはアイテム
#--------------------------------------------------------------------------
alias display_action_effects_KGC_Invincible display_action_effects
def display_action_effects(target, obj = nil)
display_action_effects_KGC_Invincible(target, obj)
display_invincible(target, obj) if target.invincible
end
#--------------------------------------------------------------------------
# ○ 無敵時のメッセージを表示
# target : 対象者
# obj : スキルまたはアイテム
#--------------------------------------------------------------------------
def display_invincible(target, obj)
line_number = @message_window.line_number
display_failure(target, obj)
@message_window.back_to(line_number)
end
end
复制代码
......在数据库 状态的备注里写上<無敵> 技能附加这个状态就行了
作者:
壬穹雷光
时间:
2011-10-5 11:37
要说无敌技能,MS有很多办法的说,最简单的就是附加状态,闪避率提升到100%就OK了...
作者:
絀神入化
时间:
2011-10-5 20:08
设置两个状态,把脚本放进去(注意,一个状态只能放一个)
物理反弹:
<extensions>
physical reflect: 39
</extensions>
复制代码
魔法无效:
<extensions>
null magic: 39
</extensions>
复制代码
设置为1回合后解除。
技能里附加这两个状态就行了,设置速度补正值为999。OK
作者:
无双sxa
时间:
2011-10-6 02:03
在编辑事件的伤害处理处设置一下就行了。
作者:
shinliwei
时间:
2011-10-6 14:58
本帖最后由 shinliwei 于 2011-10-6 15:00 编辑
就是5楼给的那个脚本
这个 脚本是KGC的
使用方法是在状态的备注栏里写上 <無敵> 或 <物理無敵> 或 <魔法無敵>。
我使用时发现了一点问题,主角使用了无敌之后,敌人将不再攻击主角。无敌效果没了也不会再攻击主角。
作者:
文军诺
时间:
2011-10-7 12:04
本帖最后由 文军诺 于 2011-10-7 12:04 编辑
你把技能的属性调到最高!只要属性比对方高就行了。除非你把敌人弄成不死之身。不过,你这么做有什么用?
作者:
怪蜀黍
时间:
2011-10-8 21:54
就是主角用了这个技能。能在这个回合不受任何伤害
HP伤害为0,但是包括对MP伤害吗?是否可以中不利状态?要是对他加HP可以吗?写清楚提社条件后几句脚本帮你解决!
简简单单一个问题何必大费周折?
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1