Commit e4a7dd33 authored by Huangnan's avatar Huangnan

fix

parent 335dd5ef
--绝对公正之蜻蜓队长
local s, id = GetID()
-- 修改初始效果注册时使用的过滤器
function s.initial_effect(c)
aux.AddXyzProcedure(c,nil,12,2,s.efilter,aux.Stringid(id,0),2,s.altop)
if not s.global_check then
s.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_SPSUMMON_SUCCESS)
ge1:SetOperation(s.chk)
Duel.RegisterEffect(ge1,0)
end
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_CANNOT_DISABLE_SPSUMMON)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCondition(s.spcon3)
c:RegisterEffect(e3)
aux.AddXyzProcedure(c,nil,12,2,s.xyzfilter,aux.Stringid(id,0),2,s.altop)
if not s.global_check then
s.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_SPSUMMON_SUCCESS)
ge1:SetOperation(s.chk)
Duel.RegisterEffect(ge1,0)
end
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_CANNOT_DISABLE_SPSUMMON)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCondition(s.spcon3)
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)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetCondition(s.spcon3)
e3:SetOperation(s.spop3)
c:RegisterEffect(e3)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_CANNOT_INACTIVATE)
e3:SetReset(RESET_PHASE+PHASE_END)
e3:SetValue(s.chainfilter)
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
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
function s.spop3(e,tp,eg,ep,ev,re,r,rp,c)
local c=e:GetHandler()
--Debug.Message("第一:绝对不意气用事")
--Debug.Message("第二:绝不漏判任何一件坏事")
--Debug.Message("第三:绝对裁判的公正漂亮")
if not c:IsSummonType(SUMMON_TYPE_XYZ) then return end
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_DISABLE)
e2:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD)
e2:SetTarget(s.disable)
e2:SetReset(RESET_PHASE+PHASE_END)
e2:SetLabel(c:GetFieldID())
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAIN_SOLVING)
e3:SetCondition(s.discon)
e3:SetOperation(s.disop)
e3:SetReset(RESET_PHASE+PHASE_END)
e3:SetLabel(c:GetFieldID())
Duel.RegisterEffect(e3,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)
e2:SetCode(EFFECT_CANNOT_INACTIVATE)
e2:SetReset(RESET_PHASE+PHASE_END)
e2:SetValue(s.efilter)
Duel.RegisterEffect(e2,tp)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CANNOT_DISEFFECT)
e2:SetReset(RESET_PHASE+PHASE_END)
e2:SetValue(s.efilter)
Duel.RegisterEffect(e2,tp)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EFFECT_INDESTRUCTABLE)
e1:SetTargetRange(1,1)
e1:SetValue(s.efilter)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetCode(EFFECT_CHANGE_DAMAGE)
e3:SetTargetRange(1,1)
e3:SetValue(0)
e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp)
local e4=e3:Clone()
e4:SetCode(EFFECT_NO_EFFECT_DAMAGE)
e4:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e4,tp)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetCode(EFFECT_CANNOT_REMOVE)
e2:SetTargetRange(1,1)
e2:SetTarget(s.efilter)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
end
function s.efilter(e,ct)
return true
local c=e:GetHandler()
if not c:IsSummonType(SUMMON_TYPE_XYZ) then return end
--跳过战斗阶段
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_SKIP_BP)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
--无效化场上的卡的效果
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_DISABLE)
e2:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD)
e2:SetTarget(s.disable)
e2:SetReset(RESET_PHASE+PHASE_END)
e2:SetLabel(c:GetFieldID())
Duel.RegisterEffect(e2,tp)
--不会被无效化
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_CANNOT_INACTIVATE)
e3:SetReset(RESET_PHASE+PHASE_END)
e3:SetValue(s.efilter)
Duel.RegisterEffect(e3,tp)
local e4=e3:Clone()
e4:SetCode(EFFECT_CANNOT_DISEFFECT)
Duel.RegisterEffect(e4,tp)
--不会被破坏,不能成为效果对象,不能除外
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD)
e5:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e5:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e5:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD)
e5:SetValue(1)
e5:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e5,tp)
local e6=e5:Clone()
e6:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
Duel.RegisterEffect(e6,tp)
local e7=e5:Clone()
e7:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e7:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
Duel.RegisterEffect(e7,tp)
local e8=e5:Clone()
e8:SetCode(EFFECT_CANNOT_REMOVE)
Duel.RegisterEffect(e8,tp)
--伤害变成0
local e9=Effect.CreateEffect(c)
e9:SetType(EFFECT_TYPE_FIELD)
e9:SetCode(EFFECT_CHANGE_DAMAGE)
e9:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e9:SetTargetRange(1,1)
e9:SetValue(0)
e9:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e9,tp)
local e10=e9:Clone()
e10:SetCode(EFFECT_NO_EFFECT_DAMAGE)
Duel.RegisterEffect(e10,tp)
c:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1,c:GetFieldID())
end
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))
......@@ -114,6 +137,6 @@ function s.chk(e,tp,eg,ep,ev,re,r,rp)
end
end
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
\ 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