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)
...
@@ -28,7 +28,7 @@ function fuef.FG(owner, obj, target, force)
owner
,
obj
,
target
,
force
=
nil
,
owner
,
obj
,
target
owner
,
obj
,
target
,
force
=
nil
,
owner
,
obj
,
target
end
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
end
--- 建立剩余需要 cod 的 fuef
--- 建立剩余需要 cod 的 fuef
...
@@ -308,7 +308,7 @@ function fuef:Clone(cod, target, force)
...
@@ -308,7 +308,7 @@ function fuef:Clone(cod, target, force)
log
:
Info
(
"check self.typ is F+G"
)
log
:
Info
(
"check self.typ is F+G"
)
if
E
.
typ
==
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_GRANT
then
if
E
.
typ
==
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_GRANT
then
E
:
O
BJ
(
cod
)
E
:
O
bj
(
cod
)
else
else
E
.
cod
=
fusf
.
ParseConstantKey
(
"cod"
,
cod
)
E
.
cod
=
fusf
.
ParseConstantKey
(
"cod"
,
cod
)
log
:
Info
(
"set self.cod : "
..
E
.
cod
)
log
:
Info
(
"set self.cod : "
..
E
.
cod
)
...
@@ -878,9 +878,9 @@ function fuef:Obj(val)
...
@@ -878,9 +878,9 @@ function fuef:Obj(val)
if
self
:
InitCheck
(
log
,
"obj"
,
val
)
then
return
self
end
if
self
:
InitCheck
(
log
,
"obj"
,
val
)
then
return
self
end
if
typ
==
"string"
then
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
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
end
val
=
fusf
.
CheckType
(
e
.
e
,
"Effect"
)
val
=
fusf
.
CheckType
(
e
.
e
,
"Effect"
)
end
end
...
...
expansions/script/c20000450.lua
View file @
823659ee
--创导龙裔·觉醒者
--创导龙裔·觉醒者
dofile
(
"expansions/script/c20000000.lua"
)
dofile
(
"expansions/script/c20000000.lua"
)
fu_GD
=
fu_GD
or
{
}
fu_GD
=
fu_GD
or
{
}
--
-------------------
function
fu_GD
.
SelfDraw_con
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
fu_GD
.
NInitial
(
cat
,
loc
,
f
,
v
)
return
Duel
.
GetCurrentPhase
()
~=
PHASE_DRAW
and
rp
==
tp
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
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
)
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
)
return
fugf
.
Filter
(
eg
,
"IsTyp+IsRac+IsPLoc"
,
"RI+M,DR,M"
,
1
)
end
end
function
fu_GD
.
CanReturnDraw_tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
rm_g
=
fugf
.
MakeFilter
(
"M"
,
"IsTyp"
,
"RI+M"
)
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
)
function
fu_GD
.
GetReCount
(
tp
)
if
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
20000457
)
then
return
2
end
return
math.max
(
2
,
#
rm_g
(
tp
)
+
1
)
end
end
--Normal initial
-- 获取置顶的最大数量
function
fu_GD
.
N_initial
(
add_cat
,
f1_loc
,
f1_func
,
f1_val
)
function
fu_GD
.
GetSetCount
(
tp
)
local
func
=
fugf
.
GetNoP
(
f1_loc
,
f1_func
,
f1_val
)
if
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
20000458
)
then
return
1
end
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
)
return
#
rm_g
(
tp
)
+
1
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
end
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
function
fu_GD
.
Hint
(
tp
,
m
,
mg
,
rc
)
fuef
.
S
(
e
,
EFFECT_PUBLIC
):
DES
(
"PUB"
):
PRO
(
"HINT"
):
RES
(
"STD+PH/ED+OPPO"
)
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
end
function
fu_GD
.
N_tg1
(
func
)
-------------------
return
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
return_g
=
fugf
.
MakeFilter
(
"H"
,
"AbleTo+Not"
,
"D,%1"
)
if
chk
==
0
then
return
fu_GD
.
CanReturnDraw_tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
and
#
func
(
tp
)
>
0
end
function
fu_GD
.
ReDraw_tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
fu_GD
.
CanReturnDraw_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
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TODECK
,
nil
,
1
,
tp
,
LOCATION_HAND
)
end
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
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
local
max
,
maxn
=
2
,
#
fugf
.
GetFilter
(
tp
,
"M"
,
"IsTyp"
,
"RI+M"
)
+
1
local
g
=
fugf
.
Select
(
tp
,
return_g
(
tp
,
e
),
1
,
max
)
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
20000457
)
and
maxn
>
max
then
max
=
maxn
end
if
#
g
>
2
then
Duel
.
Hint
(
HINT_CARD
,
1
-
tp
,
20000457
)
end
local
g
=
fugf
.
Select
(
tp
,
"H"
,
"AbleTo+Not"
,
{
"D"
,
e
},
1
,
max
)
return
Duel
.
SendtoDeck
(
g
,
nil
,
2
,
REASON_EFFECT
)
return
Duel
.
SendtoDeck
(
g
,
nil
,
2
,
REASON_EFFECT
)
end
end
function
fu_GD
.
SetDeckTop
(
e
,
tp
,
func
)
-- 在卡组最上面放置
-- 在卡组最上面放置
function
fu_GD
.
SetTop
(
e
,
tp
,
g
)
local
max
=
Duel
.
IsPlayerAffectedByEffect
(
tp
,
20000458
)
and
(
#
fugf
.
GetFilter
(
tp
,
"M"
,
"IsTyp"
,
"RI+M"
)
+
1
)
or
1
local
max
=
fu_GD
.
GetSetCount
(
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
aux
.
Stringid
(
20000450
,
1
))
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
if
#
g
==
0
then
return
false
end
local
gg
=
fugf
.
Filter
(
g
,
"IsLoc"
,
"G"
)
local
gg
=
fugf
.
Filter
(
g
,
"IsLoc"
,
"G"
)
if
#
gg
>
0
then
Duel
.
SendtoDeck
(
gg
,
nil
,
0
,
REASON_EFFECT
)
end
if
#
gg
>
0
then
Duel
.
SendtoDeck
(
gg
,
nil
,
0
,
REASON_EFFECT
)
end
...
@@ -50,48 +72,66 @@ function fu_GD.SetDeckTop(e, tp, func)
...
@@ -50,48 +72,66 @@ function fu_GD.SetDeckTop(e, tp, func)
for
c
in
aux
.
Next
(
g
)
do
for
c
in
aux
.
Next
(
g
)
do
Duel
.
MoveSequence
(
c
,
SEQ_DECKTOP
)
Duel
.
MoveSequence
(
c
,
SEQ_DECKTOP
)
end
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
)
Duel
.
ConfirmDecktop
(
tp
,
#
g
)
return
true
return
true
end
end
-- 那之后,自己抽出回去的数量
function
fu_GD
.
DrawReturn
(
tp
,
ct
)
function
fu_GD
.
DrawReturn
(
tp
,
ct
)
-- 那之后,自己抽出回去的数量
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
20000459
)
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
20000459
,
2
))
then
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
20000459
)
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
20000459
,
0
))
then
Duel
.
Hint
(
HINT_CARD
,
1
-
tp
,
20000459
)
Duel
.
Hint
(
HINT_CARD
,
1
-
tp
,
20000459
)
ct
=
ct
+
1
ct
=
ct
+
1
end
end
Duel
.
BreakEffect
()
Duel
.
BreakEffect
()
Duel
.
Draw
(
tp
,
ct
,
REASON_EFFECT
)
Duel
.
Draw
(
tp
,
ct
,
REASON_EFFECT
)
end
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
)
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
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
)
fu_GD
.
DrawReturn
(
tp
,
ct
)
end
end
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
if
not
e
:
GetHandler
():
IsPublic
()
then
return
end
local
e1
=
fuef
.
S
(
e
,
EFFECT_UPDATE_LEVEL
):
V
AL
(
ev
)
local
e1
=
fuef
.
S
(
e
,
EFFECT_UPDATE_LEVEL
):
V
al
(
ev
)
fuef
.
FC
(
e
,
"ADJ"
,
tp
):
O
P
(
"N_op2op2"
):
OBJ
(
e1
.
e
)
fuef
.
FC
(
e
,
"ADJ"
,
tp
):
O
p
(
"NPop1op1"
):
Obj
(
e1
.
e
)
end
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
()
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
:
GetLabelObject
():
Reset
()
e
:
Reset
()
e
:
Reset
()
end
end
end
end
-- ritual monster initial
-------------------
function
fu_GD
.
RM_initial
(
_glo
)
function
fu_GD
.
RPcon1
(
e
)
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
)
return
e
:
GetHandler
():
IsSummonType
(
SUMMON_TYPE_RITUAL
)
return
e
:
GetHandler
():
IsSummonType
(
SUMMON_TYPE_RITUAL
)
end
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
if
self_code
~=
20000450
then
return
end
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
fu_GD
.
N_initial
(
"GA"
,
"DG"
,
"IsTyp+IsRac+IsLoc/AbleTo"
,
"RI+M,DR,D,D"
)
fu_GD
.
NInitial
(
"GA"
,
"DG"
,
"IsTyp+IsRac+IsLoc/AbleTo"
,
"RI+M,DR,D,D"
)
\ No newline at end of file
\ No newline at end of file
expansions/script/c20000451.lua
View file @
823659ee
--创导龙裔·集结者
--创导龙裔·集结者
dofile
(
"expansions/script/c20000450.lua"
)
dofile
(
"expansions/script/c20000450.lua"
)
fu_GD
.
N_initial
(
nil
,
"D"
,
"IsTyp+IsSet-IsCode"
,
"M,bfd4,451"
)
fu_GD
.
NInitial
(
nil
,
"D"
,
"IsTyp+IsSet-IsCode"
,
"M,bfd4,451"
)
\ No newline at end of file
\ No newline at end of file
expansions/script/c20000452.lua
View file @
823659ee
--创导龙裔·复苏者
--创导龙裔·复苏者
dofile
(
"expansions/script/c20000450.lua"
)
dofile
(
"expansions/script/c20000450.lua"
)
fu_GD
.
N_initial
(
"GA"
,
"G"
,
"AbleTo+IsSet"
,
"D,3fd4"
)
fu_GD
.
NInitial
(
"GA"
,
"G"
,
"AbleTo+IsSet"
,
"D,3fd4"
)
\ No newline at end of file
\ No newline at end of file
expansions/script/c20000453.lua
View file @
823659ee
--创导龙裔·探求者
--创导龙裔·探求者
dofile
(
"expansions/script/c20000450.lua"
)
dofile
(
"expansions/script/c20000450.lua"
)
fu_GD
.
N_initial
(
nil
,
"D"
,
"IsTyp+IsSet"
,
"S/T,bfd4"
)
fu_GD
.
NInitial
(
nil
,
"D"
,
"IsTyp+IsSet"
,
"S/T,bfd4"
)
\ No newline at end of file
\ No newline at end of file
expansions/script/c20000454.lua
View file @
823659ee
--创导龙裔的秘仪
--创导龙裔的秘仪
dofile
(
"expansions/script/c20000450.lua"
)
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fuef
.
initial
(
fu_GD
)
local
cm
,
m
=
fusf
.
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"
)
--e1
--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
)
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
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
nil
,
1
,
tp
,
LOCATION_HAND
+
LOCATION_GRAVE
)
end
end
function
cm
.
op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
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
})
local
rg
=
fugf
.
Select
(
tp
,
e1g1
(
tp
,
{
e
,
"RI"
}),
"GChk"
)
if
#
rg
~=
1
then
return
end
if
Duel
.
Remove
(
rg
,
POS_FACEUP
,
REASON_EFFECT
)
==
0
then
return
end
if
Duel
.
Remove
(
rg
,
POS_FACEUP
,
REASON_EFFECT
)
==
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_CONFIRM
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_CONFIRM
)
local
sg
=
fugf
.
Select
(
tp
,
"H"
,
"IsTyp+IsPublic"
,
"M"
,
1
)
local
sg
=
fugf
.
Select
(
tp
,
e1g2
(
tp
)
)
if
#
sg
~=
1
then
return
end
if
#
sg
==
0
then
return
end
Duel
.
ConfirmCards
(
1
-
tp
,
sg
)
Duel
.
ConfirmCards
(
1
-
tp
,
sg
)
local
fid
=
rg
:
GetFirst
():
GetFieldID
()
local
fid
=
rg
:
GetFirst
():
GetFieldID
()
fusf
.
RegFlag
(
rg
+
sg
,
m
,
"STD"
,
"HINT"
,
fid
,
0
)
fusf
.
RegFlag
(
rg
+
sg
,
m
,
"STD"
,
"HINT"
,
1
,
fid
)
fuef
.
FC
(
e
,
"ADJ"
,
tp
):
Func
(
"op1con1,op1op1"
):
LAB
(
fid
)
fuef
.
FC
(
e
,
"ADJ"
,
tp
):
Func
(
"op1con1,op1op1"
):
Lab
(
fid
)
end
end
function
cm
.
op1con1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
op1con1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
fid
=
e
:
GetLabel
()
local
fid
=
e
:
GetLabel
()
local
rc
=
fugf
.
GetFilter
(
tp
,
"R"
,
"IsFlagLab"
,{
m
,
fid
}):
GetFirst
()
local
rc
=
fugf
.
GetFilter
(
tp
,
"R"
,
"IsFlagLab"
,
{
m
,
fid
}):
GetFirst
()
local
sc
=
fugf
.
GetFilter
(
tp
,
"H"
,
"IsFlagLab"
,{
m
,
fid
}):
GetFirst
()
local
sc
=
fugf
.
GetFilter
(
tp
,
"H"
,
"IsFlagLab"
,
{
m
,
fid
}):
GetFirst
()
if
not
(
rc
and
sc
)
then
if
not
(
rc
and
sc
)
then
e
:
Reset
()
e
:
Reset
()
return
false
return
false
end
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
end
function
cm
.
op1op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
op1op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
fid
=
e
:
GetLabel
()
local
fid
=
e
:
GetLabel
()
local
rc
=
fugf
.
GetFilter
(
tp
,
"R"
,
"IsFlagLab"
,{
m
,
fid
}):
GetFirst
()
local
rc
=
fugf
.
GetFilter
(
tp
,
"R"
,
"IsFlagLab"
,
{
m
,
fid
}):
GetFirst
()
local
sg
=
fugf
.
GetFilter
(
tp
,
"H"
,
"IsFlagLab"
,{
m
,
fid
})
local
sg
=
fugf
.
GetFilter
(
tp
,
"H"
,
"IsFlagLab"
,
{
m
,
fid
})
if
not
rc
or
#
sg
~=
1
then
return
end
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
)
rc
:
SetMaterial
(
sg
)
Duel
.
Hint
(
HINT_CARD
,
0
,
m
)
Duel
.
ReleaseRitualMaterial
(
sg
)
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
()
rc
:
CompleteProcedure
()
e
:
Reset
()
e
:
Reset
()
end
end
--e2
--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
)
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_TODECK
,
nil
,
1
,
tp
,
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
tp
,
1
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
tp
,
1
)
end
end
function
cm
.
op2f
(
g
,
c
)
return
g
:
IsContains
(
c
)
end
function
cm
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
max
,
maxn
=
2
,
#
fugf
.
GetFilter
(
tp
,
"M"
,
"IsTyp"
,
"RI+M"
)
+
1
local
max
=
fu_GD
.
GetReCount
(
tp
)
-
1
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
20000457
)
and
maxn
>
max
then
max
=
maxn
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
Duel
.
SetSelectedCard
(
e
:
GetHandler
())
local
g
=
fugf
.
Select
(
tp
,
"G"
,
"AbleTo+Not+GChk"
,
"D,%1"
,
1
,
max
,
e
)
+
e
:
GetHandler
()
local
g
=
fugf
.
GetFilter
(
tp
,
"G"
,
"AbleTo+GChk"
,
"D"
):
SelectSubGroup
(
tp
,
cm
.
op2f
,
false
,
1
,
max
,
e
:
GetHandler
())
if
Duel
.
SendtoDeck
(
g
,
nil
,
2
,
REASON_EFFECT
)
==
0
then
return
end
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
)
fu_GD
.
DrawReturn
(
tp
,
1
)
end
end
\ No newline at end of file
expansions/script/c20000455.lua
View file @
823659ee
--创导龙裔的转生
--创导龙裔的转生
dofile
(
"expansions/script/c20000450.lua"
)
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fuef
.
initial
(
fu_GD
)
local
cm
,
m
=
fusf
.
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"
)
--e1
--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
)
Duel
.
SetSelectedCard
(
g
)
return
g
:
IsExists
(
Card
.
IsRace
,
nil
,
1
,
RACE_SPELLCASTER
)
and
g
:
CheckWithSumGreater
(
Card
.
GetRitualLevel
,
lv
,
c
)
return
g
:
CheckWithSumGreater
(
Card
.
GetRitualLevel
,
lv
,
c
)
and
(
c
.
mat_group_check
or
aux
.
TRUE
)(
g
,
tp
)
and
Duel
.
GetMZoneCount
(
tp
,
g
,
tp
)
>
0
and
(
not
c
.
mat_group_check
or
c
.
mat_group_check
(
g
,
tp
))
end
end
function
cm
.
tg1f
(
rc
,
e
,
tp
,
mg
)
function
cm
.
tg1f
1
(
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
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
)
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
end
local
e1g1
=
fugf
.
MakeFilter
(
"HD"
,
cm
.
tg1f1
,
"%1,%2,%3"
)
function
cm
.
tg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
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
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_HAND
)
end
end
function
cm
.
op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
mg
=
Duel
.
GetRitualMaterial
(
tp
)
local
mg
=
Duel
.
GetRitualMaterial
(
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
rc
,
sg
local
tc
=
fugf
.
Select
(
tp
,
"HD"
,
cm
.
tg1f
,{
e
,
tp
,
mg
}):
GetFirst
()
repeat
if
not
tc
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
rc
=
fugf
.
Select
(
tp
,
e1g1
(
tp
,
e
,
tp
,
mg
)):
GetFirst
()
mg
=
fugf
.
Filter
(
mg
,
"IsCanBeRitualMaterial+Not+%1"
,
"%2,%2,%3"
,
nil
,(
tc
.
mat_filter
or
aux
.
TRUE
),
tc
,
tp
)
if
not
rc
then
return
end
mg
=
mg
:
SelectSubGroup
(
tp
,
cm
.
tg1ff
,
false
,
1
,
#
mg
,
tp
,
tc
,
tc
:
GetLevel
())
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
tc
:
SetMaterial
(
mg
)
sg
=
mg
:
Filter
(
Card
.
IsCanBeRitualMaterial
,
rc
,
rc
):
Filter
(
rc
.
mat_filter
or
aux
.
TRUE
,
rc
,
tp
)
Duel
.
ReleaseRitualMaterial
(
mg
)
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
.
BreakEffect
()
Duel
.
SpecialSummon
(
tc
,
SUMMON_TYPE_RITUAL
,
tp
,
tp
,
false
,
true
,
POS_FACEUP
)
Duel
.
SpecialSummon
(
rc
,
SUMMON_TYPE_RITUAL
,
tp
,
tp
,
false
,
true
,
POS_FACEUP
)
tc
:
CompleteProcedure
()
rc
:
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
#
sg
==
1
then
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
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
end
--e2
--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
)
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
end
function
cm
.
tg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
tg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemove
()
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemove
()
and
e1f1
(
eg
,
1
,
tp
)
end
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
)
return
Duel
.
SelectEffectYesNo
(
tp
,
e
:
GetHandler
(),
96
)
end
end
function
cm
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Remove
(
e
:
GetHandler
(),
POS_FACEUP
,
REASON_EFFECT
)
Duel
.
Remove
(
e
:
GetHandler
(),
POS_FACEUP
,
REASON_EFFECT
)
end
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"
)
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fu
ef
.
i
nitial
(
fu_GD
)
local
cm
,
m
=
fu
sf
.
I
nitial
(
fu_GD
)
--e1
--e1
cm
.
e1
=
fuef
.
A
()
cm
.
e1
=
fuef
.
A
()
--e2
--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
)
function
cm
.
con2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
fugf
.
GetFilter
(
tp
,
"H"
,
"IsPublic"
,
nil
,
1
)
return
fugf
.
GetFilter
(
tp
,
"H"
,
"IsPublic"
,
nil
,
1
)
end
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
)
Duel
.
SetSelectedCard
(
g
)
if
not
(
g
:
CheckWithSumGreater
(
Card
.
GetRitualLevel
,
lv
,
c
)
and
Duel
.
GetMZoneCount
(
tp
,
g
,
tp
)
>
0
return
g
:
CheckWithSumGreater
(
Card
.
GetRitualLevel
,
lv
,
c
)
and
(
c
.
mat_group_check
or
aux
.
TRUE
)(
g
,
tp
)
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
)
end
end
function
cm
.
tg2f
(
rc
,
e
,
tp
,
mg
)
function
cm
.
tg2f1
(
rc
,
e
,
tp
,
mg
,
hg
)
if
not
fucf
.
Filter
(
rc
,
"IsTyp+IsRac+CanSp"
,
"RI+M,DR"
,
{
e
,
SUMMON_TYPE_RITUAL
,
tp
,
false
,
true
})
then
return
false
end
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
)
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
aux
.
GCheckAdditional
=
aux
.
RitualCheckAdditional
(
rc
,
lv
,
"Greater"
)
return
fugf
.
Filter
(
mg
,
"IsLoc+IsPublic"
,
"H"
):
CheckSubGroup
(
cm
.
tg2ff
,
1
,
#
mg
,
tp
,
rc
,
rc
:
GetLevel
())
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
end
function
cm
.
tg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
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
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
+
LOCATION_GRAVE
)
end
end
function
cm
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
mg
=
Duel
.
GetRitualMaterial
(
tp
)
local
rg
,
mg
=
GetRM
(
e
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
rc
,
sg
local
rc
=
fugf
.
Select
(
tp
,
"HG"
,
aux
.
NecroValleyFilter
(
cm
.
tg2f
),{
e
,
tp
,
mg
}):
GetFirst
()
repeat
if
not
rc
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
rc
=
fugf
.
Select
(
tp
,
rg
,
"GChk"
):
GetFirst
()
mg
=
mg
:
Filter
(
Card
.
IsCanBeRitualMaterial
,
rc
,
rc
):
Filter
(
rc
.
mat_filter
or
aux
.
TRUE
,
rc
,
tp
)
if
not
rc
then
return
end
mg
=
fugf
.
Filter
(
mg
,
"IsTyp+IsRac+IsLoc"
,
"RI+M,DR,M"
)
+
fugf
.
Filter
(
mg
,
"IsLoc+IsPublic"
,
"H"
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
mg
=
mg
:
SelectSubGroup
(
tp
,
cm
.
tg2ff
,
false
,
1
,
#
mg
,
tp
,
rc
,
rc
:
GetLevel
())
sg
=
mg
:
Filter
(
Card
.
IsCanBeRitualMaterial
,
rc
,
rc
):
Filter
(
rc
.
mat_filter
or
aux
.
TRUE
,
rc
,
tp
)
rc
:
SetMaterial
(
mg
)
local
lv
=
rc
:
GetLevel
()
Duel
.
ReleaseRitualMaterial
(
mg
)
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
.
BreakEffect
()
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
()
rc
:
CompleteProcedure
()
end
end
--e3
--e3
function
cm
.
f3
(
e
,
tp
,
eg
)
function
cm
.
f3
(
tp
,
eg
)
local
mg
=
Group
.
CreateGroup
()
local
mg
=
Group
.
CreateGroup
()
for
rc
in
aux
.
Next
(
fugf
.
Filter
(
eg
,
"IsSTyp+IsRac"
,
"RI,DR"
))
do
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"
)
mg
=
mg
+
fugf
.
Filter
(
rc
:
GetMaterial
(),
"IsLoc+IsTyp+AbleTo"
,
"G,M,D"
)
end
end
return
mg
return
mg
end
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
)
function
cm
.
con3
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
fugf
.
Filter
(
eg
,
"IsSTyp+IsRac"
,
"RI,DR"
,
1
)
return
fugf
.
Filter
(
eg
,
"IsSTyp+IsRac"
,
"RI,DR"
,
1
)
end
end
\ No newline at end of file
expansions/script/c20000457.lua
View file @
823659ee
--曜日之创导龙
--曜日之创导龙
dofile
(
"expansions/script/c20000450.lua"
)
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fu_GD
.
R
M_i
nitial
()
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"
)
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
)
function
cm
.
tg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
g
=
fugf
.
Get
(
tp
,
"+MSG"
)
local
g
=
fugf
.
Get
(
tp
,
"+MSG"
)
if
chk
==
0
then
return
#
g
>
0
end
if
chk
==
0
then
return
#
g
>
0
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
g
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
g
,
1
,
0
,
0
)
end
end
function
cm
.
op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g
=
fugf
.
Select
(
tp
,
"+MSG"
,
nil
,
nil
,
1
,
ev
)
local
g
=
fugf
.
Select
(
tp
,
"+MSG"
,
"Gchk"
,
nil
,
1
,
ev
)
if
#
g
<=
0
then
return
end
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_EFFECT
)
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_EFFECT
)
end
end
\ No newline at end of file
expansions/script/c20000458.lua
View file @
823659ee
--击星之创导龙
--击星之创导龙
dofile
(
"expansions/script/c20000450.lua"
)
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fu_GD
.
RM_initial
(
"glo"
)
local
cm
,
m
=
fu_GD
.
RInitial
(
"glo"
)
cm
.
e1
=
fuef
.
S
(
EFFECT_EXTRA_ATTACK
):
RAN
(
"M"
):
VAL
(
"val1"
)
cm
.
e1
=
fuef
.
S
(
EFFECT_EXTRA_ATTACK
):
Ran
(
"M"
):
Val
(
"val1"
)
cm
.
val1
=
function
(
e
)
return
cm
.
glo
[
e
:
GetHandlerPlayer
()
+
1
]
+
1
end
function
cm
.
val1
(
e
)
return
cm
.
glo
[
e
:
GetHandlerPlayer
()
+
1
]
+
1
end
--ge1
--ge1
cm
.
ge1
=
fuef
.
FC
(
"PHS+DP"
):
OP
(
"glo_op1"
)(
"DR"
):
Func
(
"SelfDraw_con,glo_op2"
)
cm
.
ge1
=
fuef
.
FC
(
"PHS+DP"
):
Op
(
"glo_op1"
)(
"DR"
):
Func
(
"SelfDraw_con,glo_op2"
)
cm
.
glo_op1
=
function
()
cm
.
glo
=
{
0
,
0
}
end
function
cm
.
glo_op1
()
cm
.
glo_op2
=
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
cm
.
glo
[
ep
+
1
]
=
cm
.
glo
[
ep
+
1
]
+
ev
end
cm
.
glo
=
{
0
,
0
}
\ No newline at end of file
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"
)
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fu_GD
.
RM_initial
()
local
cm
,
m
=
fu_GD
.
RInitial
()
--e1
cm
.
e1
=
fuef
.
FTO
(
"DR"
):
Pro
(
"DE+TG"
):
Ran
(
"M"
):
Ctl
(
1
):
Func
(
"SelfDraw_con,tg1,op1"
)
cm
.
e1
=
fuef
.
FTO
(
"DR"
):
PRO
(
"DE+TG"
):
RAN
(
"M"
):
CTL
(
1
):
Func
(
"SelfDraw_con,tg1,op1"
)
function
cm
.
tg1f
(
g
)
function
cm
.
tg1f
(
g
)
return
function
(
e
,
ep
,
tp
)
return
function
(
e
,
ep
,
tp
)
return
not
g
:
IsContains
(
e
:
GetHandler
())
return
not
g
:
IsContains
(
e
:
GetHandler
())
end
end
end
end
function
cm
.
tg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
function
cm
.
tg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsControler
(
1
-
tp
)
end
local
g
=
fugf
.
GetFilter
(
tp
,
"+MS"
,
"TgChk"
,
e
)
if
chk
==
0
then
return
fugf
.
GetFilter
(
tp
,
"+MS"
,
"TgChk"
,
e
,
1
)
end
if
chkc
then
return
g
:
IsContains
(
chkc
)
end
if
chk
==
0
then
return
#
g
>
0
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TARGET
)
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
))
Duel
.
SetChainLimit
(
cm
.
tg1f
(
g
))
end
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
)
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
()
local
c
=
e
:
GetHandler
()
if
c
:
IsType
(
TYPE_TRAPMONSTER
)
then
if
c
:
IsType
(
TYPE_TRAPMONSTER
)
then
return
c
:
IsFaceup
()
return
c
:
IsFaceup
()
...
@@ -27,10 +34,5 @@ function cm.op1con1(e)
...
@@ -27,10 +34,5 @@ function cm.op1con1(e)
end
end
end
end
function
cm
.
op1con2
(
e
)
function
cm
.
op1con2
(
e
)
return
fugf
.
GetFilter
(
e
:
GetOwnerPlayer
(),
"M"
,
"IsTyp+IsRac+IsPos"
,
"RI+M,DR,FU"
,
1
)
return
#
e1g1
(
e
:
GetOwnerPlayer
())
>
0
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"
)
end
end
\ No newline at end of file
expansions/script/c20000460.lua
View file @
823659ee
--创导龙裔·研究者
--创导龙裔·研究者
dofile
(
"expansions/script/c20000450.lua"
)
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fuef
.
initial
(
fu_GD
,
_glo
)
local
cm
,
m
=
fusf
.
Initial
(
fu_GD
)
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"
)
--e1
--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
)
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"
)
return
(
r
&
REASON_EFFECT
==
REASON_EFFECT
)
and
fucf
.
Filter
(
re
:
GetHandler
(),
"IsSet+IsTyp"
,
"bfd4,M"
)
end
end
function
cm
.
tg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
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
if
not
te
then
return
false
end
te
=
te
.
e
te
=
te
.
e
local
tg
=
te
:
GetTarget
()
local
tg
=
te
:
GetTarget
()
...
@@ -21,18 +20,19 @@ function cm.op1(e,tp,eg,ep,ev,re,r,rp)
...
@@ -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
if
op
then
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
end
end
end
--e2
--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
)
function
cm
.
con2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
IsPublic
()
and
Duel
.
GetTurnPlayer
()
~=
tp
return
e
:
GetHandler
():
IsPublic
()
and
Duel
.
GetTurnPlayer
()
~=
tp
end
end
function
cm
.
tg2tg1
(
e
,
c
)
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
end
function
cm
.
tg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
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
})
local
g
=
fugf
.
GetFilter
(
tp
,
"G"
,
"IsTyp+CheckActivateEffect+TgChk"
,{
"RI+S"
,{
true
,
true
,
false
},
e
})
e1
.
e
:
Reset
()
e1
.
e
:
Reset
()
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
g
:
IsContains
(
chkc
)
end
if
chkc
then
return
g
:
IsContains
(
chkc
)
end
if
chk
==
0
then
return
#
g
>
0
end
if
chk
==
0
then
return
#
g
>
0
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TARGET
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TARGET
)
g
=
fugf
.
SelectTg
(
tp
,
g
)
g
=
fugf
.
SelectTg
(
tp
,
g
)
local
te
,
ceg
,
cep
,
cev
,
cre
,
cr
,
crp
=
g
:
GetFirst
():
CheckActivateEffect
(
true
,
true
,
true
)
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)
...
@@ -44,7 +44,7 @@ function cm.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
Duel
.
ClearOperationInfo
(
0
)
Duel
.
ClearOperationInfo
(
0
)
end
end
function
cm
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
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
()
local
te
=
e
:
GetLabelObject
()
if
te
then
if
te
then
e
:
SetLabelObject
(
te
:
GetLabelObject
())
e
:
SetLabelObject
(
te
:
GetLabelObject
())
...
...
expansions/script/c20000461.lua
View file @
823659ee
--创导龙裔的咒引
--创导龙裔的咒引
dofile
(
"expansions/script/c20000450.lua"
)
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fuef
.
initial
(
fu_GD
)
local
cm
,
m
=
fusf
.
Initial
(
fu_GD
)
cm
.
e1
=
fuef
.
A
():
CAT
(
"TD+DR"
):
Func
(
"tg1,op1"
)
cm
.
e1
=
fuef
.
A
():
Cat
(
"TD+DR"
):
Func
(
"ReDraw_tg,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
function
cm
.
op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
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
if
ct
==
0
then
return
end
Duel
.
BreakEffect
()
fu_GD
.
DrawReturn
(
tp
,
ct
)
fu_GD
.
DrawReturn
(
tp
,
ct
)
end
end
\ No newline at end of file
expansions/script/c20000462.lua
View file @
823659ee
--创导龙裔·构形者
--创导龙裔·构形者
dofile
(
"expansions/script/c20000450.lua"
)
dofile
(
"expansions/script/c20000450.lua"
)
local
func
=
fugf
.
GetNoP
(
"DG"
,
"IsCode"
,
464
)
local
cm
,
m
=
fusf
.
Initial
(
fu_GD
)
local
pe
=
fuef
.
STO
(
"DR"
):
RAN
(
"H"
):
PRO
(
"DAM"
):
CTL
(
"m"
):
Func
(
"p_con1,N_cos1,N_tg1(%1),N_op1(%1)"
,
func
)
--insert
local
cm
,
m
=
fuef
.
initial
(
fu_GD
,
_glo
,
"public_effect"
,
pe
)
local
e1g1
=
fugf
.
MakeFilter
(
"DG"
,
"IsCode"
,
464
)
cm
.
e1
=
fuef
.
FC
(
"DR"
):
RAN
(
"H"
):
Func
(
"SelfDraw_con,N_op2"
)
local
insert
=
function
(
c
)
--pe
cm
.
public
=
fuef
.
STO
(
c
,
"DR"
):
Ran
(
"H"
):
Pro
(
"DAM"
):
Ctl
(
m
):
Func
(
"Pcos,Ptg(%1),Pop(%1)"
,
e1g1
)
function
cm
.
p_con1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
end
return
(
r
&
REASON_EFFECT
==
REASON_EFFECT
)
and
fucf
.
Filter
(
re
:
GetHandler
(),
"IsSet+IsTyp"
,
"bfd4,M"
)
fusf
.
InsertInitial
(
insert
)
end
--e1
\ No newline at end of file
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"
)
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fuef
.
initial
(
fu_GD
,
nil
,
"AddCode,ReviveLimit"
,
464
)
local
cm
,
m
=
fusf
.
Initial
(
fu_GD
)
cm
.
e1
=
fuef
.
E
(
EFFECT_UPDATE_ATTACK
,
false
):
VAL
(
"val1"
)
fusf
.
AddCode
(
464
)
cm
.
e2
=
fuef
.
E
(
EFFECT_DESTROY_SUBSTITUTE
,
false
):
VAL
(
"val2"
)
fusf
.
ReviveLimit
()
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"
)
-- e1
-- e1
cm
.
e1
=
fuef
.
E
(
EFFECT_UPDATE_ATTACK
,
false
):
Val
(
"val1"
)
function
cm
.
val1
(
e
,
c
)
function
cm
.
val1
(
e
,
c
)
return
math.floor
(
e
:
GetHandler
():
GetAttack
()
/
2
)
return
math.floor
(
e
:
GetHandler
():
GetAttack
()
/
2
)
end
end
-- e2
-- e2
cm
.
e2
=
fuef
.
E
(
EFFECT_DESTROY_SUBSTITUTE
,
false
):
Val
(
"val2"
)
function
cm
.
val2
(
e
,
re
,
r
,
rp
)
function
cm
.
val2
(
e
,
re
,
r
,
rp
)
return
r
&
(
REASON_BATTLE
|
REASON_EFFECT
)
~=
0
return
r
&
(
REASON_BATTLE
|
REASON_EFFECT
)
~=
0
end
end
-- e3
-- e3
cm
.
e3
=
fuef
.
FG
(
"e1"
):
Ran
(
"M"
):
Tran
(
"S"
):
Tg
(
"tg3"
)(
"e2"
)
function
cm
.
tg3
(
e
,
c
)
function
cm
.
tg3
(
e
,
c
)
return
fugf
.
Filter
(
e
:
GetHandler
():
GetEquipGroup
(),
"IsRac"
,
"DR"
)
return
fugf
.
Filter
(
e
:
GetHandler
():
GetEquipGroup
(),
"IsRac"
,
"DR"
)
end
end
-- e4
-- 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
)
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
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
nil
,
1
,
1
-
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
end
end
function
cm
.
op4
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
op4
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
if
not
(
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
))
then
return
end
if
not
(
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
))
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
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
)
fusf
.
Equip
(
e
,
tp
,
ec
,
c
)
end
end
-- e5
-- 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
)
function
cm
.
con5
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
,
rc
=
e
:
GetHandler
(),
re
:
GetHandler
()
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
end
function
cm
.
op5
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
op5
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
NegateActivation
(
ev
)
and
re
:
GetHandler
():
IsRelateToEffect
(
re
)
then
if
Duel
.
NegateActivation
(
ev
)
and
re
:
GetHandler
():
IsRelateToEffect
(
re
)
then
Duel
.
Remove
(
eg
,
POS_FACEUP
,
REASON_EFFECT
)
Duel
.
Remove
(
eg
,
POS_FACEUP
,
REASON_EFFECT
)
end
end
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"
)
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fuef
.
initial
(
fu_GD
,
nil
,
"AddCode"
,
463
)
local
cm
,
m
=
fusf
.
Initial
(
fu_GD
)
cm
.
e1
=
fuef
.
A
():
CAT
(
"REL+SP+EQ"
):
Func
(
"tg1,op1"
)
fusf
.
AddCode
(
463
)
cm
.
e2
=
fuef
.
I
():
CAT
(
"EQ"
):
RAN
(
"G"
):
PRO
(
"TG"
):
Func
(
"bfgcost,tg2,op2"
)
--e1
--e1
function
cm
.
tg1f2
(
c
,
tp
)
cm
.
e1
=
fuef
.
A
():
Cat
(
"REL+SP+EQ"
):
Func
(
"tg1,op1"
)
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
)
function
cm
.
tg1f2
(
c
,
tp
,
rc
,
eg
)
return
fugf
.
Filter
(
eg
,
"CanBeEq+IsLv+Not"
,
{{
tp
,
rc
},
-
c
:
GetLevel
(),
c
},
1
)
end
end
function
cm
.
tg1f
(
rc
,
e
,
tp
,
m
g
)
function
cm
.
tg1f
1
(
rc
,
e
,
tp
,
mg
,
e
g
)
if
not
fucf
.
Filter
(
rc
,
"IsTyp+IsCode+CanSp"
,
"RI+M,463"
,
{
e
,
"RI"
,
tp
}
)
then
return
false
end
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
)
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
end
function
cm
.
tg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
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
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
end
function
cm
.
op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
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
)
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
if
not
rc
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
mg
=
mg
:
Filter
(
Card
.
IsCanBeRitualMaterial
,
rc
,
rc
):
Filter
(
rc
.
mat_filter
or
aux
.
TRUE
,
rc
,
tp
)
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
)
rc
:
SetMaterial
(
mg
)
Duel
.
ReleaseRitualMaterial
(
mg
)
Duel
.
ReleaseRitualMaterial
(
mg
)
Duel
.
BreakEffect
()
Duel
.
BreakEffect
()
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
()
rc
:
CompleteProcedure
()
local
mc
=
mg
:
GetFirst
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
mc
=
fugf
.
Select
(
tp
,
"HG"
,
"IsTyp+IsRac+CanEq+IsLv"
,
{
"RI+M,DR"
,
tp
,
-
mc
:
GetLevel
()}):
GetFirst
()
eg
=
fugf
.
Select
(
tp
,
eg
,
"CanBeEq+IsLv"
,
{{
tp
,
rc
},
-
mg
:
GetFirst
():
GetLevel
()}):
GetFirst
()
fusf
.
Equip
(
e
,
tp
,
mc
,
rc
)
fusf
.
Equip
(
e
,
tp
,
eg
,
rc
)
local
selfdescon
=
function
(
e
)
return
e
:
GetHandler
():
GetEquipCount
()
==
0
end
fuef
.
S
(
e
,
EFFECT_SELF_DESTROY
,
rc
):
Pro
(
"IG+SR"
):
Ran
(
"M"
):
Con
(
cm
.
op1con1
):
Res
(
"STD"
)
fuef
.
S
(
e
,
EFFECT_SELF_DESTROY
,
rc
):
PRO
(
"SR"
):
RAN
(
"M"
):
CON
(
selfdescon
):
RES
(
"STD"
)
end
function
cm
.
op1con1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetEquipCount
()
==
0
end
end
--e2
--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
)
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
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
)
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
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
g
,
1
,
0
,
0
)
end
end
function
cm
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
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
)
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
.
Select
(
tp
,
e2g2
(
tp
),
"CanEq"
,
{
ec
,
tp
}):
GetFirst
()
local
c
=
fugf
.
GetFilter
(
tp
,
"M"
,
"IsPos+IsCode+CanEq"
,
"FU,463,%1"
,
nil
,
tp
):
GetFirst
()
fusf
.
Equip
(
e
,
tp
,
ec
,
c
)
fusf
.
Equip
(
e
,
tp
,
ec
,
c
)
end
end
\ No newline at end of file
expansions/script/c20000465.lua
View file @
823659ee
--创导龙裔的再构
--创导龙裔的再构
dofile
(
"expansions/script/c20000450.lua"
)
dofile
(
"expansions/script/c20000450.lua"
)
local
cm
,
m
=
fuef
.
initial
(
fu_GD
)
local
cm
,
m
=
fusf
.
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"
)
--e1
--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
)
Duel
.
SetSelectedCard
(
g
)
return
g
:
CheckWithSumGreater
(
Card
.
GetRitualLevel
,
lv
,
c
)
and
Duel
.
GetMZoneCount
(
tp
,
nil
,
tp
)
>
0
return
g
:
CheckWithSumGreater
(
Card
.
GetRitualLevel
,
lv
,
c
)
and
(
c
.
mat_group_check
or
aux
.
TRUE
)(
g
,
tp
)
and
(
not
c
.
mat_group_check
or
c
.
mat_group_check
(
g
,
tp
))
end
end
function
cm
.
tg1f
(
rc
,
e
,
tp
,
mg
)
function
cm
.
tg1f
1
(
rc
,
e
,
tp
,
mg
)
if
not
fucf
.
Filter
(
rc
,
"IsTyp+IsRac+IsPLoc+CanSp"
,
"RI+M,DR,M"
,{
e
,
"RI"
,
tp
}
)
then
return
false
end
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
)
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
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
)
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
e1f1
(
eg
,
1
,
e
,
tp
,
e1g1
(
tp
))
end
if
chk
==
0
then
return
fugf
.
Filter
(
eg
,
cm
.
tg1f
,{
e
,
tp
,
mg
},
1
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
nil
,
1
,
tp
,
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
nil
,
1
,
tp
,
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_GRAVE
)
end
end
function
cm
.
op1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
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
mg
=
e1g1
(
tp
)
local
rc
=
fugf
.
Filter
(
eg
,
aux
.
NecroValleyFilter
(
cm
.
tg1f
),{
e
,
tp
,
mg
})
local
rg
=
e1f1
(
eg
,
nil
,
e
,
tp
,
mg
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
rc
,
sg
if
#
rc
>
1
then
rc
=
fugf
.
Select
(
tp
,
rc
)
end
repeat
rc
=
rc
:
GetFirst
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
if
not
rc
then
return
end
rc
=
fugf
.
Select
(
tp
,
rg
,
"GChk"
):
GetFirst
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
if
not
rc
then
return
end
mg
=
mg
:
Filter
(
rc
.
mat_filter
or
aux
.
TRUE
,
rc
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
mg
=
mg
:
SelectSubGroup
(
tp
,
cm
.
tg1f1
,
false
,
1
,
#
mg
,
tp
,
rc
,
rc
:
GetLevel
())
sg
=
mg
:
Filter
(
rc
.
mat_filter
or
aux
.
TRUE
,
rc
,
tp
)
rc
:
SetMaterial
(
mg
)
local
lv
=
rc
:
GetLevel
()
Duel
.
ReleaseRitualMaterial
(
mg
)
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
.
BreakEffect
()
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
()
rc
:
CompleteProcedure
()
fu_GD
.
Hint
(
tp
,
m
,
sg
,
rc
)
end
end
--e2
--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
)
function
cm
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
local
ct
=
Duel
.
SendtoDeck
(
fugf
.
Select
(
tp
,
"H"
,
"AbleTo"
,
"D"
,
1
,
99
),
nil
,
2
,
REASON_EFFECT
)
local
ct
=
Duel
.
SendtoDeck
(
fugf
.
Select
(
tp
,
"H"
,
"AbleTo"
,
"D"
,
1
,
99
),
nil
,
2
,
REASON_EFFECT
)
if
ct
==
0
then
return
end
if
ct
==
0
then
return
end
fu_GD
.
DrawReturn
(
tp
,
ct
)
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")
...
@@ -13,10 +13,7 @@ dofile("expansions/script/c20099998.lua")
function
fugf
.
MakeGroupFilter
(
f
,
v
)
function
fugf
.
MakeGroupFilter
(
f
,
v
)
return
function
(
g
,
n
,
...
)
return
function
(
g
,
n
,
...
)
fusf
.
CheckArgType
(
"MakeGroupFilter"
,
1
,
g
,
"Group"
)
fusf
.
CheckArgType
(
"MakeGroupFilter"
,
1
,
g
,
"Group"
)
local
ok
,
res
=
pcall
(
fusf
.
CheckArgType
,
"MakeGroupFilter"
,
2
,
n
,
"nil/number"
)
fusf
.
CheckArgType
(
"MakeGroupFilter"
,
2
,
n
,
"nil/number"
)
if
not
ok
then
error
(
res
,
2
)
end
g
=
g
:
Filter
(
fucf
.
MakeCardFilter
(
f
,
v
,
...
),
nil
)
g
=
g
:
Filter
(
fucf
.
MakeCardFilter
(
f
,
v
,
...
),
nil
)
if
not
n
then
return
g
end
if
not
n
then
return
g
end
return
n
>
0
and
#
g
>=
n
or
#
g
<=
-
n
return
n
>
0
and
#
g
>=
n
or
#
g
<=
-
n
...
@@ -163,7 +160,7 @@ function fucf.MakeCardFilter(func, args, ...)
...
@@ -163,7 +160,7 @@ function fucf.MakeCardFilter(func, args, ...)
}
}
local
temp
=
Cal
[
func
]
local
temp
=
Cal
[
func
]
if
temp
==
nil
then
if
temp
==
nil
then
error
(
"invalid operators : "
..
func
)
error
(
string.format
(
"invalid operators : '%s'"
,
func
)
)
end
end
stack
[
#
stack
+
1
]
=
temp
stack
[
#
stack
+
1
]
=
temp
else
else
...
@@ -174,7 +171,7 @@ function fucf.MakeCardFilter(func, args, ...)
...
@@ -174,7 +171,7 @@ function fucf.MakeCardFilter(func, args, ...)
local
arg
=
arg_table
[
arg_ind
]
local
arg
=
arg_table
[
arg_ind
]
arg_ind
=
arg_ind
+
1
arg_ind
=
arg_ind
+
1
if
type
(
arg
)
~=
"table"
then
arg
=
{
arg
,
n
=
1
}
end
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
end
end
return
table.remove
(
stack
)
return
table.remove
(
stack
)
...
@@ -368,7 +365,7 @@ function fucf.CanBeEq(c, tp, ec, chk_loc)
...
@@ -368,7 +365,7 @@ function fucf.CanBeEq(c, tp, ec, chk_loc)
elseif
c
:
IsType
(
TYPE_EQUIP
)
then
elseif
c
:
IsType
(
TYPE_EQUIP
)
then
return
c
:
CheckEquipTarget
(
ec
)
return
c
:
CheckEquipTarget
(
ec
)
end
end
error
(
"CanBeEq : mismatch card type"
,
2
)
return
false
end
end
--- 检查卡片 c 的种类为 cod 的标识效果的数量比较 n 的结果
--- 检查卡片 c 的种类为 cod 的标识效果的数量比较 n 的结果
-- @param c Card 要检查的卡片
-- @param c Card 要检查的卡片
...
...
expansions/script/c20099998.lua
View file @
823659ee
...
@@ -883,22 +883,22 @@ function fusf.Equip(e, tp, eg, c)
...
@@ -883,22 +883,22 @@ function fusf.Equip(e, tp, eg, c)
eg
=
fusf
.
ToGroup
(
eg
)
eg
=
fusf
.
ToGroup
(
eg
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
<
#
eg
then
return
false
end
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
if
c
:
IsFacedown
()
then
return
false
end
local
limit
=
function
(
e
,
c
)
return
c
==
e
:
GetLabelObject
()
end
local
limit
=
function
(
e
,
c
)
return
c
==
e
:
GetLabelObject
()
end
if
typ
==
"Card"
then
if
typ
==
"Card"
then
local
ec
=
eg
:
GetFirst
()
local
ec
=
eg
:
GetFirst
()
if
not
Duel
.
Equip
(
tp
,
ec
,
c
)
then
return
false
end
if
not
Duel
.
Equip
(
tp
,
ec
,
c
)
then
return
false
end
if
ec
:
IsType
(
TYPE_MONSTER
)
then
if
fucf
.
IsOTyp
(
ec
,
"M"
)
then
fuef
.
S
(
e
,
EFFECT_EQUIP_LIMIT
,
ec
):
P
RO
(
"CD"
):
VAL
(
limit
):
OBJ
(
c
):
RES
(
"STD"
)
fuef
.
S
(
e
,
EFFECT_EQUIP_LIMIT
,
ec
):
P
ro
(
"CD"
):
Val
(
limit
):
Obj
(
c
):
Res
(
"STD"
)
end
end
return
true
return
true
end
end
for
ec
in
aux
.
Next
(
eg
)
do
for
ec
in
aux
.
Next
(
eg
)
do
Duel
.
Equip
(
tp
,
ec
,
c
,
true
,
true
)
Duel
.
Equip
(
tp
,
ec
,
c
,
true
,
true
)
if
ec
:
IsType
(
TYPE_MONSTER
)
then
if
fucf
.
IsOTyp
(
ec
,
"M"
)
then
fuef
.
S
(
e
,
EFFECT_EQUIP_LIMIT
,
ec
):
P
RO
(
"CD"
):
VAL
(
limit
):
OBJ
(
c
):
RES
(
"STD"
)
fuef
.
S
(
e
,
EFFECT_EQUIP_LIMIT
,
ec
):
P
ro
(
"CD"
):
Val
(
limit
):
Obj
(
c
):
Res
(
"STD"
)
end
end
end
end
Duel
.
EquipComplete
()
Duel
.
EquipComplete
()
...
...
expansions/script/c66620025.lua
View file @
823659ee
...
@@ -121,7 +121,7 @@ end
...
@@ -121,7 +121,7 @@ end
function
s
.
fsptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
s
.
fsptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
if
chk
==
0
then
local
chkf
=
tp
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
)
local
res
=
Duel
.
IsExistingMatchingCard
(
s
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
,
mg1
,
nil
,
chkf
)
if
not
res
then
if
not
res
then
local
ce
=
Duel
.
GetChainMaterial
(
tp
)
local
ce
=
Duel
.
GetChainMaterial
(
tp
)
...
@@ -150,31 +150,20 @@ function s.fspop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -150,31 +150,20 @@ function s.fspop(e,tp,eg,ep,ev,re,r,rp)
local
mf
=
ce
:
GetValue
()
local
mf
=
ce
:
GetValue
()
sg2
=
Duel
.
GetMatchingGroup
(
s
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
nil
,
e
,
tp
,
mg2
,
mf
,
chkf
)
sg2
=
Duel
.
GetMatchingGroup
(
s
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
nil
,
e
,
tp
,
mg2
,
mf
,
chkf
)
end
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
()
local
sg
=
sg1
:
Clone
()
if
sg2
then
sg
:
Merge
(
sg2
)
end
if
sg2
then
sg
:
Merge
(
sg2
)
end
::
cancel
::
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
tg
=
sg
:
Select
(
tp
,
1
,
1
,
nil
)
local
tg
=
sg
:
Select
(
tp
,
1
,
1
,
nil
)
local
tc
=
tg
:
GetFirst
()
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
)
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
)
tc
:
SetMaterial
(
mat1
)
Duel
.
SendtoGrave
(
mat1
,
REASON_EFFECT
+
REASON_MATERIAL
+
REASON_FUSION
)
Duel
.
SendtoGrave
(
mat1
,
REASON_EFFECT
+
REASON_MATERIAL
+
REASON_FUSION
)
Duel
.
BreakEffect
()
Duel
.
BreakEffect
()
Duel
.
SpecialSummon
(
tc
,
SUMMON_TYPE_FUSION
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
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
)
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
()
local
fop
=
ce
:
GetOperation
()
fop
(
ce
,
e
,
tp
,
tc
,
mat2
)
fop
(
ce
,
e
,
tp
,
tc
,
mat2
)
end
end
...
...
expansions/script/c66620225.lua
View file @
823659ee
...
@@ -79,12 +79,12 @@ function s.spcon(e,tp,eg,ep,ev,re,r,rp)
...
@@ -79,12 +79,12 @@ function s.spcon(e,tp,eg,ep,ev,re,r,rp)
return
rp
==
1
-
tp
return
rp
==
1
-
tp
end
end
function
s
.
filter0
(
c
,
e
)
function
s
.
filter0
(
c
)
return
c
:
IsLocation
(
LOCATION_MZONE
+
LOCATION_GRAVE
)
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
(
)
end
end
function
s
.
filter1
(
c
,
e
)
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
end
function
s
.
filter2
(
c
,
e
,
tp
,
m
,
f
,
chkf
)
function
s
.
filter2
(
c
,
e
,
tp
,
m
,
f
,
chkf
)
...
@@ -95,10 +95,8 @@ end
...
@@ -95,10 +95,8 @@ end
function
s
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
s
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
if
chk
==
0
then
local
chkf
=
tp
local
chkf
=
tp
local
mg1
=
Duel
.
GetMatchingGroup
(
s
.
filter0
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
,
0
,
nil
,
e
)
local
mg
=
Duel
.
GetMatchingGroup
(
s
.
filter0
,
tp
,
LOCATION_ONFIELD
+
LOCATION_GRAVE
+
LOCATION_REMOVED
,
0
,
nil
)
local
mg2
=
Duel
.
GetMatchingGroup
(
aux
.
NecroValleyFilter
(
s
.
filter1
),
tp
,
LOCATION_REMOVED
,
0
,
nil
,
e
)
local
res
=
Duel
.
IsExistingMatchingCard
(
s
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
,
mg
,
nil
,
chkf
)
mg1
:
Merge
(
mg2
)
local
res
=
Duel
.
IsExistingMatchingCard
(
s
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
,
mg1
,
nil
,
chkf
)
if
not
res
then
if
not
res
then
local
ce
=
Duel
.
GetChainMaterial
(
tp
)
local
ce
=
Duel
.
GetChainMaterial
(
tp
)
if
ce
~=
nil
then
if
ce
~=
nil
then
...
@@ -111,16 +109,13 @@ function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
...
@@ -111,16 +109,13 @@ function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
return
res
return
res
end
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_EXTRA
)
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
.
SetOperationInfo
(
0
,
CATEGORY_TODECK
,
nil
,
1
,
tp
,
LOCATION_ONFIELD
+
LOCATION_GRAVE
+
LOCATION_REMOVED
)
Duel
.
Hint
(
HINT_OPSELECTED
,
1
-
tp
,
e
:
GetDescription
())
end
end
function
s
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
s
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
chkf
=
tp
local
chkf
=
tp
local
mg1
=
Duel
.
GetFusionMaterial
(
tp
):
Filter
(
s
.
filter0
,
nil
,
e
)
local
mg
=
Duel
.
GetMatchingGroup
(
aux
.
NecroValleyFilter
(
s
.
filter1
),
tp
,
LOCATION_ONFIELD
+
LOCATION_GRAVE
+
LOCATION_REMOVED
,
0
,
nil
,
e
)
local
mg2
=
Duel
.
GetMatchingGroup
(
aux
.
NecroValleyFilter
(
s
.
filter1
),
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_REMOVED
,
0
,
nil
,
e
)
local
sg1
=
Duel
.
GetMatchingGroup
(
s
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
nil
,
e
,
tp
,
mg
,
nil
,
chkf
)
mg1
:
Merge
(
mg2
)
local
sg1
=
Duel
.
GetMatchingGroup
(
s
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
nil
,
e
,
tp
,
mg1
,
nil
,
chkf
)
local
mg3
=
nil
local
mg3
=
nil
local
sg2
=
nil
local
sg2
=
nil
local
ce
=
Duel
.
GetChainMaterial
(
tp
)
local
ce
=
Duel
.
GetChainMaterial
(
tp
)
...
@@ -133,13 +128,11 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -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
if
sg1
:
GetCount
()
>
0
or
(
sg2
~=
nil
and
sg2
:
GetCount
()
>
0
)
then
local
sg
=
sg1
:
Clone
()
local
sg
=
sg1
:
Clone
()
if
sg2
then
sg
:
Merge
(
sg2
)
end
if
sg2
then
sg
:
Merge
(
sg2
)
end
::
cancel
::
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
tg
=
sg
:
Select
(
tp
,
1
,
1
,
nil
)
local
tg
=
sg
:
Select
(
tp
,
1
,
1
,
nil
)
local
tc
=
tg
:
GetFirst
()
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
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
,
mg1
,
nil
,
chkf
)
local
mat
=
Duel
.
SelectFusionMaterial
(
tp
,
tc
,
mg
,
nil
,
chkf
)
if
#
mat
==
0
then
goto
cancel
end
tc
:
SetMaterial
(
mat
)
tc
:
SetMaterial
(
mat
)
if
mat
:
IsExists
(
Card
.
IsFacedown
,
1
,
nil
)
then
if
mat
:
IsExists
(
Card
.
IsFacedown
,
1
,
nil
)
then
local
cg
=
mat
:
Filter
(
Card
.
IsFacedown
,
nil
)
local
cg
=
mat
:
Filter
(
Card
.
IsFacedown
,
nil
)
...
@@ -152,9 +145,8 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -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
.
SendtoDeck
(
mat
,
nil
,
SEQ_DECKSHUFFLE
,
REASON_EFFECT
+
REASON_MATERIAL
+
REASON_FUSION
)
Duel
.
BreakEffect
()
Duel
.
BreakEffect
()
Duel
.
SpecialSummon
(
tc
,
SUMMON_TYPE_FUSION
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
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
)
local
mat2
=
Duel
.
SelectFusionMaterial
(
tp
,
tc
,
mg3
,
nil
,
chkf
)
if
#
mat2
==
0
then
goto
cancel
end
local
fop
=
ce
:
GetOperation
()
local
fop
=
ce
:
GetOperation
()
fop
(
ce
,
e
,
tp
,
tc
,
mat2
)
fop
(
ce
,
e
,
tp
,
tc
,
mat2
)
end
end
...
@@ -163,5 +155,5 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -163,5 +155,5 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
end
end
function
s
.
cfilter
(
c
)
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
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