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
60e105a8
Commit
60e105a8
authored
Jan 03, 2025
by
POLYMER
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
7c14f2e0
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
79 additions
and
40 deletions
+79
-40
expansions/script/c12847087.lua
expansions/script/c12847087.lua
+1
-1
expansions/script/c65123336.lua
expansions/script/c65123336.lua
+78
-39
No files found.
expansions/script/c12847087.lua
View file @
60e105a8
...
@@ -69,7 +69,7 @@ function cm.initial_effect(c)
...
@@ -69,7 +69,7 @@ function cm.initial_effect(c)
e4
:
SetCode
(
EVENT_FREE_CHAIN
)
e4
:
SetCode
(
EVENT_FREE_CHAIN
)
e4
:
SetCondition
(
cm
.
condition
)
e4
:
SetCondition
(
cm
.
condition
)
e4
:
SetOperation
(
cm
.
operation
)
e4
:
SetOperation
(
cm
.
operation
)
--
c:RegisterEffect(e4)
c
:
RegisterEffect
(
e4
)
--
--
local
e6
=
Effect
.
CreateEffect
(
c
)
local
e6
=
Effect
.
CreateEffect
(
c
)
e6
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e6
:
SetType
(
EFFECT_TYPE_QUICK_O
)
...
...
expansions/script/c65123336.lua
View file @
60e105a8
...
@@ -114,7 +114,7 @@ function s.startop2(e,tp,eg,ep,ev,re,r,rp)
...
@@ -114,7 +114,7 @@ function s.startop2(e,tp,eg,ep,ev,re,r,rp)
e
:
Reset
()
e
:
Reset
()
if
Duel
.
IsExistingMatchingCard
(
s
.
cfilter
,
1
,
LOCATION_EXTRA
,
0
,
1
,
nil
)
then
if
Duel
.
IsExistingMatchingCard
(
s
.
cfilter
,
1
,
LOCATION_EXTRA
,
0
,
1
,
nil
)
then
s
.
dealcard2
(
17
,
0
)
s
.
dealcard2
(
17
,
0
)
s
.
dealcard2
(
1
7
,
1
)
s
.
dealcard2
(
1
,
1
)
s
.
skip
()
s
.
skip
()
else
else
Debug
.
Message
(
"多人模式测试中..."
)
Debug
.
Message
(
"多人模式测试中..."
)
...
@@ -130,7 +130,7 @@ function s.startop2(e,tp,eg,ep,ev,re,r,rp)
...
@@ -130,7 +130,7 @@ function s.startop2(e,tp,eg,ep,ev,re,r,rp)
pc
:
RegisterEffect
(
e1
,
true
)
pc
:
RegisterEffect
(
e1
,
true
)
if
s
.
humancheck
(
0
)
then
if
s
.
humancheck
(
0
)
then
s
.
IsHuman
[
1
]
=
true
s
.
IsHuman
[
1
]
=
true
s
.
dealcard2
(
17
,
0
)
s
.
dealcard2
(
17
,
0
)
else
else
landlord
=
2
landlord
=
2
Debug
.
Message
(
"1号位玩家被识别为人机!"
)
Debug
.
Message
(
"1号位玩家被识别为人机!"
)
...
@@ -192,7 +192,7 @@ function s.startop3(e,tp,eg,ep,ev,re,r,rp)
...
@@ -192,7 +192,7 @@ function s.startop3(e,tp,eg,ep,ev,re,r,rp)
if
s
.
humancheck
(
1
)
then
if
s
.
humancheck
(
1
)
then
s
.
IsHuman
[
4
]
=
true
s
.
IsHuman
[
4
]
=
true
else
else
Debug
.
Message
(
"4号位玩家被识别为人机!"
)
Debug
.
Message
(
"4号位玩家被识别为人机!"
)
end
end
local
count
=
0
local
count
=
0
for
i
=
1
,
4
do
for
i
=
1
,
4
do
...
@@ -378,32 +378,22 @@ function s.checkStraight(c,g)
...
@@ -378,32 +378,22 @@ function s.checkStraight(c,g)
for
tc
in
aux
.
Next
(
g
)
do
for
tc
in
aux
.
Next
(
g
)
do
local
point
=
tc
:
GetCode
()
%
20
local
point
=
tc
:
GetCode
()
%
20
if
point
==
1
then
codetable
[
14
]
=
true
end
if
point
==
1
then
codetable
[
14
]
=
true
end
codetable
[
point
]
=
true
if
point
>
2
then
codetable
[
point
]
=
true
end
end
end
local
count
=
0
local
count
=
0
local
cpoint
=
c
:
GetCode
()
%
20
local
cpoint
=
c
:
GetCode
()
%
20
local
min
=
math.max
(
1
,
cpoint
-
4
)
for
i
=
1
,
14
do
local
max
=
math.min
(
14
,
cpoint
+
4
)
for
i
=
min
,
max
do
if
codetable
[
i
]
==
true
then
if
codetable
[
i
]
==
true
then
count
=
count
+
1
count
=
count
+
1
else
else
if
count
>=
5
then
if
count
>=
5
and
i
>=
cpoint
then
return
true
,
i
-
count
,
i
-
1
return
true
,
i
-
count
,
i
-
1
end
end
count
=
0
count
=
0
end
end
end
end
if
count
>=
5
then
if
count
>=
5
then
return
true
,
max
-
count
+
1
,
max
return
true
,
15
-
count
,
14
end
if
cpoint
==
1
then
for
i
=
10
,
14
do
if
codetable
[
i
]
~=
true
then
return
false
end
end
return
true
,
10
,
14
end
end
return
false
,
nil
,
nil
return
false
,
nil
,
nil
end
end
...
@@ -437,8 +427,15 @@ end
...
@@ -437,8 +427,15 @@ end
function
s
.
pointdown
(
c
,
point
)
function
s
.
pointdown
(
c
,
point
)
return
s
.
getpoint
(
c
)
<
point
return
s
.
getpoint
(
c
)
<
point
end
end
function
s
.
pointsame
(
c
,
point
)
function
s
.
pointsame
(
c
,
...
)
return
s
.
getpoint
(
c
)
==
point
local
point
=
s
.
getpoint
(
c
)
local
pointtable
=
table.pack
(
...
)
for
i
,
v
in
ipairs
(
pointtable
)
do
if
v
==
point
then
return
true
end
end
return
false
end
end
function
s
.
pointup
(
c
,
point
)
function
s
.
pointup
(
c
,
point
)
return
s
.
getpoint
(
c
)
>
point
return
s
.
getpoint
(
c
)
>
point
...
@@ -485,8 +482,12 @@ function s.handop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -485,8 +482,12 @@ function s.handop(e,tp,eg,ep,ev,re,r,rp)
if
point
==
16
or
point
==
17
then
if
point
==
16
or
point
==
17
then
cg
:
Merge
(
g
:
Filter
(
s
.
pointsame
,
c
,
33
-
point
))
cg
:
Merge
(
g
:
Filter
(
s
.
pointsame
,
c
,
33
-
point
))
end
end
local
fmax
=
point
local
fmin
=
point
while
true
do
while
true
do
local
sc
=
cg
:
SelectUnselect
(
sg
,
p
,
true
,
true
,
0
,
1
)
local
finish
=
true
if
cardtype
==
Straight
and
sg
:
GetCount
()
<
5
then
finish
=
false
end
local
sc
=
cg
:
SelectUnselect
(
sg
,
p
,
finish
,
true
,
0
,
1
)
if
sc
then
if
sc
then
if
sg
:
IsContains
(
sc
)
then
return
end
if
sg
:
IsContains
(
sc
)
then
return
end
sg
:
AddCard
(
sc
)
sg
:
AddCard
(
sc
)
...
@@ -498,15 +499,34 @@ function s.handop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -498,15 +499,34 @@ function s.handop(e,tp,eg,ep,ev,re,r,rp)
cardtype
=
sg
:
GetCount
()
cardtype
=
sg
:
GetCount
()
cg
=
cg
:
Filter
(
s
.
pairfilter
,
c
,
s
.
getpoint
(
sc
))
cg
=
cg
:
Filter
(
s
.
pairfilter
,
c
,
s
.
getpoint
(
sc
))
else
else
local
cpoint
=
s
c
:
GetCode
()
%
20
local
cpoint
=
s
.
getpoint
(
sc
)
cardtype
=
Straight
cardtype
=
Straight
min
=
math.max
(
min
,
cpoint
-
4
)
if
cpoint
>
fmax
then
if
cpoint
==
1
then
max
=
14
else
max
=
math.min
(
max
,
cpoint
+
4
)
end
if
cpoint
-
fmax
>
1
then
cg
=
cg
:
Filter
(
s
.
straightfilter
,
c
,
min
,
max
,
c
:
GetCode
()
%
20
)
for
i
=
fmax
+
1
,
cpoint
-
1
do
cg
=
cg
:
Filter
(
s
.
straightfilter
,
c
,
min
,
max
,
cpoint
)
local
cg1
=
cg
:
Filter
(
s
.
pointsame
,
nil
,
i
)
sg
:
AddCard
(
cg1
:
GetFirst
())
cg
=
cg
:
Filter
(
aux
.
TRUE
,
cg1
)
end
end
fmax
=
cpoint
else
if
fmin
-
cpoint
>
1
then
for
i
=
cpoint
+
1
,
fmin
-
1
do
local
cg1
=
cg
:
Filter
(
s
.
pointsame
,
nil
,
i
)
sg
:
AddCard
(
cg1
:
GetFirst
())
cg
=
cg
:
Filter
(
aux
.
TRUE
,
cg1
)
end
end
fmin
=
cpoint
end
cg
=
cg
:
Filter
(
aux
.
TRUE
,
cg
:
Filter
(
s
.
pointsame
,
nil
,
point
,
cpoint
))
end
end
else
else
if
cardtype
==
Straight
and
sg
:
GetCount
()
<
5
then
return
end
if
not
finish
then
--Duel.Hint(HINT_MESSAGE,p,1421)
return
end
break
break
end
end
end
end
...
@@ -525,14 +545,13 @@ function s.handop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -525,14 +545,13 @@ function s.handop(e,tp,eg,ep,ev,re,r,rp)
end
end
cardtype
=
sg
:
GetCount
()
==
4
and
ThreeWithOne
or
ThreeWithTwo
cardtype
=
sg
:
GetCount
()
==
4
and
ThreeWithOne
or
ThreeWithTwo
end
end
local
fmax
=
c
:
GetCode
()
%
20
local
fmin
=
c
:
GetCode
()
%
20
eg
=
g
:
Filter
(
aux
.
TRUE
,
sg
)
eg
=
g
:
Filter
(
aux
.
TRUE
,
sg
)
local
fg
=
g
:
Filter
(
s
.
updownfilter
,
sg
,
fmin
,
fmax
)
local
fg
=
g
:
Filter
(
s
.
updownfilter
,
sg
,
fmin
,
fmax
)
while
(
cardtype
==
ThreeOfAKind
or
cardtype
==
Flight0
)
and
fg
:
CheckSubGroup
(
s
.
fpair
,
3
,
3
)
and
Duel
.
SelectYesNo
(
p
,
aux
.
Stringid
(
id
,
3
))
do
while
(
cardtype
==
ThreeOfAKind
or
cardtype
==
Flight0
)
and
fg
:
CheckSubGroup
(
s
.
fpair
,
3
,
3
)
and
Duel
.
SelectYesNo
(
p
,
aux
.
Stringid
(
id
,
3
))
do
mg
=
fg
:
SelectSubGroup
(
p
,
s
.
fpair1
,
true
,
3
,
3
,
eg
)
mg
=
fg
:
SelectSubGroup
(
p
,
s
.
fpair1
,
true
,
3
,
3
,
eg
)
if
mg
and
mg
:
GetCount
()
==
3
then
if
mg
and
mg
:
GetCount
()
==
3
then
local
cpoint
=
mg
:
GetFirst
():
GetCode
()
%
20
local
cpoint
=
s
.
getpoint
(
mg
:
GetFirst
())
fmin
=
math.min
(
fmin
,
cpoint
)
fmin
=
math.min
(
fmin
,
cpoint
)
fmax
=
math.max
(
fmax
,
cpoint
)
fmax
=
math.max
(
fmax
,
cpoint
)
sg
:
Merge
(
mg
)
sg
:
Merge
(
mg
)
...
@@ -663,9 +682,28 @@ function s.movecard(cardtype,mg)
...
@@ -663,9 +682,28 @@ function s.movecard(cardtype,mg)
Duel
.
MoveToField
(
tc
,
p
,
p
,
LOCATION_MZONE
,
POS_FACEUP_ATTACK
,
false
,
2
^
3
)
Duel
.
MoveToField
(
tc
,
p
,
p
,
LOCATION_MZONE
,
POS_FACEUP_ATTACK
,
false
,
2
^
3
)
Duel
.
MoveSequence
(
tc
,
6
)
Duel
.
MoveSequence
(
tc
,
6
)
elseif
cardtype
==
Straight
then
elseif
cardtype
==
Straight
then
for
i
=
0
,
4
do
if
mg
:
GetCount
()
==
12
then
local
tc
=
mg
:
GetMinGroup
(
s
.
getpoint
):
GetFirst
()
local
tc
=
mg
:
GetMaxGroup
(
s
.
getpoint
):
GetFirst
()
Duel
.
MoveToField
(
tc
,
p
,
p
,
LOCATION_MZONE
,
POS_FACEUP_ATTACK
,
false
,
2
^
i
)
Duel
.
MoveToField
(
tc
,
p
,
p
,
LOCATION_MZONE
,
POS_FACEUP_ATTACK
,
false
,
2
^
2
)
Duel
.
MoveSequence
(
tc
,
6
)
mg
:
RemoveCard
(
tc
)
end
if
mg
:
GetCount
()
==
11
then
local
tc
=
mg
:
GetMaxGroup
(
s
.
getpoint
):
GetFirst
()
Duel
.
MoveToField
(
tc
,
p
,
p
,
LOCATION_MZONE
,
POS_FACEUP_ATTACK
,
false
,
2
^
2
)
Duel
.
MoveSequence
(
tc
,
5
)
mg
:
RemoveCard
(
tc
)
end
for
i
=
0
,
9
do
local
tg
=
mg
:
GetMinGroup
(
s
.
getpoint
)
if
not
tg
then
break
end
local
tc
=
tg
:
GetFirst
()
local
seq
=
(
i
-
3
)
%
5
if
i
<=
4
then
Duel
.
MoveToField
(
tc
,
p
,
p
,
LOCATION_MZONE
,
POS_FACEUP_ATTACK
,
false
,
2
^
seq
)
else
Duel
.
MoveToField
(
tc
,
p
,
p
,
LOCATION_SZONE
,
POS_FACEUP_ATTACK
,
false
,
2
^
seq
)
end
mg
:
RemoveCard
(
tc
)
mg
:
RemoveCard
(
tc
)
end
end
elseif
cardtype
==
Flight0
then
elseif
cardtype
==
Flight0
then
...
@@ -815,7 +853,7 @@ function s.movecard(cardtype,mg)
...
@@ -815,7 +853,7 @@ function s.movecard(cardtype,mg)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
-
RESET_TURN_SET
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
-
RESET_TURN_SET
)
tc
:
RegisterEffect
(
e1
,
true
)
tc
:
RegisterEffect
(
e1
,
true
)
tc
=
mgtable2
[
i
]:
GetNext
()
tc
=
mgtable2
[
i
]:
GetNext
()
end
end
end
end
end
end
if
count
>=
3
then
if
count
>=
3
then
...
@@ -862,8 +900,9 @@ function s.chainop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -862,8 +900,9 @@ function s.chainop(e,tp,eg,ep,ev,re,r,rp)
local
ischainable
=
false
local
ischainable
=
false
local
ischain
=
false
local
ischain
=
false
local
mg
=
Group
.
CreateGroup
()
local
mg
=
Group
.
CreateGroup
()
if
cardtype
~=
KingBomb
and
cardtype
~=
Bomb
and
g
:
CheckSubGroup
(
s
.
fbomb
,
2
,
4
)
and
Duel
.
SelectYesNo
(
p
,
aux
.
Stringid
(
id
,
5
))
then
local
bg
=
cardtype
==
Bomb
and
upg
or
g
mg
=
g
:
SelectSubGroup
(
p
,
s
.
fbomb
,
true
,
2
,
4
)
if
cardtype
~=
KingBomb
and
bg
:
CheckSubGroup
(
s
.
fbomb
,
2
,
4
)
and
Duel
.
SelectYesNo
(
p
,
aux
.
Stringid
(
id
,
5
))
then
mg
=
bg
:
SelectSubGroup
(
p
,
s
.
fbomb
,
true
,
2
,
4
)
if
mg
and
mg
:
GetCount
()
==
4
then
if
mg
and
mg
:
GetCount
()
==
4
then
cardtype
=
Bomb
cardtype
=
Bomb
point
=
s
.
getpoint
(
mg
:
GetFirst
())
point
=
s
.
getpoint
(
mg
:
GetFirst
())
...
@@ -916,7 +955,7 @@ function s.chainop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -916,7 +955,7 @@ function s.chainop(e,tp,eg,ep,ev,re,r,rp)
if
mg
and
mg
:
GetCount
()
==
3
then
if
mg
and
mg
:
GetCount
()
==
3
then
point
=
s
.
getpoint
(
mg
:
GetFirst
())
point
=
s
.
getpoint
(
mg
:
GetFirst
())
local
mg2
=
g
:
Filter
(
aux
.
TRUE
,
mg
):
SelectSubGroup
(
p
,
s
.
fpair
,
true
,
2
,
2
)
local
mg2
=
g
:
Filter
(
aux
.
TRUE
,
mg
):
SelectSubGroup
(
p
,
s
.
fpair
,
true
,
2
,
2
)
mg
:
Merge
(
mg2
)
mg
:
Merge
(
mg2
)
ischain
=
true
ischain
=
true
end
end
elseif
cardtype
==
Flight0
then
elseif
cardtype
==
Flight0
then
...
@@ -981,7 +1020,7 @@ function s.chainop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -981,7 +1020,7 @@ function s.chainop(e,tp,eg,ep,ev,re,r,rp)
local
cpoint
=
cg
:
GetFirst
():
GetCode
()
%
20
local
cpoint
=
cg
:
GetFirst
():
GetCode
()
%
20
if
cpoint
==
1
then
codetable
[
14
]
=
true
end
if
cpoint
==
1
then
codetable
[
14
]
=
true
end
codetable
[
cpoint
]
=
true
codetable
[
cpoint
]
=
true
local
bool
=
true
local
bool
=
true
for
i
=
cpoint
,
cpoint
+
count
-
1
do
for
i
=
cpoint
,
cpoint
+
count
-
1
do
eg
:
Merge
()
eg
:
Merge
()
if
codetable
[
i
]
~=
true
then
bool
=
false
end
if
codetable
[
i
]
~=
true
then
bool
=
false
end
...
@@ -1032,7 +1071,7 @@ function s.chainop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -1032,7 +1071,7 @@ function s.chainop(e,tp,eg,ep,ev,re,r,rp)
local
cpoint
=
cg
:
GetFirst
():
GetCode
()
%
20
local
cpoint
=
cg
:
GetFirst
():
GetCode
()
%
20
if
cpoint
==
1
then
codetable
[
14
]
=
true
end
if
cpoint
==
1
then
codetable
[
14
]
=
true
end
codetable
[
cpoint
]
=
true
codetable
[
cpoint
]
=
true
local
bool
=
true
local
bool
=
true
for
i
=
cpoint
,
cpoint
+
count
-
1
do
for
i
=
cpoint
,
cpoint
+
count
-
1
do
eg
:
Merge
()
eg
:
Merge
()
if
codetable
[
i
]
~=
true
then
bool
=
false
end
if
codetable
[
i
]
~=
true
then
bool
=
false
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