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
289609d5
Commit
289609d5
authored
Apr 09, 2024
by
I-linmeng-I
Committed by
GitHub
Apr 09, 2024
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1 from whenmo/main
updata readme
parents
d6829db6
c162db28
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
106 additions
and
29 deletions
+106
-29
README.md
README.md
+106
-29
No files found.
README.md
View file @
289609d5
# vgdpro的卡片脚本编写文档
本游戏的脚本基于lua。使用自定义库:
`VgD.lua`
,
`VgDefinition.Lua`
,
`VgFuncLib.lua`
来涵括大部分需要的内容。
> 本游戏的脚本基于lua。使用自定义库: [VgD](VgD.Lua), [VgDefinition](VgDefinition.Lua), [VgFuncLib](VgFuncLib.Lua) 来涵括大部分需要的内容。
大家写脚本基本只需要一些基础的逻辑整理和调用对应的库就能完成编写。以下是一些最基础的教程
如果还有不懂可以加群:721095458
## 默认白板卡片脚本(即默认脚本)
<details>
<summary>
目录(单击展开)
</summary>
1.
[
默认脚本
](
#默认白板卡片脚本即默认脚本
)
2.
[
关于vgd的效果分类
](
#关于vgd的效果分类
)
3.
[
效果注册范例
](
#效果注册范例
)
4.
[
基础常量介绍
](
#typecodeproperty都具体有啥
)
5.
[
VgD函数库详解
](
#vgd函数库详解
)
1.
[
指令卡cost
](
#1指令卡cost
)
.
2.
[
被RIDE时
](
#2被ride时
)
.
</details>
# 默认白板卡片脚本(即默认脚本)
```
lua
local
cm
,
m
,
o
=
GetID
()
...
...
@@ -19,8 +36,9 @@
--代码
end
```
## 关于vgd的效果分类以及增加效果
### vg常见的效果类型
# 关于vgd的效果分类
vg常见的效果类型
-
**【起】启动效果**
-
这就是最基本的手动开启的效果(类似游戏王里的茉莉②效果那样的主动效果)
-
**【自】诱发效果**
...
...
@@ -30,12 +48,14 @@
-
**以及指令能力**
-
等价于游戏王中的魔法卡的发动
**==vg的效果是允许空发的,所以vgdpro的脚本大多不需要为效果注册Target函数(后面会提到)==**
### 如何给卡片注册效果
> **vg的效果是允许空发的,所以vgdpro的脚本大多不需要为效果注册Target函数(后面会提到)**
# 效果注册范例
那既然现在知道了有哪些种类的效果,就可以开始介绍如何给卡片增加对应的效果了
比如我们这里要给某一张卡写一个效果
>
【自】:这个单位被RIDE时,你是后攻的话,抽1张卡。
>
**【自】:这个单位被RIDE时,你是后攻的话,抽1张卡。**
```
lua
...
...
@@ -45,45 +65,102 @@ function cm.initial_effect(c)
vgf
.
VgCard
(
c
)
--在这之后加入需要注册的效果
local
e1
=
Effect
.
CreateEffect
(
c
)
--创建一个效果
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
--效果的类型
e1
:
SetCode
(
EVENT_BE_MATERIAL
)
--什么情况下会发动这个效果
e1
:
SetProperty
(
EFFECT_FLAG_EVENT_PLAYER
)
--我也不懂这是干啥的
e1
:
SetCondition
(
cm
.
condition
)
--效果的条件
e1
:
SetOperation
(
cm
.
operation
)
--效果的具体内容
c
:
RegisterEffect
(
e1
)
--把这个效果绑定到这张卡
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
--效果的具体内容
Duel
.
Draw
(
tp
,
1
,
REASON_EFFECT
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
--效果的类型
e1
:
SetCode
(
EVENT_BE_MATERIAL
)
--什么情况下会发动这个效果
e1
:
SetProperty
(
EFFECT_FLAG_EVENT_PLAYER
)
--我也不懂这是干啥的
e1
:
SetCondition
(
cm
.
condition
)
--效果的条件
e1
:
SetOperation
(
cm
.
operation
)
--效果的内容
c
:
RegisterEffect
(
e1
)
--把这个效果绑定到这张卡
end
function
cm
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
--效果的条件
--效果的条件
function
cm
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
tp
==
1
and
Duel
.
GetTurnPlayer
()
==
tp
end
--效果的内容
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Draw
(
tp
,
1
,
REASON_EFFECT
)
end
```
但是就如我们之前所说。我们使用自定义库涵括了大部分需要的内容,所以这个效果也可以直接简写成这样:
但是就如我们之前所说。我们使用自定义库涵括了大部分需要的内容, 所以这个效果也可以直接简写成这样:
```
lua
--默认内容
local
cm
,
m
,
o
=
GetID
()
function
cm
.
initial_effect
(
c
)
vgf
.
VgCard
(
c
)
vgd
.
BeRidedByCard
(
c
,
m
,
nil
,
cm
.
operation
,
nil
,
cm
.
condition
)
--只要这一句就完成了上面7行的内容
vgd
.
BeRidedByCard
(
c
,
m
,
nil
,
cm
.
operation
,
nil
,
cm
.
condition
)
--只要这一句就完成了上面7行的内容
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
--效果的具体内容
Duel
.
Draw
(
tp
,
1
,
REASON_EFFECT
)
--效果的条件
function
cm
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
tp
==
1
and
Duel
.
GetTurnPlayer
()
==
tp
end
function
cm
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
--效果的条件
return
tp
==
1
and
Duel
.
GetTurnPlayer
()
==
tp
--效果的内容
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Draw
(
tp
,
1
,
REASON_EFFECT
)
end
```
而函数里传入的e,tp,eg,ep,ev,re,r,rp分别是
-
`e`
:
-
`tp`
:当前回合玩家的编号()
## type、code、property都具体有啥
# type、code、property都具体有啥
那我怎么知道这些常量的具体意义呢?可以直接在编辑器里鼠标悬停在这些常量上查看所有常量
!
[
image
](
https://i.postimg.cc/GmFVmkpB/Clip-2024-04-09-11-11-23.png
)
## 目前所有的函数库
-
VgD.SpellActivate(c,m,operation,condition,code,num1,num2,num3,num4,num5)
-
因为魔合成的不向下兼容而生的函数,用于通常指令的注册,如效果:==通过【费用】[计数爆发1]施放!选择你的1个单位,这个回合中,力量+5000。选择你的弃牌区中的1张「瓦尔里纳」,加入手牌==
-
`c`
:
-
`m`
:
# VgD函数库详解
> **函数的参数若位于 `[ ]` 则为可选参数(即可不填)**
常用参数解析
> **c : 注册这个效果的卡**
>
> **m : 这张卡的卡号**
>
> **con : 效果的条件**
>
> **op : 效果的内容**
## 1.指令卡cost
因为魔合成的不向下兼容而生的函数, 用于通常指令的注册, 如效果:
> **通过【费用】[计数爆发1]施放!选择你的1个单位, 这个回合中, 力量+5000。选择你的弃牌区中的1张「瓦尔里纳」, 加入手牌**
```
lua
VgD
.
SpellActivate
(
c
,
m
,
op
,
con
[,
cost
,
dis
,
eb
,
sb
,
sc
,
cb
])
```
参数注释
> **cost : 特殊的费用标识(填写卡号否则为0, 适用于存在以下参数不适用的费用) 不填默认为 nil**
>
> **dis : 将手牌中的x张卡舍弃 不填默认为 0**
>
> **eb : 能量爆发x (Energy Blast) 不填默认为 0**
>
> **sb : 灵魂爆发x (Soul Blast) 不填默认为 0**
>
> **sc : 灵魂填充x (Soul Charge) 不填默认为 0**
>
> **cb : 计数爆发x (Counter Blast) 不填默认为 0**
## 2.被RIDE时
用于如以下效果的注册
> **这个单位被RIDE时, xxxx**
```
lua
VgD
.
BeRidedByCard
(
c
,
m
[,
code
,
op
,
cost
,
con
,
tg
])
```
参数注释
> **code : 被指定卡 RIDE 的情况下填写对应卡号, 否则填0**
>
> **cost : 效果的费用**
>
> **tg : 效果的预处理对象函数**
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