Commit 2a566bb5 authored by Nemo Ma's avatar Nemo Ma

fix

parent 61cd7876
......@@ -15,8 +15,9 @@ end
Scl_Library_Switch = true
--Print version number
Debug.Message("You are using Scl's library, Version: " .. Version_Number .. ".")
Debug.Message("If you find any script errors, call Scl to fix them.")
Debug.Message("His QQ/VX: 852415212, Email: 15161685390@163.com.")
Debug.Message("If you find any script errors, Scl won't fix them.")
Debug.Message("Do NOT contact him and try to fix c10100000.lua yourself.")
--Debug.Message("His QQ/VX: 852415212, Email: 15161685390@163.com.")
--this table's contents can be used in anywhere, commonly be used for create effects, or be used in effect's condtions/costs/targets/operations.
Scl = { }
--this table's contents can be used in anywhere, commonly be used for registering effect's condtions/costs/targets/operations/values.
......@@ -6851,7 +6852,7 @@ s.record_previous_inside_series()
s.previous_xyz_material_record()
s.record_official_filter()
s.add_current_effect_check()
s.add_type_normal_spell_or_trap_scl()
--s.add_type_normal_spell_or_trap_scl()
Scl.RaiseGlobalSetEvent()
......
--食大食蚁兽螳蛉
local m=11451474
local cm=_G["c"..m]
local cm,m=GetID()
function cm.initial_effect(c)
c:EnableReviveLimit()
--cannot special summon
......@@ -63,15 +62,19 @@ function cm.con(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetType()==TYPE_SPELL
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_ONFIELD,0,1,nil) end
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_ONFIELD,0,1,e:GetHandler()) end
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and c:IsFaceup() and c:IsDisabled() then
Duel.NegateEffect(0)
return
end
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(m,0))
local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_ONFIELD,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_HAND+LOCATION_GRAVE+LOCATION_ONFIELD,0,1,1,aux.ExceptThisCard(e))
if #g==0 then return end
local tc=g:GetFirst()
if tc==c then c:CancelToGrave() end
--if tc==c then c:CancelToGrave() end
if Duel.SendtoHand(tc,1-tp,REASON_EFFECT)>0 then
if tc:IsPreviousLocation(LOCATION_HAND) then Duel.ShuffleHand(tp) end
if not tc:IsLocation(LOCATION_HAND) or not tc:IsControler(1-tp) then return end
......
......@@ -82,6 +82,7 @@ function cm.negop(e,tp,eg,ep,ev,re,r,rp)
end
function cm.pentg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1) end
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,e:GetHandler(),1,0,0)
end
function cm.penop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -129,8 +130,7 @@ function cm.tgfilter(c)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.tgfilter,tp,LOCATION_DECK,0,1,nil) and Duel.IsExistingMatchingCard(Card.IsAbleToGrave,tp,LOCATION_EXTRA,0,1,nil) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,true,true) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_EXTRA)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,2,tp,LOCATION_DECK+LOCATION_EXTRA)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -23,13 +23,13 @@ function cm.initial_effect(c)
e1:SetValue(c22348079.splimit)
c:RegisterEffect(e1)
--immune
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_IMMUNE_EFFECT)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetValue(c22348079.efilter)
c:RegisterEffect(e2)
-- local e2=Effect.CreateEffect(c)
-- e2:SetType(EFFECT_TYPE_SINGLE)
-- e2:SetCode(EFFECT_IMMUNE_EFFECT)
-- e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
-- e2:SetRange(LOCATION_MZONE)
-- e2:SetValue(c22348079.efilter)
-- c:RegisterEffect(e2)
--cannot target
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
......
......@@ -24,10 +24,10 @@ end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetCode(EFFECT_LIMIT_SPECIAL_SUMMON_POSITION)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(0,1)
e1:SetTarget(function(e,c,tp,sumtp,sumpos)return (sumpos&POS_ATTACK)>0 end)
e1:SetTarget(cm.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(e:GetHandler())
......@@ -39,6 +39,9 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
e2:SetLabelObject(e1)
Duel.RegisterEffect(e2,tp)
end
function cm.splimit(e,c,tp,sumtp,sumpos)
return (sumpos&POS_ATTACK)>0
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(Card.IsPosition,1,nil,POS_DEFENSE)
end
......
......@@ -75,7 +75,7 @@ function c600032.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e:GetHandler():RegisterFlagEffect(600032,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
end
function c600032.filter1(c)
return c:GetType()==TYPE_TRAP and (c:IsSetCard(0x4c) or c:IsSetCard(0x89)) and c:IsAbleToDeck()
return c:GetType()==TYPE_TRAP and (c:IsSetCard(0x4c) or c:IsSetCard(0x89)) and c:IsAbleToDeckAsCost()
and c:CheckActivateEffect(false,true,false)~=nil
end
function c600032.target(e,tp,eg,ep,ev,re,r,rp,chk)
......@@ -116,6 +116,7 @@ function c600032.target2(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(0)
return Duel.IsExistingMatchingCard(c600032.filter2,tp,LOCATION_GRAVE,0,1,nil,e,tp,eg,ep,ev,re,r,rp)
end
e:SetLabel(0)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,c600032.filter2,tp,LOCATION_GRAVE,0,1,1,nil,e,tp,eg,ep,ev,re,r,rp)
local tc=g:GetFirst()
......
......@@ -38,7 +38,9 @@ function c9910937.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
end
function c9910937.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_SOLVING)
......@@ -46,7 +48,6 @@ function c9910937.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetOperation(c9910937.negop)
e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp)
end
end
function c9910937.negcon(e,tp,eg,ep,ev,re,r,rp)
return ep~=tp and Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_LOCATION)==LOCATION_GRAVE
......
......@@ -39,7 +39,9 @@ function c9910939.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
end
function c9910939.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
......@@ -48,7 +50,6 @@ function c9910939.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetValue(1)
e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp)
end
end
function c9910939.tdtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local loc=LOCATION_GRAVE
......
......@@ -41,10 +41,6 @@ function c9910941.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
end
function c9910941.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c9910941.spfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
if g:GetCount()>0 and Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)~=0 then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_DISABLE)
......@@ -65,6 +61,11 @@ function c9910941.spop(e,tp,eg,ep,ev,re,r,rp)
e3:SetTarget(c9910941.distg)
e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c9910941.spfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
function c9910941.cfilter(c)
......
......@@ -38,7 +38,9 @@ function c9910945.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
end
function c9910945.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_SOLVING)
......@@ -46,7 +48,6 @@ function c9910945.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetOperation(c9910945.negop)
e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp)
end
end
function c9910945.negcon(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS)
......
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