Commit 642dbc92 authored by argon.sun's avatar argon.sun

fix & new scripts

parent 305e8b1e
--No.69 紋章神コート·オブ·アームズ
function c2407234.initial_effect(c)
--xyz summon
aux.AddXyzProcedure(c,aux.FilterEqualFunction(Card.GetLevel,4),3)
c:EnableReviveLimit()
--negate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(2407234,0))
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetOperation(c2407234.negop)
c:RegisterEffect(e1)
--effect
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(2407234,1))
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetRange(LOCATION_MZONE)
e2:SetCost(c2407234.cost)
e2:SetTarget(c2407234.target)
e2:SetOperation(c2407234.operation)
c:RegisterEffect(e2)
end
function c2407234.filter(c)
return c:IsFaceup() and c:IsType(TYPE_XYZ)
end
function c2407234.negop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(c2407234.filter,tp,LOCATION_MZONE,LOCATION_MZONE,c)
local tc=g:GetFirst()
while tc do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+0x1fe0000)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetReset(RESET_EVENT+0x1fe0000)
tc:RegisterEffect(e2)
tc=g:GetNext()
end
end
function c2407234.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,2407234)==0 end
Duel.RegisterFlagEffect(tp,2407234,RESET_PHASE+PHASE_END,0,1)
end
function c2407234.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c2407234.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c2407234.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,e:GetHandler()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,c2407234.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,e:GetHandler())
end
function c2407234.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc and c:IsRelateToEffect(e) and c:IsFaceup() and tc:IsFaceup() and tc:IsRelateToEffect(e) then
local code=tc:GetOriginalCode()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_CHANGE_CODE)
e1:SetValue(code)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
c:CopyEffect(code,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,1)
end
end
...@@ -6,12 +6,17 @@ function c30190809.initial_effect(c) ...@@ -6,12 +6,17 @@ function c30190809.initial_effect(c)
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCondition(c30190809.condition) e1:SetCondition(c30190809.condition)
e1:SetCost(c30190809.cost)
e1:SetOperation(c30190809.operation) e1:SetOperation(c30190809.operation)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c30190809.condition(e,tp,eg,ep,ev,re,r,rp) function c30190809.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()==PHASE_MAIN1 and e:GetHandler():GetEffectCount(EFFECT_DIRECT_ATTACK)==0 return Duel.GetCurrentPhase()==PHASE_MAIN1 and e:GetHandler():GetEffectCount(EFFECT_DIRECT_ATTACK)==0
end end
function c30190809.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,800) end
Duel.PayLPCost(tp,800)
end
function c30190809.operation(e,tp,eg,ep,ev,re,r,rp) function c30190809.operation(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
......
...@@ -30,7 +30,7 @@ end ...@@ -30,7 +30,7 @@ end
function c3370104.distg(e,c) function c3370104.distg(e,c)
if not e:GetHandler():IsAttackPos() or c:GetCardTargetCount()~=1 then return false end if not e:GetHandler():IsAttackPos() or c:GetCardTargetCount()~=1 then return false end
local tc=c:GetFirstCardTarget() local tc=c:GetFirstCardTarget()
return tc:IsControler(e:GetHandlerPlayer()) and tc:IsRace(RACE_MACHINE) return tc:IsControler(e:GetHandlerPlayer()) and tc:IsFaceup() and tc:IsRace(RACE_MACHINE)
end end
function c3370104.disop(e,tp,eg,ep,ev,re,r,rp) function c3370104.disop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsAttackPos() or re:IsActiveType(TYPE_MONSTER) then return end if not e:GetHandler():IsAttackPos() or re:IsActiveType(TYPE_MONSTER) then return end
...@@ -38,7 +38,7 @@ function c3370104.disop(e,tp,eg,ep,ev,re,r,rp) ...@@ -38,7 +38,7 @@ function c3370104.disop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS) local g=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS)
if not g or g:GetCount()~=1 then return end if not g or g:GetCount()~=1 then return end
local tc=g:GetFirst() local tc=g:GetFirst()
if tc:IsControler(tp) and tc:IsRace(RACE_MACHINE) then if tc:IsControler(tp) and tc:IsLocation(LOCATION_MZONE) and tc:IsFaceup() and tc:IsRace(RACE_MACHINE) then
Duel.NegateEffect(ev) Duel.NegateEffect(ev)
end end
end end
......
...@@ -6,7 +6,6 @@ function c39272762.initial_effect(c) ...@@ -6,7 +6,6 @@ function c39272762.initial_effect(c)
--negate --negate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(39272762,0)) e1:SetDescription(aux.Stringid(39272762,0))
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_SPSUMMON_SUCCESS) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCondition(c39272762.negcon) e1:SetCondition(c39272762.negcon)
......
...@@ -19,7 +19,7 @@ function c440556.xyzfilter(c) ...@@ -19,7 +19,7 @@ function c440556.xyzfilter(c)
return c:GetLevel()==4 and c:IsAttribute(ATTRIBUTE_WATER) return c:GetLevel()==4 and c:IsAttribute(ATTRIBUTE_WATER)
end end
function c440556.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function c440556.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():GetAttackAnnouncedCount()==0 and e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST) e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
......
...@@ -28,7 +28,7 @@ function c45023678.chop(e,tp,eg,ep,ev,re,r,rp) ...@@ -28,7 +28,7 @@ function c45023678.chop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(0) e:SetLabel(0)
elseif not Duel.CheckChainUniqueness() then elseif not Duel.CheckChainUniqueness() then
e:SetLabel(2) e:SetLabel(2)
elseif re:IsHasType(EFFECT_TYPE_ACTIVATE) and e:GetLabel()~=2 then elseif ct>=3 and e:GetLabel()~=2 then
e:SetLabel(1) e:SetLabel(1)
end end
end end
......
...@@ -30,7 +30,7 @@ end ...@@ -30,7 +30,7 @@ end
function c47387961.operation(e,tp,eg,ep,ev,re,r,rp) function c47387961.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc and c:IsRelateToEffect(e) and c:IsFaceup() and tc:IsRelateToEffect(e) then if tc and c:IsRelateToEffect(e) and c:IsFaceup() and tc:IsFaceup() and tc:IsRelateToEffect(e) then
local code=tc:GetOriginalCode() local code=tc:GetOriginalCode()
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
......
--No.88 ギミック·パペット-デステニー·レオ
function c48995978.initial_effect(c)
c:EnableCounterPermit(0x302b)
--xyz summon
aux.AddXyzProcedure(c,aux.FilterEqualFunction(Card.GetLevel,8),3)
c:EnableReviveLimit()
--counter
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_COUNTER)
e1:SetDescription(aux.Stringid(48995978,0))
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetCountLimit(1)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(c48995978.condition)
e1:SetCost(c48995978.cost)
e1:SetTarget(c48995978.target)
e1:SetOperation(c48995978.operation)
c:RegisterEffect(e1)
end
function c48995978.filter(c)
return c:GetSequence()~=5
end
function c48995978.condition(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(c48995978.filter,tp,LOCATION_SZONE,0,1,nil)
end
function c48995978.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCurrentPhase()==PHASE_MAIN1 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function c48995978.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_EFFECT)
and e:GetHandler():IsCanAddCounter(0x302b,1) end
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,0,0x302b)
end
function c48995978.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and c:IsFaceup() and c:RemoveOverlayCard(tp,1,1,REASON_EFFECT) then
c:AddCounter(0x302b,1)
if c:GetCounter(0x302b)==3 then
local WIN_REASON_DESTINY_LEO=0x17
Duel.Win(c:GetControler(),WIN_REASON_DESTINY_LEO)
end
end
end
...@@ -28,8 +28,8 @@ function c60258960.acop(e,tp,eg,ep,ev,re,r,rp) ...@@ -28,8 +28,8 @@ function c60258960.acop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c60258960.descost(e,tp,eg,ep,ev,re,r,rp,chk) function c60258960.descost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanRemoveCounter(tp,0x3001,1,REASON_COST) end if chk==0 then return e:GetHandler():IsCanRemoveCounter(tp,0x3001,3,REASON_COST) end
e:GetHandler():RemoveCounter(tp,0x3001,1,REASON_COST) e:GetHandler():RemoveCounter(tp,0x3001,3,REASON_COST)
end end
function c60258960.destg(e,tp,eg,ep,ev,re,r,rp,chk) function c60258960.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -32,7 +32,7 @@ end ...@@ -32,7 +32,7 @@ end
function c75620895.operation(e,tp,eg,ep,ev,re,r,rp) function c75620895.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc and c:IsRelateToEffect(e) and c:IsFaceup() and tc:IsRelateToEffect(e) then if tc and c:IsRelateToEffect(e) and c:IsFaceup() and tc:IsFaceup() and tc:IsRelateToEffect(e) then
local code=tc:GetOriginalCode() local code=tc:GetOriginalCode()
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
......
...@@ -11,7 +11,7 @@ function c76263644.initial_effect(c) ...@@ -11,7 +11,7 @@ function c76263644.initial_effect(c)
e2:SetDescription(aux.Stringid(76263644,0)) e2:SetDescription(aux.Stringid(76263644,0))
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCondition(c76263644.descon) e2:SetCost(c76263644.descost)
e2:SetTarget(c76263644.destg) e2:SetTarget(c76263644.destg)
e2:SetOperation(c76263644.desop) e2:SetOperation(c76263644.desop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
...@@ -30,8 +30,15 @@ function c76263644.initial_effect(c) ...@@ -30,8 +30,15 @@ function c76263644.initial_effect(c)
end end
c76263644.material_count=2 c76263644.material_count=2
c76263644.material={83965310,17132130} c76263644.material={83965310,17132130}
function c76263644.descon(e,tp,eg,ep,ev,re,r,rp) function c76263644.descost(e,tp,eg,ep,ev,re,r,rp,chk)
return Duel.GetCurrentPhase()==PHASE_MAIN1 if chk==0 then return Duel.GetCurrentPhase()==PHASE_MAIN1 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end end
function c76263644.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c76263644.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and chkc:IsDestructable() end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and chkc:IsDestructable() end
...@@ -43,13 +50,6 @@ function c76263644.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -43,13 +50,6 @@ function c76263644.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if d:IsFaceup() then atk=d:GetAttack() end if d:IsFaceup() then atk=d:GetAttack() end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,atk) Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,atk)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end end
function c76263644.desop(e,tp,eg,ep,ev,re,r,rp) function c76263644.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
......
...@@ -8,11 +8,12 @@ function c9628664.initial_effect(c) ...@@ -8,11 +8,12 @@ function c9628664.initial_effect(c)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetOperation(c9628664.chop) e1:SetOperation(c9628664.chop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--special summon --draw
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(9628664,0)) e2:SetDescription(aux.Stringid(9628664,0))
e2:SetCategory(CATEGORY_DRAW) e2:SetCategory(CATEGORY_DRAW)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F) e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetCode(EVENT_CHAIN_END) e2:SetCode(EVENT_CHAIN_END)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCondition(c9628664.drcon) e2:SetCondition(c9628664.drcon)
...@@ -27,7 +28,7 @@ function c9628664.chop(e,tp,eg,ep,ev,re,r,rp) ...@@ -27,7 +28,7 @@ function c9628664.chop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(0) e:SetLabel(0)
elseif not Duel.CheckChainUniqueness() then elseif not Duel.CheckChainUniqueness() then
e:SetLabel(2) e:SetLabel(2)
elseif re:IsHasType(EFFECT_TYPE_ACTIVATE) and e:GetLabel()~=2 then elseif ct>=3 and e:GetLabel()~=2 then
e:SetLabel(1) e:SetLabel(1)
end end
end end
......
...@@ -365,11 +365,12 @@ ...@@ -365,11 +365,12 @@
!victory 0x4 失去连接 !victory 0x4 失去连接
!victory 0x10 「被封印的艾克佐迪亚」效果胜利 !victory 0x10 「被封印的艾克佐迪亚」效果胜利
!victory 0x11 「终焉的倒计时」效果胜利 !victory 0x11 「终焉的倒计时」效果胜利
!victory 0x12 「毒蛇神 维诺米纳迦」效果胜利 !victory 0x12 「毒蛇神 维诺米纳迦」效果胜利
!victory 0x13 「光之创造神 哈拉克提」效果胜利 !victory 0x13 「光之创造神 哈拉克提」效果胜利
!victory 0x14 「究极封印神 艾克佐迪奥斯」效果胜利 !victory 0x14 「究极封印神 艾克佐迪奥斯」效果胜利
!victory 0x15 「通灵盘」效果胜利 !victory 0x15 「通灵盘」效果胜利
!victory 0x16 「最终一战!」效果胜利 !victory 0x16 「最终一战!」效果胜利
!victory 0x17No.88 机关傀儡-命运狮子」效果胜利
!victory 0x20 由于「%ls」的效果获得比赛胜利 !victory 0x20 由于「%ls」的效果获得比赛胜利
#counters #counters
!counter 0x3001 魔力指示物 !counter 0x3001 魔力指示物
...@@ -414,3 +415,4 @@ ...@@ -414,3 +415,4 @@
!counter 0x3028 指示物(暗黑投射手) !counter 0x3028 指示物(暗黑投射手)
!counter 0x29 指示物(气球蜥蜴) !counter 0x29 指示物(气球蜥蜴)
!counter 0x2a 指示物(魔法防护器) !counter 0x2a 指示物(魔法防护器)
!counter 0x302b 命运指示物
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