segunda-feira, 13 de dezembro de 2021

Tentando criar carta no EDOPro - Parte 4

 

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.