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
08a50bb2
Commit
08a50bb2
authored
Aug 28, 2025
by
POLYMER
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
02503888
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
288 additions
and
283 deletions
+288
-283
expansions/script/c10174065.lua
expansions/script/c10174065.lua
+1
-1
expansions/script/c10199990.lua
expansions/script/c10199990.lua
+283
-282
expansions/script/c95101141.lua
expansions/script/c95101141.lua
+4
-0
No files found.
expansions/script/c10174065.lua
View file @
08a50bb2
--祝祷女祭司
if
not
pcall
(
function
()
require
(
"expansions/script/c10199990"
)
end
)
then
require
(
"script/c10199990"
)
end
Duel
.
LoadScript
(
"c10199990.lua"
)
local
m
,
cm
=
rscf
.
DefineCard
(
10174065
)
function
cm
.
initial_effect
(
c
)
local
e1
=
rsef
.
STO
(
c
,
EVENT_SUMMON_SUCCESS
,{
m
,
0
},{
1
,
m
},
"se,th"
,
"de,dsp"
,
nil
,
nil
,
rsop
.
target
(
cm
.
thfilter
,
"th"
,
LOCATION_DECK
),
cm
.
thop
)
...
...
expansions/script/c10199990.lua
View file @
08a50bb2
...
...
@@ -7,7 +7,8 @@
local
Version_Number
=
"2022.11.02"
if
not
pcall
(
function
()
dofile
(
"expansions/script/c10100000.lua"
)
end
)
then
dofile
(
"script/c10100000.lua"
)
end
Duel
.
LoadScript
(
"c10100000.lua"
)
Duel
.
LoadScript
(
"c11410000.lua"
)
if
rsv
then
return
end
local
s
=
{}
rsv
=
{
}
--"Base Function"
...
...
@@ -43,7 +44,7 @@ rscode.Phase_Leave_Flag = FLAG_PHASE_OPERATE_SCL
rscode
.
Extra_Synchro_Material
=
EFFECT_EXTRA_SYNCHRO_MATERIAL_SCL
rscode
.
Extra_Xyz_Material
=
EFFECT_EXTRA_XYZ_MATERIAL_SCL
rscode
.
Utility_Xyz_Material
=
EFFECT_UTILITY_XYZ_MATERIAL_SCL
rscode
.
Previous_Set_Code
=
FLAG_PREVIOUS_XYZ_MATERIAL_SCL
rscode
.
Previous_Set_Code
=
FLAG_PREVIOUS_XYZ_MATERIAL_SCL
rscode
.
Pre_Complete_Proc
=
EFFECT_COMPLETE_SUMMON_PROC_SCL
rscode
.
Set
=
EVENT_SET_SCL
...
...
@@ -64,103 +65,103 @@ rsloc.all = 0xff
s
.
sum_list
=
{
[
"sp"
]
=
"SpecialSummon"
,
[
"adv"
]
=
"TributeSummon"
,
[
"rit"
]
=
"RitualSummon"
,
[
"fus"
]
=
"FusionSummon"
,
[
"syn"
]
=
"SynchroSummon"
,
[
"xyz"
]
=
"XyzSummon"
,
[
"link"
]
=
"LinkSummon"
,
[
"pen"
]
=
"PendulumSummon"
[
"sp"
]
=
"SpecialSummon"
,
[
"adv"
]
=
"TributeSummon"
,
[
"rit"
]
=
"RitualSummon"
,
[
"fus"
]
=
"FusionSummon"
,
[
"syn"
]
=
"SynchroSummon"
,
[
"xyz"
]
=
"XyzSummon"
,
[
"link"
]
=
"LinkSummon"
,
[
"pen"
]
=
"PendulumSummon"
}
s
.
flag_list
=
{
[
"tg"
]
=
"Target"
,
[
"ptg"
]
=
"PlayerTarget"
,
[
"de"
]
=
"Delay"
,
[
"dsp"
]
=
"DamageStep"
,
[
"dcal"
]
=
"DamageCalculation"
,
[
"ii"
]
=
"IgnoreImmune"
,
[
"sa"
]
=
"SetAvailable"
,
[
"ir"
]
=
"IgnoreZone"
,
[
"sr"
]
=
"BuffZone"
,
[
"bs"
]
=
"BothSide"
,
[
"uc"
]
=
"Uncopyable"
,
[
"ch"
]
=
"ClientHint"
,
[
"lz"
]
=
"LimitActivateZone"
,
[
"atg"
]
=
"AbsoluteTarget"
,
[
"sp"
]
=
"SummonParama"
,
[
"ep"
]
=
"EventPlayer"
,
[
"oa"
]
=
"Oath"
,
[
"ntr"
]
=
"NoTurnReset"
,
[
"neg~"
]
=
"!NegateActivation"
,
[
"cn"
]
=
"!NegateEffect"
,
[
"dise~"
]
=
"!NegateEffect2"
,
[
"cd"
]
=
"!NegateEffect"
,
[
"dis~"
]
=
"!NegateEffect"
[
"tg"
]
=
"Target"
,
[
"ptg"
]
=
"PlayerTarget"
,
[
"de"
]
=
"Delay"
,
[
"dsp"
]
=
"DamageStep"
,
[
"dcal"
]
=
"DamageCalculation"
,
[
"ii"
]
=
"IgnoreImmune"
,
[
"sa"
]
=
"SetAvailable"
,
[
"ir"
]
=
"IgnoreZone"
,
[
"sr"
]
=
"BuffZone"
,
[
"bs"
]
=
"BothSide"
,
[
"uc"
]
=
"Uncopyable"
,
[
"ch"
]
=
"ClientHint"
,
[
"lz"
]
=
"LimitActivateZone"
,
[
"atg"
]
=
"AbsoluteTarget"
,
[
"sp"
]
=
"SummonParama"
,
[
"ep"
]
=
"EventPlayer"
,
[
"oa"
]
=
"Oath"
,
[
"ntr"
]
=
"NoTurnReset"
,
[
"neg~"
]
=
"!NegateActivation"
,
[
"cn"
]
=
"!NegateEffect"
,
[
"dise~"
]
=
"!NegateEffect2"
,
[
"cd"
]
=
"!NegateEffect"
,
[
"dis~"
]
=
"!NegateEffect"
}
s
.
ctgy_list
=
{
[
"des"
]
=
"Destroy"
,
[
"rdes"
]
=
"DestroyReplace"
,
[
"res"
]
=
"Tribute"
,
[
"rm"
]
=
"Banish"
,
[
"rmd"
]
=
"BanishFacedown"
,
[
"se"
]
=
"Search"
,
[
"th"
]
=
"Add2Hand"
,
[
"rth"
]
=
"Return2Hand"
,
[
"td"
]
=
"ShuffleIn2Deck"
,
[
"tdt"
]
=
"ShuffleIn2DeckTop"
,
[
"tdb"
]
=
"ShuffleIn2DeckBottom"
,
[
"ptdt"
]
=
"PlaceOnDeckTop"
,
[
"ptdb"
]
=
"PlaceOnDeckBottom"
,
[
"te"
]
=
"Return2Extra"
,
[
"tde"
]
=
"ShuffleIn2Deck/ExtraAsCost"
,
[
"pte"
]
=
"Add2ExtraFaceup"
,
[
"tg"
]
=
"Send2GY"
,
[
"rtg"
]
=
"Return2GY"
,
[
"dtg"
]
=
"Discard2GY"
,
[
"dish"
]
=
"Discard"
,
[
"dh"
]
=
"Discard"
,
[
"dishf"
]
=
"DiscardWithFilter"
,
[
"dhf"
]
=
"DiscardWithFilter"
,
[
"disd"
]
=
"SendDeckTop2GY"
,
[
"dd"
]
=
"SendDeckTop2GY"
,
[
"dr"
]
=
"Draw"
,
[
"dam"
]
=
"Damage"
,
[
"rec"
]
=
"GainLP"
,
[
"sum"
]
=
"NormalSummon"
,
[
"tk"
]
=
"Token"
,
[
"sp"
]
=
"SpecialSummon"
,
[
"cp"
]
=
"ChangePosition"
,
[
"pos"
]
=
"ChangePosition"
,
[
"upa"
]
=
"Change2AttackPosition"
,
[
"upd"
]
=
"Change2FaceupDefensePosition"
,
[
"dpd"
]
=
"Change2FacedownDefensePosition"
,
[
"posd"
]
=
"Change2DefensePosition"
,
[
"ctrl"
]
=
"ChangeControl"
,
[
"con"
]
=
"ChangeControl"
,
[
"sctrl"
]
=
"SwitchControl"
,
[
"dis"
]
=
"NegateEffect"
,
[
"diss"
]
=
"NegateSummon"
,
[
"neg"
]
=
"NegateActivation"
,
[
"eq"
]
=
"Equip"
,
[
"atk"
]
=
"ChangeATK"
,
[
"def"
]
=
"ChangeDEF"
,
[
"ct"
]
=
"PlaceCounter"
,
[
"pct"
]
=
"PlaceCounter"
,
[
"rmct"
]
=
"RemoveCounter"
,
[
"coin"
]
=
"TossCoin"
,
[
"dice"
]
=
"TossDice"
,
[
"an"
]
=
"AnnounceCard"
,
[
"lv"
]
=
"ChangLevel"
,
[
"fus"
]
=
"FusionSummon"
,
[
"ga"
]
=
"GYAction"
,
[
"gsp"
]
=
"SpecialSummonFromGY"
,
[
"lg"
]
=
"LeaveGY"
,
[
"cf"
]
=
"Look"
,
[
"rv"
]
=
"Reveal"
,
[
"rvep"
]
=
"RevealUntilEP"
,
[
"tf"
]
=
"PlaceOnField"
,
[
"act"
]
=
"ActivateCard"
,
[
"rf"
]
=
"Return2Field"
,
[
"rtf"
]
=
"Return2Field"
,
[
"ae"
]
=
"ApplyEffect"
,
[
"set"
]
=
"SetSpell/Trap"
,
[
"sset"
]
=
"SetSpell/Trap"
,
[
"xmat"
]
=
"AttachXyzMaterial"
,
[
"axmat"
]
=
"AttachXyzMaterial"
,
[
"rxmat"
]
=
"DetachXyzMaterial"
,
[
"rmxmat"
]
=
"DetachXyzMaterial"
,
[
"ms"
]
=
"MoveZone"
,
[
"dum"
]
=
"Dummy"
,
[
"self"
]
=
"Self"
,
[
"oppo"
]
=
"Opponent"
[
"des"
]
=
"Destroy"
,
[
"rdes"
]
=
"DestroyReplace"
,
[
"res"
]
=
"Tribute"
,
[
"rm"
]
=
"Banish"
,
[
"rmd"
]
=
"BanishFacedown"
,
[
"se"
]
=
"Search"
,
[
"th"
]
=
"Add2Hand"
,
[
"rth"
]
=
"Return2Hand"
,
[
"td"
]
=
"ShuffleIn2Deck"
,
[
"tdt"
]
=
"ShuffleIn2DeckTop"
,
[
"tdb"
]
=
"ShuffleIn2DeckBottom"
,
[
"ptdt"
]
=
"PlaceOnDeckTop"
,
[
"ptdb"
]
=
"PlaceOnDeckBottom"
,
[
"te"
]
=
"Return2Extra"
,
[
"tde"
]
=
"ShuffleIn2Deck/ExtraAsCost"
,
[
"pte"
]
=
"Add2ExtraFaceup"
,
[
"tg"
]
=
"Send2GY"
,
[
"rtg"
]
=
"Return2GY"
,
[
"dtg"
]
=
"Discard2GY"
,
[
"dish"
]
=
"Discard"
,
[
"dh"
]
=
"Discard"
,
[
"dishf"
]
=
"DiscardWithFilter"
,
[
"dhf"
]
=
"DiscardWithFilter"
,
[
"disd"
]
=
"SendDeckTop2GY"
,
[
"dd"
]
=
"SendDeckTop2GY"
,
[
"dr"
]
=
"Draw"
,
[
"dam"
]
=
"Damage"
,
[
"rec"
]
=
"GainLP"
,
[
"sum"
]
=
"NormalSummon"
,
[
"tk"
]
=
"Token"
,
[
"sp"
]
=
"SpecialSummon"
,
[
"cp"
]
=
"ChangePosition"
,
[
"pos"
]
=
"ChangePosition"
,
[
"upa"
]
=
"Change2AttackPosition"
,
[
"upd"
]
=
"Change2FaceupDefensePosition"
,
[
"dpd"
]
=
"Change2FacedownDefensePosition"
,
[
"posd"
]
=
"Change2DefensePosition"
,
[
"ctrl"
]
=
"ChangeControl"
,
[
"con"
]
=
"ChangeControl"
,
[
"sctrl"
]
=
"SwitchControl"
,
[
"dis"
]
=
"NegateEffect"
,
[
"diss"
]
=
"NegateSummon"
,
[
"neg"
]
=
"NegateActivation"
,
[
"eq"
]
=
"Equip"
,
[
"atk"
]
=
"ChangeATK"
,
[
"def"
]
=
"ChangeDEF"
,
[
"ct"
]
=
"PlaceCounter"
,
[
"pct"
]
=
"PlaceCounter"
,
[
"rmct"
]
=
"RemoveCounter"
,
[
"coin"
]
=
"TossCoin"
,
[
"dice"
]
=
"TossDice"
,
[
"an"
]
=
"AnnounceCard"
,
[
"lv"
]
=
"ChangLevel"
,
[
"fus"
]
=
"FusionSummon"
,
[
"ga"
]
=
"GYAction"
,
[
"gsp"
]
=
"SpecialSummonFromGY"
,
[
"lg"
]
=
"LeaveGY"
,
[
"cf"
]
=
"Look"
,
[
"rv"
]
=
"Reveal"
,
[
"rvep"
]
=
"RevealUntilEP"
,
[
"tf"
]
=
"PlaceOnField"
,
[
"act"
]
=
"ActivateCard"
,
[
"rf"
]
=
"Return2Field"
,
[
"rtf"
]
=
"Return2Field"
,
[
"ae"
]
=
"ApplyEffect"
,
[
"set"
]
=
"SetSpell/Trap"
,
[
"sset"
]
=
"SetSpell/Trap"
,
[
"xmat"
]
=
"AttachXyzMaterial"
,
[
"axmat"
]
=
"AttachXyzMaterial"
,
[
"rxmat"
]
=
"DetachXyzMaterial"
,
[
"rmxmat"
]
=
"DetachXyzMaterial"
,
[
"ms"
]
=
"MoveZone"
,
[
"dum"
]
=
"Dummy"
,
[
"self"
]
=
"Self"
,
[
"oppo"
]
=
"Opponent"
}
...
...
@@ -296,7 +297,7 @@ rsef.CreatEvent_Set = Scl.RaiseGlobalSetEvent
rsef
.
SetChainLimit
=
Scl
.
SetChainLimit
s
.
clone_list
=
{
[
"code"
]
=
"Code"
,
[
"desc"
]
=
"Description"
,
[
"flag"
]
=
"Property"
,
[
"cate"
]
=
"Category"
,
[
"code"
]
=
"Code"
,
[
"desc"
]
=
"Description"
,
[
"flag"
]
=
"Property"
,
[
"cate"
]
=
"Category"
,
[
"reset"
]
=
"Reset"
,
[
"type"
]
=
"Type"
,
[
"con"
]
=
"Condition"
,
[
"tg"
]
=
"Target"
,
[
"cost"
]
=
"Cost"
,
[
"op"
]
=
"Operation"
,
[
"value"
]
=
"Value"
,
[
"loc"
]
=
"Zone"
,
[
"tgrng"
]
=
"TargetRange"
}
...
...
@@ -316,21 +317,21 @@ rsef.QO_OPPONENT_TURN = Scl.CloneEffectAsQucikEffect
rsef
.
RegisterSolve
=
Scl
.
RegisterSolvePart
Effect
.
RegisterSolve
=
Scl
.
RegisterSolvePart
function
s
.
get_default_range
(
reg_obj
)
local
reg_range
local
reg_owner
,
reg_handler
=
Scl
.
GetRegisterInfo
(
reg_obj
)
if
aux
.
GetValueType
(
reg_handler
)
~=
"Card"
then
return
nil
end
--(TYPE_PENDULUM , LOCATION_PZONE must manual input)
local
type_list
=
{
TYPE_MONSTER
,
TYPE_FIELD
,
TYPE_SPELL
+
TYPE_TRAP
}
local
reg_obj
=
{
LOCATION_MZONE
,
LOCATION_FZONE
,
LOCATION_SZONE
}
for
idx
,
card_type
in
pairs
(
type_list
)
do
if
reg_handler
:
IsType
(
card_type
)
then
reg_range
=
reg_obj
[
idx
]
break
end
end
--after begain duel
--if Duel.GetTurnCount() > 0 then reg_range = reg_handler:GetLocation() end
return
reg_range
local
reg_range
local
reg_owner
,
reg_handler
=
Scl
.
GetRegisterInfo
(
reg_obj
)
if
aux
.
GetValueType
(
reg_handler
)
~=
"Card"
then
return
nil
end
--(TYPE_PENDULUM , LOCATION_PZONE must manual input)
local
type_list
=
{
TYPE_MONSTER
,
TYPE_FIELD
,
TYPE_SPELL
+
TYPE_TRAP
}
local
reg_obj
=
{
LOCATION_MZONE
,
LOCATION_FZONE
,
LOCATION_SZONE
}
for
idx
,
card_type
in
pairs
(
type_list
)
do
if
reg_handler
:
IsType
(
card_type
)
then
reg_range
=
reg_obj
[
idx
]
break
end
end
--after begain duel
--if Duel.GetTurnCount() > 0 then reg_range = reg_handler:GetLocation() end
return
reg_range
end
function
s
.
switch_old_string
(
desc_obj
,
ctgy
,
flag
,
buff_code
)
local
desc_obj2
=
type
(
desc_obj
)
==
"string"
and
s
.
ctgy_list
[
desc_obj
]
or
desc_obj
...
...
@@ -524,7 +525,7 @@ function rsef.FV_ExtraMaterial_Self(reg_obj, mat, val_obj, tg, tgrng_obj, con, r
elseif
mat
==
"link"
then
att
=
"ExtraLinkMaterial"
end
local
val_obj2
=
val_obj
or
{
function
(
e
,
c
,
mg
)
return
c
==
e
:
GetHandler
(),
true
end
}
local
val_obj2
=
val_obj
or
{
function
(
e
,
c
,
mg
)
return
c
==
e
:
GetHandler
(),
true
end
}
local
_
,
_
,
flag2
=
s
.
switch_old_string
(
0
,
0
,
flag
)
local
lim_obj2
=
s
.
switch_old_count_limit
(
lim_obj
)
return
Scl
.
CreateFieldBuffEffect
(
reg_obj
,
att
,
val_obj2
,
tg
,
tgrng_obj
,
LOCATION_EXTRA
,
con
,
rst_obj
,
desc_obj
,
lim_obj2
,
flag2
)
...
...
@@ -565,7 +566,7 @@ end
function
rsef
.
STO_Flip
(
reg_obj
,
desc_obj
,
lim_obj
,
ctgy
,
flag
,
con
,
cost
,
tg
,
op
,
rst_obj
)
local
desc_obj2
,
ctgy2
,
flag2
=
s
.
switch_old_string
(
desc_obj
,
ctgy
,
flag
)
local
lim_obj2
=
s
.
switch_old_count_limit
(
lim_obj
)
return
Scl
.
CreateFlipOptionalEffect
(
reg_obj
,
desc_obj2
,
lim_obj2
,
ctgy2
,
flag2
,
con
,
cost
,
tg
,
op
,
rst_obj
)
return
Scl
.
CreateFlipOptionalEffect
(
reg_obj
,
desc_obj2
,
lim_obj2
,
ctgy2
,
flag2
,
con
,
cost
,
tg
,
op
,
rst_obj
)
end
function
rsef
.
STF_Flip
(
reg_obj
,
desc_obj
,
lim_obj
,
ctgy
,
flag
,
con
,
cost
,
tg
,
op
,
rst_obj
)
local
desc_obj2
,
ctgy2
,
flag2
=
s
.
switch_old_string
(
desc_obj
,
ctgy
,
flag
)
...
...
@@ -633,7 +634,7 @@ function rsef.SC(reg_obj, code, desc_obj, lim_obj, flag, con, op, rst_obj)
return
Scl
.
CreateSingleTriggerContinousEffect
(
reg_obj
,
code
,
desc_obj
,
lim_obj2
,
flag2
,
con
,
op
,
rst_obj
)
end
function
rsef
.
SC_Easy
(
reg_obj
,
code
,
flag
,
con
,
op
,
reset_obj
)
return
rsef
.
SC
(
reg_obj
,
code
,
nil
,
nil
,
flag
,
con
,
op
,
reset_obj
)
return
rsef
.
SC
(
reg_obj
,
code
,
nil
,
nil
,
flag
,
con
,
op
,
reset_obj
)
end
function
rsef
.
SC_DestroyReplace
(
reg_obj
,
lim_obj
,
repfilter
,
tg
,
op
,
con
,
flag
,
rst_obj
)
local
_
,
_
,
flag2
=
s
.
switch_old_string
(
0
,
0
,
flag
)
...
...
@@ -725,26 +726,26 @@ rstg.token = scl.target_special_summon_token
rssf
.
CheckTokenSummonable
=
Scl
.
IsCanSpecialSummonToken
rssf
.
SpecialSummonToken
=
Scl
.
SpecialSummonToken
function
rstg
.
neg
(
dn_str
,
ex_tg
)
return
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
return
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
dn_str
=
dn_str
or
"dum"
local
dn_str2
=
s
.
ctgy_list
[
dn_str
]
local
c
=
e
:
GetHandler
()
local
rc
=
re
:
GetHandler
()
local
c
=
e
:
GetHandler
()
local
rc
=
re
:
GetHandler
()
ex_tg
=
ex_tg
or
aux
.
TRUE
if
chkc
then
return
ex_tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
end
if
chk
==
0
then
return
(
dn_str
~=
"rm"
or
aux
.
nbcon
(
tp
,
re
))
and
(
ex_tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
))
end
local
op_cate
=
Scl
.
Category_List
[
dn_str2
][
2
]
if
chkc
then
return
ex_tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
end
if
chk
==
0
then
return
(
dn_str
~=
"rm"
or
aux
.
nbcon
(
tp
,
re
))
and
(
ex_tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
))
end
local
op_cate
=
Scl
.
Category_List
[
dn_str2
][
2
]
local
ctgy_list
=
type
(
op_cate
)
==
"number"
and
{
op_cate
}
or
op_cate
if
#
ctgy_list
>
0
and
rc
:
IsRelateToEffect
(
re
)
then
if
#
ctgy_list
>
0
and
rc
:
IsRelateToEffect
(
re
)
then
local
res
=
Scl
.
OperateSelectedObjects
(
eg
,
dn_str2
,
REASON_EFFECT
,
0
,
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)()
if
res
then
for
ctgy
in
pairs
(
ctgy_list
)
do
Duel
.
SetOperationInfo
(
0
,
ctgy
,
eg
,
1
,
0
,
0
)
end
end
end
ex_tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
1
)
end
end
ex_tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
1
)
end
end
function
rsop
.
neg
(
dn_str
,
ex_op
)
return
function
(
...
)
...
...
@@ -760,11 +761,11 @@ function rsop.dis(dn_str, ex_op)
end
function
s
.
get_effect_array
(
checkfun
,
endfun
,
list_typ
,
a1
,
a2
,
a3
,
...
)
local
arr
=
{
}
if
type
(
a1
)
==
"table"
and
(
not
a2
or
(
type
(
a2
)
==
"table"
))
and
(
not
a3
or
type
(
a3
)
==
"table"
)
then
arr
=
{
a1
,
a2
,
a3
,
...
}
else
arr
=
{
{
a1
,
a2
,
a3
,
...
}
}
end
if
type
(
a1
)
==
"table"
and
(
not
a2
or
(
type
(
a2
)
==
"table"
))
and
(
not
a3
or
type
(
a3
)
==
"table"
)
then
arr
=
{
a1
,
a2
,
a3
,
...
}
else
arr
=
{
{
a1
,
a2
,
a3
,
...
}
}
end
local
cache_arr
=
Scl
.
CloneArray
(
arr
)
--boom nil
for
idx
,
arr2
in
pairs
(
arr
)
do
...
...
@@ -1048,31 +1049,31 @@ function rscon.excard2(...)
end
end
function
rscon
.
sumtolz
(
link_filter
,
sum_filter
)
return
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
zone
=
0
local
link_group
=
Group
.
CreateGroup
()
if
rsof
.
Check_Boolean
(
link_filter
)
then
link_group
=
rsgf
.
Mix2
(
c
)
else
link_group
=
Duel
.
GetMatchingGroup
(
link_filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
e
,
tp
,
eg
,
ep
,
ev
,
re
,
rp
)
end
for
tc
in
aux
.
Next
(
link_group
)
do
zone
=
zone
|
tc
:
GetLinkedZone
(
tp
)
end
return
eg
:
IsExists
(
rscon
.
sumtolz_filter
,
1
,
nil
,
zone
,
sum_filter
,
e
,
tp
,
eg
,
ep
,
ev
,
re
,
rp
)
end
return
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
zone
=
0
local
link_group
=
Group
.
CreateGroup
()
if
rsof
.
Check_Boolean
(
link_filter
)
then
link_group
=
rsgf
.
Mix2
(
c
)
else
link_group
=
Duel
.
GetMatchingGroup
(
link_filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
e
,
tp
,
eg
,
ep
,
ev
,
re
,
rp
)
end
for
tc
in
aux
.
Next
(
link_group
)
do
zone
=
zone
|
tc
:
GetLinkedZone
(
tp
)
end
return
eg
:
IsExists
(
rscon
.
sumtolz_filter
,
1
,
nil
,
zone
,
sum_filter
,
e
,
tp
,
eg
,
ep
,
ev
,
re
,
rp
)
end
end
function
rscon
.
sumtolz_filter
(
c
,
zone
,
sum_filter
,
e
,
tp
,
eg
,
ep
,
ev
,
re
,
rp
)
if
sum_filter
and
not
sum_filter
(
c
,
e
,
tp
,
eg
,
ep
,
ev
,
re
,
rp
)
then
return
false
end
local
seq
=
c
:
GetSequence
()
if
c
:
IsLocation
(
LOCATION_MZONE
)
then
if
c
:
IsControler
(
1
-
tp
)
then
seq
=
seq
+
16
end
else
seq
=
c
:
GetPreviousSequence
()
if
c
:
GetPreviousControler
()
==
1
-
tp
then
seq
=
seq
+
16
end
end
return
bit
.
extract
(
zone
,
seq
)
~=
0
if
sum_filter
and
not
sum_filter
(
c
,
e
,
tp
,
eg
,
ep
,
ev
,
re
,
rp
)
then
return
false
end
local
seq
=
c
:
GetSequence
()
if
c
:
IsLocation
(
LOCATION_MZONE
)
then
if
c
:
IsControler
(
1
-
tp
)
then
seq
=
seq
+
16
end
else
seq
=
c
:
GetPreviousSequence
()
if
c
:
GetPreviousControler
()
==
1
-
tp
then
seq
=
seq
+
16
end
end
return
bit
.
extract
(
zone
,
seq
)
~=
0
end
function
rsop
.
SelectExPara
(
a1
,
...
)
return
Scl
.
SetExtraSelectAndOperateParama
(
s
.
ctgy_list
[
a1
],
...
)
...
...
@@ -1107,15 +1108,15 @@ end
rsop
.
GetOperatedCorrectlyCount
=
Scl
.
GetCorrectlyOperatedCount
rsop
.
CheckOperateCorrectly
=
Scl
.
IsCorrectlyOperated
function
rsop
.
ToDeckDraw
(
dp
,
dct
,
is_break
,
check_count
)
local
res
,
ct
,
g
=
rsop
.
CheckOperateCorrectly
(
rsloc
.
de
,
check_count
)
if
not
res
then
return
0
end
if
g
:
IsExists
(
Card
.
IsLocation
,
1
,
nil
,
LOCATION_DECK
)
then
Duel
.
ShuffleDeck
(
dp
)
end
if
is_break
then
Duel
.
BreakEffect
()
end
return
Duel
.
Draw
(
dp
,
dct
,
REASON_EFFECT
)
local
res
,
ct
,
g
=
rsop
.
CheckOperateCorrectly
(
rsloc
.
de
,
check_count
)
if
not
res
then
return
0
end
if
g
:
IsExists
(
Card
.
IsLocation
,
1
,
nil
,
LOCATION_DECK
)
then
Duel
.
ShuffleDeck
(
dp
)
end
if
is_break
then
Duel
.
BreakEffect
()
end
return
Duel
.
Draw
(
dp
,
dct
,
REASON_EFFECT
)
end
rsop
.
SendtoHand
=
Scl
.
Send2Hand
function
rsop
.
MoveToField_Activate
(
tc
,
movep
,
targetp
,
zone
,
pos
,
enable
,
zone
)
...
...
@@ -1155,26 +1156,26 @@ function rscf.DefineCard(code, inside_series_str)
return
m
,
cm
end
function
rscf
.
DefineSet
(
setmeta
,
seriesstring
,
type_int
)
local
prefixlist1
=
{
""
,
"Fus"
,
"Link"
,
"Pre"
,
"Ori"
}
local
prefixlist1_fun
=
{
""
,
"Fusion"
,
"Link"
,
"Previous"
,
"Original"
}
local
prefixlist2
=
{
""
,
"M"
,
"S"
,
"T"
,
"ST"
}
local
prefixlist2_fun
=
{
nil
,
TYPE_MONSTER
,
TYPE_SPELL
,
TYPE_TRAP
,
TYPE_SPELL
+
TYPE_TRAP
}
local
suffixlist1
=
{
""
,
"_th"
,
"_tg"
,
"_td"
,
"_rm"
,
"_sp1"
,
"_sp2"
}
local
suffixlist1_fun
=
{
nil
,
Card
.
IsAbleToHand
,
Card
.
IsAbleToGrave
,
Card
.
IsAbleToDeck
,
Card
.
IsAbleToRemove
,
rscf
.
spfilter
(),
rscf
.
spfilter2
()
}
type_int
=
type_int
or
""
for
idx1
,
prefix1
in
pairs
(
prefixlist1
)
do
for
idx2
,
prefix2
in
pairs
(
prefixlist2
)
do
for
idx3
,
suffix1
in
pairs
(
suffixlist1
)
do
setmeta
[
"Is"
..
prefix1
..
"Set"
..
prefix2
..
type_int
..
suffix1
]
=
rscf
.
DefineSet_Fun
(
prefixlist1_fun
[
idx1
],
prefixlist2_fun
[
idx2
],
suffixlist1_fun
[
idx3
],
seriesstring
)
end
end
end
local
prefixlist1
=
{
""
,
"Fus"
,
"Link"
,
"Pre"
,
"Ori"
}
local
prefixlist1_fun
=
{
""
,
"Fusion"
,
"Link"
,
"Previous"
,
"Original"
}
local
prefixlist2
=
{
""
,
"M"
,
"S"
,
"T"
,
"ST"
}
local
prefixlist2_fun
=
{
nil
,
TYPE_MONSTER
,
TYPE_SPELL
,
TYPE_TRAP
,
TYPE_SPELL
+
TYPE_TRAP
}
local
suffixlist1
=
{
""
,
"_th"
,
"_tg"
,
"_td"
,
"_rm"
,
"_sp1"
,
"_sp2"
}
local
suffixlist1_fun
=
{
nil
,
Card
.
IsAbleToHand
,
Card
.
IsAbleToGrave
,
Card
.
IsAbleToDeck
,
Card
.
IsAbleToRemove
,
rscf
.
spfilter
(),
rscf
.
spfilter2
()
}
type_int
=
type_int
or
""
for
idx1
,
prefix1
in
pairs
(
prefixlist1
)
do
for
idx2
,
prefix2
in
pairs
(
prefixlist2
)
do
for
idx3
,
suffix1
in
pairs
(
suffixlist1
)
do
setmeta
[
"Is"
..
prefix1
..
"Set"
..
prefix2
..
type_int
..
suffix1
]
=
rscf
.
DefineSet_Fun
(
prefixlist1_fun
[
idx1
],
prefixlist2_fun
[
idx2
],
suffixlist1_fun
[
idx3
],
seriesstring
)
end
end
end
end
function
rscf
.
DefineSet_Fun
(
prefix1
,
prefix2
,
suffix1
,
seriesstring
)
return
function
(
c
,
...
)
return
rscf
[
"Check"
..
prefix1
..
"SetCard"
](
c
,
seriesstring
)
and
(
not
prefix2
or
c
:
IsType
(
prefix2
))
and
(
not
suffix1
or
suffix1
(
c
,
...
))
end
return
function
(
c
,
...
)
return
rscf
[
"Check"
..
prefix1
..
"SetCard"
](
c
,
seriesstring
)
and
(
not
prefix2
or
c
:
IsType
(
prefix2
))
and
(
not
suffix1
or
suffix1
(
c
,
...
))
end
end
function
s
.
get_quick_buff_new_arr
(
...
)
local
arr
=
{
...
}
...
...
@@ -1249,10 +1250,10 @@ rscf.IsDarkSynchro = Scl.IsDarkSynchro
rscf
.
IsDarkTuner
=
Scl
.
IsDarkTuner
rscf
.
DarkTuner
=
Scl
.
DarkTuner
function
rscf
.
fufilter
(
f
,
...
)
local
ext_paramms
=
{
...
}
return
function
(
target
)
return
f
(
target
,
table.unpack
(
ext_paramms
))
and
target
:
IsFaceup
()
end
local
ext_paramms
=
{
...
}
return
function
(
target
)
return
f
(
target
,
table.unpack
(
ext_paramms
))
and
target
:
IsFaceup
()
end
end
function
rscf
.
spfilter
(
f1
,
...
)
local
list
=
{
...
}
...
...
@@ -1524,200 +1525,200 @@ function rsgf.SelectOperate(sel_hint, g, sp, filter, minct, maxct, except_obj, s
end
function
rsef
.
INDESTRUCTABLE_List
(
inds_list
)
local
inds_list2
=
string.gsub
(
inds_list
,
"battle"
,
"indb"
)
inds_list2
=
string.gsub
(
inds_list2
,
"effect"
,
"inde"
)
inds_list2
=
string.gsub
(
inds_list2
,
"ct"
,
"indct"
)
inds_list2
=
string.gsub
(
inds_list2
,
"all"
,
"ind"
)
return
inds_list2
local
inds_list2
=
string.gsub
(
inds_list
,
"battle"
,
"indb"
)
inds_list2
=
string.gsub
(
inds_list2
,
"effect"
,
"inde"
)
inds_list2
=
string.gsub
(
inds_list2
,
"ct"
,
"indct"
)
inds_list2
=
string.gsub
(
inds_list2
,
"all"
,
"ind"
)
return
inds_list2
end
--Single Val Effect: Cannot destroed
function
rsef
.
SV_INDESTRUCTABLE
(
reg_list
,
inds_list
,
val_list
,
con
,
reset_list
,
flag
,
desc_list
,
lim_list
)
local
inds_list2
=
rsef
.
INDESTRUCTABLE_List
(
inds_list
)
return
rsef
.
SV_Card
(
reg_list
,
inds_list2
,
val_list
,
nil
,
flag
,
con
,
reset_list
,
desc_list
,
lim_list
)
local
inds_list2
=
rsef
.
INDESTRUCTABLE_List
(
inds_list
)
return
rsef
.
SV_Card
(
reg_list
,
inds_list2
,
val_list
,
nil
,
flag
,
con
,
reset_list
,
desc_list
,
lim_list
)
end
--Field Val Effect: Cannot destroed
function
rsef
.
FV_INDESTRUCTABLE
(
reg_list
,
inds_list
,
val_list
,
tg
,
tg_range_list
,
con
,
reset_list
,
flag
,
desc_list
)
local
inds_list2
=
rsef
.
INDESTRUCTABLE_List
(
inds_list
)
return
rsef
.
FV_Card
(
reg_list
,
inds_list2
,
val_list
,
tg
,
tg_range_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
,
lim_list
)
local
inds_list2
=
rsef
.
INDESTRUCTABLE_List
(
inds_list
)
return
rsef
.
FV_Card
(
reg_list
,
inds_list2
,
val_list
,
tg
,
tg_range_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
,
lim_list
)
end
--Single Val Effect: Immue effects
function
rsef
.
SV_IMMUNE_EFFECT
(
reg_list
,
val
,
con
,
reset_list
,
flag
,
desc_list
)
return
rsef
.
SV_Card
(
reg_list
,
"im"
,
val
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
return
rsef
.
SV_Card
(
reg_list
,
"im"
,
val
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
end
--Field Val Effect: Immue effects
function
rsef
.
FV_IMMUNE_EFFECT
(
reg_list
,
val
,
tg
,
tg_range_list
,
con
,
reset_list
,
flag
,
desc_list
)
return
rsef
.
FV_Card
(
reg_list
,
"im"
,
val
,
tg
,
tg_range_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
return
rsef
.
FV_Card
(
reg_list
,
"im"
,
val
,
tg
,
tg_range_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
end
--Single Val Effect: Directly set ATK & DEF
function
rsef
.
SV_SET
(
reg_list
,
set_list
,
val_list
,
con
,
reset_list
,
flag
,
desc_list
)
return
rsef
.
SV_Card
(
reg_list
,
set_list
,
val_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
return
rsef
.
SV_Card
(
reg_list
,
set_list
,
val_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
end
--Single Val Effect: Directly set other card attribute, except ATK & DEF
function
rsef
.
SV_CHANGE
(
reg_list
,
change_list
,
val_list
,
con
,
reset_list
,
flag
,
desc_list
)
return
rsef
.
SV_Card
(
reg_list
,
change_list
,
val_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
return
rsef
.
SV_Card
(
reg_list
,
change_list
,
val_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
end
--Field Val Effect: Directly set other card attribute, except ATK & DEF
function
rsef
.
FV_CHANGE
(
reg_list
,
change_list
,
val_list
,
tg
,
tg_range_list
,
con
,
reset_list
,
flag
,
desc_list
)
return
rsef
.
FV_Card
(
reg_list
,
change_list
,
val_list
,
tg
,
tg_range_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
return
rsef
.
FV_Card
(
reg_list
,
change_list
,
val_list
,
tg
,
tg_range_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
end
--Single Val Effect: Update attribute
function
rsef
.
SV_UPDATE
(
reg_list
,
up_list
,
val_list
,
con
,
reset_list
,
flag
,
desc_list
)
local
str_list
=
Scl
.
UniformSclParamaFormat
(
up_list
)
local
str_list
=
Scl
.
UniformSclParamaFormat
(
up_list
)
local
str
=
""
for
idx
,
string
in
pairs
(
str_list
)
do
for
idx
,
string
in
pairs
(
str_list
)
do
if
idx
>
1
then
str
=
str
..
","
end
str
=
str
..
string
..
"+"
end
return
rsef
.
SV_Card
(
reg_list
,
str
,
val_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
end
return
rsef
.
SV_Card
(
reg_list
,
str
,
val_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
end
--Field Val Effect: Updata some card attributes
function
rsef
.
FV_UPDATE
(
reg_list
,
up_list
,
val_list
,
tg
,
tg_range_list
,
con
,
reset_list
,
flag
,
desc_list
)
local
str_list
=
Scl
.
UniformSclParamaFormat
(
up_list
)
local
str_list
=
Scl
.
UniformSclParamaFormat
(
up_list
)
local
str
=
""
for
idx
,
string
in
pairs
(
str_list
)
do
for
idx
,
string
in
pairs
(
str_list
)
do
if
idx
>
1
then
str
=
str
..
","
end
str
=
str
..
string
..
"+"
end
return
rsef
.
FV_Card
(
reg_list
,
str
,
val_list
,
tg
,
tg_range_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
end
return
rsef
.
FV_Card
(
reg_list
,
str
,
val_list
,
tg
,
tg_range_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
end
--Single Val Effect: Add attribute
function
rsef
.
SV_ADD
(
reg_list
,
add_list
,
val_list
,
con
,
reset_list
,
flag
,
desc_list
)
return
rsef
.
SV_UPDATE
(
reg_list
,
add_list
,
val_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
return
rsef
.
SV_UPDATE
(
reg_list
,
add_list
,
val_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
end
--Field Val Effect: Directly set other card attribute, except ATK & DEF
function
rsef
.
FV_ADD
(
reg_list
,
add_list
,
val_list
,
tg
,
tg_range_list
,
con
,
reset_list
,
flag
,
desc_list
)
return
rsef
.
FV_UPDATE
(
reg_list
,
add_list
,
val_list
,
tg
,
tg_range_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
return
rsef
.
FV_UPDATE
(
reg_list
,
add_list
,
val_list
,
tg
,
tg_range_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
end
--Single Val Effect: Material lim_
function
rsef
.
SV_CANNOT_BE_MATERIAL
(
reg_list
,
mat_list
,
val_list
,
con
,
reset_list
,
flag
,
desc_list
)
local
flag2
=
rsef
.
GetRegisterProperty
(
nil
,
flag
)
flag2
=
flag2
|
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
local
str_list
=
Scl
.
UniformSclParamaFormat
(
mat_list
)
local
str_list2
=
{
}
local
string2
for
_
,
string
in
pairs
(
str_list
)
do
string2
=
string.sub
(
string
,
1
,
1
)
table.insert
(
str_list2
,
string2
..
"mat~"
)
end
return
rsef
.
SV_Card
(
reg_list
,
str_list2
,
val_list
,
flag2
,
nil
,
con
,
reset_list
,
desc_list
)
local
flag2
=
rsef
.
GetRegisterProperty
(
nil
,
flag
)
flag2
=
flag2
|
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
local
str_list
=
Scl
.
UniformSclParamaFormat
(
mat_list
)
local
str_list2
=
{
}
local
string2
for
_
,
string
in
pairs
(
str_list
)
do
string2
=
string.sub
(
string
,
1
,
1
)
table.insert
(
str_list2
,
string2
..
"mat~"
)
end
return
rsef
.
SV_Card
(
reg_list
,
str_list2
,
val_list
,
flag2
,
nil
,
con
,
reset_list
,
desc_list
)
end
--Single Val Effect: Cannot be battle or card effect target
function
rsef
.
SV_CANNOT_BE_TARGET
(
reg_list
,
tg_list
,
val_list
,
con
,
reset_list
,
flag
,
desc_list
)
local
tg_list2
=
string.gsub
(
tg_list
,
"battle"
,
"tgb~"
)
tg_list2
=
string.gsub
(
tg_list2
,
"effect"
,
"tge~"
)
return
rsef
.
SV_Card
(
reg_list
,
tg_list2
,
val_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
local
tg_list2
=
string.gsub
(
tg_list
,
"battle"
,
"tgb~"
)
tg_list2
=
string.gsub
(
tg_list2
,
"effect"
,
"tge~"
)
return
rsef
.
SV_Card
(
reg_list
,
tg_list2
,
val_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
end
--Field Val Effect: Cannot be battle or card effect target
function
rsef
.
FV_CANNOT_BE_TARGET
(
reg_list
,
tg_list
,
val_list
,
tg
,
tg_range_list
,
con
,
reset_list
,
flag
,
desc_list
)
local
tg_list2
=
string.gsub
(
tg_list
,
"battle"
,
"tgb~"
)
tg_list2
=
string.gsub
(
tg_list2
,
"effect"
,
"tge~"
)
return
rsef
.
FV_Card
(
reg_list
,
tg_list2
,
val_list
,
tg
,
tg_range_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
local
tg_list2
=
string.gsub
(
tg_list
,
"battle"
,
"tgb~"
)
tg_list2
=
string.gsub
(
tg_list2
,
"effect"
,
"tge~"
)
return
rsef
.
FV_Card
(
reg_list
,
tg_list2
,
val_list
,
tg
,
tg_range_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
end
--Cannot disable
function
rsef
.
CANNOT_DISABLE_List
(
dis_list
)
local
compare_list
=
{
[
"dise"
]
=
"dise~"
,
[
"dis"
]
=
"dis~"
,
[
"act"
]
=
"neg~"
,
[
"sum"
]
=
"dsum~"
,
[
"sp"
]
=
"dsp~"
,
[
"fp"
]
=
"dfp"
,
[
"neg"
]
=
"neg~"
}
local
dis_list2
=
Scl
.
SplitString
(
dis_list
,
","
)
local
dis_list3
=
""
for
_
,
str
in
pairs
(
dis_list2
)
do
dis_list3
=
dis_list3
..
compare_list
[
str
]
..
","
end
dis_list3
=
string.sub
(
dis_list3
,
1
,
-
2
)
return
dis_list3
local
compare_list
=
{
[
"dise"
]
=
"dise~"
,
[
"dis"
]
=
"dis~"
,
[
"act"
]
=
"neg~"
,
[
"sum"
]
=
"dsum~"
,
[
"sp"
]
=
"dsp~"
,
[
"fp"
]
=
"dfp"
,
[
"neg"
]
=
"neg~"
}
local
dis_list2
=
Scl
.
SplitString
(
dis_list
,
","
)
local
dis_list3
=
""
for
_
,
str
in
pairs
(
dis_list2
)
do
dis_list3
=
dis_list3
..
compare_list
[
str
]
..
","
end
dis_list3
=
string.sub
(
dis_list3
,
1
,
-
2
)
return
dis_list3
end
--Single Val Effect: Cannot disable
function
rsef
.
SV_CANNOT_DISABLE
(
reg_list
,
dis_list
,
val_list
,
con
,
reset_list
,
flag
,
desc_list
,
range
)
local
dis_list2
=
rsef
.
CANNOT_DISABLE_List
(
dis_list
)
return
rsef
.
SV_Card
(
reg_list
,
dis_list2
,
val_list
,
flag
,
range
,
con
,
reset_list
,
desc_list
)
local
dis_list2
=
rsef
.
CANNOT_DISABLE_List
(
dis_list
)
return
rsef
.
SV_Card
(
reg_list
,
dis_list2
,
val_list
,
flag
,
range
,
con
,
reset_list
,
desc_list
)
end
function
rsef
.
SV_CANNOT_DISABLE_val
(
e
,
ct
)
local
te
=
Duel
.
GetChainInfo
(
ct
,
CHAININFO_TRIGGERING_EFFECT
)
return
te
:
GetHandler
()
==
e
:
GetHandler
()
local
te
=
Duel
.
GetChainInfo
(
ct
,
CHAININFO_TRIGGERING_EFFECT
)
return
te
:
GetHandler
()
==
e
:
GetHandler
()
end
--Field Val Effect: Cannot Disable
function
rsef
.
FV_CANNOT_DISABLE
(
reg_list
,
dis_list
,
val_list
,
tg
,
tg_range_list
,
con
,
reset_list
,
flag
,
desc_list
)
local
dis_list2
=
rsef
.
CANNOT_DISABLE_List
(
dis_list
)
return
rsef
.
FV_Card
(
reg_list
,
dis_list2
,
val_list
,
tg
,
tg_range_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
local
dis_list2
=
rsef
.
CANNOT_DISABLE_List
(
dis_list
)
return
rsef
.
FV_Card
(
reg_list
,
dis_list2
,
val_list
,
tg
,
tg_range_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
end
--Limit List
function
rsef
.
LIMIT_List
(
lim_list
)
local
str_list
=
Scl
.
UniformSclParamaFormat
(
lim_list
)
local
str_list2
=
{
}
for
_
,
string
in
pairs
(
str_list
)
do
if
string
~=
"dis"
and
string
~=
"distm"
and
string
~=
"dise"
and
string
~=
"sbp"
and
string
~=
"sm1"
and
string
~=
"sm2"
and
string
~=
"sdp"
and
string
~=
"ssp"
then
string
=
string
..
"~"
end
string
=
string.gsub
(
string
,
"datk~"
,
"atkd~"
)
table.insert
(
str_list2
,
string
)
end
return
str_list2
local
str_list
=
Scl
.
UniformSclParamaFormat
(
lim_list
)
local
str_list2
=
{
}
for
_
,
string
in
pairs
(
str_list
)
do
if
string
~=
"dis"
and
string
~=
"distm"
and
string
~=
"dise"
and
string
~=
"sbp"
and
string
~=
"sm1"
and
string
~=
"sm2"
and
string
~=
"sdp"
and
string
~=
"ssp"
then
string
=
string
..
"~"
end
string
=
string.gsub
(
string
,
"datk~"
,
"atkd~"
)
table.insert
(
str_list2
,
string
)
end
return
str_list2
end
--Single Val Effect: Other Limit
function
rsef
.
SV_LIMIT
(
reg_list
,
lim_list
,
val_list
,
con
,
reset_list
,
flag
,
desc_list
)
local
str_list2
=
rsef
.
LIMIT_List
(
lim_list
)
return
rsef
.
SV_Card
(
reg_list
,
str_list2
,
val_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
local
str_list2
=
rsef
.
LIMIT_List
(
lim_list
)
return
rsef
.
SV_Card
(
reg_list
,
str_list2
,
val_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
end
--Field Val Effect: Other Limit
function
rsef
.
FV_LIMIT
(
reg_list
,
lim_list
,
val_list
,
tg
,
tg_range_list
,
con
,
reset_list
,
flag
,
desc_list
)
local
str_list2
=
rsef
.
LIMIT_List
(
lim_list
)
return
rsef
.
FV_Card
(
reg_list
,
str_list2
,
val_list
,
tg
,
tg_range_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
local
str_list2
=
rsef
.
LIMIT_List
(
lim_list
)
return
rsef
.
FV_Card
(
reg_list
,
str_list2
,
val_list
,
tg
,
tg_range_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
end
--Field Val Effect: Other Limit (affect Player)
function
rsef
.
FV_LIMIT_PLAYER
(
reg_list
,
lim_list
,
val_list
,
tg
,
tg_range_list
,
con
,
reset_list
,
flag
,
desc_list
)
local
str_list2
=
rsef
.
LIMIT_List
(
lim_list
)
return
rsef
.
FV_Player
(
reg_list
,
str_list2
,
val_list
,
tg
,
tg_range_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
local
str_list2
=
rsef
.
LIMIT_List
(
lim_list
)
return
rsef
.
FV_Player
(
reg_list
,
str_list2
,
val_list
,
tg
,
tg_range_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
end
--Leave field list
function
rsef
.
REDIRECT_LIST
(
leave_list
)
local
str_list
=
Scl
.
UniformSclParamaFormat
(
leave_list
)
local
str_list2
=
{
}
for
_
,
string
in
pairs
(
str_list
)
do
if
string
==
"leave"
then
table.insert
(
str_list2
,
"rlf"
)
else
table.insert
(
str_list2
,
"r"
..
string
)
end
end
return
str_list2
local
str_list
=
Scl
.
UniformSclParamaFormat
(
leave_list
)
local
str_list2
=
{
}
for
_
,
string
in
pairs
(
str_list
)
do
if
string
==
"leave"
then
table.insert
(
str_list2
,
"rlf"
)
else
table.insert
(
str_list2
,
"r"
..
string
)
end
end
return
str_list2
end
--Single Val Effect: Leave field redirect
function
rsef
.
SV_REDIRECT
(
reg_list
,
leave_list
,
val_list
,
con
,
reset_list
,
flag
,
desc_list
)
local
str_list2
=
rsef
.
REDIRECT_LIST
(
leave_list
)
return
rsef
.
SV_Card
(
reg_list
,
str_list2
,
val_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
local
str_list2
=
rsef
.
REDIRECT_LIST
(
leave_list
)
return
rsef
.
SV_Card
(
reg_list
,
str_list2
,
val_list
,
flag
,
nil
,
con
,
reset_list
,
desc_list
)
end
--Field Val Effect: Leave field redirect
function
rsef
.
FV_REDIRECT
(
reg_list
,
leave_list
,
val_list
,
tg
,
tg_range_list
,
con
,
reset_list
,
flag
,
desc_list
)
local
str_list2
=
rsef
.
REDIRECT_LIST
(
leave_list
)
local
flag2
=
rsef
.
GetRegisterProperty
(
nil
,
flag
)
|
(
EFFECT_FLAG_IGNORE_IMMUNE
+
EFFECT_FLAG_SET_AVAILABLE
)
if
tg_range_list
and
(
tg_range_list
[
1
]
==
0xff
and
tg_range_list
[
2
]
==
0xff
)
then
flag2
=
flag2
|
EFFECT_FLAG_IGNORE_RANGE
end
return
rsef
.
FV_Card
(
reg_list
,
str_list2
,
val_list
,
tg
,
tg_range_list
,
flag2
,
nil
,
con
,
reset_list
,
desc_list
)
local
str_list2
=
rsef
.
REDIRECT_LIST
(
leave_list
)
local
flag2
=
rsef
.
GetRegisterProperty
(
nil
,
flag
)
|
(
EFFECT_FLAG_IGNORE_IMMUNE
+
EFFECT_FLAG_SET_AVAILABLE
)
if
tg_range_list
and
(
tg_range_list
[
1
]
==
0xff
and
tg_range_list
[
2
]
==
0xff
)
then
flag2
=
flag2
|
EFFECT_FLAG_IGNORE_RANGE
end
return
rsef
.
FV_Card
(
reg_list
,
str_list2
,
val_list
,
tg
,
tg_range_list
,
flag2
,
nil
,
con
,
reset_list
,
desc_list
)
end
--Single Val Effect: Activate Trap / Quick Spell immediately
function
rsef
.
SV_ACTIVATE_IMMEDIATELY
(
reg_list
,
act_list
,
con
,
reset_list
,
flag
,
desc_list
)
local
act_list2
local
reg_owner
,
reg_handler
=
Scl
.
GetRegisterInfo
(
reg_list
)
if
reg_handler
:
IsComplexType
(
TYPE_QUICKPLAY
+
TYPE_SPELL
)
then
act_list2
=
string.gsub
(
act_list
,
"hand"
,
"qah"
)
act_list2
=
string.gsub
(
act_list2
,
"set"
,
"qas"
)
elseif
reg_handler
:
IsComplexType
(
TYPE_TRAP
)
then
act_list2
=
string.gsub
(
act_list
,
"hand"
,
"tah"
)
act_list2
=
string.gsub
(
act_list2
,
"set"
,
"tas"
)
end
return
rsef
.
SV_Card
(
reg_list
,
act_list2
,
1
,
flag
,
0xff
,
con
,
reset_list
,
desc_list
)
local
act_list2
local
reg_owner
,
reg_handler
=
Scl
.
GetRegisterInfo
(
reg_list
)
if
reg_handler
:
IsComplexType
(
TYPE_QUICKPLAY
+
TYPE_SPELL
)
then
act_list2
=
string.gsub
(
act_list
,
"hand"
,
"qah"
)
act_list2
=
string.gsub
(
act_list2
,
"set"
,
"qas"
)
elseif
reg_handler
:
IsComplexType
(
TYPE_TRAP
)
then
act_list2
=
string.gsub
(
act_list
,
"hand"
,
"tah"
)
act_list2
=
string.gsub
(
act_list2
,
"set"
,
"tas"
)
end
return
rsef
.
SV_Card
(
reg_list
,
act_list2
,
1
,
flag
,
0xff
,
con
,
reset_list
,
desc_list
)
end
--cost: tribute self
function
rscost
.
releaseself
(
check_mzone
,
check_exzone
)
return
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
c
:
IsReleasable
()
and
(
not
check_mzone
or
Duel
.
GetMZoneCount
(
tp
,
c
,
tp
)
>
0
)
and
(
not
check_exzone
or
Duel
.
GetLocationCountFromEx
(
tp
,
tp
,
c
,
exmzone
)
>
0
)
end
Duel
.
Release
(
c
,
REASON_COST
)
end
return
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
c
:
IsReleasable
()
and
(
not
check_mzone
or
Duel
.
GetMZoneCount
(
tp
,
c
,
tp
)
>
0
)
and
(
not
check_exzone
or
Duel
.
GetLocationCountFromEx
(
tp
,
tp
,
c
,
exmzone
)
>
0
)
end
Duel
.
Release
(
c
,
REASON_COST
)
end
end
rsof
.
Table_List
=
Scl
.
IsArrayContains_Single
\ No newline at end of file
expansions/script/c95101141.lua
View file @
08a50bb2
...
...
@@ -13,6 +13,7 @@ function c95101141.initial_effect(c)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e1
:
SetCountLimit
(
1
,
95101141
+
EFFECT_COUNT_CODE_OATH
)
e1
:
SetCondition
(
c95101141
.
condition
)
e1
:
SetTarget
(
c95101141
.
target
)
e1
:
SetOperation
(
c95101141
.
activate
)
c
:
RegisterEffect
(
e1
)
...
...
@@ -23,6 +24,9 @@ end
function
c95101141
.
handcon
(
e
)
return
Duel
.
IsExistingMatchingCard
(
Card
.
IsSummonLocation
,
e
:
GetHandlerPlayer
(),
0
,
LOCATION_MZONE
,
1
,
nil
,
LOCATION_EXTRA
)
end
function
c95101141
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
eg
:
IsExists
(
Card
.
IsSummonPlayer
,
1
,
nil
,
1
-
tp
)
end
function
c95101141
.
thfilter
(
c
,
chk
)
return
c
:
IsSetCard
(
0xbbe
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsAbleToHand
()
and
(
chk
==
0
or
aux
.
NecroValleyFilter
()(
c
))
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