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
c9ada5d7
Commit
c9ada5d7
authored
May 31, 2025
by
POLYMER
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
66c61037
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
26 additions
and
69 deletions
+26
-69
expansions/script/c11180019.lua
expansions/script/c11180019.lua
+20
-65
expansions/script/c75640050.lua
expansions/script/c75640050.lua
+2
-3
expansions/script/c9910438.lua
expansions/script/c9910438.lua
+4
-1
No files found.
expansions/script/c11180019.lua
View file @
c9ada5d7
...
...
@@ -11,8 +11,9 @@ function s.initial_effect(c)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
id
,
0
))
e1
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_TOGRAVE
+
CATEGORY_REMOVE
)
e1
:
SetType
(
EFFECT_TYPE_
ACTIVATE
)
e1
:
SetType
(
EFFECT_TYPE_
QUICK_O
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetRange
(
LOCATION_SZONE
)
e1
:
SetCountLimit
(
1
,
id
)
e1
:
SetCost
(
s
.
descost
)
e1
:
SetTarget
(
s
.
destg
)
...
...
@@ -47,61 +48,22 @@ function s.initial_effect(c)
end
-- ①: Cost function
function
s
.
costfilter
(
c
)
return
(
c
:
IsLocation
(
LOCATION_HAND
)
or
c
:
IsFaceup
())
and
(
c
:
IsAbleToGrave
()
or
c
:
IsAbleToRemove
())
function
s
.
costfilter
(
c
,
types
)
return
(
c
:
IsAbleToGraveAsCost
()
or
c
:
IsAbleToRemoveAsCost
())
and
(
c
:
GetType
()
&
types
)
~=
0
end
function
s
.
descost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsFaceup
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
nil
)
local
types
=
{}
local
types
=
0
for
tc
in
aux
.
Next
(
g
)
do
local
ttype
=
tc
:
GetType
()
&
(
TYPE_MONSTER
+
TYPE_SPELL
+
TYPE_TRAP
)
if
ttype
>
0
and
not
types
[
ttype
]
then
types
[
ttype
]
=
true
end
types
=
types
|
(
tc
:
GetType
()
&
(
TYPE_MONSTER
+
TYPE_SPELL
+
TYPE_TRAP
))
end
-- 2. 检测手卡/场上是否有可送去墓地/除外的同类型卡
if
chk
==
0
then
for
ttype
,
_
in
pairs
(
types
)
do
local
sg
=
Duel
.
GetMatchingGroup
(
s
.
costfilter
,
tp
,
LOCATION_HAND
+
LOCATION_ONFIELD
,
0
,
e
:
GetHandler
(),
ttype
)
if
#
sg
>
0
then
return
true
end
end
return
false
end
-- 选择操作
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SELECT
)
local
types_list
=
{}
for
ttype
,
_
in
pairs
(
types
)
do
table.insert
(
types_list
,
ttype
)
end
table.sort
(
types_list
)
-- 让玩家选择要处理的卡类型
local
ttype
=
nil
if
#
types_list
>
1
then
local
opts
=
{}
for
i
,
v
in
ipairs
(
types_list
)
do
if
v
&
TYPE_MONSTER
>
0
then
table.insert
(
opts
,
aux
.
Stringid
(
id
,
5
))
-- 怪兽
elseif
v
&
TYPE_SPELL
>
0
then
table.insert
(
opts
,
aux
.
Stringid
(
id
,
6
))
-- 魔法
elseif
v
&
TYPE_TRAP
>
0
then
table.insert
(
opts
,
aux
.
Stringid
(
id
,
7
))
-- 陷阱
end
end
local
opt
=
Duel
.
SelectOption
(
tp
,
table.unpack
(
opts
))
ttype
=
types_list
[
opt
+
1
]
else
ttype
=
types_list
[
1
]
end
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
s
.
costfilter
,
tp
,
LOCATION_HAND
+
LOCATION_ONFIELD
,
0
,
1
,
e
:
GetHandler
(),
types
)
end
-- 选择要送去墓地/除外的卡
local
sg
=
Duel
.
SelectMatchingCard
(
tp
,
s
.
costfilter
,
tp
,
LOCATION_HAND
+
LOCATION_ONFIELD
,
0
,
1
,
1
,
e
:
GetHandler
(),
t
type
)
local
sg
=
Duel
.
SelectMatchingCard
(
tp
,
s
.
costfilter
,
tp
,
LOCATION_HAND
+
LOCATION_ONFIELD
,
0
,
1
,
1
,
e
:
GetHandler
(),
t
ypes
)
local
tc
=
sg
:
GetFirst
()
local
opt
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
id
,
3
),
aux
.
Stringid
(
id
,
4
))
local
opt
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
11180016
,
3
),
aux
.
Stringid
(
11180016
,
4
))
if
opt
==
0
then
Duel
.
SendtoGrave
(
tc
,
REASON_COST
)
e
:
SetLabel
(
tc
:
GetType
()
&
(
TYPE_MONSTER
+
TYPE_SPELL
+
TYPE_TRAP
))
...
...
@@ -111,37 +73,30 @@ function s.descost(e,tp,eg,ep,ev,re,r,rp,chk)
end
end
function
s
.
costfilter
(
c
,
ttype
)
return
c
:
IsAbleToGrave
()
or
c
:
IsAbleToRemove
()
and
c
:
IsType
(
ttype
)
and
(
c
:
IsLocation
(
LOCATION_HAND
)
or
c
:
IsFaceup
())
end
-- ①: Target function
function
s
.
desfilter
(
c
,
ty
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
ty
)
and
c
:
IsCanBeEffectTarget
()
return
c
:
IsFaceup
()
and
c
:
IsType
(
ty
)
end
function
s
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
local
ty
=
e
:
GetLabel
()
if
chkc
then
return
chkc
:
IsOnField
()
and
s
.
desfilter
(
chkc
,
ty
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
s
.
desfilter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
1
,
nil
,
ty
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DESTROY
)
local
g
=
Duel
.
SelectTarget
(
tp
,
s
.
desfilter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
1
,
1
,
nil
,
ty
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
g
,
1
,
0
,
0
)
if
chk
==
0
then
return
true
end
local
g
=
Duel
.
GetMatchingGroup
(
s
.
desfilter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
nil
,
ty
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
g
,
#
g
,
0
,
0
)
end
-- ①: Operation
function
s
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
and
tc
:
IsRelateToEffect
(
e
)
then
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
local
ty
=
e
:
GetLabel
()
local
g
=
Duel
.
GetMatchingGroup
(
s
.
desfilter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
nil
,
ty
)
if
#
g
>
0
then
Duel
.
Destroy
(
g
,
REASON_EFFECT
)
end
end
-- ②: Condition for being sent to GY
function
s
.
sentfilter
(
c
)
return
c
:
IsSetCard
(
0x146
)
or
c
:
IsSetCard
(
0x147
)
-- "Dragonborn" or "Phantom Sorrow"
end
function
s
.
gycon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
re
and
...
...
expansions/script/c75640050.lua
View file @
c9ada5d7
...
...
@@ -51,8 +51,7 @@ end
function
s
.
rmtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
local
g
=
Duel
.
GetDecktopGroup
(
tp
,
2
)
local
tc
=
g
:
GetFirst
()
return
tc
and
tc
:
IsAbleToRemove
()
return
g
:
FilterCount
(
Card
.
IsAbleToRemove
,
nil
)
==
2
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
nil
,
2
,
tp
,
LOCATION_DECK
)
local
lab
=
0
...
...
@@ -64,7 +63,7 @@ function s.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
end
function
s
.
rmop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
g
=
Duel
.
GetDecktopGroup
(
tp
,
1
)
local
g
=
Duel
.
GetDecktopGroup
(
tp
,
2
)
Duel
.
DisableShuffleCheck
()
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_EFFECT
)
if
e
:
GetLabel
()
==
1
and
Duel
.
IsExistingMatchingCard
(
Card
.
IsAbleToGrave
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
1
,
nil
)
then
...
...
expansions/script/c9910438.lua
View file @
c9ada5d7
...
...
@@ -12,8 +12,11 @@ function c9910438.initial_effect(c)
e1
:
SetOperation
(
c9910438
.
activate
)
c
:
RegisterEffect
(
e1
)
end
function
c9910438
.
cfilter
(
c
,
e
)
return
c
:
IsFaceup
()
and
c
:
IsCanBeEffectTarget
(
e
)
end
function
c9910438
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsFaceup
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
g
=
Duel
.
GetMatchingGroup
(
c9910438
.
cfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
,
e
)
if
chkc
then
return
false
end
if
chk
==
0
then
return
g
:
CheckSubGroup
(
aux
.
drccheck
,
2
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_FACEUP
)
...
...
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