sexta-feira, 10 de dezembro de 2021

Tentando criar carta no EDOPro - parte 1

 Primeiro vamos começar com uma carta fácil : Raigeki


Código dela é 1258 0477

Pesquisando c12580477 na pasta do EDOPro , achamos o script dela formato LUA , abrindo ele :


--サンダー・ボルト = Nome em japonês da carta

local s,id=GetID() = Pega o ID da carta automaticamente

function s.initial_effect(c) = O EDOPro chama essa função em todas cartas , só sei disso por enquanto

--Activate

local e1=Effect.CreateEffect(c) =  Efeito

e1:SetCategory(CATEGORY_DESTROY) = Pra achar esse efeito , deve chamar a função e por o nome dela , ficando assim : .c category_destroy

Descrição : Describes that an effect destroys cards  / Descreve que um efeito destrói cartas

e1:SetType(EFFECT_TYPE_ACTIVATE) =  Tipo de efeito 

Aqui é a mesma coisa de cima , .c effect_type_activate 

Descrição : Spell/Trap Activation / Ativação de feitiço / armadilha

  1. Spell/Trap Activation

         e1:SetCode(EVENT_FREE_CHAIN) = Se é efeito rápido ou de resposta

Mesma coisa : .c event_free_chain

Descrição : Durante qualquer janela de resposta válida ou estado de jogo aberto

         e1:SetTarget(s.target) = Alvo da carta

e1:SetOperation(s.activate) = Função da carta

c:RegisterEffect(e1)

end


A partir daqui iremos trabalhar com funções ( .f )

function s.target(e,tp,eg,ep,ev,re,r,rp,chk)

e = effect / efeito

tp = triggering player / acionando o jogador

eg = event group / grupo de evento

ep = event player / jogador do evento

ev = event value / valor do evento

re = reason effect = razão do efeito

r = reason = razão

rp = reason player  = razão jogador

chk = check = checar

if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_MZONE,1,nil) end

Pesquisando : .f ExistingMatchingCard

Descrição : Verifica se (contagem interna) cartas existem em locais (int s) (no lado do campo de (jogador interno)) e (int o) (em seus oponentes) para os quais (funções) retorna verdadeiro, exceto (Cartão ex)

Pesquisando : .f aux.true

Descrição : Função que retorna verdadeiro. Pode ser usado para retornar um grupo inteiro de cartas em um determinado local

local sg=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_MZONE,nil)

Pesquisando = .f GetMatchingGroup 

Encontramos :

[01] Group | Duel.GetMatchingGroup(function f, int player, int s, int o, Group|Card ex|nil, ...)

[02]   int | Duel.GetMatchingGroupCount(function f, int player, int s, int o, Group|Card ex|nil, ...)

[03]   int | Duel.GetMatchingGroupCountRush(function f, int player, int s, int o, Group|Card ex|nil, ...)

O nosso é o primeiro :

Descrição :  Obtém todos os cartões em locais (int s) (no (int jogador) do lado do campo) e (int o) (em seus oponentes) para os quais (funções) retorna verdadeiro, exceto (cartão ex)

Duel.SetOperationInfo(0,CATEGORY_DESTROY,sg,#sg,0,0)

Aqui colocamos o tipo de efeito 

end


function s.activate(e,tp,eg,ep,ev,re,r,rp)

local sg=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_MZONE,nil)

Duel.Destroy(sg,REASON_EFFECT)

end


Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.