Commit dfa991ea authored by whenmo's avatar whenmo Committed by GitHub

Update README.md

parent f9465e6e
...@@ -8,14 +8,15 @@ ...@@ -8,14 +8,15 @@
<summary>目录(单击展开)</summary> <summary>目录(单击展开)</summary>
1. [默认脚本](#默认白板卡片脚本即默认脚本) 1. [默认脚本](#默认白板卡片脚本即默认脚本)
3. [关于vgd的效果分类](#关于vgd的效果分类) 2. [关于vgd的效果分类](#关于vgd的效果分类)
4. [删除 PonderTag 内的的关联物品](#其三-去芜存菁) 3. [效果注册范例](#效果注册范例)
5. [删除已有的 PonderTag](#其四-一扫而空) 4. [基础常量介绍](#typecodeproperty都具体有啥)
6. [机械动力自带的 PonderTag](#其五-承上启下) 5. [函数库详解](#函数库详解)
1. [VgD函数](#VgD函数)
</details> </details>
## 默认白板卡片脚本(即默认脚本) # 默认白板卡片脚本(即默认脚本)
```lua ```lua
local cm,m,o=GetID() local cm,m,o=GetID()
...@@ -31,7 +32,7 @@ ...@@ -31,7 +32,7 @@
--代码 --代码
end end
``` ```
## 关于vgd的效果分类 # 关于vgd的效果分类
vg常见的效果类型 vg常见的效果类型
- **【起】启动效果** - **【起】启动效果**
- 这就是最基本的手动开启的效果(类似游戏王里的茉莉②效果那样的主动效果) - 这就是最基本的手动开启的效果(类似游戏王里的茉莉②效果那样的主动效果)
...@@ -41,3 +42,63 @@ vg常见的效果类型 ...@@ -41,3 +42,63 @@ vg常见的效果类型
- 类似于游戏王里肿头龙的持续类效果 - 类似于游戏王里肿头龙的持续类效果
- **以及指令能力** - **以及指令能力**
- 等价于游戏王中的魔法卡的发动 - 等价于游戏王中的魔法卡的发动
**==vg的效果是允许空发的,所以vgdpro的脚本大多不需要为效果注册Target函数(后面会提到)==**
# 效果注册范例
那既然现在知道了有哪些种类的效果,就可以开始介绍如何给卡片增加对应的效果了
比如我们这里要给某一张卡写一个效果
> 【自】:这个单位被RIDE时,你是后攻的话,抽1张卡。
```lua
--默认内容
local cm,m,o=GetID()
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.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行的内容
end
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
```
而函数里传入的e,tp,eg,ep,ev,re,r,rp分别是
- `e`:
- `tp`:当前回合玩家的编号()
# type、code、property都具体有啥
那我怎么知道这些常量的具体意义呢?可以直接在编辑器里鼠标悬停在这些常量上查看所有常量
![image](https://i.postimg.cc/GmFVmkpB/Clip-2024-04-09-11-11-23.png)
# 函数库详解
## VgD函数
- VgD.SpellActivate(c,m,operation,condition,code,num1,num2,num3,num4,num5)
- 因为魔合成的不向下兼容而生的函数,用于通常指令的注册,如效果:==通过【费用】[计数爆发1]施放!选择你的1个单位,这个回合中,力量+5000。选择你的弃牌区中的1张「瓦尔里纳」,加入手牌==
- `c`:
- `m`:
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment