Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro
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
REIKAI
ygopro
Commits
04bd958a
Commit
04bd958a
authored
Jul 07, 2015
by
VanillaSalt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
fec64124
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
59 additions
and
24 deletions
+59
-24
ocgcore/field.cpp
ocgcore/field.cpp
+1
-0
ocgcore/field.h
ocgcore/field.h
+1
-0
ocgcore/processor.cpp
ocgcore/processor.cpp
+22
-3
script/c10960419.lua
script/c10960419.lua
+12
-9
script/c32491822.lua
script/c32491822.lua
+21
-12
script/c67696066.lua
script/c67696066.lua
+1
-0
script/c71645242.lua
script/c71645242.lua
+1
-0
No files found.
ocgcore/field.cpp
View file @
04bd958a
...
@@ -79,6 +79,7 @@ field::field(duel* pduel) {
...
@@ -79,6 +79,7 @@ field::field(duel* pduel) {
core
.
duel_options
=
0
;
core
.
duel_options
=
0
;
core
.
attacker
=
0
;
core
.
attacker
=
0
;
core
.
attack_target
=
0
;
core
.
attack_target
=
0
;
core
.
attack_rollback
=
FALSE
;
core
.
deck_reversed
=
FALSE
;
core
.
deck_reversed
=
FALSE
;
core
.
remove_brainwashing
=
FALSE
;
core
.
remove_brainwashing
=
FALSE
;
core
.
effect_damage_step
=
FALSE
;
core
.
effect_damage_step
=
FALSE
;
...
...
ocgcore/field.h
View file @
04bd958a
...
@@ -243,6 +243,7 @@ struct processor {
...
@@ -243,6 +243,7 @@ struct processor {
group
*
limit_xyz
;
group
*
limit_xyz
;
group
*
limit_syn
;
group
*
limit_syn
;
uint8
attack_cancelable
;
uint8
attack_cancelable
;
uint8
attack_rollback
;
uint8
effect_damage_step
;
uint8
effect_damage_step
;
int32
battle_damage
[
2
];
int32
battle_damage
[
2
];
int32
summon_count
[
2
];
int32
summon_count
[
2
];
...
...
ocgcore/processor.cpp
View file @
04bd958a
...
@@ -3120,6 +3120,7 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -3120,6 +3120,7 @@ int32 field::process_battle_command(uint16 step) {
core
.
units
.
begin
()
->
step
=
-
1
;
core
.
units
.
begin
()
->
step
=
-
1
;
return
FALSE
;
return
FALSE
;
}
}
core
.
attack_rollback
=
FALSE
;
for
(
uint32
i
=
0
;
i
<
5
;
++
i
)
{
for
(
uint32
i
=
0
;
i
<
5
;
++
i
)
{
if
(
player
[
1
-
infos
.
turn_player
].
list_mzone
[
i
])
if
(
player
[
1
-
infos
.
turn_player
].
list_mzone
[
i
])
core
.
opp_mzone
[
i
]
=
player
[
1
-
infos
.
turn_player
].
list_mzone
[
i
]
->
fieldid_r
;
core
.
opp_mzone
[
i
]
=
player
[
1
-
infos
.
turn_player
].
list_mzone
[
i
]
->
fieldid_r
;
...
@@ -3139,7 +3140,7 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -3139,7 +3140,7 @@ int32 field::process_battle_command(uint16 step) {
return
FALSE
;
return
FALSE
;
}
}
case
8
:
{
case
8
:
{
if(is_player_affected_by_effect(infos.turn_player, EFFECT_SKIP_BP)) {
if
(
is_player_affected_by_effect
(
infos
.
turn_player
,
EFFECT_SKIP_BP
)
||
core
.
attack_rollback
)
{
core
.
units
.
begin
()
->
step
=
9
;
core
.
units
.
begin
()
->
step
=
9
;
return
FALSE
;
return
FALSE
;
}
}
...
@@ -3164,7 +3165,7 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -3164,7 +3165,7 @@ int32 field::process_battle_command(uint16 step) {
return
FALSE
;
return
FALSE
;
}
}
case
10
:
{
case
10
:
{
bool rollback = false
;
uint8
rollback
=
core
.
attack_rollback
;
bool
atk_disabled
=
false
;
bool
atk_disabled
=
false
;
uint32
acon
=
core
.
units
.
begin
()
->
arg2
>>
16
;
uint32
acon
=
core
.
units
.
begin
()
->
arg2
>>
16
;
uint32
afid
=
core
.
units
.
begin
()
->
arg2
&
0xffff
;
uint32
afid
=
core
.
units
.
begin
()
->
arg2
&
0xffff
;
...
@@ -5368,8 +5369,26 @@ int32 field::adjust_step(uint16 step) {
...
@@ -5368,8 +5369,26 @@ int32 field::adjust_step(uint16 step) {
case
14
:
{
case
14
:
{
//attack cancel
//attack cancel
card
*
attacker
=
core
.
attacker
;
card
*
attacker
=
core
.
attacker
;
if(attacker && attacker->is_affected_by_effect(EFFECT_CANNOT_ATTACK))
if
(
!
attacker
)
return
FALSE
;
if
(
attacker
->
is_affected_by_effect
(
EFFECT_CANNOT_ATTACK
))
attacker
->
set_status
(
STATUS_ATTACK_CANCELED
,
TRUE
);
attacker
->
set_status
(
STATUS_ATTACK_CANCELED
,
TRUE
);
if
(
core
.
attack_rollback
)
return
FALSE
;
for
(
uint32
i
=
0
;
i
<
5
;
++
i
)
{
card
*
pcard
=
player
[
1
-
infos
.
turn_player
].
list_mzone
[
i
];
if
(
pcard
)
{
if
(
!
core
.
opp_mzone
[
i
]
||
core
.
opp_mzone
[
i
]
!=
pcard
->
fieldid_r
)
{
core
.
attack_rollback
=
TRUE
;
break
;
}
}
else
{
if
(
core
.
opp_mzone
[
i
])
{
core
.
attack_rollback
=
TRUE
;
break
;
}
}
}
return
FALSE
;
return
FALSE
;
}
}
case
15
:
{
case
15
:
{
...
...
script/c10960419.lua
View file @
04bd958a
...
@@ -82,6 +82,7 @@ function c10960419.rmop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -82,6 +82,7 @@ function c10960419.rmop(e,tp,eg,ep,ev,re,r,rp)
e1
:
SetLabel
(
ct
)
e1
:
SetLabel
(
ct
)
e1
:
SetLabelObject
(
tc
)
e1
:
SetLabelObject
(
tc
)
e1
:
SetCountLimit
(
1
)
e1
:
SetCountLimit
(
1
)
e1
:
SetCondition
(
c10960419
.
turncon
)
e1
:
SetOperation
(
c10960419
.
turnop
)
e1
:
SetOperation
(
c10960419
.
turnop
)
Duel
.
RegisterEffect
(
e1
,
tp
)
Duel
.
RegisterEffect
(
e1
,
tp
)
local
e2
=
e1
:
Clone
()
local
e2
=
e1
:
Clone
()
...
@@ -95,6 +96,10 @@ function c10960419.rmop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -95,6 +96,10 @@ function c10960419.rmop(e,tp,eg,ep,ev,re,r,rp)
end
end
end
end
end
end
function
c10960419
.
turncon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
e
:
GetLabelObject
()
return
tc
:
GetFlagEffect
(
1082946
)
~=
0
end
function
c10960419
.
turnop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c10960419
.
turnop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
e
:
GetLabelObject
()
local
tc
=
e
:
GetLabelObject
()
local
ct
=
tc
:
GetTurnCounter
()
local
ct
=
tc
:
GetTurnCounter
()
...
@@ -107,17 +112,15 @@ function c10960419.turnop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -107,17 +112,15 @@ function c10960419.turnop(e,tp,eg,ep,ev,re,r,rp)
end
end
function
c10960419
.
retcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c10960419
.
retcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
e
:
GetLabelObject
()
local
tc
=
e
:
GetLabelObject
()
if
tc
:
GetTurnCounter
()
>
e
:
GetLabel
()
then
local
ct
=
tc
:
GetTurnCounter
()
e
:
Reset
()
if
ct
==
e
:
GetLabel
()
then
return
false
else
return
true
return
true
end
end
if
ct
>
e
:
GetLabel
()
then
e
:
Reset
()
end
return
false
end
end
function
c10960419
.
retop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c10960419
.
retop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
e
:
GetLabelObject
()
Duel
.
ReturnToField
(
tc
)
local
ct
=
tc
:
GetTurnCounter
()
if
ct
==
e
:
GetLabel
()
then
Duel
.
ReturnToField
(
tc
)
end
end
end
script/c32491822.lua
View file @
04bd958a
...
@@ -6,7 +6,6 @@ function c32491822.initial_effect(c)
...
@@ -6,7 +6,6 @@ function c32491822.initial_effect(c)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetCode
(
EFFECT_SPSUMMON_CONDITION
)
e1
:
SetCode
(
EFFECT_SPSUMMON_CONDITION
)
e1
:
SetValue
(
aux
.
FALSE
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--special summon
--special summon
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
...
@@ -42,21 +41,31 @@ function c32491822.spfilter(c)
...
@@ -42,21 +41,31 @@ function c32491822.spfilter(c)
end
end
function
c32491822
.
spcon
(
e
,
c
)
function
c32491822
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
if
Duel
.
GetLocationCount
(
c
:
GetControler
(),
LOCATION_MZONE
)
==
0
then
local
tp
=
c
:
GetControler
()
return
Duel
.
IsExistingMatchingCard
(
c32491822
.
spfilter
,
c
:
GetControler
(),
LOCATION_MZONE
,
0
,
1
,
nil
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
and
Duel
.
IsExistingMatchingCard
(
c32491822
.
spfilter
,
c
:
GetControler
(),
LOCATION_ONFIELD
,
0
,
3
,
nil
)
if
ft
<-
2
then
return
false
end
if
ft
<=
0
then
local
ct
=-
ft
+
1
return
Duel
.
IsExistingMatchingCard
(
c32491822
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
ct
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c32491822
.
spfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
3
,
nil
)
else
else
return
Duel
.
IsExistingMatchingCard
(
c32491822
.
spfilter
,
c
:
GetControler
()
,
LOCATION_ONFIELD
,
0
,
3
,
nil
)
return
Duel
.
IsExistingMatchingCard
(
c32491822
.
spfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
3
,
nil
)
end
end
end
end
function
c32491822
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c32491822
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
if
Duel
.
GetLocationCount
(
c
:
GetControler
(),
LOCATION_MZONE
)
==
0
then
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
if
ft
<=
0
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
c32491822
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
)
local
sg
=
Duel
.
GetMatchingGroup
(
c32491822
.
spfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
nil
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
ct
=-
ft
+
1
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
c32491822
.
spfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
2
,
2
,
g1
:
GetFirst
())
local
g1
=
sg
:
FilterSelect
(
tp
,
Card
.
IsLocation
,
ct
,
ct
,
nil
,
LOCATION_MZONE
)
g2
:
AddCard
(
g1
:
GetFirst
())
if
ct
<
3
then
Duel
.
SendtoGrave
(
g2
,
REASON_COST
)
sg
:
Sub
(
g1
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g2
=
sg
:
Select
(
tp
,
3
-
ct
,
3
-
ct
,
nil
)
g1
:
Merge
(
g2
)
end
Duel
.
SendtoGrave
(
g1
,
REASON_COST
)
else
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c32491822
.
spfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
3
,
3
,
nil
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c32491822
.
spfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
3
,
3
,
nil
)
...
@@ -66,7 +75,7 @@ end
...
@@ -66,7 +75,7 @@ end
function
c32491822
.
damcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c32491822
.
damcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
local
bc
=
c
:
GetBattleTarget
()
local
bc
=
c
:
GetBattleTarget
()
return
c
:
IsRelateToBattle
()
and
bc
:
IsLocation
(
LOCATION_GRAVE
)
and
bc
:
IsReason
(
REASON_BATTLE
)
and
bc
:
IsType
(
TYPE_MONSTER
)
return
c
:
IsRelateToBattle
()
and
bc
:
IsLocation
(
LOCATION_GRAVE
)
and
bc
:
IsReason
(
REASON_BATTLE
)
and
bc
:
IsType
(
TYPE_MONSTER
)
end
end
function
c32491822
.
damtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c32491822
.
damtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
if
chk
==
0
then
return
true
end
...
...
script/c67696066.lua
View file @
04bd958a
...
@@ -33,6 +33,7 @@ function c67696066.spop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -33,6 +33,7 @@ function c67696066.spop(e,tp,eg,ep,ev,re,r,rp)
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_SET_ATTACK_FINAL
)
e1
:
SetCode
(
EFFECT_SET_ATTACK_FINAL
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e1
:
SetValue
(
0
)
e1
:
SetValue
(
0
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
tc
:
RegisterEffect
(
e1
)
tc
:
RegisterEffect
(
e1
)
...
...
script/c71645242.lua
View file @
04bd958a
...
@@ -117,6 +117,7 @@ function c71645242.spop2(e,tp,eg,ep,ev,re,r,rp)
...
@@ -117,6 +117,7 @@ function c71645242.spop2(e,tp,eg,ep,ev,re,r,rp)
Duel
.
Destroy
(
dg
,
REASON_EFFECT
)
Duel
.
Destroy
(
dg
,
REASON_EFFECT
)
Duel
.
BreakEffect
()
Duel
.
BreakEffect
()
local
og
=
Duel
.
GetOperatedGroup
()
local
og
=
Duel
.
GetOperatedGroup
()
if
not
og
:
IsContains
(
c
)
then
return
end
og
:
RemoveCard
(
c
)
og
:
RemoveCard
(
c
)
local
atk
=
og
:
GetSum
(
Card
.
GetPreviousAttackOnField
)
local
atk
=
og
:
GetSum
(
Card
.
GetPreviousAttackOnField
)
local
tc
=
Duel
.
GetFirstTarget
()
local
tc
=
Duel
.
GetFirstTarget
()
...
...
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