游戏王残局简化版

Check-in [d1652d7fa4]
Login

Check-in [d1652d7fa4]

Overview
Comment:
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: d1652d7fa47f67c5740224246b32eb29ee9570e770cbdaa1388a377ed80f1e34
User & Date: 顽雨沉风 on 2024-02-13 14:53:10
Other Links: manifest | tags
Context
2024-02-13
14:57
check-in: 719cb47a61 user: 顽雨沉风 tags: trunk
14:53
check-in: d1652d7fa4 user: 顽雨沉风 tags: trunk
14:43
check-in: 1301c8be40 user: 顽雨沉风 tags: trunk
Changes

Modified script/c0.lua from [aea28404f7] to [7434735055].

1
2
3
4
5
6

7
8
9
10
11
12
13
14
15
16
17
18
19
20

21
22
23
24
25
26
27
1
2
3
4
5

6
7
8
9
10
11
12
13
14
15
16
17
18
19

20
21
22
23
24
25
26
27





-
+













-
+







local str = {}
local string = string
local table = table
local s = {}
_G.fun = {}
str["效果的种类表"] = {
str["效果的种类表"] = {
  TYPE_SPELL,
  TYPE_TRAP,
  TYPE_EFFECT,
}
str["无效果灵摆怪兽表"] = {
  28363749,
  19474136,
  17390179,
  83980492,
}
local h1
--~ 区域
h1 = LOCATION_HAND + LOCATION_MZONE + LOCATION_SZONE + LOCATION_GRAVE + LOCATION_REMOVED
str["除组与额外组以外的区域"] = h1
str["除组与额外组以外的区域"] = h1
h1 = h1 + LOCATION_DECK + LOCATION_EXTRA
str["所有区域"] = h1
--第一层-------------------------------
local cache_1
local cache_2
local cache_3
local cache_4
50
51
52
53
54
55
56
57

58
59

60
61
62
63
64
65

66
67
68
69
70
71
72
50
51
52
53
54
55
56

57
58

59
60
61
62
63
64

65
66
67
68
69
70
71
72







-
+

-
+





-
+







      s["则"] = h1[u2]
    else
      s["则"] = h1[5]
      end
    s["Debug.ReloadFieldBegin"](u1, u2)
    end
  end
function s["开局洗"](u1)
function s["开局洗"](u1)
  local h1, h2
  s["开局洗之数"] = u1
  s["开局洗之数"] = u1
  --~ 效果
  h1 = Effect.GlobalEffect()
  h1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
  h1:SetCode(EVENT_ADJUST)
  h1:SetCondition(aux.TRUE)
  -- 随机抽
  -- 随机抽
  --~ 调该效果的效果
  function h2(u2)
    Duel.ShuffleDeck(0)
    Duel.Draw(0, u1, REASON_RULE)
    u2:Reset()
    end
  h1:SetOperation(h2)
104
105
106
107
108
109
110
111
112
113



114
115
116
117
118
119
120
121
122
123
124
125
126

127
128

129
130
131
132
133
134
135
136
137
138

139
140
141
142
143
144
145
104
105
106
107
108
109
110



111
112
113
114
115
116
117
118
119
120
121
122
123
124
125

126
127

128
129
130
131
132
133
134
135
136
137

138
139
140
141
142
143
144
145







-
-
-
+
+
+












-
+

-
+









-
+







        end
      end
    h3:SetCondition(h4)
    h3:SetOperation(aux.NULL)
    Duel.RegisterEffect(h3, 0)
    end
  end
fun["一_是否效果"] = function(card)
  for i = 1, #str["效果的种类表"] do
    if Card.IsType(card, str["效果的种类表"][i]) then
fun["一_是否效果"] = function(card)
  for i = 1, #str["效果的种类表"] do
    if Card.IsType(card, str["效果的种类表"][i]) then
      return true
    end
  end
  if Card.IsType(card, TYPE_PENDULUM) then
    for i = 1, #str["无效果灵摆怪兽表"] do
      if Card.IsCode(card, str["无效果灵摆怪兽表"][i]) then
      else
        return true
      end
    end
  end
end
function s["开局选入手"](u1)
function s["开局选入手"](u1)
  local h1, h2
  str["开局选入手之数"] = u1
  str["开局选入手之数"] = u1
  --~ 效果
  h1 = Effect.GlobalEffect()
  h1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
  h1:SetCode(EVENT_ADJUST)
  h1:SetCondition(aux.TRUE)
  --~ 调该效果的效果
  --~ 调该效果的玩家
  function h2(u2, u3)
    local h3
    --~ 玩家选定的
    --~ 玩家选定的
    h3 = Duel.SelectMatchingCard(u3, Card.IsAbleToHand, u3, LOCATION_DECK, 0, u1, u1, nil)
    Duel.SendtoHand(h3, nil, REASON_RULE)
    u2:Reset()
    end
  h1:SetOperation(h2)
  Duel.RegisterEffect(h1, 0)
  end
161
162
163
164
165
166
167
168

169
170
171
172

173
174
175
176

177
178
179

180
181
182
183
184
185
186

187
188
189
190
191
192
193
194
195
196
197


198
199
200
201


202
203
204
205

206
207
208
209
210
211
212
213
214
215
216


217
218
219
220


221
222
223
224

225
226
227
228
229
230
231
232
233
234
235
236


237
238
239
240
241
242


243
244
245
246
247
248

249
250
251
252
253

254
255
256
257
258
259
260
261
262
263
264
265



266
267

161
162
163
164
165
166
167

168
169
170
171

172
173
174
175

176
177
178

179
180
181
182
183
184
185

186
187
188
189
190
191
192
193
194
195


196
197
198
199


200
201
202
203
204

205
206
207
208
209
210
211
212
213
214


215
216
217
218


219
220
221
222
223

224
225
226
227
228
229
230
231
232
233
234


235
236
237
238
239
240


241
242
243
244
245
246
247

248
249
250
251
252

253
254
255
256
257
258
259
260
261
262



263
264
265
266

267







-
+



-
+



-
+


-
+






-
+









-
-
+
+


-
-
+
+



-
+









-
-
+
+


-
-
+
+



-
+










-
-
+
+




-
-
+
+





-
+




-
+









-
-
-
+
+
+

-
+
local cache_6
local cache_7
local cache_8
local cache_9
local _
do
  s["Debug.ReloadFieldEnd"] = _G.Debug.ReloadFieldEnd
  --~ 开局洗之数
  --~ 开局洗之数
  function _G.Debug.ReloadFieldEnd(u1)
    s["Debug.ReloadFieldEnd"]()
    if u1 then
      s["开局洗"](u1)
      s["开局洗"](u1)
      end
    end
  end
fun["二_印"] = function(u1, u2, u3)
fun["二_印"] = function(u1, u2, u3)
  u3 = u3 or u2
  Debug.ShowHint(
    "点击对方额外组可以进行印。\n手只能印 "
    "点击对方额外组可以进行印。\n手只能印 "
      .. u2
      .. " 张。\n最多可以印 "
      .. u3
      .. " 张"
  )
  str["效果"] = Effect.CreateEffect(u1)
  str["当前印数"] = 1
  str["当前印数"] = 1
  str["效果"]:SetType(EFFECT_TYPE_IGNITION)
  str["效果"]:SetProperty(
    EFFECT_FLAG_BOTH_SIDE + EFFECT_FLAG_UNCOPYABLE + EFFECT_FLAG_CANNOT_NEGATE + EFFECT_FLAG_CANNOT_DISABLE
  )
  str["效果"]:SetTarget(fun["一_该效果不能被连锁"])
  str["效果"]:SetRange(LOCATION_EXTRA)
  function print_hand(effect_event, player_who_activate_the_effect)
    announce_card = Duel.AnnounceCard(player_who_activate_the_effect)
    card = Duel.CreateToken(player_who_activate_the_effect, announce_card)
    if str["当前印数"] <= u2 then
      str["当前印数"] = str["当前印数"] + 1
    if str["当前印数"] <= u2 then
      str["当前印数"] = str["当前印数"] + 1
      Duel.SendtoHand(card, nil, REASON_RULE)
    else
      if str["当前印数"] <= u3 then
        str["当前印数"] = str["当前印数"] + 1
      if str["当前印数"] <= u3 then
        str["当前印数"] = str["当前印数"] + 1
        Duel.Remove(card, POS_FACEUP, REASON_RULE)
        Duel.SendtoDeck(card, player_who_activate_the_effect, 0, REASON_RULE)
      else
        Debug.ShowHint("印过多!")
        Debug.ShowHint("印过多!")
        effect_event:Reset()
      end
    end
  end
  str["效果"]:SetOperation(print_hand)
  u1:RegisterEffect(str["效果"])
end
fun["二_开局说明"] = function()
  local h1
  str["这个残局的效果数量"] =
    Duel.GetMatchingGroupCount(fun["是否效果"], 0, str["所有区域"], str["所有区域"], nil)
  str["这个残局的效果数量"] =
    Duel.GetMatchingGroupCount(fun["是否效果"], 0, str["所有区域"], str["所有区域"], nil)
  str["超量素材组"] = Duel.GetOverlayGroup(0, LOCATION_MZONE, LOCATION_MZONE)
  for k in aux.Next(str["超量素材组"]) do
    if fun["一_是否效果"](k) then
      str["这个残局的效果数量"] = str["这个残局的效果数量"] + 1
    if fun["一_是否效果"](k) then
      str["这个残局的效果数量"] = str["这个残局的效果数量"] + 1
      end
    end
  --~ 开局说明
  h1 = str["这个残局的效果数量"] .. " " .. str["规则"]
  h1 = str["这个残局的效果数量"] .. " " .. str["规则"]
  if str["不洗牌"] == 0 then
  else
    h1 = h1 .. "伪洗牌 "
    end
  if str["无BP"] == 0 then
    h1 = h1 .. "无BP "
    end
  if str["无AI"] == 0 then
    h1 = h1 .. "无AI "
    end
  if s["开局选入手之数"] then
    h1 = h1 .. "选" .. s["开局选入手之数"] .. " "
  if s["开局选入手之数"] then
    h1 = h1 .. "选" .. s["开局选入手之数"] .. " "
    end
  if s["禁格之数"] then
    h1 = h1 .. "禁" .. s["禁格之数"] .. "格 "
    end
  if s["开局洗之数"] then
    h1 = h1 .. "抽" .. s["开局洗之数"] .. " "
  if s["开局洗之数"] then
    h1 = h1 .. "抽" .. s["开局洗之数"] .. " "
    end
  Debug.ShowHint(h1)
  end
do
  s["aux.BeginPuzzle"] = _G.aux.BeginPuzzle
  --~ 开局选入手之数
  --~ 开局选入手之数
  --~ 禁格之数
  function _G.aux.BeginPuzzle(u1, u2)
    s["aux.BeginPuzzle"]()
    if u1 then
      s["开局选入手"](u1)
      s["开局选入手"](u1)
      end
    if u2 then
      s["禁格"](u2)
      end
    fun["二_开局说明"]()
    s["通关之邀"]()
    end
  end
--兼容层-------------------------------
fun["印"] = fun["二_印"]
fun["开局添加手"] = s["开局选入手"]
fun["是否效果"] = fun["一_是否效果"]
fun["印"] = fun["二_印"]
fun["开局添加手"] = s["开局选入手"]
fun["是否效果"] = fun["一_是否效果"]
fun["禁格"] = s["禁格"]
fun["随机抽"] = s["开局洗"]
fun["随机抽"] = s["开局洗"]