Olhando assim parece ser uma carta bem simples :
Mágica Continua na qual estabelece a regra que só 1 monstro pode atacar durante a Fase de Batalha
Analisando o script :
(sempre que começar com -- é um comentário )
--暗黒の扉 = Nome da carta em japonês
function c30606547.initial_effect(c) = Isso aqui é opcional , se quise pode colocar function s.initial_effect(c)
--activate
local e1=Effect.CreateEffect(c)
Criando Efeito1
e1:SetType(EFFECT_TYPE_ACTIVATE)
Já vimos que é um tipo de Ativação Mágica / Armadilha
e1:SetCode(EVENT_FREE_CHAIN)
Também vimos que esse Tipo de Ativação quer dizer que pode ser ativada em qualquer momento
c:RegisterEffect(e1)
Registrou efeito1
--cannot attack
local e2=Effect.CreateEffect(c)
Criando efeito2
e2:SetType(EFFECT_TYPE_FIELD)
Um efeito que se aplica a todo o campo
e2:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
O efeito se aplica independentemente de uma carta ser "Não afetada pelos efeitos das cartas"
e2:SetCode(EFFECT_CANNOT_ATTACK_ANNOUNCE)
O card afetado não pode declarar ataques (mas pode terminar de conduzir um ataque respondido com este efeito, Rugido Ameaçador / Threatening Roar )
Threatening Roar = Seu oponente não pode declarar um ataque neste turno.
Traduzindo isso : Se você ativar A Porta Obscura e declarar ataque , mesmo que o oponente ative a carta Rugido Ameaçador , o ataque irá passar , já a declaração do 2° ataque não
Se fosse EFFECT_CANNOT_ATTACK na carta ?
Se você ativar A Porta Obscura e declarar ataque , mesmo que o oponente ative a carta Rugido Ameaçador , o ataque irá passar , já o 2° ataque não
Se o monstro tivesse no Efeito : Se declarar ataque ele não pode ser negado ?
Ai automaticamente vai cancelar qualquer armadilha que fosse utilizada , o ataque dele iria passar
e2:SetRange(LOCATION_SZONE)
A Zona de Feitiço / Armadilha, incluindo Feitiço de Campo e Zona de Pêndulo (<= MR3). (valor decimal = 8)
SetRanger deve ser a extensão da carta, primeira vez que eu vejo
e2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
Zona de Monstros (valor decimal = 4)
Alcance do efeito ativado
e2:SetCondition(c30606547.atkcon)
e2:SetTarget(c30606547.atktg)
c:RegisterEffect(e2)
Registrou efeito2
--check
Checagem
local e3=Effect.CreateEffect(c)
Criando efeito3
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
Effect_Type_Field = Um efeito que se aplica a todo o campo
Effect_Type_Continuous = Efeito auxiliar / efeito persistente desencadeado por um evento
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
Efeito não pode ser negado
e3:SetCode(EVENT_ATTACK_ANNOUNCE)
Quando um ataque é declarado
e3:SetRange(LOCATION_SZONE)
e3:SetOperation(c30606547.checkop)
e3:SetLabelObject(e2)
c:RegisterEffect(e3)
Registrou Efeito3
end
function c30606547.atkcon(e)
return e:GetHandler():GetFlagEffect(30606547)~=0
.f GetHandler = Obtém o manipulador de cartas de um efeito (Efeito e) (sendo a carta em que o efeito está registrado), se o efeito não estiver anexado a uma carta (ou seja, registrado para o jogador), ele retorna seu dono.
end
function c30606547.atktg(e,c)
return c:GetFieldID()~=e:GetLabel()
.f GetField = Retorna o ID do campo "c" quando foi colocado no campo.
end
function c30606547.checkop(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():GetFlagEffect(30606547)~=0 then return end
local fid=eg:GetFirst():GetFieldID()
e:GetHandler():RegisterFlagEffect(30606547,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
e:GetLabelObject():SetLabel(fid)
end
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.