Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
V
Vgdpro 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
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
xiaoye
Vgdpro Scripts
Commits
c3aed578
Commit
c3aed578
authored
Feb 21, 2025
by
xiaoye
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
562c5fa2
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
62 additions
and
48 deletions
+62
-48
c10402001.lua
c10402001.lua
+2
-13
vgd.lua
vgd.lua
+38
-3
vgdefinition.lua
vgdefinition.lua
+13
-31
vgfuncLib.lua
vgfuncLib.lua
+9
-1
No files found.
c10402001.lua
View file @
c3aed578
local
cm
,
m
,
o
=
GetID
()
local
cm
,
m
,
o
=
GetID
()
function
cm
.
initial_effect
(
c
)
function
cm
.
initial_effect
(
c
)
vgd
.
VgCard
(
c
)
vgd
.
VgCard
(
c
)
cm
.
is_has_continuous
=
true
vgd
.
CannotCallToGZoneWhenAttack
(
c
,
m
,
function
(
e
,
re
,
tp
)
local
e1
=
Effect
.
CreateEffect
(
c
)
return
re
:
GetHandler
():
IsLocation
(
LOCATION_HAND
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e1
:
SetCode
(
EFFECT_CANNOT_ACTIVATE
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetTargetRange
(
0
,
1
)
e1
:
SetValue
(
function
(
e
,
re
,
tp
)
return
re
:
IsHasCategory
(
CATEGORY_DEFENDER
)
and
re
:
GetHandler
():
IsLocation
(
LOCATION_HAND
)
end
)
end
)
e1
:
SetCondition
(
function
(
e
)
return
Duel
.
GetAttacker
()
==
e
:
GetHandler
()
and
vgf
.
RMonsterFilter
(
Duel
.
GetAttackTarget
())
end
)
c
:
RegisterEffect
(
e1
)
vgd
.
EffectTypeTriggerWhenHitting
(
c
,
m
,
LOCATION_MZONE
,
EFFECT_TYPE_SINGLE
,
cm
.
op
,
cm
.
cost
,
nil
,
nil
,
1
)
vgd
.
EffectTypeTriggerWhenHitting
(
c
,
m
,
LOCATION_MZONE
,
EFFECT_TYPE_SINGLE
,
cm
.
op
,
cm
.
cost
,
nil
,
nil
,
1
)
end
end
function
cm
.
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
...
...
vgd.lua
View file @
c3aed578
...
@@ -260,8 +260,8 @@ function VgD.RideUpOperation(e, tp, eg, ep, ev, re, r, rp)
...
@@ -260,8 +260,8 @@ function VgD.RideUpOperation(e, tp, eg, ep, ev, re, r, rp)
sc
:
SetMaterial
(
Group
.
FromCards
(
rc
))
sc
:
SetMaterial
(
Group
.
FromCards
(
rc
))
VgF
.
Sendto
(
LOCATION_OVERLAY
,
Group
.
FromCards
(
rc
),
sc
)
VgF
.
Sendto
(
LOCATION_OVERLAY
,
Group
.
FromCards
(
rc
),
sc
)
VgF
.
Sendto
(
LOCATION_MZONE
,
sc
,
SUMMON_TYPE_RIDE
,
tp
,
0x20
)
VgF
.
Sendto
(
LOCATION_MZONE
,
sc
,
SUMMON_TYPE_RIDE
,
tp
,
0x20
)
if
VgF
.
IsExistingMatchingCard
(
Card
.
IsType
,
tp
,
LOCATION_RIDE
,
0
,
1
,
nil
,
TYPE_EMBLEM
)
then
if
VgF
.
IsExistingMatchingCard
(
Card
.
IsType
,
tp
,
LOCATION_RIDE
,
0
,
1
,
nil
,
TYPE_
RIDE_
EMBLEM
)
then
local
tc
=
Duel
.
GetMatchingGroup
(
Card
.
IsType
,
tp
,
LOCATION_RIDE
,
0
,
nil
,
TYPE_EMBLEM
):
GetFirst
()
local
tc
=
Duel
.
GetMatchingGroup
(
Card
.
IsType
,
tp
,
LOCATION_RIDE
,
0
,
nil
,
TYPE_
RIDE_
EMBLEM
):
GetFirst
()
VgF
.
Sendto
(
LOCATION_EMBLEM
,
tc
,
tp
,
POS_FACEUP_DEFENSE
,
REASON_EFFECT
)
VgF
.
Sendto
(
LOCATION_EMBLEM
,
tc
,
tp
,
POS_FACEUP_DEFENSE
,
REASON_EFFECT
)
end
end
elseif
sel
==
0
or
(
sel
==
1
and
a
and
b
)
then
elseif
sel
==
0
or
(
sel
==
1
and
a
and
b
)
then
...
@@ -1670,7 +1670,7 @@ end
...
@@ -1670,7 +1670,7 @@ end
---@param con function|nil 这个效果的条件函数
---@param con function|nil 这个效果的条件函数
---@param reset number|nil 效果的重置条件
---@param reset number|nil 效果的重置条件
---@param hc Card|nil 效果的拥有者, 没有则为 c
---@param hc Card|nil 效果的拥有者, 没有则为 c
---@return Effect 这个效果
---@return Effect
|nil
这个效果
function
VgD
.
TriggerCountUp
(
c
,
m
,
num
,
con
,
reset
,
hc
)
function
VgD
.
TriggerCountUp
(
c
,
m
,
num
,
con
,
reset
,
hc
)
-- check func
-- check func
if
VgF
.
IllegalFunctionCheck
(
"TriggerCountUp"
,
c
).
con
(
con
)
then
return
end
if
VgF
.
IllegalFunctionCheck
(
"TriggerCountUp"
,
c
).
con
(
con
)
then
return
end
...
@@ -1744,6 +1744,41 @@ function VgD.CannotBeTarget(c, m, loc, typ, val, con, tg, loc_self)
...
@@ -1744,6 +1744,41 @@ function VgD.CannotBeTarget(c, m, loc, typ, val, con, tg, loc_self)
c
:
RegisterEffect
(
e
)
c
:
RegisterEffect
(
e
)
return
e
return
e
end
end
---【永】Card c 攻击的战斗中,对手不能将符合函数f的卡CALL到G上。
---@param c Card 效果的创建者
---@param m number|nil 效果的创建者的卡号
---@param val function|nil 这个效果的目标函数
---@param condition function|nil 这个效果的条件函数
---@param reset number|nil 效果的重置条件
---@param hc Card|nil 效果的拥有者, 没有则为 c
---@return Effect|nil 这个效果
function
VgD
.
CannotCallToGZoneWhenAttack
(
c
,
m
,
val
,
condition
,
reset
,
hc
)
-- set param
local
cm
=
_G
[
"c"
..
(
m
or
c
:
GetOriginalCode
())]
cm
.
is_has_continuous
=
cm
.
is_has_continuous
or
not
reset
hc
=
hc
and
VgF
.
ReturnCard
(
hc
)
or
c
val
=
val
or
function
(
e
,
re
,
rp
)
return
VgF
.
True
()
end
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e1
:
SetCode
(
EFFECT_CANNOT_ACTIVATE
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetTargetRange
(
0
,
1
)
e1
:
SetValue
(
function
(
e
,
re
,
tp
)
return
re
:
IsHasCategory
(
CATEGORY_DEFENDER
)
and
val
(
e
,
re
,
tp
)
end
)
e1
:
SetCondition
(
function
(
e
)
return
Duel
.
GetAttacker
()
==
e
:
GetHandler
()
and
(
not
condition
or
condition
(
e
,
e
:
GetHandler
()))
end
)
if
reset
then
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
reset
)
end
hc
:
RegisterEffect
(
e1
)
return
e1
end
---【永】【指令区】:你的指令区中没有世界卡以外的设置指令卡的话,根据你的指令区中的卡的张数生效以下全部的效果。
---【永】【指令区】:你的指令区中没有世界卡以外的设置指令卡的话,根据你的指令区中的卡的张数生效以下全部的效果。
---●1张——你的世界卡的内容变为黑夜。
---●1张——你的世界卡的内容变为黑夜。
...
...
vgdefinition.lua
View file @
c3aed578
...
@@ -56,36 +56,18 @@ POS_ATTACK = 0x3 --攻击表示
...
@@ -56,36 +56,18 @@ POS_ATTACK = 0x3 --攻击表示
POS_DEFENSE
=
0xc
--守备表示
POS_DEFENSE
=
0xc
--守备表示
NO_FLIP_EFFECT
=
0x10000
--不发动反转效果
NO_FLIP_EFFECT
=
0x10000
--不发动反转效果
--Types 卡片类型
--Types 卡片类型
TYPE_MONSTER
=
0x1
--怪兽卡
TYPE_MONSTER
=
0x1
--单位卡
TYPE_SPELL
=
0x2
--魔法卡
TYPE_SPELL
=
0x2
--指令卡
TYPE_TRAP
=
0x4
--陷阱卡
TYPE_TRAP
=
0x4
--标记
TYPE_NORMAL
=
0x10
--通常怪兽
TYPE_NORMAL
=
0x20
--普通
TYPE_EFFECT
=
0x20
--效果
TYPE_TRIIGER
=
0x80
--触发
TYPE_FUSION
=
0x40
--融合
TYPE_G
=
0x200
--G
TYPE_RITUAL
=
0x80
--仪式
TYPE_TOKEN
=
0x4000
--衍生
TYPE_TRAPMONSTER
=
0x100
--陷阱怪兽
TYPE_QUICKPLAY
=
0x10000
--闪现
TYPE_SPIRIT
=
0x200
--灵魂
TYPE_CONTINUOUS
=
0x20000
--设置
TYPE_UNION
=
0x400
--同盟
TYPE_EMBLEM
=
0x100000
--纹章
TYPE_DUAL
=
0x800
--二重
TYPE_RIDE_EMBLEM
=
0x100044
--RIDE卡组纹章
TYPE_TUNER
=
0x1000
--调整
TYPE_SYNCHRO
=
0x2000
--同调
TYPE_TOKEN
=
0x4000
--衍生物
TYPE_QUICKPLAY
=
0x10000
--速攻
TYPE_CONTINUOUS
=
0x20000
--永续
TYPE_EQUIP
=
0x40000
--装备
TYPE_FIELD
=
0x80000
--场地
TYPE_COUNTER
=
0x100000
--反击
TYPE_FLIP
=
0x200000
--翻转
TYPE_TOON
=
0x400000
--卡通
TYPE_XYZ
=
0x800000
--超量
TYPE_PENDULUM
=
0x1000000
--灵摆
TYPE_SPSUMMON
=
0x2000000
--特殊召唤
TYPE_LINK
=
0x4000000
--连接
--组合类型
TYPES_TOKEN_MONSTER
=
0x4011
TYPES_NORMAL_TRAP_MONSTER
=
0x111
TYPES_EFFECT_TRAP_MONSTER
=
0x121
TYPE_EMBLEM
=
TYPE_TRAP
+
TYPE_COUNTER
+
TYPE_FUSION
--技能 --属性
--技能 --属性
SKILL_ALL
=
0x7f
--All
SKILL_ALL
=
0x7f
--All
SKILL_NONE
=
0x01
--无
SKILL_NONE
=
0x01
--无
...
@@ -106,7 +88,7 @@ TRIGGER_SUPER = 0x20 --超限触发
...
@@ -106,7 +88,7 @@ TRIGGER_SUPER = 0x20 --超限触发
--组合类型
--组合类型
TRIGGER_CARDS
=
0x3e
--触发单位卡
TRIGGER_CARDS
=
0x3e
--触发单位卡
--Category 效果分类
--Category 效果分类
CATEGORY_DEFENDER
=
0x1
--
守护者
CATEGORY_DEFENDER
=
0x1
--
防御
--Reason 卡片到当前位置的原因
--Reason 卡片到当前位置的原因
REASON_DESTROY
=
0x1
--破坏
REASON_DESTROY
=
0x1
--破坏
REASON_RELEASE
=
0x2
--解放
REASON_RELEASE
=
0x2
--解放
...
...
vgfuncLib.lua
View file @
c3aed578
...
@@ -734,7 +734,7 @@ function VgF.IsCanBeCalled(c, e, tp, sumtype, pos, zone)
...
@@ -734,7 +734,7 @@ function VgF.IsCanBeCalled(c, e, tp, sumtype, pos, zone)
if
VgF
.
GetValueType
(
pos
)
~=
"number"
then
pos
=
POS_FACEUP_ATTACK
end
if
VgF
.
GetValueType
(
pos
)
~=
"number"
then
pos
=
POS_FACEUP_ATTACK
end
if
VgF
.
GetValueType
(
zone
)
==
"string"
and
zone
==
"FromOverlayToV"
then
if
VgF
.
GetValueType
(
zone
)
==
"string"
and
zone
==
"FromOverlayToV"
then
local
_
,
code
=
c
:
GetOriginalCode
()
local
_
,
code
=
c
:
GetOriginalCode
()
return
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
code
,
nil
,
TYPE_MONSTER
+
TYPE_
EFFECT
,
c
:
GetBaseAttack
(),
c
:
GetBaseDefense
(),
c
:
GetOriginalLevel
(),
c
:
GetOriginalRace
(),
c
:
GetOriginalAttribute
())
return
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
code
,
nil
,
TYPE_MONSTER
+
TYPE_
NORMAL
,
c
:
GetBaseAttack
(),
c
:
GetBaseDefense
(),
c
:
GetOriginalLevel
(),
c
:
GetOriginalRace
(),
c
:
GetOriginalAttribute
())
end
end
return
z
>
0
and
c
:
IsCanBeSpecialSummoned
(
e
,
sumtype
,
tp
,
false
,
false
,
pos
,
tp
,
zone
)
return
z
>
0
and
c
:
IsCanBeSpecialSummoned
(
e
,
sumtype
,
tp
,
false
,
false
,
pos
,
tp
,
zone
)
end
end
...
@@ -815,6 +815,14 @@ function VgF.CardsFromTo(reason ,loc_to, loc_from, f, int_max, int_min, ...)
...
@@ -815,6 +815,14 @@ function VgF.CardsFromTo(reason ,loc_to, loc_from, f, int_max, int_min, ...)
return
0
return
0
end
end
end
end
function
Group
.
ForEach
(
g
,
f
,
...
)
local
ext_params
=
{
...
}
for
c
in
VgF
.
Next
(
g
)
do
f
(
c
,
table.unpack
(
ext_params
))
end
end
function
Group
.
CheckSubGroup
(
g
,
f
,
min
,
max
,
...
)
function
Group
.
CheckSubGroup
(
g
,
f
,
min
,
max
,
...
)
min
=
min
or
1
min
=
min
or
1
max
=
max
or
#
g
max
=
max
or
#
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