Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
no81cards
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nemo Ma
no81cards
Commits
823659ee
Commit
823659ee
authored
Aug 08, 2025
by
POLYMER
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
835ad275
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
379 additions
and
321 deletions
+379
-321
expansions/script/c20000000.lua
expansions/script/c20000000.lua
+4
-4
expansions/script/c20000450.lua
expansions/script/c20000450.lua
+90
-50
expansions/script/c20000451.lua
expansions/script/c20000451.lua
+1
-1
expansions/script/c20000452.lua
expansions/script/c20000452.lua
+1
-1
expansions/script/c20000453.lua
expansions/script/c20000453.lua
+1
-1
expansions/script/c20000454.lua
expansions/script/c20000454.lua
+28
-29
expansions/script/c20000455.lua
expansions/script/c20000455.lua
+45
-54
expansions/script/c20000456.lua
expansions/script/c20000456.lua
+40
-26
expansions/script/c20000457.lua
expansions/script/c20000457.lua
+6
-7
expansions/script/c20000458.lua
expansions/script/c20000458.lua
+12
-6
expansions/script/c20000459.lua
expansions/script/c20000459.lua
+15
-13
expansions/script/c20000460.lua
expansions/script/c20000460.lua
+9
-9
expansions/script/c20000461.lua
expansions/script/c20000461.lua
+3
-8
expansions/script/c20000462.lua
expansions/script/c20000462.lua
+9
-8
expansions/script/c20000463.lua
expansions/script/c20000463.lua
+16
-10
expansions/script/c20000464.lua
expansions/script/c20000464.lua
+39
-24
expansions/script/c20000465.lua
expansions/script/c20000465.lua
+35
-23
expansions/script/c20099997.lua
expansions/script/c20099997.lua
+4
-7
expansions/script/c20099998.lua
expansions/script/c20099998.lua
+5
-5
expansions/script/c66620025.lua
expansions/script/c66620025.lua
+4
-15
expansions/script/c66620225.lua
expansions/script/c66620225.lua
+12
-20
No files found.
expansions/script/c20000000.lua
View file @
823659ee
...
...
@@ -28,7 +28,7 @@ function fuef.FG(owner, obj, target, force)
owner
,
obj
,
target
,
force
=
nil
,
owner
,
obj
,
target
end
return
fuef
.
New
(
log
,
"F+G"
,
nil
,
owner
,
target
,
force
):
O
BJ
(
obj
)
return
fuef
.
New
(
log
,
"F+G"
,
nil
,
owner
,
target
,
force
):
O
bj
(
obj
)
end
--- 建立剩余需要 cod 的 fuef
...
...
@@ -308,7 +308,7 @@ function fuef:Clone(cod, target, force)
log
:
Info
(
"check self.typ is F+G"
)
if
E
.
typ
==
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_GRANT
then
E
:
O
BJ
(
cod
)
E
:
O
bj
(
cod
)
else
E
.
cod
=
fusf
.
ParseConstantKey
(
"cod"
,
cod
)
log
:
Info
(
"set self.cod : "
..
E
.
cod
)
...
...
@@ -878,9 +878,9 @@ function fuef:Obj(val)
if
self
:
InitCheck
(
log
,
"obj"
,
val
)
then
return
self
end
if
typ
==
"string"
then
local
e
=
fusf
.
Getcm
(
self
).
elist
[
val
]
local
e
=
fusf
.
Getcm
(
self
).
e
_
list
[
val
]
if
not
e
or
not
e
.
e
then
error
(
"Obj: elist entry for '"
..
val
..
"' is missing or invalid"
,
2
)
error
(
"Obj: e
_
list entry for '"
..
val
..
"' is missing or invalid"
,
2
)
end
val
=
fusf
.
CheckType
(
e
.
e
,
"Effect"
)
end
...
...
expansions/script/c20000450.lua
View file @
823659ee
--创导龙裔·觉醒者
dofile
(
"expansions/script/c20000000.lua"
)
fu_GD
=
fu_GD
or
{
}
--
function
fu_GD
.
SelfDraw_con
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
GetCurrentPhase
()
~=
PHASE_DRAW
and
rp
==
tp
-------------------
function
fu_GD
.
NInitial
(
cat
,
loc
,
f
,
v
)
local
cm
,
m
=
fusf
.
Initial
(
fu_GD
)
cat
=
table.concat
({
"TD+DR"
,
cat
},
"+"
)
local
pgf
=
fugf
.
MakeFilter
(
loc
,
f
,
v
)
local
insert
=
function
(
c
)
cm
.
public
=
fuef
.
I
(
c
):
Cat
(
cat
):
Ran
(
"H"
):
Ctl
(
m
):
Func
(
"Pcos,Ptg(%1),Pop(%1)"
,
pgf
)
end
fusf
.
InsertInitial
(
insert
)
cm
.
pe1
=
fuef
.
FC
(
"DR"
):
Ran
(
"H"
):
Func
(
"SelfDraw_con,NPop1"
)
return
cm
,
m
end
function
fu_GD
.
RInitial
(
glo
)
local
cm
,
m
=
fusf
.
Initial
(
fu_GD
,
glo
)
fusf
.
AddCode
(
455
)
fusf
.
ReviveLimit
()
cm
.
pe1
=
fuef
.
F
(
m
):
Pro
(
"PTG"
):
Ran
(
"M"
):
Tran
(
1
,
0
):
Con
(
"RPcon1"
)
cm
.
pe2
=
fuef
.
SC
(
"SP"
):
Func
(
"RPcon1,RPop2"
)
return
cm
,
m
end
-------------------
-- 龙族仪式怪兽从场上离开的场合
function
fu_GD
.
DRM_leave_con
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
fugf
.
Filter
(
eg
,
"IsTyp+IsRac+IsPLoc"
,
"RI+M,DR,M"
,
1
)
end
function
fu_GD
.
CanReturnDraw_tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsPlayerCanDraw
(
tp
)
and
fugf
.
GetFilter
(
tp
,
"H"
,
"AbleTo+Not"
,{
"D"
,
e
},
1
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TODECK
,
nil
,
1
,
tp
,
LOCATION_HAND
)
local
rm_g
=
fugf
.
MakeFilter
(
"M"
,
"IsTyp"
,
"RI+M"
)
-- 获取回卡组的最大数量
function
fu_GD
.
GetReCount
(
tp
)
if
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
20000457
)
then
return
2
end
return
math.max
(
2
,
#
rm_g
(
tp
)
+
1
)
end
--Normal initial
function
fu_GD
.
N_initial
(
add_cat
,
f1_loc
,
f1_func
,
f1_val
)
local
func
=
fugf
.
GetNoP
(
f1_loc
,
f1_func
,
f1_val
)
local
pe
=
fuef
.
I
():
CAT
(
"TD+DR"
..
(
add_cat
and
"+"
..
add_cat
or
""
)):
RAN
(
"H"
):
CTL
(
"m"
):
Func
(
"N_cos1,N_tg1(%1),N_op1(%1)"
,
func
)
local
cm
,
m
=
fuef
.
initial
(
fu_GD
,
_glo
,
"public_effect"
,
pe
)
cm
.
pe1
=
fuef
.
FC
(
"DR"
):
RAN
(
"H"
):
Func
(
"SelfDraw_con,N_op2"
)
return
cm
,
m
-- 获取置顶的最大数量
function
fu_GD
.
GetSetCount
(
tp
)
if
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
20000458
)
then
return
1
end
return
#
rm_g
(
tp
)
+
1
end
function
fu_GD
.
N_cos1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
not
e
:
GetHandler
():
IsPublic
()
end
fuef
.
S
(
e
,
EFFECT_PUBLIC
):
DES
(
"PUB"
):
PRO
(
"HINT"
):
RES
(
"STD+PH/ED+OPPO"
)
-- 召唤词
function
fu_GD
.
Hint
(
tp
,
m
,
mg
,
rc
)
if
not
rc
:
IsSetCard
(
0x3fd4
)
then
return
end
mg
=
fugf
.
Filter
(
mg
,
"IsSet"
,
"bfd4"
)
if
#
mg
~=
1
then
return
end
local
mcode
=
mg
:
GetFirst
():
GetCode
()
Duel
.
Hint
(
24
,
tp
,
aux
.
Stringid
(
mcode
,
0
))
Duel
.
Hint
(
24
,
tp
,
aux
.
Stringid
(
m
,
0
))
end
function
fu_GD
.
N_tg1
(
func
)
return
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
fu_GD
.
CanReturnDraw_tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
and
#
func
(
tp
)
>
0
end
fu_GD
.
CanReturnDraw_tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
end
-------------------
local
return_g
=
fugf
.
MakeFilter
(
"H"
,
"AbleTo+Not"
,
"D,%1"
)
function
fu_GD
.
ReDraw_tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsPlayerCanDraw
(
tp
)
and
#
return_g
(
tp
,
e
)
>
0
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TODECK
,
nil
,
1
,
tp
,
LOCATION_HAND
)
end
function
fu_GD
.
ReturnDeck
(
e
,
tp
)
-- 这张卡以外的自己手卡最多2张回到卡组洗切
-- 这张卡以外的自己手卡最多2张回到卡组洗切
function
fu_GD
.
ToDeck
(
e
,
tp
)
local
max
=
fu_GD
.
GetReCount
(
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
local
max
,
maxn
=
2
,
#
fugf
.
GetFilter
(
tp
,
"M"
,
"IsTyp"
,
"RI+M"
)
+
1
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
20000457
)
and
maxn
>
max
then
max
=
maxn
end
local
g
=
fugf
.
Select
(
tp
,
"H"
,
"AbleTo+Not"
,
{
"D"
,
e
},
1
,
max
)
local
g
=
fugf
.
Select
(
tp
,
return_g
(
tp
,
e
),
1
,
max
)
if
#
g
>
2
then
Duel
.
Hint
(
HINT_CARD
,
1
-
tp
,
20000457
)
end
return
Duel
.
SendtoDeck
(
g
,
nil
,
2
,
REASON_EFFECT
)
end
function
fu_GD
.
SetDeckTop
(
e
,
tp
,
func
)
-- 在卡组最上面放置
local
max
=
Duel
.
IsPlayerAffectedByEffect
(
tp
,
20000458
)
and
(
#
fugf
.
GetFilter
(
tp
,
"M"
,
"IsTyp"
,
"RI+M"
)
+
1
)
or
1
-- 在卡组最上面放置
function
fu_GD
.
SetTop
(
e
,
tp
,
g
)
local
max
=
fu_GD
.
GetSetCount
(
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
aux
.
Stringid
(
20000450
,
1
))
local
g
=
fugf
.
Select
(
tp
,
func
(
tp
)
,
"GChk"
,
nil
,
1
,
max
)
g
=
fugf
.
Select
(
tp
,
g
,
"GChk"
,
nil
,
1
,
max
)
if
#
g
==
0
then
return
false
end
local
gg
=
fugf
.
Filter
(
g
,
"IsLoc"
,
"G"
)
if
#
gg
>
0
then
Duel
.
SendtoDeck
(
gg
,
nil
,
0
,
REASON_EFFECT
)
end
...
...
@@ -50,48 +72,66 @@ function fu_GD.SetDeckTop(e, tp, func)
for
c
in
aux
.
Next
(
g
)
do
Duel
.
MoveSequence
(
c
,
SEQ_DECKTOP
)
end
if
#
g
>
1
then
Duel
.
SortDecktop
(
tp
,
tp
,
#
g
)
end
if
#
g
>
1
then
Duel
.
Hint
(
HINT_CARD
,
1
-
tp
,
20000458
)
Duel
.
SortDecktop
(
tp
,
tp
,
#
g
)
end
Duel
.
ConfirmDecktop
(
tp
,
#
g
)
return
true
end
-- 那之后,自己抽出回去的数量
function
fu_GD
.
DrawReturn
(
tp
,
ct
)
-- 那之后,自己抽出回去的数量
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
20000459
)
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
20000459
,
0
))
then
Duel
.
Hint
(
HINT_CARD
,
1
-
tp
,
20000459
)
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
20000459
)
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
20000459
,
2
))
then
Duel
.
Hint
(
HINT_CARD
,
1
-
tp
,
20000459
)
ct
=
ct
+
1
end
Duel
.
BreakEffect
()
Duel
.
Draw
(
tp
,
ct
,
REASON_EFFECT
)
end
function
fu_GD
.
N_op1
(
func
)
------------------- public
function
fu_GD
.
Pcos
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
not
e
:
GetHandler
():
IsPublic
()
end
fuef
.
S
(
e
,
EFFECT_PUBLIC
):
Des
(
"PUB"
):
Pro
(
"HINT"
):
Res
(
"STD+ED+OPPO"
)
end
function
fu_GD
.
Ptg
(
gf
)
return
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
fu_GD
.
ReDraw_tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
and
#
gf
(
tp
,
eg
)
>
0
end
fu_GD
.
ReDraw_tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
end
end
function
fu_GD
.
Pop
(
gf
)
return
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ct
=
fu_GD
.
Return
Deck
(
e
,
tp
)
local
ct
=
fu_GD
.
To
Deck
(
e
,
tp
)
if
ct
==
0
then
return
end
if
not
fu_GD
.
Set
DeckTop
(
e
,
tp
,
func
)
then
return
end
if
not
fu_GD
.
Set
Top
(
e
,
tp
,
gf
(
tp
,
eg
)
)
then
return
end
fu_GD
.
DrawReturn
(
tp
,
ct
)
end
end
function
fu_GD
.
N_op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
-------------------
function
fu_GD
.
SelfDraw_con
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
not
fusf
.
IsPhase
(
"DP"
)
and
rp
==
tp
end
function
fu_GD
.
NPop1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
e
:
GetHandler
():
IsPublic
()
then
return
end
local
e1
=
fuef
.
S
(
e
,
EFFECT_UPDATE_LEVEL
):
V
AL
(
ev
)
fuef
.
FC
(
e
,
"ADJ"
,
tp
):
O
P
(
"N_op2op2"
):
OBJ
(
e1
.
e
)
local
e1
=
fuef
.
S
(
e
,
EFFECT_UPDATE_LEVEL
):
V
al
(
ev
)
fuef
.
FC
(
e
,
"ADJ"
,
tp
):
O
p
(
"NPop1op1"
):
Obj
(
e1
.
e
)
end
function
fu_GD
.
N
_op2op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
fu_GD
.
N
Pop1op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetLabelObject
():
GetHandler
()
if
not
(
c
:
IsLocation
(
LOCATION_HAND
)
and
c
:
IsPublic
()
)
then
if
fucf
.
Filter
(
c
,
"~(IsLoc+IsPublic)"
,
"H"
)
then
e
:
GetLabelObject
():
Reset
()
e
:
Reset
()
end
end
-- ritual monster initial
function
fu_GD
.
RM_initial
(
_glo
)
local
cm
,
m
=
fuef
.
initial
(
fu_GD
,
_glo
,
"AddCode,ReviveLimit"
,
455
)
cm
.
pe1
=
fuef
.
F
(
m
):
PRO
(
"PTG"
):
RAN
(
"M"
):
TRAN
(
1
,
0
):
CON
(
"RM_con1"
)
return
cm
,
m
end
function
fu_GD
.
RM_con1
(
e
)
-------------------
function
fu_GD
.
RPcon1
(
e
)
return
e
:
GetHandler
():
IsSummonType
(
SUMMON_TYPE_RITUAL
)
end
function
fu_GD
.
RPop2
(
e
,
tp
)
local
m
=
e
:
GetHandler
():
GetCode
()
Duel
.
Hint
(
24
,
tp
,
aux
.
Stringid
(
m
,
0
))
Duel
.
Hint
(
24
,
tp
,
aux
.
Stringid
(
m
,
1
))
end
if
self_code
~=
20000450
then
return
end
-----------------------------------------------------------------------------------
fu_GD
.
N_initial
(
"GA"
,
"DG"
,
"IsTyp+IsRac+IsLoc/AbleTo"
,
"RI+M,DR,D,D"
)
\ No newline at end of file
fu_GD
.
NInitial
(
"GA"
,
"DG"
,
"IsTyp+IsRac+IsLoc/AbleTo"
,
"RI+M,DR,D,D"
)
\ No newline at end of file
expansions/script/c20000451.lua
View file @
823659ee
--创导龙裔·集结者
dofile
(
"expansions/script/c20000450.lua"
)
fu_GD
.
N_initial
(
nil
,
"D"
,
"IsTyp+IsSet-IsCode"
,
"M,bfd4,451"
)
\ No newline at end of file
fu_GD
.
NInitial
(
nil
,
"D"
,
"IsTyp+IsSet-IsCode"
,
"M,bfd4,451"
)
\ No newline at end of file
expansions/script/c20000452.lua
View file @
823659ee
--创导龙裔·复苏者
dofile
(
"expansions/script/c20000450.lua"
)
fu_GD
.
N_initial
(
"GA"
,
"G"
,
"AbleTo+IsSet"
,
"D,3fd4"
)
\ No newline at end of file
fu_GD
.
NInitial
(
"GA"
,
"G"
,
"AbleTo+IsSet"
,
"D,3fd4"
)
\ No newline at end of file
expansions/script/c20000453.lua
View file @
823659ee
--创导龙裔·探求者
dofile
(
"expansions/script/c20000450.lua"
)
fu_GD
.
N_initial
(
nil
,
"D"
,
"IsTyp+IsSet"
,
"S/T,bfd4"
)
\ No newline at end of file
fu_GD
.
NInitial
(
nil
,
"D"
,
"IsTyp+IsSet"
,
"S/T,bfd4"
)
\ No newline at end of file
expansions/script/c20000454.lua
View file @
823659ee
--创导龙裔的秘仪
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fuef
.
initial
(
fu_GD
)
cm
.
e1
=
fuef
.
A
():
CAT
(
"RE"
):
Func
(
"tg1,op1"
)
cm
.
e2
=
fuef
.
FTO
(
"LEA"
):
CAT
(
"TD+DR+GA"
):
PRO
(
"DE"
):
RAN
(
"G"
):
CTL
(
m
):
Func
(
"DRM_leave_con,tg2,op2"
)
local
cm
,
m
=
fusf
.
Initial
(
fu_GD
)
--e1
cm
.
e1
=
fuef
.
A
():
Cat
(
"REL+RE+SP"
):
Func
(
"tg1,op1"
)
local
e1g1
=
fugf
.
MakeFilter
(
"HG"
,
"IsTyp+IsRac+CanSp+AbleTo"
,
"RI+M,DR,%1,*R"
)
local
e1g2
=
fugf
.
MakeFilter
(
"H"
,
"IsTyp+IsPublic"
,
"M"
)
function
cm
.
tg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
fugf
.
GetFilter
(
tp
,
"HG"
,
"IsTyp+IsRac+CanSp+AbleTo"
,
"RI+M,DR,%1,*R"
,
1
,{
e
,
"RI"
,
tp
})
and
fugf
.
GetFilter
(
tp
,
"H"
,
"IsTyp+IsPublic"
,
"M"
,
1
)
end
if
chk
==
0
then
return
#
e1g1
(
tp
,
{
e
,
"RI"
})
>
0
and
#
e1g2
(
tp
)
>
0
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
nil
,
1
,
tp
,
LOCATION_HAND
+
LOCATION_GRAVE
)
end
function
cm
.
op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
rg
=
fugf
.
Select
(
tp
,
"HG"
,
"IsTyp+IsRac+CanSp+AbleTo"
,
"RI+M,DR,%1,*R"
,
1
,
1
,{
e
,
"RI"
,
tp
})
if
#
rg
~=
1
then
return
end
if
Duel
.
Remove
(
rg
,
POS_FACEUP
,
REASON_EFFECT
)
==
0
then
return
end
local
rg
=
fugf
.
Select
(
tp
,
e1g1
(
tp
,
{
e
,
"RI"
}),
"GChk"
)
if
Duel
.
Remove
(
rg
,
POS_FACEUP
,
REASON_EFFECT
)
==
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_CONFIRM
)
local
sg
=
fugf
.
Select
(
tp
,
"H"
,
"IsTyp+IsPublic"
,
"M"
,
1
)
if
#
sg
~=
1
then
return
end
Duel
.
ConfirmCards
(
1
-
tp
,
sg
)
local
sg
=
fugf
.
Select
(
tp
,
e1g2
(
tp
)
)
if
#
sg
==
0
then
return
end
Duel
.
ConfirmCards
(
1
-
tp
,
sg
)
local
fid
=
rg
:
GetFirst
():
GetFieldID
()
fusf
.
RegFlag
(
rg
+
sg
,
m
,
"STD"
,
"HINT"
,
fid
,
0
)
fuef
.
FC
(
e
,
"ADJ"
,
tp
):
Func
(
"op1con1,op1op1"
):
LAB
(
fid
)
fusf
.
RegFlag
(
rg
+
sg
,
m
,
"STD"
,
"HINT"
,
1
,
fid
)
fuef
.
FC
(
e
,
"ADJ"
,
tp
):
Func
(
"op1con1,op1op1"
):
Lab
(
fid
)
end
function
cm
.
op1con1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
fid
=
e
:
GetLabel
()
local
rc
=
fugf
.
GetFilter
(
tp
,
"R"
,
"IsFlagLab"
,{
m
,
fid
}):
GetFirst
()
local
sc
=
fugf
.
GetFilter
(
tp
,
"H"
,
"IsFlagLab"
,{
m
,
fid
}):
GetFirst
()
if
not
(
rc
and
sc
)
then
local
rc
=
fugf
.
GetFilter
(
tp
,
"R"
,
"IsFlagLab"
,
{
m
,
fid
}):
GetFirst
()
local
sc
=
fugf
.
GetFilter
(
tp
,
"H"
,
"IsFlagLab"
,
{
m
,
fid
}):
GetFirst
()
if
not
(
rc
and
sc
)
then
e
:
Reset
()
return
false
end
return
sc
:
IsCanBeRitualMaterial
(
rc
)
and
sc
:
IsLevelAbove
(
rc
:
GetLevel
())
and
(
sc
.
mat_filter
or
aux
.
TRUE
)(
rc
)
return
sc
:
IsCanBeRitualMaterial
(
rc
)
and
sc
:
IsLevelAbove
(
rc
:
GetLevel
())
and
(
sc
.
mat_filter
or
aux
.
TRUE
)(
rc
)
end
function
cm
.
op1op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
fid
=
e
:
GetLabel
()
local
rc
=
fugf
.
GetFilter
(
tp
,
"R"
,
"IsFlagLab"
,{
m
,
fid
}):
GetFirst
()
local
sg
=
fugf
.
GetFilter
(
tp
,
"H"
,
"IsFlagLab"
,{
m
,
fid
})
local
rc
=
fugf
.
GetFilter
(
tp
,
"R"
,
"IsFlagLab"
,
{
m
,
fid
}):
GetFirst
()
local
sg
=
fugf
.
GetFilter
(
tp
,
"H"
,
"IsFlagLab"
,
{
m
,
fid
})
if
not
rc
or
#
sg
~=
1
then
return
end
Duel
.
Hint
(
HINT_CARD
,
tp
,
m
)
fu_GD
.
Hint
(
tp
,
m
,
sg
,
rc
)
rc
:
SetMaterial
(
sg
)
Duel
.
Hint
(
HINT_CARD
,
0
,
m
)
Duel
.
ReleaseRitualMaterial
(
sg
)
Duel
.
SpecialSummon
(
rc
,
SUMMON_TYPE_RITUAL
,
tp
,
tp
,
false
,
true
,
POS_FACEUP
)
Duel
.
SpecialSummon
(
rc
,
SUMMON_TYPE_RITUAL
,
tp
,
tp
,
false
,
true
,
POS_FACEUP
)
rc
:
CompleteProcedure
()
e
:
Reset
()
end
--e2
cm
.
e2
=
fuef
.
FTO
(
"LEA"
):
Cat
(
"TD+DR+GA"
):
Pro
(
"DE"
):
Ran
(
"G"
):
Ctl
(
m
):
Func
(
"DRM_leave_con,tg2,op2"
)
local
e2g1
=
fugf
.
MakeFilter
(
"D"
,
"IsTyp"
,
"RI+S"
)
function
cm
.
tg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsPlayerCanDraw
(
tp
,
1
)
and
e
:
GetHandler
():
IsAbleToDeck
()
and
fugf
.
GetFilter
(
tp
,
"D"
,
"IsTyp+AbleTo"
,
"RI+S,D"
,
1
)
end
if
chk
==
0
then
return
Duel
.
IsPlayerCanDraw
(
tp
,
1
)
and
e
:
GetHandler
():
IsAbleToDeck
()
and
#
e2g1
(
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TODECK
,
nil
,
1
,
tp
,
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
tp
,
1
)
end
function
cm
.
op2f
(
g
,
c
)
return
g
:
IsContains
(
c
)
end
function
cm
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
max
,
maxn
=
2
,
#
fugf
.
GetFilter
(
tp
,
"M"
,
"IsTyp"
,
"RI+M"
)
+
1
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
20000457
)
and
maxn
>
max
then
max
=
maxn
end
local
max
=
fu_GD
.
GetReCount
(
tp
)
-
1
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
Duel
.
SetSelectedCard
(
e
:
GetHandler
())
local
g
=
fugf
.
GetFilter
(
tp
,
"G"
,
"AbleTo+GChk"
,
"D"
):
SelectSubGroup
(
tp
,
cm
.
op2f
,
false
,
1
,
max
,
e
:
GetHandler
())
local
g
=
fugf
.
Select
(
tp
,
"G"
,
"AbleTo+Not+GChk"
,
"D,%1"
,
1
,
max
,
e
)
+
e
:
GetHandler
()
if
Duel
.
SendtoDeck
(
g
,
nil
,
2
,
REASON_EFFECT
)
==
0
then
return
end
if
not
fu_GD
.
Set
DeckTop
(
e
,
tp
,
fugf
.
GetNoP
(
"D"
,
"IsTyp+AbleTo"
,
"RI+S,D"
))
then
return
end
if
not
fu_GD
.
Set
Top
(
e
,
tp
,
e2g1
(
tp
))
then
return
end
fu_GD
.
DrawReturn
(
tp
,
1
)
end
\ No newline at end of file
expansions/script/c20000455.lua
View file @
823659ee
--创导龙裔的转生
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fuef
.
initial
(
fu_GD
)
cm
.
e1
=
fuef
.
A
():
CAT
(
"SP"
):
Func
(
"tg1,op1"
)
cm
.
e2
=
fuef
.
FC
(
EFFECT_DESTROY_REPLACE
):
RAN
(
"G"
):
Func
(
"val2,tg2,op2"
)
local
cm
,
m
=
fusf
.
Initial
(
fu_GD
)
--e1
function
cm
.
tg1ff
(
g
,
tp
,
c
,
lv
)
cm
.
e1
=
fuef
.
A
():
Cat
(
"REL+SP"
):
Func
(
"tg1,op1"
)
function
cm
.
tg1f2
(
g
,
tp
,
c
,
lv
)
if
#
fugf
.
Filter
(
g
,
"IsRac"
,
"SP"
)
<
1
or
Duel
.
GetMZoneCount
(
tp
,
g
,
tp
)
==
0
then
return
false
end
Duel
.
SetSelectedCard
(
g
)
return
g
:
IsExists
(
Card
.
IsRace
,
nil
,
1
,
RACE_SPELLCASTER
)
and
g
:
CheckWithSumGreater
(
Card
.
GetRitualLevel
,
lv
,
c
)
and
Duel
.
GetMZoneCount
(
tp
,
g
,
tp
)
>
0
and
(
not
c
.
mat_group_check
or
c
.
mat_group_check
(
g
,
tp
))
return
g
:
CheckWithSumGreater
(
Card
.
GetRitualLevel
,
lv
,
c
)
and
(
c
.
mat_group_check
or
aux
.
TRUE
)(
g
,
tp
)
end
function
cm
.
tg1f
(
rc
,
e
,
tp
,
mg
)
if
not
fucf
.
Filter
(
rc
,
"IsTyp+IsSet+CanSp"
,
"RI+M,3fd4"
,
{
e
,
SUMMON_TYPE_RITUAL
,
tp
,
false
,
true
}
)
then
return
false
end
function
cm
.
tg1f
1
(
rc
,
e
,
tp
,
mg
)
if
fucf
.
Filter
(
rc
,
"~(IsTyp+IsSet+CanSp)"
,
"RI+M,3fd4,(%1,RI)"
,
e
)
then
return
false
end
mg
=
mg
:
Filter
(
Card
.
IsCanBeRitualMaterial
,
rc
,
rc
):
Filter
(
rc
.
mat_filter
or
aux
.
TRUE
,
rc
,
tp
)
return
mg
:
CheckSubGroup
(
cm
.
tg1ff
,
1
,
#
mg
,
tp
,
rc
,
rc
:
GetLevel
())
local
lv
=
rc
:
GetLevel
()
aux
.
GCheckAdditional
=
aux
.
RitualCheckAdditional
(
rc
,
lv
,
"Greater"
)
local
res
=
mg
:
CheckSubGroup
(
cm
.
tg1f2
,
1
,
math.min
(
#
mg
,
lv
),
tp
,
rc
,
lv
)
aux
.
GCheckAdditional
=
nil
return
res
end
local
e1g1
=
fugf
.
MakeFilter
(
"HD"
,
cm
.
tg1f1
,
"%1,%2,%3"
)
function
cm
.
tg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
fugf
.
GetFilter
(
tp
,
"HD"
,
cm
.
tg1f
,{
e
,
tp
,
Duel
.
GetRitualMaterial
(
tp
)},
1
)
end
if
chk
==
0
then
return
#
e1g1
(
tp
,
e
,
tp
,
Duel
.
GetRitualMaterial
(
tp
))
>
0
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_HAND
)
end
function
cm
.
op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
mg
=
Duel
.
GetRitualMaterial
(
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
tc
=
fugf
.
Select
(
tp
,
"HD"
,
cm
.
tg1f
,{
e
,
tp
,
mg
}):
GetFirst
()
if
not
tc
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
mg
=
fugf
.
Filter
(
mg
,
"IsCanBeRitualMaterial+Not+%1"
,
"%2,%2,%3"
,
nil
,(
tc
.
mat_filter
or
aux
.
TRUE
),
tc
,
tp
)
mg
=
mg
:
SelectSubGroup
(
tp
,
cm
.
tg1ff
,
false
,
1
,
#
mg
,
tp
,
tc
,
tc
:
GetLevel
())
tc
:
SetMaterial
(
mg
)
Duel
.
ReleaseRitualMaterial
(
mg
)
local
rc
,
sg
repeat
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
rc
=
fugf
.
Select
(
tp
,
e1g1
(
tp
,
e
,
tp
,
mg
)):
GetFirst
()
if
not
rc
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
sg
=
mg
:
Filter
(
Card
.
IsCanBeRitualMaterial
,
rc
,
rc
):
Filter
(
rc
.
mat_filter
or
aux
.
TRUE
,
rc
,
tp
)
local
lv
=
rc
:
GetLevel
()
aux
.
GCheckAdditional
=
aux
.
RitualCheckAdditional
(
rc
,
lv
,
"Greater"
)
sg
=
sg
:
SelectSubGroup
(
tp
,
cm
.
tg1f2
,
true
,
1
,
math.min
(
#
sg
,
lv
),
tp
,
rc
,
lv
)
aux
.
GCheckAdditional
=
nil
until
sg
fu_GD
.
Hint
(
tp
,
m
,
sg
,
rc
)
rc
:
SetMaterial
(
sg
)
Duel
.
ReleaseRitualMaterial
(
sg
)
Duel
.
BreakEffect
()
Duel
.
SpecialSummon
(
tc
,
SUMMON_TYPE_RITUAL
,
tp
,
tp
,
false
,
true
,
POS_FACEUP
)
tc
:
CompleteProcedure
()
if
#
mg
==
1
then
fuef
.
S
(
e
,
EFFECT_INDESTRUCTABLE_EFFECT
,
tc
):
DES
(
m
,
0
):
PRO
(
"SR+CD+HINT"
):
RAN
(
"M"
):
VAL
(
1
):
RES
(
"STD"
)
end
if
mg
:
IsExists
(
Card
.
IsSetCard
,
nil
,
1
,
0xbfd4
)
then
fuef
.
S
(
e
,
EFFECT_CANNOT_BE_EFFECT_TARGET
,
tc
):
DES
(
m
,
1
):
PRO
(
"HINT"
):
VAL
(
"tgoval"
):
RES
(
"STD"
)
end
Duel
.
SpecialSummon
(
rc
,
SUMMON_TYPE_RITUAL
,
tp
,
tp
,
false
,
true
,
POS_FACEUP
)
rc
:
CompleteProcedure
()
if
#
sg
==
1
then
fuef
.
S
(
e
,
EFFECT_INDESTRUCTABLE_EFFECT
,
rc
):
Des
(
1
):
Pro
(
"IG+SR+CD+HINT"
):
Ran
(
"M"
):
Val
(
1
):
Res
(
"STD"
)
end
if
#
fugf
.
Filter
(
sg
,
"IsSet"
,
"bfd4"
)
>
0
then
fuef
.
S
(
e
,
EFFECT_CANNOT_BE_EFFECT_TARGET
,
rc
):
Des
(
2
):
Pro
(
"IG+HINT"
):
Val
(
"tgoval"
):
Res
(
"STD"
)
end
end
--e2
cm
.
e2
=
fuef
.
FC
(
EFFECT_DESTROY_REPLACE
):
Ran
(
"G"
):
Func
(
"val2,tg2,op2"
)
local
e1f1
=
fugf
.
MakeGroupFilter
(
"IsPos+IsTyp+IsRac+IsRea+IsLoc+IsCon"
,
"FU,RI+M,DR,EFF+BAT-REP,M,%1"
)
function
cm
.
val2
(
e
,
c
)
return
fucf
.
Filter
(
c
,
"IsPos+IsTyp+IsRac+IsRea+IsLoc+IsCon"
,
"FU,RI+M,DR,EFF+BAT-REP,M"
,
e
:
GetHandlerPlayer
())
return
e1f1
(
Group
.
FromCards
(
c
),
1
,
e
:
GetHandlerPlayer
())
end
function
cm
.
tg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemove
()
and
fugf
.
Filter
(
eg
,
"IsPos+IsTyp+IsRac+IsRea+IsLoc+IsCon"
,
"FU,RI+M,DR,EFF+BAT-REP,M,"
..
tp
,
1
)
end
return
Duel
.
SelectEffectYesNo
(
tp
,
e
:
GetHandler
(),
96
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemove
()
and
e1f1
(
eg
,
1
,
tp
)
end
return
Duel
.
SelectEffectYesNo
(
tp
,
e
:
GetHandler
(),
96
)
end
function
cm
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Remove
(
e
:
GetHandler
(),
POS_FACEUP
,
REASON_EFFECT
)
end
Duel
.
Remove
(
e
:
GetHandler
(),
POS_FACEUP
,
REASON_EFFECT
)
Duel
.
Hint
(
HINT_CARD
,
0
,
m
)
end
\ No newline at end of file
expansions/script/c20000456.lua
View file @
823659ee
--创导龙裔的煉成
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fu
ef
.
i
nitial
(
fu_GD
)
local
cm
,
m
=
fu
sf
.
I
nitial
(
fu_GD
)
--e1
cm
.
e1
=
fuef
.
A
()
--e2
cm
.
e2
=
fuef
.
QO
():
C
AT
(
"SP"
):
RAN
(
"S"
):
CTL
(
m
):
Func
(
"con2,tg2,op2"
)
cm
.
e2
=
fuef
.
QO
():
C
at
(
"SP"
):
Ran
(
"S"
):
Ctl
(
m
):
Func
(
"con2,tg2,op2"
)
function
cm
.
con2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
fugf
.
GetFilter
(
tp
,
"H"
,
"IsPublic"
,
nil
,
1
)
end
function
cm
.
tg2ff
(
g
,
tp
,
c
,
lv
)
function
cm
.
tg2f2
(
g
,
tp
,
c
,
lv
)
local
mc
=
#
fugf
.
Filter
(
g
,
"IsLoc"
,
"M"
)
if
mc
>
1
or
(
mc
==
1
and
Duel
.
GetMZoneCount
(
tp
,
g
,
tp
)
==
0
)
then
return
false
end
Duel
.
SetSelectedCard
(
g
)
if
not
(
g
:
CheckWithSumGreater
(
Card
.
GetRitualLevel
,
lv
,
c
)
and
Duel
.
GetMZoneCount
(
tp
,
g
,
tp
)
>
0
and
(
not
c
.
mat_group_check
or
c
.
mat_group_check
(
g
,
tp
)))
then
return
false
end
if
g
:
GetFirst
():
IsLocation
(
LOCATION_MZONE
)
then
return
#
g
==
1
end
return
not
fugf
.
Filter
(
g
,
"~IsPublic"
,
nil
,
1
)
return
g
:
CheckWithSumGreater
(
Card
.
GetRitualLevel
,
lv
,
c
)
and
(
c
.
mat_group_check
or
aux
.
TRUE
)(
g
,
tp
)
end
function
cm
.
tg2f
(
rc
,
e
,
tp
,
mg
)
if
not
fucf
.
Filter
(
rc
,
"IsTyp+IsRac+CanSp"
,
"RI+M,DR"
,
{
e
,
SUMMON_TYPE_RITUAL
,
tp
,
false
,
true
})
then
return
false
end
function
cm
.
tg2f1
(
rc
,
e
,
tp
,
mg
,
hg
)
if
fucf
.
Filter
(
rc
,
"~(IsTyp+IsRac+CanSp)"
,
"RI+M,DR,(%1,RI)"
,
e
)
then
return
false
end
local
lv
=
rc
:
GetLevel
()
hg
=
hg
:
Filter
(
Card
.
IsCanBeRitualMaterial
,
rc
,
rc
):
Filter
(
rc
.
mat_filter
or
aux
.
TRUE
,
rc
,
tp
)
if
hg
:
CheckSubGroup
(
cm
.
tg2f2
,
1
,
1
,
tp
,
rc
,
lv
)
then
return
true
end
mg
=
mg
:
Filter
(
Card
.
IsCanBeRitualMaterial
,
rc
,
rc
):
Filter
(
rc
.
mat_filter
or
aux
.
TRUE
,
rc
,
tp
)
if
fugf
.
Filter
(
mg
,
"IsTyp+IsRac+IsLoc"
,
"RI+M,DR,M"
):
CheckSubGroup
(
cm
.
tg2ff
,
1
,
1
,
tp
,
rc
,
rc
:
GetLevel
())
then
return
true
end
return
fugf
.
Filter
(
mg
,
"IsLoc+IsPublic"
,
"H"
):
CheckSubGroup
(
cm
.
tg2ff
,
1
,
#
mg
,
tp
,
rc
,
rc
:
GetLevel
())
aux
.
GCheckAdditional
=
aux
.
RitualCheckAdditional
(
rc
,
lv
,
"Greater"
)
local
res
=
mg
:
CheckSubGroup
(
cm
.
tg2f2
,
1
,
math.min
(
#
mg
,
lv
),
tp
,
rc
,
lv
)
aux
.
GCheckAdditional
=
nil
return
res
end
local
function
GetRM
(
e
,
tp
)
local
mg
=
Duel
.
GetRitualMaterial
(
tp
)
local
hg
=
fugf
.
Filter
(
mg
,
"IsLoc+IsPublic"
,
"H"
)
mg
=
fugf
.
Filter
(
mg
,
"IsTyp+IsRac+IsLoc"
,
"RI+M,DR,M"
)
return
fugf
.
GetFilter
(
tp
,
"HG"
,
cm
.
tg2f1
,
"%1,%2,%3,%4"
,
nil
,
e
,
tp
,
mg
,
hg
),
mg
+
hg
end
function
cm
.
tg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
fugf
.
GetFilter
(
tp
,
"HG"
,
cm
.
tg2f
,{
e
,
tp
,
Duel
.
GetRitualMaterial
(
tp
)},
1
)
end
if
chk
==
0
then
return
#
GetRM
(
e
,
tp
)
>
0
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
+
LOCATION_GRAVE
)
end
function
cm
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
mg
=
Duel
.
GetRitualMaterial
(
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
rc
=
fugf
.
Select
(
tp
,
"HG"
,
aux
.
NecroValleyFilter
(
cm
.
tg2f
),{
e
,
tp
,
mg
}):
GetFirst
()
if
not
rc
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
mg
=
mg
:
Filter
(
Card
.
IsCanBeRitualMaterial
,
rc
,
rc
):
Filter
(
rc
.
mat_filter
or
aux
.
TRUE
,
rc
,
tp
)
mg
=
fugf
.
Filter
(
mg
,
"IsTyp+IsRac+IsLoc"
,
"RI+M,DR,M"
)
+
fugf
.
Filter
(
mg
,
"IsLoc+IsPublic"
,
"H"
)
mg
=
mg
:
SelectSubGroup
(
tp
,
cm
.
tg2ff
,
false
,
1
,
#
mg
,
tp
,
rc
,
rc
:
GetLevel
())
rc
:
SetMaterial
(
mg
)
Duel
.
ReleaseRitualMaterial
(
mg
)
local
rg
,
mg
=
GetRM
(
e
,
tp
)
local
rc
,
sg
repeat
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
rc
=
fugf
.
Select
(
tp
,
rg
,
"GChk"
):
GetFirst
()
if
not
rc
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
sg
=
mg
:
Filter
(
Card
.
IsCanBeRitualMaterial
,
rc
,
rc
):
Filter
(
rc
.
mat_filter
or
aux
.
TRUE
,
rc
,
tp
)
local
lv
=
rc
:
GetLevel
()
aux
.
GCheckAdditional
=
aux
.
RitualCheckAdditional
(
rc
,
lv
,
"Greater"
)
sg
=
sg
:
SelectSubGroup
(
tp
,
cm
.
tg2f2
,
true
,
1
,
math.min
(
#
sg
,
lv
),
tp
,
rc
,
lv
)
aux
.
GCheckAdditional
=
nil
until
sg
fu_GD
.
Hint
(
tp
,
m
,
sg
,
rc
)
rc
:
SetMaterial
(
sg
)
Duel
.
ReleaseRitualMaterial
(
sg
)
Duel
.
BreakEffect
()
Duel
.
SpecialSummon
(
rc
,
SUMMON_TYPE_RITUAL
,
tp
,
tp
,
false
,
true
,
POS_FACEUP
)
rc
:
CompleteProcedure
()
end
--e3
function
cm
.
f3
(
e
,
tp
,
eg
)
function
cm
.
f3
(
tp
,
eg
)
local
mg
=
Group
.
CreateGroup
()
for
rc
in
aux
.
Next
(
fugf
.
Filter
(
eg
,
"IsSTyp+IsRac"
,
"RI,DR"
))
do
mg
=
mg
+
fugf
.
Filter
(
rc
:
GetMaterial
(),
"IsLoc+IsTyp+AbleTo"
,
"G,M,D"
)
end
return
mg
end
cm
.
e3
=
fuef
.
FTO
(
"SP"
):
C
AT
(
"TD+DR+GA"
):
RAN
(
"S"
):
CTL
(
1
):
Func
(
"con3,N_tg1(%1),N_op1
(%1)"
,
cm
.
f3
)
cm
.
e3
=
fuef
.
FTO
(
"SP"
):
C
at
(
"TD+DR+GA"
):
Ran
(
"S"
):
Ctl
(
1
):
Func
(
"con3,Ptg(%1),Pop
(%1)"
,
cm
.
f3
)
function
cm
.
con3
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
fugf
.
Filter
(
eg
,
"IsSTyp+IsRac"
,
"RI,DR"
,
1
)
end
\ No newline at end of file
expansions/script/c20000457.lua
View file @
823659ee
--曜日之创导龙
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fu_GD
.
R
M_i
nitial
()
cm
.
e1
=
fuef
.
FTO
(
"DR"
):
C
AT
(
"RE"
):
PRO
(
"DE"
):
RAN
(
"M"
):
CTL
(
1
):
Func
(
"SelfDraw_con,tg1,op1"
)
local
cm
,
m
=
fu_GD
.
R
I
nitial
()
cm
.
e1
=
fuef
.
FTO
(
"DR"
):
C
at
(
"RE"
):
Pro
(
"DE"
):
Ran
(
"M"
):
Ctl
(
1
):
Func
(
"SelfDraw_con,tg1,op1"
)
function
cm
.
tg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
g
=
fugf
.
Get
(
tp
,
"+MSG"
)
if
chk
==
0
then
return
#
g
>
0
end
local
g
=
fugf
.
Get
(
tp
,
"+MSG"
)
if
chk
==
0
then
return
#
g
>
0
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
g
,
1
,
0
,
0
)
end
function
cm
.
op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g
=
fugf
.
Select
(
tp
,
"+MSG"
,
nil
,
nil
,
1
,
ev
)
if
#
g
<=
0
then
return
end
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_EFFECT
)
local
g
=
fugf
.
Select
(
tp
,
"+MSG"
,
"Gchk"
,
nil
,
1
,
ev
)
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_EFFECT
)
end
\ No newline at end of file
expansions/script/c20000458.lua
View file @
823659ee
--击星之创导龙
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fu_GD
.
RM_initial
(
"glo"
)
cm
.
e1
=
fuef
.
S
(
EFFECT_EXTRA_ATTACK
):
RAN
(
"M"
):
VAL
(
"val1"
)
cm
.
val1
=
function
(
e
)
return
cm
.
glo
[
e
:
GetHandlerPlayer
()
+
1
]
+
1
end
local
cm
,
m
=
fu_GD
.
RInitial
(
"glo"
)
cm
.
e1
=
fuef
.
S
(
EFFECT_EXTRA_ATTACK
):
Ran
(
"M"
):
Val
(
"val1"
)
function
cm
.
val1
(
e
)
return
cm
.
glo
[
e
:
GetHandlerPlayer
()
+
1
]
+
1
end
--ge1
cm
.
ge1
=
fuef
.
FC
(
"PHS+DP"
):
OP
(
"glo_op1"
)(
"DR"
):
Func
(
"SelfDraw_con,glo_op2"
)
cm
.
glo_op1
=
function
()
cm
.
glo
=
{
0
,
0
}
end
cm
.
glo_op2
=
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
cm
.
glo
[
ep
+
1
]
=
cm
.
glo
[
ep
+
1
]
+
ev
end
\ No newline at end of file
cm
.
ge1
=
fuef
.
FC
(
"PHS+DP"
):
Op
(
"glo_op1"
)(
"DR"
):
Func
(
"SelfDraw_con,glo_op2"
)
function
cm
.
glo_op1
()
cm
.
glo
=
{
0
,
0
}
end
function
cm
.
glo_op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
cm
.
glo
[
ep
+
1
]
=
cm
.
glo
[
ep
+
1
]
+
ev
end
\ No newline at end of file
expansions/script/c20000459.lua
View file @
823659ee
--威天之创导龙
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fu_GD
.
RM_initial
()
--e1
cm
.
e1
=
fuef
.
FTO
(
"DR"
):
PRO
(
"DE+TG"
):
RAN
(
"M"
):
CTL
(
1
):
Func
(
"SelfDraw_con,tg1,op1"
)
local
cm
,
m
=
fu_GD
.
RInitial
()
cm
.
e1
=
fuef
.
FTO
(
"DR"
):
Pro
(
"DE+TG"
):
Ran
(
"M"
):
Ctl
(
1
):
Func
(
"SelfDraw_con,tg1,op1"
)
function
cm
.
tg1f
(
g
)
return
function
(
e
,
ep
,
tp
)
return
not
g
:
IsContains
(
e
:
GetHandler
())
end
end
function
cm
.
tg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsControler
(
1
-
tp
)
end
if
chk
==
0
then
return
fugf
.
GetFilter
(
tp
,
"+MS"
,
"TgChk"
,
e
,
1
)
end
local
g
=
fugf
.
GetFilter
(
tp
,
"+MS"
,
"TgChk"
,
e
)
if
chkc
then
return
g
:
IsContains
(
chkc
)
end
if
chk
==
0
then
return
#
g
>
0
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TARGET
)
local
g
=
fugf
.
SelectTg
(
tp
,
"+MS"
,
"TgChk"
,
e
,
1
,
ev
)
g
=
fugf
.
SelectTg
(
tp
,
g
,
1
,
ev
)
Duel
.
SetChainLimit
(
cm
.
tg1f
(
g
))
end
function
cm
.
op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
fusf
.
GetTarget
(
e
)
if
not
tc
then
return
end
local
e1
=
fuef
.
S
(
e
,
EFFECT_DISABLE
,
tc
):
Des
(
3
):
Pro
(
"HINT"
):
Con
(
"op1con1"
):
Res
(
"STD"
)
e1
(
EFFECT_CANNOT_TRIGGER
):
Con
(
"op1con2"
)
end
local
e1g1
=
fugf
.
MakeFilter
(
"M"
,
"IsTyp+IsRac+IsPos"
,
"RI+M,DR,FU"
)
function
cm
.
op1con1
(
e
)
if
not
fugf
.
GetFilter
(
e
:
GetOwnerPlayer
(),
"M"
,
"IsTyp+IsRac+IsPos"
,
"RI+M,DR,FU"
,
1
)
then
return
false
end
if
#
e1g1
(
e
:
GetOwnerPlayer
())
==
0
then
return
false
end
local
c
=
e
:
GetHandler
()
if
c
:
IsType
(
TYPE_TRAPMONSTER
)
then
return
c
:
IsFaceup
()
...
...
@@ -27,10 +34,5 @@ function cm.op1con1(e)
end
end
function
cm
.
op1con2
(
e
)
return
fugf
.
GetFilter
(
e
:
GetOwnerPlayer
(),
"M"
,
"IsTyp+IsRac+IsPos"
,
"RI+M,DR,FU"
,
1
)
end
function
cm
.
op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_CARDS
):
Filter
(
Card
.
IsRelateToEffect
,
nil
,
e
)
if
#
g
==
0
then
return
end
fuef
.
S
(
e
,
EFFECT_DISABLE
,
g
):
DES
(
1
):
PRO
(
"HINT"
):
CON
(
"op1con1"
):
RES
(
"STD"
)(
EFFECT_CANNOT_TRIGGER
):
CON
(
"op1con2"
)
return
#
e1g1
(
e
:
GetOwnerPlayer
())
>
0
end
\ No newline at end of file
expansions/script/c20000460.lua
View file @
823659ee
--创导龙裔·研究者
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fuef
.
initial
(
fu_GD
,
_glo
)
cm
.
e1
=
fuef
.
STO
(
"DR"
):
RAN
(
"H"
):
PRO
(
"DAM"
):
CTL
(
m
):
Func
(
"con1,N_cos1,tg1,op1"
)
cm
.
e2
=
fuef
.
QO
():
RAN
(
"H"
):
PRO
(
"TG"
):
CTL
(
m
):
Func
(
"con2,tg2,op2"
)
local
cm
,
m
=
fusf
.
Initial
(
fu_GD
)
--e1
cm
.
e1
=
fuef
.
STO
(
"DR"
):
Ran
(
"H"
):
Pro
(
"DAM"
):
Ctl
(
m
):
Func
(
"con1,Pcos,tg1,op1"
)
function
cm
.
con1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
(
r
&
REASON_EFFECT
==
REASON_EFFECT
)
and
fucf
.
Filter
(
re
:
GetHandler
(),
"IsSet+IsTyp"
,
"bfd4,M"
)
end
function
cm
.
tg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
te
=
re
:
GetHandler
().
public
_effect
local
te
=
re
:
GetHandler
().
public
if
not
te
then
return
false
end
te
=
te
.
e
local
tg
=
te
:
GetTarget
()
...
...
@@ -21,18 +20,19 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp)
if
op
then
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
end
end
--e2
cm
.
e2
=
fuef
.
QO
():
Ran
(
"H"
):
Pro
(
"TG"
):
Ctl
(
m
):
Func
(
"con2,tg2,op2"
)
function
cm
.
con2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
IsPublic
()
and
Duel
.
GetTurnPlayer
()
~=
tp
end
function
cm
.
tg2tg1
(
e
,
c
)
return
not
fu
sf
.
Creat_CF
(
"IsSet+IsTyp"
,
"3fd4,RI+M"
)(
c
)
return
not
fu
cf
.
Filter
(
c
,
"IsSet+IsTyp"
,
"3fd4,RI+M"
)
end
function
cm
.
tg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
local
e1
=
fuef
.
F
(
e
,
EFFECT_CANNOT_SPECIAL_SUMMON
,
tp
):
P
RO
(
"PTG"
):
TRAN
(
1
,
0
):
TG
(
"tg2tg1"
)
local
e1
=
fuef
.
F
(
e
,
EFFECT_CANNOT_SPECIAL_SUMMON
,
tp
):
P
ro
(
"PTG"
):
Tran
(
1
,
0
):
Tg
(
"tg2tg1"
)
local
g
=
fugf
.
GetFilter
(
tp
,
"G"
,
"IsTyp+CheckActivateEffect+TgChk"
,{
"RI+S"
,{
true
,
true
,
false
},
e
})
e1
.
e
:
Reset
()
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
g
:
IsContains
(
chkc
)
end
if
chk
==
0
then
return
#
g
>
0
end
if
chkc
then
return
g
:
IsContains
(
chkc
)
end
if
chk
==
0
then
return
#
g
>
0
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TARGET
)
g
=
fugf
.
SelectTg
(
tp
,
g
)
local
te
,
ceg
,
cep
,
cev
,
cre
,
cr
,
crp
=
g
:
GetFirst
():
CheckActivateEffect
(
true
,
true
,
true
)
...
...
@@ -44,7 +44,7 @@ function cm.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
Duel
.
ClearOperationInfo
(
0
)
end
function
cm
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
e1
=
fuef
.
F
(
e
,
EFFECT_CANNOT_SPECIAL_SUMMON
,
tp
):
P
RO
(
"PTG"
):
TRAN
(
1
,
0
):
TG
(
"tg2tg1"
)
local
e1
=
fuef
.
F
(
e
,
EFFECT_CANNOT_SPECIAL_SUMMON
,
tp
):
P
ro
(
"PTG"
):
Tran
(
1
,
0
):
Tg
(
"tg2tg1"
)
local
te
=
e
:
GetLabelObject
()
if
te
then
e
:
SetLabelObject
(
te
:
GetLabelObject
())
...
...
expansions/script/c20000461.lua
View file @
823659ee
--创导龙裔的咒引
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fuef
.
initial
(
fu_GD
)
cm
.
e1
=
fuef
.
A
():
CAT
(
"TD+DR"
):
Func
(
"tg1,op1"
)
function
cm
.
tg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsPlayerCanDraw
(
tp
)
and
fugf
.
GetFilter
(
tp
,
"H"
,
"AbleTo+Not"
,{
"D"
,
e
},
1
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TODECK
,
nil
,
1
,
tp
,
LOCATION_HAND
)
end
local
cm
,
m
=
fusf
.
Initial
(
fu_GD
)
cm
.
e1
=
fuef
.
A
():
Cat
(
"TD+DR"
):
Func
(
"ReDraw_tg,op1"
)
function
cm
.
op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ct
=
fu_GD
.
Return
Deck
(
e
,
tp
)
local
ct
=
fu_GD
.
To
Deck
(
e
,
tp
)
if
ct
==
0
then
return
end
Duel
.
BreakEffect
()
fu_GD
.
DrawReturn
(
tp
,
ct
)
end
\ No newline at end of file
expansions/script/c20000462.lua
View file @
823659ee
--创导龙裔·构形者
dofile
(
"expansions/script/c20000450.lua"
)
local
func
=
fugf
.
GetNoP
(
"DG"
,
"IsCode"
,
464
)
local
pe
=
fuef
.
STO
(
"DR"
):
RAN
(
"H"
):
PRO
(
"DAM"
):
CTL
(
"m"
):
Func
(
"p_con1,N_cos1,N_tg1(%1),N_op1(%1)"
,
func
)
local
cm
,
m
=
fuef
.
initial
(
fu_GD
,
_glo
,
"public_effect"
,
pe
)
cm
.
e1
=
fuef
.
FC
(
"DR"
):
RAN
(
"H"
):
Func
(
"SelfDraw_con,N_op2"
)
--pe
function
cm
.
p_con1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
(
r
&
REASON_EFFECT
==
REASON_EFFECT
)
and
fucf
.
Filter
(
re
:
GetHandler
(),
"IsSet+IsTyp"
,
"bfd4,M"
)
end
\ No newline at end of file
local
cm
,
m
=
fusf
.
Initial
(
fu_GD
)
--insert
local
e1g1
=
fugf
.
MakeFilter
(
"DG"
,
"IsCode"
,
464
)
local
insert
=
function
(
c
)
cm
.
public
=
fuef
.
STO
(
c
,
"DR"
):
Ran
(
"H"
):
Pro
(
"DAM"
):
Ctl
(
m
):
Func
(
"Pcos,Ptg(%1),Pop(%1)"
,
e1g1
)
end
fusf
.
InsertInitial
(
insert
)
--e1
cm
.
e1
=
fuef
.
FC
(
"DR"
):
Ran
(
"H"
):
Func
(
"SelfDraw_con,NPop1"
)
\ No newline at end of file
expansions/script/c20000463.lua
View file @
823659ee
--
创导龙裔·龙缠者
--
龙缠之创导龙裔
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fuef
.
initial
(
fu_GD
,
nil
,
"AddCode,ReviveLimit"
,
464
)
cm
.
e1
=
fuef
.
E
(
EFFECT_UPDATE_ATTACK
,
false
):
VAL
(
"val1"
)
cm
.
e2
=
fuef
.
E
(
EFFECT_DESTROY_SUBSTITUTE
,
false
):
VAL
(
"val2"
)
cm
.
e3
=
fuef
.
FG
(
"e1"
):
RAN
(
"M"
):
TRAN
(
"S"
):
TG
(
"tg3"
)(
"e2"
)
cm
.
e4
=
fuef
.
I
():
CAT
(
"GA+EQ"
):
RAN
(
"M"
):
CTL
(
1
):
Func
(
"tg4,op4"
)
cm
.
e5
=
fuef
.
QO
(
"CH"
):
CAT
(
"NEGA+RE"
):
RAN
(
"M"
):
PRO
(
"DAM+CAL"
):
CTL
(
m
):
Func
(
"con5,nbtg,op5"
)
local
cm
,
m
=
fusf
.
Initial
(
fu_GD
)
fusf
.
AddCode
(
464
)
fusf
.
ReviveLimit
()
-- e1
cm
.
e1
=
fuef
.
E
(
EFFECT_UPDATE_ATTACK
,
false
):
Val
(
"val1"
)
function
cm
.
val1
(
e
,
c
)
return
math.floor
(
e
:
GetHandler
():
GetAttack
()
/
2
)
end
-- e2
cm
.
e2
=
fuef
.
E
(
EFFECT_DESTROY_SUBSTITUTE
,
false
):
Val
(
"val2"
)
function
cm
.
val2
(
e
,
re
,
r
,
rp
)
return
r
&
(
REASON_BATTLE
|
REASON_EFFECT
)
~=
0
end
-- e3
cm
.
e3
=
fuef
.
FG
(
"e1"
):
Ran
(
"M"
):
Tran
(
"S"
):
Tg
(
"tg3"
)(
"e2"
)
function
cm
.
tg3
(
e
,
c
)
return
fugf
.
Filter
(
e
:
GetHandler
():
GetEquipGroup
(),
"IsRac"
,
"DR"
)
end
-- e4
cm
.
e4
=
fuef
.
I
():
Cat
(
"GA+EQ"
):
Ran
(
"M"
):
Ctl
(
1
):
Func
(
"tg4,op4"
)
local
e4g1
=
fugf
.
MakeFilter
(
"DG"
,
"IsTyp+IsRac+CanBeEq"
,
"RI+M,DR,(%1,%2)"
)
function
cm
.
tg4
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
fugf
.
GetFilter
(
tp
,
"DG"
,
"IsTyp+IsRac+CanEq"
,
"RI+M,DR,%1"
,
1
,
tp
)
end
if
chk
==
0
then
return
#
e4g1
(
tp
,
tp
,
e
:
GetHandler
())
>
0
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
nil
,
1
,
1
-
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
end
function
cm
.
op4
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
not
(
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
))
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
local
ec
=
fugf
.
Select
(
tp
,
"DG"
,
"IsTyp+IsRac+CanEq+GChk"
,
"RI+M,DR,%1"
,
1
,
1
,
tp
):
GetFirst
()
local
ec
=
fugf
.
Select
(
tp
,
e4g1
(
tp
,
tp
,
c
),
"GChk"
):
GetFirst
()
fusf
.
Equip
(
e
,
tp
,
ec
,
c
)
end
-- e5
cm
.
e5
=
fuef
.
QO
(
"CH"
):
Cat
(
"NEGA+RE"
):
Ran
(
"M"
):
Pro
(
"DAM+CAL"
):
Ctl
(
m
):
Func
(
"con5,nbtg,op5"
)
function
cm
.
con5
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
,
rc
=
e
:
GetHandler
(),
re
:
GetHandler
()
return
not
c
:
IsStatus
(
STATUS_BATTLE_DESTROYED
)
and
Duel
.
IsChainNegatable
(
ev
)
and
re
:
IsActiveType
(
TYPE_MONSTER
)
and
c
:
IsAttackAbove
(
rc
:
GetAttack
())
return
not
c
:
IsStatus
(
STATUS_BATTLE_DESTROYED
)
and
Duel
.
IsChainNegatable
(
ev
)
and
re
:
IsActiveType
(
TYPE_MONSTER
)
and
c
:
IsAttackAbove
(
rc
:
GetAttack
())
end
function
cm
.
op5
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
NegateActivation
(
ev
)
and
re
:
GetHandler
():
IsRelateToEffect
(
re
)
then
Duel
.
Remove
(
eg
,
POS_FACEUP
,
REASON_EFFECT
)
end
end
-- e6
cm
.
e6
=
fuef
.
SC
(
"SP"
):
Func
(
"RPcon1,RPop2"
)
\ No newline at end of file
expansions/script/c20000464.lua
View file @
823659ee
--构龙之创导
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fuef
.
initial
(
fu_GD
,
nil
,
"AddCode"
,
463
)
cm
.
e1
=
fuef
.
A
():
CAT
(
"REL+SP+EQ"
):
Func
(
"tg1,op1"
)
cm
.
e2
=
fuef
.
I
():
CAT
(
"EQ"
):
RAN
(
"G"
):
PRO
(
"TG"
):
Func
(
"bfgcost,tg2,op2"
)
local
cm
,
m
=
fusf
.
Initial
(
fu_GD
)
fusf
.
AddCode
(
463
)
--e1
function
cm
.
tg1f2
(
c
,
tp
)
return
fucf
.
Filter
(
c
,
"IsLoc+IsPublic"
,
"H"
)
and
fugf
.
GetFilter
(
tp
,
"HG"
,
"IsTyp+IsRac+CanEq+IsLv+Not"
,
{
"RI+M,DR"
,
tp
,
-
c
:
GetLevel
(),
c
},
1
)
cm
.
e1
=
fuef
.
A
():
Cat
(
"REL+SP+EQ"
):
Func
(
"tg1,op1"
)
function
cm
.
tg1f2
(
c
,
tp
,
rc
,
eg
)
return
fugf
.
Filter
(
eg
,
"CanBeEq+IsLv+Not"
,
{{
tp
,
rc
},
-
c
:
GetLevel
(),
c
},
1
)
end
function
cm
.
tg1f
(
rc
,
e
,
tp
,
m
g
)
if
not
fucf
.
Filter
(
rc
,
"IsTyp+IsCode+CanSp"
,
"RI+M,463"
,
{
e
,
"RI"
,
tp
}
)
then
return
false
end
function
cm
.
tg1f
1
(
rc
,
e
,
tp
,
mg
,
e
g
)
if
fucf
.
Filter
(
rc
,
"~(IsTyp+IsCode+CanSp)"
,
"RI+M,463,(%1,RI)"
,
e
)
then
return
false
end
mg
=
mg
:
Filter
(
Card
.
IsCanBeRitualMaterial
,
rc
,
rc
):
Filter
(
rc
.
mat_filter
or
aux
.
TRUE
,
rc
,
tp
)
return
fugf
.
Filter
(
mg
,
cm
.
tg1f2
,
tp
,
1
)
return
fugf
.
Filter
(
mg
,
cm
.
tg1f2
,
{
tp
,
rc
,
eg
},
1
)
end
local
e1g1
=
fugf
.
MakeFilter
(
"D"
,
cm
.
tg1f1
,
"%1,%2,%3,%4"
)
local
function
GetME
(
tp
)
local
mg
=
fugf
.
Filter
(
Duel
.
GetRitualMaterial
(
tp
),
"IsLoc+IsSet+IsPublic"
,
"H,bfd4"
)
local
eg
=
fugf
.
GetFilter
(
tp
,
"HG"
,
"IsTyp+IsRac"
,
"RI+M,DR"
)
return
mg
,
eg
end
function
cm
.
tg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
fugf
.
GetFilter
(
tp
,
"D"
,
cm
.
tg1f
,{
e
,
tp
,
Duel
.
GetRitualMaterial
(
tp
)},
1
)
end
if
chk
==
0
then
return
#
e1g1
(
tp
,
e
,
tp
,
GetME
(
tp
))
>
0
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
cm
.
op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
mg
=
Duel
.
GetRitualMaterial
(
tp
)
local
mg
,
eg
=
GetME
(
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
rc
=
fugf
.
Select
(
tp
,
"D"
,
cm
.
tg1f
,{
e
,
tp
,
mg
}
):
GetFirst
()
local
rc
=
fugf
.
Select
(
tp
,
e1g1
(
tp
,
e
,
tp
,
mg
,
eg
)
):
GetFirst
()
if
not
rc
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
mg
=
mg
:
Filter
(
Card
.
IsCanBeRitualMaterial
,
rc
,
rc
):
Filter
(
rc
.
mat_filter
or
aux
.
TRUE
,
rc
,
tp
)
mg
=
fugf
.
Select
(
tp
,
mg
,
cm
.
tg1f2
,
tp
)
mg
=
fugf
.
Select
(
tp
,
mg
,
cm
.
tg1f2
,
{
tp
,
rc
,
eg
})
fu_GD
.
Hint
(
tp
,
m
,
mg
,
rc
)
rc
:
SetMaterial
(
mg
)
Duel
.
ReleaseRitualMaterial
(
mg
)
Duel
.
BreakEffect
()
Duel
.
SpecialSummon
(
rc
,
SUMMON_TYPE_RITUAL
,
tp
,
tp
,
false
,
true
,
POS_FACEUP
)
rc
:
CompleteProcedure
()
local
mc
=
mg
:
GetFirst
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
mc
=
fugf
.
Select
(
tp
,
"HG"
,
"IsTyp+IsRac+CanEq+IsLv"
,
{
"RI+M,DR"
,
tp
,
-
mc
:
GetLevel
()}):
GetFirst
()
fusf
.
Equip
(
e
,
tp
,
mc
,
rc
)
local
selfdescon
=
function
(
e
)
return
e
:
GetHandler
():
GetEquipCount
()
==
0
end
fuef
.
S
(
e
,
EFFECT_SELF_DESTROY
,
rc
):
PRO
(
"SR"
):
RAN
(
"M"
):
CON
(
selfdescon
):
RES
(
"STD"
)
eg
=
fugf
.
Select
(
tp
,
eg
,
"CanBeEq+IsLv"
,
{{
tp
,
rc
},
-
mg
:
GetFirst
():
GetLevel
()}):
GetFirst
()
fusf
.
Equip
(
e
,
tp
,
eg
,
rc
)
fuef
.
S
(
e
,
EFFECT_SELF_DESTROY
,
rc
):
Pro
(
"IG+SR"
):
Ran
(
"M"
):
Con
(
cm
.
op1con1
):
Res
(
"STD"
)
end
function
cm
.
op1con1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetEquipCount
()
==
0
end
--e2
cm
.
e2
=
fuef
.
I
():
Cat
(
"EQ"
):
Ran
(
"G"
):
Pro
(
"TG"
):
Func
(
"bfgcost,tg2,op2"
)
function
cm
.
tg2f1
(
c
,
e
,
g
,
tp
)
if
fucf
.
Filter
(
c
,
"~(IsPos+IsTyp+TgChk+IsAbleToChangeControler)"
,
"FU,EF,%1"
,
e
)
then
return
false
end
return
fugf
.
Filter
(
g
,
"CanEq"
,
{
c
,
tp
},
1
)
end
local
e2g2
=
fugf
.
MakeFilter
(
"M"
,
"IsPos+IsCode"
,
"FU,463"
)
local
e2g1
=
fugf
.
MakeFilter
(
"+M"
,
cm
.
tg2f1
,
"%1,%2,%3"
)
function
cm
.
tg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
local
g
=
fugf
.
GetFilter
(
tp
,
"+M"
,
"IsPos+IsTyp+TgChk+IsAbleToChangeControler"
,
"FU,EF,%1"
,
nil
,
e
)
local
g
=
e2g1
(
tp
,
e
,
e2g2
(
tp
),
tp
)
if
chkc
then
return
g
:
IsContains
(
chkc
)
end
if
chk
==
0
then
return
#
g
>
0
and
fugf
.
GetFilter
(
tp
,
"M"
,
"IsPos+IsCode+CanEq"
,
"FU,463,%1"
,
nil
,
tp
)
end
if
chk
==
0
then
return
#
g
>
0
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
g
=
fugf
.
SelectTg
(
tp
,
g
)
g
=
fugf
.
SelectTg
(
tp
,
g
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
g
,
1
,
0
,
0
)
end
function
cm
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ec
=
Duel
.
GetFirstTarget
()
local
ec
=
fusf
.
GetTarget
(
e
,
"FU"
)
if
not
ec
or
ec
:
IsControler
(
tp
)
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_FACEUP
)
if
not
(
ec
and
ec
:
IsFaceup
()
and
ec
:
IsRelateToEffect
(
e
)
and
ec
:
IsControler
(
1
-
tp
))
then
return
end
local
c
=
fugf
.
GetFilter
(
tp
,
"M"
,
"IsPos+IsCode+CanEq"
,
"FU,463,%1"
,
nil
,
tp
):
GetFirst
()
fusf
.
Equip
(
e
,
tp
,
ec
,
c
)
local
c
=
fugf
.
Select
(
tp
,
e2g2
(
tp
),
"CanEq"
,
{
ec
,
tp
}):
GetFirst
()
fusf
.
Equip
(
e
,
tp
,
ec
,
c
)
end
\ No newline at end of file
expansions/script/c20000465.lua
View file @
823659ee
--创导龙裔的再构
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fuef
.
initial
(
fu_GD
)
cm
.
e1
=
fuef
.
A
(
"LEA"
):
CAT
(
"SP+RE"
):
PRO
(
"DE"
):
Func
(
"DRM_leave_con,tg1,op1"
)
cm
.
e2
=
fuef
.
QO
():
CAT
(
"TD+DR"
):
RAN
(
"G"
):
Func
(
"bfgcost,CanReturnDraw_tg,op2"
)
local
cm
,
m
=
fusf
.
Initial
(
fu_GD
)
--e1
function
cm
.
tg1f1
(
g
,
tp
,
c
,
lv
)
cm
.
e1
=
fuef
.
A
(
"LEA"
):
Cat
(
"SP+RE"
):
Pro
(
"DE"
):
Func
(
"DRM_leave_con,tg1,op1"
)
function
cm
.
tg1f2
(
g
,
tp
,
c
,
lv
)
Duel
.
SetSelectedCard
(
g
)
return
g
:
CheckWithSumGreater
(
Card
.
GetRitualLevel
,
lv
,
c
)
and
Duel
.
GetMZoneCount
(
tp
,
nil
,
tp
)
>
0
and
(
not
c
.
mat_group_check
or
c
.
mat_group_check
(
g
,
tp
))
return
g
:
CheckWithSumGreater
(
Card
.
GetRitualLevel
,
lv
,
c
)
and
(
c
.
mat_group_check
or
aux
.
TRUE
)(
g
,
tp
)
end
function
cm
.
tg1f
(
rc
,
e
,
tp
,
mg
)
if
not
fucf
.
Filter
(
rc
,
"IsTyp+IsRac+IsPLoc+CanSp"
,
"RI+M,DR,M"
,{
e
,
"RI"
,
tp
}
)
then
return
false
end
function
cm
.
tg1f
1
(
rc
,
e
,
tp
,
mg
)
if
fucf
.
Filter
(
rc
,
"~(IsTyp+IsRac+CanSp)"
,
"RI+M,DR,(%1,RI)"
,
e
)
then
return
false
end
mg
=
mg
:
Filter
(
rc
.
mat_filter
or
aux
.
TRUE
,
rc
,
tp
)
return
mg
:
CheckSubGroup
(
cm
.
tg1f1
,
1
,
#
mg
,
tp
,
rc
,
rc
:
GetLevel
())
local
lv
=
rc
:
GetLevel
()
aux
.
GCheckAdditional
=
aux
.
RitualCheckAdditional
(
rc
,
lv
,
"Greater"
)
local
res
=
mg
:
CheckSubGroup
(
cm
.
tg1f2
,
1
,
math.min
(
#
mg
,
lv
),
tp
,
rc
,
lv
)
aux
.
GCheckAdditional
=
nil
return
res
end
local
e1g1
=
fugf
.
MakeFilter
(
"G"
,
"IsSet+IsLv+IsTyp+AbleTo"
,
"bfd4,+1,M,R"
)
local
e1f1
=
fugf
.
MakeGroupFilter
(
cm
.
tg1f1
,
"%1,%2,%3"
)
function
cm
.
tg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
mg
=
fugf
.
GetFilter
(
tp
,
"G"
,
"IsSet+IsLv+IsTyp+AbleTo"
,
"bfd4,+1,M,R"
)
if
chk
==
0
then
return
fugf
.
Filter
(
eg
,
cm
.
tg1f
,{
e
,
tp
,
mg
},
1
)
end
if
chk
==
0
then
return
e1f1
(
eg
,
1
,
e
,
tp
,
e1g1
(
tp
))
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
nil
,
1
,
tp
,
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_GRAVE
)
end
function
cm
.
op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
mg
=
fugf
.
GetFilter
(
tp
,
"G"
,
"IsSet+IsLv+IsTyp+AbleTo+GChk"
,
"bfd4,+1,M,R"
)
local
rc
=
fugf
.
Filter
(
eg
,
aux
.
NecroValleyFilter
(
cm
.
tg1f
),{
e
,
tp
,
mg
})
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
if
#
rc
>
1
then
rc
=
fugf
.
Select
(
tp
,
rc
)
end
rc
=
rc
:
GetFirst
()
if
not
rc
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
mg
=
mg
:
Filter
(
rc
.
mat_filter
or
aux
.
TRUE
,
rc
,
tp
)
mg
=
mg
:
SelectSubGroup
(
tp
,
cm
.
tg1f1
,
false
,
1
,
#
mg
,
tp
,
rc
,
rc
:
GetLevel
())
rc
:
SetMaterial
(
mg
)
Duel
.
ReleaseRitualMaterial
(
mg
)
local
mg
=
e1g1
(
tp
)
local
rg
=
e1f1
(
eg
,
nil
,
e
,
tp
,
mg
)
local
rc
,
sg
repeat
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
rc
=
fugf
.
Select
(
tp
,
rg
,
"GChk"
):
GetFirst
()
if
not
rc
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
sg
=
mg
:
Filter
(
rc
.
mat_filter
or
aux
.
TRUE
,
rc
,
tp
)
local
lv
=
rc
:
GetLevel
()
aux
.
GCheckAdditional
=
aux
.
RitualCheckAdditional
(
rc
,
lv
,
"Greater"
)
sg
=
sg
:
SelectSubGroup
(
tp
,
cm
.
tg1f2
,
true
,
1
,
math.min
(
#
sg
,
lv
),
tp
,
rc
,
lv
)
aux
.
GCheckAdditional
=
nil
until
sg
Duel
.
Hint
(
24
,
tp
,
aux
.
Stringid
(
m
,
0
))
Duel
.
Hint
(
24
,
tp
,
aux
.
Stringid
(
m
,
1
))
rc
:
SetMaterial
(
sg
)
Duel
.
ReleaseRitualMaterial
(
sg
)
Duel
.
BreakEffect
()
Duel
.
SpecialSummon
(
rc
,
SUMMON_TYPE_RITUAL
,
tp
,
tp
,
false
,
true
,
POS_FACEUP
)
rc
:
CompleteProcedure
()
fu_GD
.
Hint
(
tp
,
m
,
sg
,
rc
)
end
--e2
cm
.
e2
=
fuef
.
QO
():
Cat
(
"TD+DR"
):
Ran
(
"G"
):
Func
(
"bfgcost,ReDraw_tg,op2"
)
function
cm
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
local
ct
=
Duel
.
SendtoDeck
(
fugf
.
Select
(
tp
,
"H"
,
"AbleTo"
,
"D"
,
1
,
99
),
nil
,
2
,
REASON_EFFECT
)
if
ct
==
0
then
return
end
fu_GD
.
DrawReturn
(
tp
,
ct
)
end
end
\ No newline at end of file
expansions/script/c20099997.lua
View file @
823659ee
...
...
@@ -13,10 +13,7 @@ dofile("expansions/script/c20099998.lua")
function
fugf
.
MakeGroupFilter
(
f
,
v
)
return
function
(
g
,
n
,
...
)
fusf
.
CheckArgType
(
"MakeGroupFilter"
,
1
,
g
,
"Group"
)
local
ok
,
res
=
pcall
(
fusf
.
CheckArgType
,
"MakeGroupFilter"
,
2
,
n
,
"nil/number"
)
if
not
ok
then
error
(
res
,
2
)
end
fusf
.
CheckArgType
(
"MakeGroupFilter"
,
2
,
n
,
"nil/number"
)
g
=
g
:
Filter
(
fucf
.
MakeCardFilter
(
f
,
v
,
...
),
nil
)
if
not
n
then
return
g
end
return
n
>
0
and
#
g
>=
n
or
#
g
<=
-
n
...
...
@@ -163,7 +160,7 @@ function fucf.MakeCardFilter(func, args, ...)
}
local
temp
=
Cal
[
func
]
if
temp
==
nil
then
error
(
"invalid operators : "
..
func
)
error
(
string.format
(
"invalid operators : '%s'"
,
func
)
)
end
stack
[
#
stack
+
1
]
=
temp
else
...
...
@@ -174,7 +171,7 @@ function fucf.MakeCardFilter(func, args, ...)
local
arg
=
arg_table
[
arg_ind
]
arg_ind
=
arg_ind
+
1
if
type
(
arg
)
~=
"table"
then
arg
=
{
arg
,
n
=
1
}
end
stack
[
#
stack
+
1
]
=
func
(
c
,
table.unpack
(
arg
,
1
,
arg
.
n
))
stack
[
#
stack
+
1
]
=
func
(
c
,
table.unpack
(
arg
,
1
,
arg
.
n
))
or
false
end
end
return
table.remove
(
stack
)
...
...
@@ -368,7 +365,7 @@ function fucf.CanBeEq(c, tp, ec, chk_loc)
elseif
c
:
IsType
(
TYPE_EQUIP
)
then
return
c
:
CheckEquipTarget
(
ec
)
end
error
(
"CanBeEq : mismatch card type"
,
2
)
return
false
end
--- 检查卡片 c 的种类为 cod 的标识效果的数量比较 n 的结果
-- @param c Card 要检查的卡片
...
...
expansions/script/c20099998.lua
View file @
823659ee
...
...
@@ -883,22 +883,22 @@ function fusf.Equip(e, tp, eg, c)
eg
=
fusf
.
ToGroup
(
eg
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
<
#
eg
then
return
false
end
c
=
fusf
.
CheckArgType
(
"Equip"
,
4
,
c
or
e
:
GetHandler
(),
"Card"
)
local
_
,
c
=
fusf
.
CheckArgType
(
"Equip"
,
4
,
c
or
e
:
GetHandler
(),
"Card"
)
if
c
:
IsFacedown
()
then
return
false
end
local
limit
=
function
(
e
,
c
)
return
c
==
e
:
GetLabelObject
()
end
if
typ
==
"Card"
then
local
ec
=
eg
:
GetFirst
()
if
not
Duel
.
Equip
(
tp
,
ec
,
c
)
then
return
false
end
if
ec
:
IsType
(
TYPE_MONSTER
)
then
fuef
.
S
(
e
,
EFFECT_EQUIP_LIMIT
,
ec
):
P
RO
(
"CD"
):
VAL
(
limit
):
OBJ
(
c
):
RES
(
"STD"
)
if
fucf
.
IsOTyp
(
ec
,
"M"
)
then
fuef
.
S
(
e
,
EFFECT_EQUIP_LIMIT
,
ec
):
P
ro
(
"CD"
):
Val
(
limit
):
Obj
(
c
):
Res
(
"STD"
)
end
return
true
end
for
ec
in
aux
.
Next
(
eg
)
do
Duel
.
Equip
(
tp
,
ec
,
c
,
true
,
true
)
if
ec
:
IsType
(
TYPE_MONSTER
)
then
fuef
.
S
(
e
,
EFFECT_EQUIP_LIMIT
,
ec
):
P
RO
(
"CD"
):
VAL
(
limit
):
OBJ
(
c
):
RES
(
"STD"
)
if
fucf
.
IsOTyp
(
ec
,
"M"
)
then
fuef
.
S
(
e
,
EFFECT_EQUIP_LIMIT
,
ec
):
P
ro
(
"CD"
):
Val
(
limit
):
Obj
(
c
):
Res
(
"STD"
)
end
end
Duel
.
EquipComplete
()
...
...
expansions/script/c66620025.lua
View file @
823659ee
...
...
@@ -121,7 +121,7 @@ end
function
s
.
fsptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
local
chkf
=
tp
local
mg1
=
Duel
.
GetFusionMaterial
(
tp
)
:
Filter
(
s
.
filter1
,
nil
,
e
)
local
mg1
=
Duel
.
GetFusionMaterial
(
tp
)
local
res
=
Duel
.
IsExistingMatchingCard
(
s
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
,
mg1
,
nil
,
chkf
)
if
not
res
then
local
ce
=
Duel
.
GetChainMaterial
(
tp
)
...
...
@@ -150,31 +150,20 @@ function s.fspop(e,tp,eg,ep,ev,re,r,rp)
local
mf
=
ce
:
GetValue
()
sg2
=
Duel
.
GetMatchingGroup
(
s
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
nil
,
e
,
tp
,
mg2
,
mf
,
chkf
)
end
if
#
sg1
>
0
or
(
sg2
~=
nil
and
#
sg2
>
0
)
then
if
sg1
:
GetCount
()
>
0
or
(
sg2
~=
nil
and
sg2
:
GetCount
()
>
0
)
then
local
sg
=
sg1
:
Clone
()
if
sg2
then
sg
:
Merge
(
sg2
)
end
::
cancel
::
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
tg
=
sg
:
Select
(
tp
,
1
,
1
,
nil
)
local
tc
=
tg
:
GetFirst
()
if
sg1
:
IsContains
(
tc
)
and
(
sg2
==
nil
or
not
sg2
:
IsContains
(
tc
)
or
ce
and
not
Duel
.
SelectYesNo
(
tp
,
ce
:
GetDescription
()))
then
if
sg1
:
IsContains
(
tc
)
and
(
sg2
==
nil
or
not
sg2
:
IsContains
(
tc
)
or
not
Duel
.
SelectYesNo
(
tp
,
ce
:
GetDescription
()))
then
local
mat1
=
Duel
.
SelectFusionMaterial
(
tp
,
tc
,
mg1
,
nil
,
chkf
)
if
#
mat1
==
0
then
goto
cancel
end
if
mat1
:
IsExists
(
Card
.
IsFacedown
,
1
,
nil
)
then
Duel
.
ConfirmCards
(
1
-
tp
,
mat1
)
end
Duel
.
HintSelection
(
mat1
)
tc
:
SetMaterial
(
mat1
)
Duel
.
SendtoGrave
(
mat1
,
REASON_EFFECT
+
REASON_MATERIAL
+
REASON_FUSION
)
Duel
.
BreakEffect
()
Duel
.
SpecialSummon
(
tc
,
SUMMON_TYPE_FUSION
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
else
if
ce
~=
nil
then
else
local
mat2
=
Duel
.
SelectFusionMaterial
(
tp
,
tc
,
mg2
,
nil
,
chkf
)
if
#
mat2
==
0
then
goto
cancel
end
if
mat2
:
IsExists
(
Card
.
IsFacedown
,
1
,
nil
)
then
Duel
.
ConfirmCards
(
1
-
tp
,
mat2
)
end
Duel
.
HintSelection
(
mat2
)
local
fop
=
ce
:
GetOperation
()
fop
(
ce
,
e
,
tp
,
tc
,
mat2
)
end
...
...
expansions/script/c66620225.lua
View file @
823659ee
...
...
@@ -79,12 +79,12 @@ function s.spcon(e,tp,eg,ep,ev,re,r,rp)
return
rp
==
1
-
tp
end
function
s
.
filter0
(
c
,
e
)
return
c
:
IsLocation
(
LOCATION_MZONE
+
LOCATION_GRAVE
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsCanBeFusionMaterial
()
and
c
:
IsAbleToDeck
()
and
not
c
:
IsImmuneToEffect
(
e
)
function
s
.
filter0
(
c
)
return
(
c
:
IsLocation
(
LOCATION_ONFIELD
+
LOCATION_GRAVE
)
or
c
:
IsFaceup
())
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsCanBeFusionMaterial
()
and
c
:
IsAbleToDeck
(
)
end
function
s
.
filter1
(
c
,
e
)
return
c
:
IsFaceupEx
(
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsCanBeFusionMaterial
()
and
c
:
IsAbleToDeck
()
and
not
c
:
IsImmuneToEffect
(
e
)
return
(
c
:
IsLocation
(
LOCATION_ONFIELD
+
LOCATION_GRAVE
)
or
c
:
IsFaceup
()
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsCanBeFusionMaterial
()
and
c
:
IsAbleToDeck
()
and
not
c
:
IsImmuneToEffect
(
e
)
end
function
s
.
filter2
(
c
,
e
,
tp
,
m
,
f
,
chkf
)
...
...
@@ -95,10 +95,8 @@ end
function
s
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
local
chkf
=
tp
local
mg1
=
Duel
.
GetMatchingGroup
(
s
.
filter0
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
,
0
,
nil
,
e
)
local
mg2
=
Duel
.
GetMatchingGroup
(
aux
.
NecroValleyFilter
(
s
.
filter1
),
tp
,
LOCATION_REMOVED
,
0
,
nil
,
e
)
mg1
:
Merge
(
mg2
)
local
res
=
Duel
.
IsExistingMatchingCard
(
s
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
,
mg1
,
nil
,
chkf
)
local
mg
=
Duel
.
GetMatchingGroup
(
s
.
filter0
,
tp
,
LOCATION_ONFIELD
+
LOCATION_GRAVE
+
LOCATION_REMOVED
,
0
,
nil
)
local
res
=
Duel
.
IsExistingMatchingCard
(
s
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
,
mg
,
nil
,
chkf
)
if
not
res
then
local
ce
=
Duel
.
GetChainMaterial
(
tp
)
if
ce
~=
nil
then
...
...
@@ -111,16 +109,13 @@ function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
return
res
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_EXTRA
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TODECK
,
nil
,
1
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_REMOVED
)
Duel
.
Hint
(
HINT_OPSELECTED
,
1
-
tp
,
e
:
GetDescription
())
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TODECK
,
nil
,
1
,
tp
,
LOCATION_ONFIELD
+
LOCATION_GRAVE
+
LOCATION_REMOVED
)
end
function
s
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
chkf
=
tp
local
mg1
=
Duel
.
GetFusionMaterial
(
tp
):
Filter
(
s
.
filter0
,
nil
,
e
)
local
mg2
=
Duel
.
GetMatchingGroup
(
aux
.
NecroValleyFilter
(
s
.
filter1
),
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_REMOVED
,
0
,
nil
,
e
)
mg1
:
Merge
(
mg2
)
local
sg1
=
Duel
.
GetMatchingGroup
(
s
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
nil
,
e
,
tp
,
mg1
,
nil
,
chkf
)
local
mg
=
Duel
.
GetMatchingGroup
(
aux
.
NecroValleyFilter
(
s
.
filter1
),
tp
,
LOCATION_ONFIELD
+
LOCATION_GRAVE
+
LOCATION_REMOVED
,
0
,
nil
,
e
)
local
sg1
=
Duel
.
GetMatchingGroup
(
s
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
nil
,
e
,
tp
,
mg
,
nil
,
chkf
)
local
mg3
=
nil
local
sg2
=
nil
local
ce
=
Duel
.
GetChainMaterial
(
tp
)
...
...
@@ -133,13 +128,11 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
if
sg1
:
GetCount
()
>
0
or
(
sg2
~=
nil
and
sg2
:
GetCount
()
>
0
)
then
local
sg
=
sg1
:
Clone
()
if
sg2
then
sg
:
Merge
(
sg2
)
end
::
cancel
::
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
tg
=
sg
:
Select
(
tp
,
1
,
1
,
nil
)
local
tc
=
tg
:
GetFirst
()
if
sg1
:
IsContains
(
tc
)
and
(
sg2
==
nil
or
not
sg2
:
IsContains
(
tc
)
or
ce
~=
nil
and
not
Duel
.
SelectYesNo
(
tp
,
ce
:
GetDescription
()))
then
local
mat
=
Duel
.
SelectFusionMaterial
(
tp
,
tc
,
mg1
,
nil
,
chkf
)
if
#
mat
==
0
then
goto
cancel
end
if
sg1
:
IsContains
(
tc
)
and
(
sg2
==
nil
or
not
sg2
:
IsContains
(
tc
)
or
not
Duel
.
SelectYesNo
(
tp
,
ce
:
GetDescription
()))
then
local
mat
=
Duel
.
SelectFusionMaterial
(
tp
,
tc
,
mg
,
nil
,
chkf
)
tc
:
SetMaterial
(
mat
)
if
mat
:
IsExists
(
Card
.
IsFacedown
,
1
,
nil
)
then
local
cg
=
mat
:
Filter
(
Card
.
IsFacedown
,
nil
)
...
...
@@ -152,9 +145,8 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
Duel
.
SendtoDeck
(
mat
,
nil
,
SEQ_DECKSHUFFLE
,
REASON_EFFECT
+
REASON_MATERIAL
+
REASON_FUSION
)
Duel
.
BreakEffect
()
Duel
.
SpecialSummon
(
tc
,
SUMMON_TYPE_FUSION
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
else
if
ce
~=
nil
then
else
local
mat2
=
Duel
.
SelectFusionMaterial
(
tp
,
tc
,
mg3
,
nil
,
chkf
)
if
#
mat2
==
0
then
goto
cancel
end
local
fop
=
ce
:
GetOperation
()
fop
(
ce
,
e
,
tp
,
tc
,
mat2
)
end
...
...
@@ -163,5 +155,5 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
end
function
s
.
cfilter
(
c
)
return
c
:
IsLocation
(
LOCATION_GRAVE
+
LOCATION_REMOVED
)
return
c
:
IsLocation
(
LOCATION_GRAVE
+
LOCATION_REMOVED
)
or
(
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
IsFaceup
())
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment