Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-scripts-888
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
3
Merge Requests
3
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
MyCard
ygopro-scripts-888
Commits
b255f4d4
Commit
b255f4d4
authored
Jan 02, 2026
by
wind2009
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch '233/patch-sync-workaround' into master
parents
bc4c2781
f904666c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
37 additions
and
8 deletions
+37
-8
procedure.lua
procedure.lua
+37
-8
No files found.
procedure.lua
View file @
b255f4d4
...
@@ -59,16 +59,17 @@ end
...
@@ -59,16 +59,17 @@ end
---@param minc integer
---@param minc integer
---@param maxc? integer
---@param maxc? integer
function
Auxiliary
.
AddSynchroProcedure
(
c
,
f1
,
f2
,
minc
,
maxc
)
function
Auxiliary
.
AddSynchroProcedure
(
c
,
f1
,
f2
,
minc
,
maxc
)
if
maxc
==
nil
then
maxc
=
99
end
if
maxc
==
nil
then
maxc
=
c
:
GetLevel
()
-
1
end
local
maxct
=
math.min
(
maxc
,
c
:
GetLevel
()
-
1
)
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
1164
)
e1
:
SetDescription
(
1164
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e1
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_EXTRA
)
e1
:
SetRange
(
LOCATION_EXTRA
)
e1
:
SetCondition
(
Auxiliary
.
SynCondition
(
f1
,
f2
,
minc
,
maxc
))
e1
:
SetCondition
(
Auxiliary
.
SynCondition
(
f1
,
f2
,
minc
,
maxc
t
))
e1
:
SetTarget
(
Auxiliary
.
SynTarget
(
f1
,
f2
,
minc
,
maxc
))
e1
:
SetTarget
(
Auxiliary
.
SynTarget
(
f1
,
f2
,
minc
,
maxc
t
))
e1
:
SetOperation
(
Auxiliary
.
SynOperation
(
f1
,
f2
,
minc
,
maxc
))
e1
:
SetOperation
(
Auxiliary
.
SynOperation
(
f1
,
f2
,
minc
,
maxc
t
))
e1
:
SetValue
(
SUMMON_TYPE_SYNCHRO
)
e1
:
SetValue
(
SUMMON_TYPE_SYNCHRO
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
end
end
...
@@ -133,15 +134,22 @@ end
...
@@ -133,15 +134,22 @@ end
---@param maxc integer
---@param maxc integer
---@param gc? function
---@param gc? function
function
Auxiliary
.
AddSynchroMixProcedure
(
c
,
f1
,
f2
,
f3
,
f4
,
minc
,
maxc
,
gc
)
function
Auxiliary
.
AddSynchroMixProcedure
(
c
,
f1
,
f2
,
f3
,
f4
,
minc
,
maxc
,
gc
)
local
maxct
=
maxc
if
maxct
>
c
:
GetLevel
()
then
maxct
=
c
:
GetLevel
()
if
f1
then
maxct
=
maxct
-
1
end
if
f2
then
maxct
=
maxct
-
1
end
if
f3
then
maxct
=
maxct
-
1
end
end
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
1164
)
e1
:
SetDescription
(
1164
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e1
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_EXTRA
)
e1
:
SetRange
(
LOCATION_EXTRA
)
e1
:
SetCondition
(
Auxiliary
.
SynMixCondition
(
f1
,
f2
,
f3
,
f4
,
minc
,
maxc
,
gc
))
e1
:
SetCondition
(
Auxiliary
.
SynMixCondition
(
f1
,
f2
,
f3
,
f4
,
minc
,
maxc
t
,
gc
))
e1
:
SetTarget
(
Auxiliary
.
SynMixTarget
(
f1
,
f2
,
f3
,
f4
,
minc
,
maxc
,
gc
))
e1
:
SetTarget
(
Auxiliary
.
SynMixTarget
(
f1
,
f2
,
f3
,
f4
,
minc
,
maxc
t
,
gc
))
e1
:
SetOperation
(
Auxiliary
.
SynMixOperation
(
f1
,
f2
,
f3
,
f4
,
minc
,
maxc
,
gc
))
e1
:
SetOperation
(
Auxiliary
.
SynMixOperation
(
f1
,
f2
,
f3
,
f4
,
minc
,
maxc
t
,
gc
))
e1
:
SetValue
(
SUMMON_TYPE_SYNCHRO
)
e1
:
SetValue
(
SUMMON_TYPE_SYNCHRO
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
end
end
...
@@ -154,6 +162,15 @@ end
...
@@ -154,6 +162,15 @@ end
function
Auxiliary
.
GetSynchroLevelFlowerCardian
(
c
)
function
Auxiliary
.
GetSynchroLevelFlowerCardian
(
c
)
return
2
return
2
end
end
function
Auxiliary
.
GetMinSynchroLevel
(
c
,
syncard
)
local
lv
=
c
:
GetSynchroLevel
(
syncard
)
local
minlv
=
c
:
GetLevel
()
while
lv
&
MAX_PARAMETER
>
0
do
minlv
=
math.min
(
minlv
,
lv
&
MAX_PARAMETER
)
lv
=
lv
>>
16
end
return
minlv
end
function
Auxiliary
.
GetSynMaterials
(
tp
,
syncard
)
function
Auxiliary
.
GetSynMaterials
(
tp
,
syncard
)
local
mg
=
Duel
.
GetSynchroMaterial
(
tp
):
Filter
(
Auxiliary
.
SynMaterialFilter
,
nil
,
syncard
)
local
mg
=
Duel
.
GetSynchroMaterial
(
tp
):
Filter
(
Auxiliary
.
SynMaterialFilter
,
nil
,
syncard
)
if
mg
:
IsExists
(
Card
.
GetHandSynchro
,
1
,
nil
)
then
if
mg
:
IsExists
(
Card
.
GetHandSynchro
,
1
,
nil
)
then
...
@@ -332,7 +349,19 @@ function Auxiliary.SynMixCheckRecursive(c,tp,sg,mg,ct,minc,maxc,syncard,sg1,smat
...
@@ -332,7 +349,19 @@ function Auxiliary.SynMixCheckRecursive(c,tp,sg,mg,ct,minc,maxc,syncard,sg1,smat
sg
:
AddCard
(
c
)
sg
:
AddCard
(
c
)
ct
=
ct
+
1
ct
=
ct
+
1
local
res
=
Auxiliary
.
SynMixCheckGoal
(
tp
,
sg
,
minc
,
ct
,
syncard
,
sg1
,
smat
,
gc
,
mgchk
)
local
res
=
Auxiliary
.
SynMixCheckGoal
(
tp
,
sg
,
minc
,
ct
,
syncard
,
sg1
,
smat
,
gc
,
mgchk
)
or
(
ct
<
maxc
and
mg
:
IsExists
(
Auxiliary
.
SynMixCheckRecursive
,
1
,
sg
,
tp
,
sg
,
mg
,
ct
,
minc
,
maxc
,
syncard
,
sg1
,
smat
,
gc
,
mgchk
))
if
not
res
and
ct
<
maxc
then
local
maxlv
=
syncard
:
GetLevel
()
if
#
mg
<=
7
or
#
sg
<=
maxlv
/
7
then
res
=
mg
:
IsExists
(
Auxiliary
.
SynMixCheckRecursive
,
1
,
sg
,
tp
,
sg
,
mg
,
ct
,
minc
,
maxc
,
syncard
,
sg1
,
smat
,
gc
,
mgchk
)
else
local
g
=
sg
:
Clone
()
g
:
Merge
(
sg1
)
local
sumlv
=
g
:
GetSum
(
Auxiliary
.
GetMinSynchroLevel
,
syncard
)
if
sumlv
<
maxlv
or
g
:
IsExists
(
Card
.
IsHasEffect
,
1
,
nil
,
89818984
)
and
#
g
<
maxlv
/
2
then
res
=
mg
:
IsExists
(
Auxiliary
.
SynMixCheckRecursive
,
1
,
sg
,
tp
,
sg
,
mg
,
ct
,
minc
,
maxc
,
syncard
,
sg1
,
smat
,
gc
,
mgchk
)
end
end
end
sg
:
RemoveCard
(
c
)
sg
:
RemoveCard
(
c
)
ct
=
ct
-
1
ct
=
ct
-
1
return
res
return
res
...
...
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