Commit e4a7dd33 authored by Huangnan's avatar Huangnan

fix

parent 335dd5ef
--绝对公正之蜻蜓队长 --绝对公正之蜻蜓队长
local s, id = GetID() local s, id = GetID()
-- 修改初始效果注册时使用的过滤器
function s.initial_effect(c) function s.initial_effect(c)
aux.AddXyzProcedure(c,nil,12,2,s.efilter,aux.Stringid(id,0),2,s.altop) aux.AddXyzProcedure(c,nil,12,2,s.xyzfilter,aux.Stringid(id,0),2,s.altop)
if not s.global_check then if not s.global_check then
s.global_check=true s.global_check=true
local ge1=Effect.CreateEffect(c) local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_SPSUMMON_SUCCESS) ge1:SetCode(EVENT_SPSUMMON_SUCCESS)
ge1:SetOperation(s.chk) ge1:SetOperation(s.chk)
Duel.RegisterEffect(ge1,0) Duel.RegisterEffect(ge1,0)
end end
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_CANNOT_DISABLE_SPSUMMON) e3:SetCode(EFFECT_CANNOT_DISABLE_SPSUMMON)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCondition(s.spcon3) e3:SetCondition(s.spcon3)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--修改变量名
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_SPSUMMON_SUCCESS)
e4:SetCondition(s.spcon3)
e4:SetOperation(s.spop3)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e5:SetCode(EVENT_SPSUMMON_SUCCESS)
e5:SetCondition(s.spcon3)
e5:SetOperation(s.spop3)
c:RegisterEffect(e5)
-- 修改e3的Value设置
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EVENT_SPSUMMON_SUCCESS) e3:SetCode(EFFECT_CANNOT_INACTIVATE)
e3:SetCondition(s.spcon3) e3:SetReset(RESET_PHASE+PHASE_END)
e3:SetOperation(s.spop3) e3:SetValue(s.chainfilter)
c:RegisterEffect(e3) Duel.RegisterEffect(e3,tp)
end
function s.xyzfilter(c,tp,mg)
local p=c:GetControler()
return Duel.GetFlagEffect(1-p,id)>4
end
function s.chainfilter(e,ct)
local te=Duel.GetChainInfo(ct,CHAININFO_TRIGGERING_EFFECT)
return te:GetHandler():GetFlagEffectLabel(id)~=e:GetLabel()
end end
function s.spcon3(e,tp,eg,ep,ev,re,r,rp) function s.spcon3(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSummonType()==SUMMON_TYPE_XYZ return e:GetHandler():GetSummonType()==SUMMON_TYPE_XYZ
end end
function s.spop3(e,tp,eg,ep,ev,re,r,rp,c) function s.spop3(e,tp,eg,ep,ev,re,r,rp,c)
local c=e:GetHandler() local c=e:GetHandler()
--Debug.Message("第一:绝对不意气用事") if not c:IsSummonType(SUMMON_TYPE_XYZ) then return end
--Debug.Message("第二:绝不漏判任何一件坏事")
--Debug.Message("第三:绝对裁判的公正漂亮") --跳过战斗阶段
if not c:IsSummonType(SUMMON_TYPE_XYZ) then return end local e1=Effect.CreateEffect(c)
local e2=Effect.CreateEffect(c) e1:SetType(EFFECT_TYPE_FIELD)
e2:SetType(EFFECT_TYPE_FIELD) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetCode(EFFECT_DISABLE) e1:SetCode(EFFECT_SKIP_BP)
e2:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD) e1:SetTargetRange(1,0)
e2:SetTarget(s.disable) e1:SetReset(RESET_PHASE+PHASE_END)
e2:SetReset(RESET_PHASE+PHASE_END) Duel.RegisterEffect(e1,tp)
e2:SetLabel(c:GetFieldID())
Duel.RegisterEffect(e2,tp) --无效化场上的卡的效果
local e3=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e2:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EVENT_CHAIN_SOLVING) e2:SetCode(EFFECT_DISABLE)
e3:SetCondition(s.discon) e2:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD)
e3:SetOperation(s.disop) e2:SetTarget(s.disable)
e3:SetReset(RESET_PHASE+PHASE_END) e2:SetReset(RESET_PHASE+PHASE_END)
e3:SetLabel(c:GetFieldID()) e2:SetLabel(c:GetFieldID())
Duel.RegisterEffect(e3,tp) Duel.RegisterEffect(e2,tp)
c:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1,c:GetFieldID())
local e2=Effect.CreateEffect(c) --不会被无效化
e2:SetType(EFFECT_TYPE_FIELD) local e3=Effect.CreateEffect(c)
e2:SetCode(EFFECT_CANNOT_INACTIVATE) e3:SetType(EFFECT_TYPE_FIELD)
e2:SetReset(RESET_PHASE+PHASE_END) e3:SetCode(EFFECT_CANNOT_INACTIVATE)
e2:SetValue(s.efilter) e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp) e3:SetValue(s.efilter)
local e2=Effect.CreateEffect(c) Duel.RegisterEffect(e3,tp)
e2:SetType(EFFECT_TYPE_FIELD) local e4=e3:Clone()
e2:SetCode(EFFECT_CANNOT_DISEFFECT) e4:SetCode(EFFECT_CANNOT_DISEFFECT)
e2:SetReset(RESET_PHASE+PHASE_END) Duel.RegisterEffect(e4,tp)
e2:SetValue(s.efilter)
Duel.RegisterEffect(e2,tp) --不会被破坏,不能成为效果对象,不能除外
local e1=Effect.CreateEffect(c) local e5=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD) e5:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e5:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e1:SetCode(EFFECT_INDESTRUCTABLE) e5:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e1:SetTargetRange(1,1) e5:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD)
e1:SetValue(s.efilter) e5:SetValue(1)
e1:SetReset(RESET_PHASE+PHASE_END) e5:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e5,tp)
local e3=Effect.CreateEffect(e:GetHandler()) local e6=e5:Clone()
e3:SetType(EFFECT_TYPE_FIELD) e6:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET) Duel.RegisterEffect(e6,tp)
e3:SetCode(EFFECT_CHANGE_DAMAGE) local e7=e5:Clone()
e3:SetTargetRange(1,1) e7:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e3:SetValue(0) e7:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetReset(RESET_PHASE+PHASE_END) Duel.RegisterEffect(e7,tp)
Duel.RegisterEffect(e3,tp) local e8=e5:Clone()
local e4=e3:Clone() e8:SetCode(EFFECT_CANNOT_REMOVE)
e4:SetCode(EFFECT_NO_EFFECT_DAMAGE) Duel.RegisterEffect(e8,tp)
e4:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e4,tp) --伤害变成0
local e2=Effect.CreateEffect(c) local e9=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD) e9:SetType(EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e9:SetCode(EFFECT_CHANGE_DAMAGE)
e2:SetCode(EFFECT_CANNOT_REMOVE) e9:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1,1) e9:SetTargetRange(1,1)
e2:SetTarget(s.efilter) e9:SetValue(0)
e2:SetReset(RESET_PHASE+PHASE_END) e9:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp) Duel.RegisterEffect(e9,tp)
end local e10=e9:Clone()
function s.efilter(e,ct) e10:SetCode(EFFECT_NO_EFFECT_DAMAGE)
Duel.RegisterEffect(e10,tp)
return true
c:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1,c:GetFieldID())
end end
function s.disable(e,c) function s.disable(e,c)
return c:GetFlagEffectLabel(id)~=e:GetLabel() and (not c:IsType(TYPE_MONSTER) or (c:IsType(TYPE_EFFECT) or bit.band(c:GetOriginalType(),TYPE_EFFECT)==TYPE_EFFECT)) return c:GetFlagEffectLabel(id)~=e:GetLabel() and (not c:IsType(TYPE_MONSTER) or (c:IsType(TYPE_EFFECT) or bit.band(c:GetOriginalType(),TYPE_EFFECT)==TYPE_EFFECT))
...@@ -114,6 +137,6 @@ function s.chk(e,tp,eg,ep,ev,re,r,rp) ...@@ -114,6 +137,6 @@ function s.chk(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function s.altop(e,tp,chk) function s.altop(e,tp,chk)
if chk==0 then return Duel.GetFlagEffect(1-tp,id)>4 end if chk==0 then return Duel.GetFlagEffect(1-tp,id)>4 end
return true
end end
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment