Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-scripts
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
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
MyCard
ygopro-scripts
Commits
0d0a3bd9
Commit
0d0a3bd9
authored
Oct 09, 2016
by
VanillaSalt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
4f52e1df
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
73 additions
and
121 deletions
+73
-121
c67030233.lua
c67030233.lua
+12
-30
c7841112.lua
c7841112.lua
+12
-30
c93157004.lua
c93157004.lua
+28
-33
c97489701.lua
c97489701.lua
+21
-28
No files found.
c67030233.lua
View file @
0d0a3bd9
...
@@ -57,27 +57,14 @@ function c67030233.matfilter(c,syncard)
...
@@ -57,27 +57,14 @@ function c67030233.matfilter(c,syncard)
return
c
:
IsFaceup
()
and
c
:
IsCanBeSynchroMaterial
(
syncard
)
return
c
:
IsFaceup
()
and
c
:
IsCanBeSynchroMaterial
(
syncard
)
end
end
function
c67030233
.
synfilter1
(
c
,
syncard
,
lv
,
g
)
function
c67030233
.
synfilter1
(
c
,
syncard
,
lv
,
g
)
if
not
c
:
IsCode
(
21159309
)
then
return
false
end
return
c
:
IsCode
(
21159309
)
and
g
:
IsExists
(
c67030233
.
synfilter2
,
1
,
c
,
syncard
,
lv
,
g
,
c
)
local
tlv
=
c
:
GetSynchroLevel
(
syncard
)
if
lv
-
tlv
<=
0
then
return
false
end
local
t
=
false
if
c
:
IsType
(
TYPE_TUNER
)
then
t
=
true
end
local
wg
=
g
:
Clone
()
wg
:
RemoveCard
(
c
)
return
wg
:
IsExists
(
c67030233
.
synfilter2
,
1
,
nil
,
syncard
,
lv
-
tlv
,
wg
,
t
)
end
function
c67030233
.
synfilter2
(
c
,
syncard
,
lv
,
g
,
tuner
)
if
not
c
:
IsCode
(
70902743
)
then
return
false
end
local
tlv
=
c
:
GetSynchroLevel
(
syncard
)
if
lv
-
tlv
<=
0
then
return
false
end
if
not
tuner
and
not
c
:
IsType
(
TYPE_TUNER
)
then
return
false
end
return
g
:
IsExists
(
c67030233
.
synfilter3
,
1
,
c
,
syncard
,
lv
-
tlv
)
end
end
function
c67030233
.
synfilter3
(
c
,
syncard
,
lv
)
function
c67030233
.
synfilter2
(
c
,
syncard
,
lv
,
g
,
mc
)
local
mlv
=
c
:
GetSynchroLevel
(
syncard
)
if
not
c
:
IsCode
(
70902743
)
then
return
false
end
local
lv1
=
bit
.
band
(
mlv
,
0xffff
)
if
c
:
IsType
(
TYPE_TUNER
)
==
mc
:
IsType
(
TYPE_TUNER
)
then
return
false
end
local
lv2
=
bit
.
rshift
(
mlv
,
16
)
local
mg
=
g
:
Filter
(
Card
.
IsNotTuner
,
nil
)
return
c
:
IsNotTuner
()
and
(
lv1
==
lv
or
lv2
==
lv
)
Duel
.
SetSelectedCard
(
Group
.
FromCards
(
c
,
mc
))
return
mg
:
CheckWithSumEqual
(
Card
.
GetSynchroLevel
,
lv
,
1
,
1
,
syncard
)
end
end
function
c67030233
.
syncon
(
e
,
c
,
tuner
)
function
c67030233
.
syncon
(
e
,
c
,
tuner
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
...
@@ -98,18 +85,13 @@ function c67030233.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner)
...
@@ -98,18 +85,13 @@ function c67030233.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner)
m1
=
t1
:
GetFirst
()
m1
=
t1
:
GetFirst
()
g
:
AddCard
(
m1
)
g
:
AddCard
(
m1
)
end
end
lv
=
lv
-
m1
:
GetSynchroLevel
(
c
)
local
t
=
false
if
m1
:
IsType
(
TYPE_TUNER
)
then
t
=
true
end
mg
:
RemoveCard
(
m1
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
local
t2
=
mg
:
FilterSelect
(
tp
,
c67030233
.
synfilter2
,
1
,
1
,
nil
,
c
,
lv
,
mg
,
t
)
local
t2
=
mg
:
FilterSelect
(
tp
,
c67030233
.
synfilter2
,
1
,
1
,
m1
,
c
,
lv
,
mg
,
m1
)
local
m2
=
t2
:
GetFirst
()
g
:
Merge
(
t2
)
g
:
AddCard
(
m2
)
local
mg2
=
mg
:
Filter
(
Card
.
IsNotTuner
,
nil
)
lv
=
lv
-
m2
:
GetSynchroLevel
(
c
)
Duel
.
SetSelectedCard
(
g
)
mg
:
RemoveCard
(
m2
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
local
t3
=
mg
:
FilterSelect
(
tp
,
c67030233
.
synfilter3
,
1
,
1
,
nil
,
c
,
lv
)
local
t3
=
mg
2
:
SelectWithSumEqual
(
tp
,
Card
.
GetSynchroLevel
,
lv
,
1
,
1
,
c
)
g
:
Merge
(
t3
)
g
:
Merge
(
t3
)
c
:
SetMaterial
(
g
)
c
:
SetMaterial
(
g
)
Duel
.
SendtoGrave
(
g
,
REASON_MATERIAL
+
REASON_SYNCHRO
)
Duel
.
SendtoGrave
(
g
,
REASON_MATERIAL
+
REASON_SYNCHRO
)
...
...
c7841112.lua
View file @
0d0a3bd9
...
@@ -59,27 +59,14 @@ function c7841112.matfilter(c,syncard)
...
@@ -59,27 +59,14 @@ function c7841112.matfilter(c,syncard)
return
c
:
IsFaceup
()
and
c
:
IsCanBeSynchroMaterial
(
syncard
)
return
c
:
IsFaceup
()
and
c
:
IsCanBeSynchroMaterial
(
syncard
)
end
end
function
c7841112
.
synfilter1
(
c
,
syncard
,
lv
,
g
)
function
c7841112
.
synfilter1
(
c
,
syncard
,
lv
,
g
)
if
not
c
:
IsCode
(
21159309
)
then
return
false
end
return
c
:
IsCode
(
21159309
)
and
g
:
IsExists
(
c7841112
.
synfilter2
,
1
,
c
,
syncard
,
lv
,
g
,
c
)
local
tlv
=
c
:
GetSynchroLevel
(
syncard
)
if
lv
-
tlv
<=
0
then
return
false
end
local
t
=
false
if
c
:
IsType
(
TYPE_TUNER
)
then
t
=
true
end
local
wg
=
g
:
Clone
()
wg
:
RemoveCard
(
c
)
return
wg
:
IsExists
(
c7841112
.
synfilter2
,
1
,
nil
,
syncard
,
lv
-
tlv
,
wg
,
t
)
end
function
c7841112
.
synfilter2
(
c
,
syncard
,
lv
,
g
,
tuner
)
if
not
c
:
IsCode
(
44508094
)
then
return
false
end
local
tlv
=
c
:
GetSynchroLevel
(
syncard
)
if
lv
-
tlv
<=
0
then
return
false
end
if
not
tuner
and
not
c
:
IsType
(
TYPE_TUNER
)
then
return
false
end
return
g
:
IsExists
(
c7841112
.
synfilter3
,
1
,
c
,
syncard
,
lv
-
tlv
)
end
end
function
c7841112
.
synfilter3
(
c
,
syncard
,
lv
)
function
c7841112
.
synfilter2
(
c
,
syncard
,
lv
,
g
,
mc
)
local
mlv
=
c
:
GetSynchroLevel
(
syncard
)
if
not
c
:
IsCode
(
44508094
)
then
return
false
end
local
lv1
=
bit
.
band
(
mlv
,
0xffff
)
if
c
:
IsType
(
TYPE_TUNER
)
==
mc
:
IsType
(
TYPE_TUNER
)
then
return
false
end
local
lv2
=
bit
.
rshift
(
mlv
,
16
)
local
mg
=
g
:
Filter
(
Card
.
IsNotTuner
,
nil
)
return
c
:
IsNotTuner
()
and
(
lv1
==
lv
or
lv2
==
lv
)
Duel
.
SetSelectedCard
(
Group
.
FromCards
(
c
,
mc
))
return
mg
:
CheckWithSumEqual
(
Card
.
GetSynchroLevel
,
lv
,
1
,
1
,
syncard
)
end
end
function
c7841112
.
syncon
(
e
,
c
,
tuner
)
function
c7841112
.
syncon
(
e
,
c
,
tuner
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
...
@@ -100,18 +87,13 @@ function c7841112.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner)
...
@@ -100,18 +87,13 @@ function c7841112.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner)
m1
=
t1
:
GetFirst
()
m1
=
t1
:
GetFirst
()
g
:
AddCard
(
m1
)
g
:
AddCard
(
m1
)
end
end
lv
=
lv
-
m1
:
GetSynchroLevel
(
c
)
local
t
=
false
if
m1
:
IsType
(
TYPE_TUNER
)
then
t
=
true
end
mg
:
RemoveCard
(
m1
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
local
t2
=
mg
:
FilterSelect
(
tp
,
c7841112
.
synfilter2
,
1
,
1
,
nil
,
c
,
lv
,
mg
,
t
)
local
t2
=
mg
:
FilterSelect
(
tp
,
c7841112
.
synfilter2
,
1
,
1
,
m1
,
c
,
lv
,
mg
,
m1
)
local
m2
=
t2
:
GetFirst
()
g
:
Merge
(
t2
)
g
:
AddCard
(
m2
)
local
mg2
=
mg
:
Filter
(
Card
.
IsNotTuner
,
nil
)
lv
=
lv
-
m2
:
GetSynchroLevel
(
c
)
Duel
.
SetSelectedCard
(
g
)
mg
:
RemoveCard
(
m2
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
local
t3
=
mg
:
FilterSelect
(
tp
,
c7841112
.
synfilter3
,
1
,
1
,
nil
,
c
,
lv
)
local
t3
=
mg
2
:
SelectWithSumEqual
(
tp
,
Card
.
GetSynchroLevel
,
lv
,
1
,
1
,
c
)
g
:
Merge
(
t3
)
g
:
Merge
(
t3
)
c
:
SetMaterial
(
g
)
c
:
SetMaterial
(
g
)
Duel
.
SendtoGrave
(
g
,
REASON_MATERIAL
+
REASON_SYNCHRO
)
Duel
.
SendtoGrave
(
g
,
REASON_MATERIAL
+
REASON_SYNCHRO
)
...
...
c93157004.lua
View file @
0d0a3bd9
...
@@ -58,32 +58,29 @@ function c93157004.matfilter2(c,syncard)
...
@@ -58,32 +58,29 @@ function c93157004.matfilter2(c,syncard)
return
c
:
IsNotTuner
()
and
(
c
:
IsLocation
(
LOCATION_HAND
)
or
c
:
IsFaceup
())
and
c
:
IsSetCard
(
0x30
)
and
c
:
IsCanBeSynchroMaterial
(
syncard
)
return
c
:
IsNotTuner
()
and
(
c
:
IsLocation
(
LOCATION_HAND
)
or
c
:
IsFaceup
())
and
c
:
IsSetCard
(
0x30
)
and
c
:
IsCanBeSynchroMaterial
(
syncard
)
end
end
function
c93157004
.
synfilter1
(
c
,
syncard
,
lv
,
g1
,
g2
,
g3
,
g4
)
function
c93157004
.
synfilter1
(
c
,
syncard
,
lv
,
g1
,
g2
,
g3
,
g4
)
local
tlv
=
c
:
GetSynchroLevel
(
syncard
)
if
lv
-
tlv
<=
0
then
return
false
end
local
f1
=
c
.
tuner_filter
local
f1
=
c
.
tuner_filter
if
c
:
IsHasEffect
(
EFFECT_HAND_SYNCHRO
)
then
if
c
:
IsHasEffect
(
EFFECT_HAND_SYNCHRO
)
then
return
g3
:
IsExists
(
c93157004
.
synfilter2
,
1
,
c
,
syncard
,
lv
-
tlv
,
g2
,
g4
,
f1
,
c
)
return
g3
:
IsExists
(
c93157004
.
synfilter2
,
1
,
c
,
syncard
,
lv
,
g2
,
g4
,
f1
,
c
)
else
else
return
g1
:
IsExists
(
c93157004
.
synfilter2
,
1
,
c
,
syncard
,
lv
-
tlv
,
g2
,
g4
,
f1
,
c
)
return
g1
:
IsExists
(
c93157004
.
synfilter2
,
1
,
c
,
syncard
,
lv
,
g2
,
g4
,
f1
,
c
)
end
end
end
end
function
c93157004
.
synfilter2
(
c
,
syncard
,
lv
,
g2
,
g4
,
f1
,
tuner1
)
function
c93157004
.
synfilter2
(
c
,
syncard
,
lv
,
g2
,
g4
,
f1
,
tuner1
)
local
tlv
=
c
:
GetSynchroLevel
(
syncard
)
if
c
==
tuner1
then
return
false
end
if
lv
-
tlv
<=
0
then
return
false
end
local
f2
=
c
.
tuner_filter
local
f2
=
c
.
tuner_filter
if
f1
and
not
f1
(
c
)
then
return
false
end
if
f1
and
not
f1
(
c
)
then
return
false
end
if
f2
and
not
f2
(
tuner1
)
then
return
false
end
if
f2
and
not
f2
(
tuner1
)
then
return
false
end
Duel
.
SetSelectedCard
(
Group
.
FromCards
(
c
,
tuner1
))
if
(
tuner1
:
IsHasEffect
(
EFFECT_HAND_SYNCHRO
)
and
not
c
:
IsLocation
(
LOCATION_HAND
))
or
c
:
IsHasEffect
(
EFFECT_HAND_SYNCHRO
)
then
if
(
tuner1
:
IsHasEffect
(
EFFECT_HAND_SYNCHRO
)
and
not
c
:
IsLocation
(
LOCATION_HAND
))
or
c
:
IsHasEffect
(
EFFECT_HAND_SYNCHRO
)
then
return
g4
:
IsExists
(
c93157004
.
synfilter3
,
1
,
nil
,
syncard
,
lv
-
tlv
,
f1
,
f2
)
local
mg
=
g4
:
Filter
(
c93157004
.
synfilter3
,
nil
,
f1
,
f2
)
return
mg
:
CheckWithSumEqual
(
Card
.
GetSynchroLevel
,
lv
,
1
,
1
,
syncard
)
else
else
return
g2
:
IsExists
(
c93157004
.
synfilter3
,
1
,
nil
,
syncard
,
lv
-
tlv
,
f1
,
f2
)
local
mg
=
g2
:
Filter
(
c93157004
.
synfilter3
,
nil
,
f1
,
f2
)
return
mg
:
CheckWithSumEqual
(
Card
.
GetSynchroLevel
,
lv
,
1
,
1
,
syncard
)
end
end
end
end
function
c93157004
.
synfilter3
(
c
,
syncard
,
lv
,
f1
,
f2
)
function
c93157004
.
synfilter3
(
c
,
f1
,
f2
)
local
mlv
=
c
:
GetSynchroLevel
(
syncard
)
return
(
not
f1
or
f1
(
c
))
and
(
not
f2
or
f2
(
c
))
local
lv1
=
bit
.
band
(
mlv
,
0xffff
)
local
lv2
=
bit
.
rshift
(
mlv
,
16
)
return
(
lv1
==
lv
or
lv2
==
lv
)
and
(
not
f1
or
f1
(
c
))
and
(
not
f2
or
f2
(
c
))
end
end
function
c93157004
.
syncon
(
e
,
c
,
tuner
,
mg
)
function
c93157004
.
syncon
(
e
,
c
,
tuner
,
mg
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
...
@@ -96,8 +93,8 @@ function c93157004.syncon(e,c,tuner,mg)
...
@@ -96,8 +93,8 @@ function c93157004.syncon(e,c,tuner,mg)
if
mg
then
if
mg
then
g1
=
mg
:
Filter
(
c93157004
.
matfilter1
,
nil
,
c
)
g1
=
mg
:
Filter
(
c93157004
.
matfilter1
,
nil
,
c
)
g2
=
mg
:
Filter
(
c93157004
.
matfilter2
,
nil
,
c
)
g2
=
mg
:
Filter
(
c93157004
.
matfilter2
,
nil
,
c
)
g3
=
mg
:
Filter
(
c93157004
.
matfilter1
,
nil
,
c
)
g3
=
g1
:
Clone
(
)
g4
=
mg
:
Filter
(
c93157004
.
matfilter2
,
nil
,
c
)
g4
=
g2
:
Clone
(
)
else
else
g1
=
Duel
.
GetMatchingGroup
(
c93157004
.
matfilter1
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
c
)
g1
=
Duel
.
GetMatchingGroup
(
c93157004
.
matfilter1
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
c
)
g2
=
Duel
.
GetMatchingGroup
(
c93157004
.
matfilter2
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
c
)
g2
=
Duel
.
GetMatchingGroup
(
c93157004
.
matfilter2
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
c
)
...
@@ -107,13 +104,11 @@ function c93157004.syncon(e,c,tuner,mg)
...
@@ -107,13 +104,11 @@ function c93157004.syncon(e,c,tuner,mg)
local
pe
=
Duel
.
IsPlayerAffectedByEffect
(
tp
,
EFFECT_MUST_BE_SMATERIAL
)
local
pe
=
Duel
.
IsPlayerAffectedByEffect
(
tp
,
EFFECT_MUST_BE_SMATERIAL
)
local
lv
=
c
:
GetLevel
()
local
lv
=
c
:
GetLevel
()
if
tuner
then
if
tuner
then
local
tlv
=
tuner
:
GetSynchroLevel
(
c
)
if
lv
-
tlv
<=
0
then
return
false
end
local
f1
=
tuner
.
tuner_filter
local
f1
=
tuner
.
tuner_filter
if
not
pe
then
if
not
pe
then
return
g1
:
IsExists
(
c93157004
.
synfilter2
,
1
,
tuner
,
c
,
lv
-
tlv
,
g2
,
g4
,
f1
,
tuner
)
return
g1
:
IsExists
(
c93157004
.
synfilter2
,
1
,
tuner
,
c
,
lv
,
g2
,
g4
,
f1
,
tuner
)
else
else
return
c93157004
.
synfilter2
(
pe
:
GetOwner
(),
c
,
lv
-
tlv
,
g2
,
nil
,
f1
,
tuner
)
return
c93157004
.
synfilter2
(
pe
:
GetOwner
(),
c
,
lv
,
g2
,
nil
,
f1
,
tuner
)
end
end
end
end
if
not
pe
then
if
not
pe
then
...
@@ -131,8 +126,8 @@ function c93157004.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
...
@@ -131,8 +126,8 @@ function c93157004.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
if
mg
then
if
mg
then
g1
=
mg
:
Filter
(
c93157004
.
matfilter1
,
nil
,
c
)
g1
=
mg
:
Filter
(
c93157004
.
matfilter1
,
nil
,
c
)
g2
=
mg
:
Filter
(
c93157004
.
matfilter2
,
nil
,
c
)
g2
=
mg
:
Filter
(
c93157004
.
matfilter2
,
nil
,
c
)
g3
=
mg
:
Filter
(
c93157004
.
matfilter1
,
nil
,
c
)
g3
=
g1
:
Clone
(
)
g4
=
mg
:
Filter
(
c93157004
.
matfilter2
,
nil
,
c
)
g4
=
g2
:
Clone
(
)
else
else
g1
=
Duel
.
GetMatchingGroup
(
c93157004
.
matfilter1
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
c
)
g1
=
Duel
.
GetMatchingGroup
(
c93157004
.
matfilter1
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
c
)
g2
=
Duel
.
GetMatchingGroup
(
c93157004
.
matfilter2
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
c
)
g2
=
Duel
.
GetMatchingGroup
(
c93157004
.
matfilter2
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
c
)
...
@@ -143,32 +138,32 @@ function c93157004.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
...
@@ -143,32 +138,32 @@ function c93157004.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
local
lv
=
c
:
GetLevel
()
local
lv
=
c
:
GetLevel
()
if
tuner
then
if
tuner
then
g
:
AddCard
(
tuner
)
g
:
AddCard
(
tuner
)
local
lv1
=
tuner
:
GetSynchroLevel
(
c
)
local
f1
=
tuner
.
tuner_filter
local
f1
=
tuner
.
tuner_filter
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
local
tuner2
=
nil
local
tuner2
=
nil
if
not
pe
then
if
not
pe
then
local
t2
=
g1
:
FilterSelect
(
tp
,
c93157004
.
synfilter2
,
1
,
1
,
tuner
,
c
,
lv
-
lv1
,
g2
,
g4
,
f1
,
tuner
)
local
t2
=
g1
:
FilterSelect
(
tp
,
c93157004
.
synfilter2
,
1
,
1
,
tuner
,
c
,
lv
,
g2
,
g4
,
f1
,
tuner
)
tuner2
=
t2
:
GetFirst
()
tuner2
=
t2
:
GetFirst
()
else
else
tuner2
=
pe
:
GetOwner
()
tuner2
=
pe
:
GetOwner
()
Group
.
FromCards
(
tuner2
):
Select
(
tp
,
1
,
1
,
nil
)
Group
.
FromCards
(
tuner2
):
Select
(
tp
,
1
,
1
,
nil
)
end
end
g
:
AddCard
(
tuner2
)
g
:
AddCard
(
tuner2
)
local
lv2
=
tuner2
:
GetSynchroLevel
(
c
)
local
f2
=
tuner2
.
tuner_filter
local
f2
=
tuner2
.
tuner_filter
local
m3
=
nil
local
m3
=
nil
Duel
.
SetSelectedCard
(
g
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
if
tuner2
:
IsHasEffect
(
EFFECT_HAND_SYNCHRO
)
then
if
tuner2
:
IsHasEffect
(
EFFECT_HAND_SYNCHRO
)
then
m3
=
g4
:
FilterSelect
(
tp
,
c93157004
.
synfilter3
,
1
,
1
,
nil
,
c
,
lv
-
lv1
-
lv2
,
f1
,
f2
)
local
mg4
=
g4
:
Filter
(
c93157004
.
synfilter3
,
nil
,
f1
,
f2
)
m3
=
mg4
:
SelectWithSumEqual
(
tp
,
Card
.
GetSynchroLevel
,
lv
,
1
,
1
,
c
)
else
else
m3
=
g2
:
FilterSelect
(
tp
,
c93157004
.
synfilter3
,
1
,
1
,
nil
,
c
,
lv
-
lv1
-
lv2
,
f1
,
f2
)
local
mg2
=
g2
:
Filter
(
c93157004
.
synfilter3
,
nil
,
f1
,
f2
)
m3
=
mg2
:
SelectWithSumEqual
(
tp
,
Card
.
GetSynchroLevel
,
lv
,
1
,
1
,
c
)
end
end
g
:
Merge
(
m3
)
g
:
Merge
(
m3
)
else
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
local
tuner1
=
nil
local
tuner1
=
nil
local
hand
=
nil
if
not
pe
then
if
not
pe
then
local
t1
=
g1
:
FilterSelect
(
tp
,
c93157004
.
synfilter1
,
1
,
1
,
nil
,
c
,
lv
,
g1
,
g2
,
g3
,
g4
)
local
t1
=
g1
:
FilterSelect
(
tp
,
c93157004
.
synfilter1
,
1
,
1
,
nil
,
c
,
lv
,
g1
,
g2
,
g3
,
g4
)
tuner1
=
t1
:
GetFirst
()
tuner1
=
t1
:
GetFirst
()
...
@@ -177,27 +172,27 @@ function c93157004.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
...
@@ -177,27 +172,27 @@ function c93157004.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
Group
.
FromCards
(
tuner1
):
Select
(
tp
,
1
,
1
,
nil
)
Group
.
FromCards
(
tuner1
):
Select
(
tp
,
1
,
1
,
nil
)
end
end
g
:
AddCard
(
tuner1
)
g
:
AddCard
(
tuner1
)
local
lv1
=
tuner1
:
GetSynchroLevel
(
c
)
local
f1
=
tuner1
.
tuner_filter
local
f1
=
tuner1
.
tuner_filter
local
tuner2
=
nil
local
tuner2
=
nil
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
if
tuner1
:
IsHasEffect
(
EFFECT_HAND_SYNCHRO
)
then
if
tuner1
:
IsHasEffect
(
EFFECT_HAND_SYNCHRO
)
then
local
t2
=
g3
:
FilterSelect
(
tp
,
c93157004
.
synfilter2
,
1
,
1
,
tuner1
,
c
,
lv
-
lv1
,
g2
,
g4
,
f1
,
tuner1
)
local
t2
=
g3
:
FilterSelect
(
tp
,
c93157004
.
synfilter2
,
1
,
1
,
tuner1
,
c
,
lv
,
g2
,
g4
,
f1
,
tuner1
)
tuner2
=
t2
:
GetFirst
()
tuner2
=
t2
:
GetFirst
()
else
else
local
t2
=
g1
:
FilterSelect
(
tp
,
c93157004
.
synfilter2
,
1
,
1
,
tuner1
,
c
,
lv
-
lv1
,
g2
,
g4
,
f1
,
tuner1
)
local
t2
=
g1
:
FilterSelect
(
tp
,
c93157004
.
synfilter2
,
1
,
1
,
tuner1
,
c
,
lv
,
g2
,
g4
,
f1
,
tuner1
)
tuner2
=
t2
:
GetFirst
()
tuner2
=
t2
:
GetFirst
()
end
end
g
:
AddCard
(
tuner2
)
g
:
AddCard
(
tuner2
)
local
lv2
=
tuner2
:
GetSynchroLevel
(
c
)
local
f2
=
tuner2
.
tuner_filter
local
f2
=
tuner2
.
tuner_filter
local
m3
=
nil
local
m3
=
nil
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
if
(
tuner1
:
IsHasEffect
(
EFFECT_HAND_SYNCHRO
)
and
not
tuner2
:
IsLocation
(
LOCATION_HAND
))
if
(
tuner1
:
IsHasEffect
(
EFFECT_HAND_SYNCHRO
)
and
not
tuner2
:
IsLocation
(
LOCATION_HAND
))
or
tuner2
:
IsHasEffect
(
EFFECT_HAND_SYNCHRO
)
then
or
tuner2
:
IsHasEffect
(
EFFECT_HAND_SYNCHRO
)
then
m3
=
g4
:
FilterSelect
(
tp
,
c93157004
.
synfilter3
,
1
,
1
,
nil
,
c
,
lv
-
lv1
-
lv2
,
f1
,
f2
)
local
mg4
=
g4
:
Filter
(
c93157004
.
synfilter3
,
nil
,
f1
,
f2
)
m3
=
mg4
:
SelectWithSumEqual
(
tp
,
Card
.
GetSynchroLevel
,
lv
,
1
,
1
,
c
)
else
else
m3
=
g2
:
FilterSelect
(
tp
,
c93157004
.
synfilter3
,
1
,
1
,
nil
,
c
,
lv
-
lv1
-
lv2
,
f1
,
f2
)
local
mg2
=
g2
:
Filter
(
c93157004
.
synfilter3
,
nil
,
f1
,
f2
)
m3
=
mg2
:
SelectWithSumEqual
(
tp
,
Card
.
GetSynchroLevel
,
lv
,
1
,
1
,
c
)
end
end
g
:
Merge
(
m3
)
g
:
Merge
(
m3
)
end
end
...
...
c97489701.lua
View file @
0d0a3bd9
...
@@ -65,28 +65,23 @@ function c97489701.matfilter2(c,syncard)
...
@@ -65,28 +65,23 @@ function c97489701.matfilter2(c,syncard)
return
c
:
IsFaceup
()
and
c
:
IsCode
(
70902743
)
and
c
:
IsCanBeSynchroMaterial
(
syncard
)
return
c
:
IsFaceup
()
and
c
:
IsCode
(
70902743
)
and
c
:
IsCanBeSynchroMaterial
(
syncard
)
end
end
function
c97489701
.
synfilter1
(
c
,
syncard
,
lv
,
g1
,
g2
,
g3
)
function
c97489701
.
synfilter1
(
c
,
syncard
,
lv
,
g1
,
g2
,
g3
)
local
tlv
=
c
:
GetSynchroLevel
(
syncard
)
if
lv
-
tlv
<=
0
then
return
false
end
local
f1
=
c
.
tuner_filter
local
f1
=
c
.
tuner_filter
if
c
:
IsHasEffect
(
EFFECT_HAND_SYNCHRO
)
then
if
c
:
IsHasEffect
(
EFFECT_HAND_SYNCHRO
)
then
return
g3
:
IsExists
(
c97489701
.
synfilter2
,
1
,
c
,
syncard
,
lv
-
tlv
,
g2
,
f1
,
c
)
return
g3
:
IsExists
(
c97489701
.
synfilter2
,
1
,
c
,
syncard
,
lv
,
g2
,
f1
,
c
)
else
else
return
g1
:
IsExists
(
c97489701
.
synfilter2
,
1
,
c
,
syncard
,
lv
-
tlv
,
g2
,
f1
,
c
)
return
g1
:
IsExists
(
c97489701
.
synfilter2
,
1
,
c
,
syncard
,
lv
,
g2
,
f1
,
c
)
end
end
end
end
function
c97489701
.
synfilter2
(
c
,
syncard
,
lv
,
g2
,
f1
,
tuner1
)
function
c97489701
.
synfilter2
(
c
,
syncard
,
lv
,
g2
,
f1
,
tuner1
)
local
tlv
=
c
:
GetSynchroLevel
(
syncard
)
if
lv
-
tlv
<=
0
then
return
false
end
local
f2
=
c
.
tuner_filter
local
f2
=
c
.
tuner_filter
if
f1
and
not
f1
(
c
)
then
return
false
end
if
f1
and
not
f1
(
c
)
then
return
false
end
if
f2
and
not
f2
(
tuner1
)
then
return
false
end
if
f2
and
not
f2
(
tuner1
)
then
return
false
end
return
g2
:
IsExists
(
c97489701
.
synfilter3
,
1
,
nil
,
syncard
,
lv
-
tlv
,
f1
,
f2
)
local
mg
=
g2
:
Filter
(
c97489701
.
synfilter3
,
nil
,
f1
,
f2
)
Duel
.
SetSelectedCard
(
Group
.
FromCards
(
c
,
tuner1
))
return
mg
:
CheckWithSumEqual
(
Card
.
GetSynchroLevel
,
lv
,
1
,
1
,
syncard
)
end
end
function
c97489701
.
synfilter3
(
c
,
syncard
,
lv
,
f1
,
f2
)
function
c97489701
.
synfilter3
(
c
,
f1
,
f2
)
local
mlv
=
c
:
GetSynchroLevel
(
syncard
)
return
(
not
f1
or
f1
(
c
))
and
(
not
f2
or
f2
(
c
))
local
lv1
=
bit
.
band
(
mlv
,
0xffff
)
local
lv2
=
bit
.
rshift
(
mlv
,
16
)
return
(
lv1
==
lv
or
lv2
==
lv
)
and
(
not
f1
or
f1
(
c
))
and
(
not
f2
or
f2
(
c
))
end
end
function
c97489701
.
syncon
(
e
,
c
,
tuner
,
mg
)
function
c97489701
.
syncon
(
e
,
c
,
tuner
,
mg
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
...
@@ -98,7 +93,7 @@ function c97489701.syncon(e,c,tuner,mg)
...
@@ -98,7 +93,7 @@ function c97489701.syncon(e,c,tuner,mg)
if
mg
then
if
mg
then
g1
=
mg
:
Filter
(
c97489701
.
matfilter1
,
nil
,
c
)
g1
=
mg
:
Filter
(
c97489701
.
matfilter1
,
nil
,
c
)
g2
=
mg
:
Filter
(
c97489701
.
matfilter2
,
nil
,
c
)
g2
=
mg
:
Filter
(
c97489701
.
matfilter2
,
nil
,
c
)
g3
=
mg
:
Filter
(
c97489701
.
matfilter1
,
nil
,
c
)
g3
=
g1
:
Clone
(
)
else
else
g1
=
Duel
.
GetMatchingGroup
(
c97489701
.
matfilter1
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
c
)
g1
=
Duel
.
GetMatchingGroup
(
c97489701
.
matfilter1
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
c
)
g2
=
Duel
.
GetMatchingGroup
(
c97489701
.
matfilter2
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
c
)
g2
=
Duel
.
GetMatchingGroup
(
c97489701
.
matfilter2
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
c
)
...
@@ -107,19 +102,17 @@ function c97489701.syncon(e,c,tuner,mg)
...
@@ -107,19 +102,17 @@ function c97489701.syncon(e,c,tuner,mg)
local
pe
=
Duel
.
IsPlayerAffectedByEffect
(
tp
,
EFFECT_MUST_BE_SMATERIAL
)
local
pe
=
Duel
.
IsPlayerAffectedByEffect
(
tp
,
EFFECT_MUST_BE_SMATERIAL
)
local
lv
=
c
:
GetLevel
()
local
lv
=
c
:
GetLevel
()
if
tuner
then
if
tuner
then
local
tlv
=
tuner
:
GetSynchroLevel
(
c
)
if
lv
-
tlv
<=
0
then
return
false
end
local
f1
=
tuner
.
tuner_filter
local
f1
=
tuner
.
tuner_filter
if
not
pe
then
if
not
pe
then
return
g1
:
IsExists
(
c97489701
.
synfilter2
,
1
,
tuner
,
c
,
lv
-
tlv
,
g2
,
f1
,
tuner
)
return
g1
:
IsExists
(
c97489701
.
synfilter2
,
1
,
tuner
,
c
,
lv
,
g2
,
f1
,
tuner
)
else
else
return
c97489701
.
synfilter2
(
pe
:
GetOwner
(),
c
,
lv
-
tlv
,
g2
,
f1
,
tuner
)
return
c97489701
.
synfilter2
(
pe
:
GetOwner
(),
c
,
lv
,
g2
,
f1
,
tuner
)
end
end
end
end
if
not
pe
then
if
not
pe
then
return
g1
:
IsExists
(
c97489701
.
synfilter1
,
1
,
nil
,
c
,
lv
,
g1
,
g2
,
g3
)
return
g1
:
IsExists
(
c97489701
.
synfilter1
,
1
,
nil
,
c
,
lv
,
g1
,
g2
,
g3
)
else
else
return
c97489701
.
synfilter1
(
pe
:
GetOwner
(),
c
,
lv
,
g1
,
g2
)
return
c97489701
.
synfilter1
(
pe
:
GetOwner
(),
c
,
lv
,
g1
,
g2
,
g3
)
end
end
end
end
function
c97489701
.
synop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
,
tuner
,
mg
)
function
c97489701
.
synop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
,
tuner
,
mg
)
...
@@ -130,7 +123,7 @@ function c97489701.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
...
@@ -130,7 +123,7 @@ function c97489701.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
if
mg
then
if
mg
then
g1
=
mg
:
Filter
(
c97489701
.
matfilter1
,
nil
,
c
)
g1
=
mg
:
Filter
(
c97489701
.
matfilter1
,
nil
,
c
)
g2
=
mg
:
Filter
(
c97489701
.
matfilter2
,
nil
,
c
)
g2
=
mg
:
Filter
(
c97489701
.
matfilter2
,
nil
,
c
)
g3
=
mg
:
Filter
(
c97489701
.
matfilter1
,
nil
,
c
)
g3
=
g1
:
Clone
(
)
else
else
g1
=
Duel
.
GetMatchingGroup
(
c97489701
.
matfilter1
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
c
)
g1
=
Duel
.
GetMatchingGroup
(
c97489701
.
matfilter1
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
c
)
g2
=
Duel
.
GetMatchingGroup
(
c97489701
.
matfilter2
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
c
)
g2
=
Duel
.
GetMatchingGroup
(
c97489701
.
matfilter2
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
c
)
...
@@ -140,22 +133,22 @@ function c97489701.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
...
@@ -140,22 +133,22 @@ function c97489701.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
local
lv
=
c
:
GetLevel
()
local
lv
=
c
:
GetLevel
()
if
tuner
then
if
tuner
then
g
:
AddCard
(
tuner
)
g
:
AddCard
(
tuner
)
local
lv1
=
tuner
:
GetSynchroLevel
(
c
)
local
f1
=
tuner
.
tuner_filter
local
f1
=
tuner
.
tuner_filter
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
local
tuner2
=
nil
local
tuner2
=
nil
if
not
pe
then
if
not
pe
then
local
t2
=
g1
:
FilterSelect
(
tp
,
c97489701
.
synfilter2
,
1
,
1
,
tuner
,
c
,
lv
-
lv1
,
g2
,
f1
,
tuner
)
local
t2
=
g1
:
FilterSelect
(
tp
,
c97489701
.
synfilter2
,
1
,
1
,
tuner
,
c
,
lv
,
g2
,
f1
,
tuner
)
tuner2
=
t2
:
GetFirst
()
tuner2
=
t2
:
GetFirst
()
else
else
tuner2
=
pe
:
GetOwner
()
tuner2
=
pe
:
GetOwner
()
Group
.
FromCards
(
tuner2
):
Select
(
tp
,
1
,
1
,
nil
)
Group
.
FromCards
(
tuner2
):
Select
(
tp
,
1
,
1
,
nil
)
end
end
g
:
AddCard
(
tuner2
)
g
:
AddCard
(
tuner2
)
local
lv2
=
tuner2
:
GetSynchroLevel
(
c
)
local
f2
=
tuner2
.
tuner_filter
local
f2
=
tuner2
.
tuner_filter
local
mg2
=
g2
:
Filter
(
c97489701
.
synfilter3
,
nil
,
f1
,
f2
)
Duel
.
SetSelectedCard
(
g
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
local
m3
=
g2
:
FilterSelect
(
tp
,
c97489701
.
synfilter3
,
1
,
1
,
nil
,
c
,
lv
-
lv1
-
lv2
,
f1
,
f2
)
local
m3
=
mg2
:
SelectWithSumEqual
(
tp
,
Card
.
GetSynchroLevel
,
lv
,
1
,
1
,
c
)
g
:
Merge
(
m3
)
g
:
Merge
(
m3
)
else
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
...
@@ -168,21 +161,21 @@ function c97489701.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
...
@@ -168,21 +161,21 @@ function c97489701.synop(e,tp,eg,ep,ev,re,r,rp,c,tuner,mg)
Group
.
FromCards
(
tuner1
):
Select
(
tp
,
1
,
1
,
nil
)
Group
.
FromCards
(
tuner1
):
Select
(
tp
,
1
,
1
,
nil
)
end
end
g
:
AddCard
(
tuner1
)
g
:
AddCard
(
tuner1
)
local
lv1
=
tuner1
:
GetSynchroLevel
(
c
)
local
f1
=
tuner1
.
tuner_filter
local
f1
=
tuner1
.
tuner_filter
local
t2
=
nil
local
t2
=
nil
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
if
tuner1
:
IsHasEffect
(
EFFECT_HAND_SYNCHRO
)
then
if
tuner1
:
IsHasEffect
(
EFFECT_HAND_SYNCHRO
)
then
t2
=
g3
:
FilterSelect
(
tp
,
c97489701
.
synfilter2
,
1
,
1
,
tuner1
,
c
,
lv
-
lv1
,
g2
,
f1
,
tuner1
)
t2
=
g3
:
FilterSelect
(
tp
,
c97489701
.
synfilter2
,
1
,
1
,
tuner1
,
c
,
lv
,
g2
,
f1
,
tuner1
)
else
else
t2
=
g1
:
FilterSelect
(
tp
,
c97489701
.
synfilter2
,
1
,
1
,
tuner1
,
c
,
lv
-
lv1
,
g2
,
f1
,
tuner1
)
t2
=
g1
:
FilterSelect
(
tp
,
c97489701
.
synfilter2
,
1
,
1
,
tuner1
,
c
,
lv
,
g2
,
f1
,
tuner1
)
end
end
local
tuner2
=
t2
:
GetFirst
()
local
tuner2
=
t2
:
GetFirst
()
g
:
AddCard
(
tuner2
)
g
:
AddCard
(
tuner2
)
local
lv2
=
tuner2
:
GetSynchroLevel
(
c
)
local
f2
=
tuner2
.
tuner_filter
local
f2
=
tuner2
.
tuner_filter
local
mg2
=
g2
:
Filter
(
c97489701
.
synfilter3
,
nil
,
f1
,
f2
)
Duel
.
SetSelectedCard
(
g
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SMATERIAL
)
local
m3
=
g2
:
FilterSelect
(
tp
,
c97489701
.
synfilter3
,
1
,
1
,
nil
,
c
,
lv
-
lv1
-
lv2
,
f1
,
f2
)
local
m3
=
mg2
:
SelectWithSumEqual
(
tp
,
Card
.
GetSynchroLevel
,
lv
,
1
,
1
,
c
)
g
:
Merge
(
m3
)
g
:
Merge
(
m3
)
end
end
c
:
SetMaterial
(
g
)
c
:
SetMaterial
(
g
)
...
...
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