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
YGOPRO-520DIY
ygopro
Commits
3385a07e
Commit
3385a07e
authored
Apr 28, 2012
by
argon.sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
75fba7e9
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
86 additions
and
27 deletions
+86
-27
ocgcore/card.cpp
ocgcore/card.cpp
+2
-0
ocgcore/effect.h
ocgcore/effect.h
+1
-0
ocgcore/field.cpp
ocgcore/field.cpp
+2
-1
ocgcore/field.h
ocgcore/field.h
+1
-0
ocgcore/processor.cpp
ocgcore/processor.cpp
+41
-24
script/c94739788.lua
script/c94739788.lua
+14
-0
script/c9720537.lua
script/c9720537.lua
+22
-0
script/constant.lua
script/constant.lua
+2
-1
system.conf
system.conf
+1
-1
No files found.
ocgcore/card.cpp
View file @
3385a07e
...
@@ -975,6 +975,8 @@ int32 card::refresh_disable_status() {
...
@@ -975,6 +975,8 @@ int32 card::refresh_disable_status() {
}
}
uint8
card
::
refresh_control_status
()
{
uint8
card
::
refresh_control_status
()
{
uint8
final
=
owner
;
uint8
final
=
owner
;
if
(
pduel
->
game_field
->
core
.
remove_brainwashing
)
return
final
;
effect_set
eset
;
effect_set
eset
;
filter_effect
(
EFFECT_SET_CONTROL
,
&
eset
);
filter_effect
(
EFFECT_SET_CONTROL
,
&
eset
);
if
(
eset
.
count
)
if
(
eset
.
count
)
...
...
ocgcore/effect.h
View file @
3385a07e
...
@@ -336,6 +336,7 @@ public:
...
@@ -336,6 +336,7 @@ public:
#define EFFECT_FORBIDDEN 292
#define EFFECT_FORBIDDEN 292
#define EFFECT_NECRO_VALLEY_IM 293
#define EFFECT_NECRO_VALLEY_IM 293
#define EFFECT_REVERSE_DECK 294
#define EFFECT_REVERSE_DECK 294
#define EFFECT_REMOVE_BRAINWASHING 295
#define EVENT_STARTUP 1000
#define EVENT_STARTUP 1000
#define EVENT_FLIP 1001
#define EVENT_FLIP 1001
...
...
ocgcore/field.cpp
View file @
3385a07e
...
@@ -71,6 +71,7 @@ field::field(duel* pduel) {
...
@@ -71,6 +71,7 @@ field::field(duel* pduel) {
core
.
attacker
=
0
;
core
.
attacker
=
0
;
core
.
attack_target
=
0
;
core
.
attack_target
=
0
;
core
.
deck_reversed
=
FALSE
;
core
.
deck_reversed
=
FALSE
;
core
.
remove_brainwashing
=
FALSE
;
core
.
effect_damage_step
=
FALSE
;
core
.
effect_damage_step
=
FALSE
;
nil_event
.
event_code
=
0
;
nil_event
.
event_code
=
0
;
nil_event
.
event_cards
=
0
;
nil_event
.
event_cards
=
0
;
...
@@ -300,7 +301,7 @@ void field::move_card(uint8 playerid, card* pcard, uint8 location, uint8 sequenc
...
@@ -300,7 +301,7 @@ void field::move_card(uint8 playerid, card* pcard, uint8 location, uint8 sequenc
add_card
(
playerid
,
pcard
,
location
,
sequence
);
add_card
(
playerid
,
pcard
,
location
,
sequence
);
}
}
void
field
::
set_control
(
card
*
pcard
,
uint8
playerid
,
uint8
reset_phase
,
uint8
reset_count
)
{
void
field
::
set_control
(
card
*
pcard
,
uint8
playerid
,
uint8
reset_phase
,
uint8
reset_count
)
{
if
(
pcard
->
refresh_control_status
()
==
playerid
)
if
(
core
.
remove_brainwashing
||
pcard
->
refresh_control_status
()
==
playerid
)
return
;
return
;
effect
*
peffect
=
pduel
->
new_effect
();
effect
*
peffect
=
pduel
->
new_effect
();
if
(
core
.
reason_effect
)
if
(
core
.
reason_effect
)
...
...
ocgcore/field.h
View file @
3385a07e
...
@@ -240,6 +240,7 @@ struct processor {
...
@@ -240,6 +240,7 @@ struct processor {
uint8
shuffle_hand_check
[
2
];
uint8
shuffle_hand_check
[
2
];
uint8
shuffle_deck_check
[
2
];
uint8
shuffle_deck_check
[
2
];
uint8
deck_reversed
;
uint8
deck_reversed
;
uint8
remove_brainwashing
;
uint8
flip_delayed
;
uint8
flip_delayed
;
uint8
damage_calculated
;
uint8
damage_calculated
;
uint8
summon_state
[
2
];
uint8
summon_state
[
2
];
...
...
ocgcore/processor.cpp
View file @
3385a07e
...
@@ -1597,18 +1597,19 @@ int32 field::process_point_event(int16 step, int32 special, int32 skip_new) {
...
@@ -1597,18 +1597,19 @@ int32 field::process_point_event(int16 step, int32 special, int32 skip_new) {
case 2: {
case 2: {
//forced trigger
//forced trigger
for (auto clit = core.new_fchain_s.begin(); clit != core.new_fchain_s.end(); ++clit) {
for (auto clit = core.new_fchain_s.begin(); clit != core.new_fchain_s.end(); ++clit) {
if
(
!
(
clit
->
triggering_effect
->
flag
&
EFFECT_FLAG_EVENT_PLAYER
))
{
effect* peffect = clit->triggering_effect;
if
(
clit
->
triggering_effect
->
handler
->
current
.
reason
&
REASON_TEMPORARY
)
if(!(peffect->flag & EFFECT_FLAG_EVENT_PLAYER) && peffect->handler->is_has_relation(peffect)) {
clit
->
triggering_player
=
clit
->
triggering_effect
->
handler
->
previous
.
controler
;
clit->triggering_player = peffect->handler->current.controler;
else
clit->triggering_controler = peffect->handler->current.controler;
clit
->
triggering_player
=
clit
->
triggering_effect
->
handler
->
current
.
controler
;
clit->triggering_location = peffect->handler->current.location;
clit->triggering_sequence = peffect->handler->current.sequence;
}
}
if
(
clit
->
triggering_effect
->
is_chainable
(
clit
->
triggering_player
)
&&
clit
->
triggering_
effect
->
is_activateable
(
clit
->
triggering_player
,
clit
->
evt
,
TRUE
))
{
if(
peffect->is_chainable(clit->triggering_player) && p
effect->is_activateable(clit->triggering_player, clit->evt, TRUE)) {
if(clit->triggering_player == infos.turn_player)
if(clit->triggering_player == infos.turn_player)
core.tpchain.push_back(*clit);
core.tpchain.push_back(*clit);
else
else
core.ntpchain.push_back(*clit);
core.ntpchain.push_back(*clit);
clit
->
triggering_
effect
->
handler
->
set_status
(
STATUS_CHAINING
,
TRUE
);
p
effect->handler->set_status(STATUS_CHAINING, TRUE);
}
}
}
}
if(core.tpchain.size() > 1)
if(core.tpchain.size() > 1)
...
@@ -1632,11 +1633,12 @@ int32 field::process_point_event(int16 step, int32 special, int32 skip_new) {
...
@@ -1632,11 +1633,12 @@ int32 field::process_point_event(int16 step, int32 special, int32 skip_new) {
return FALSE;
return FALSE;
}
}
for (auto clit = core.new_ochain_s.begin(); clit != core.new_ochain_s.end(); ++clit) {
for (auto clit = core.new_ochain_s.begin(); clit != core.new_ochain_s.end(); ++clit) {
if
(
!
(
clit
->
triggering_effect
->
flag
&
EFFECT_FLAG_EVENT_PLAYER
))
{
effect* peffect = clit->triggering_effect;
if
(
clit
->
triggering_effect
->
handler
->
current
.
reason
&
REASON_TEMPORARY
)
if(!(peffect->flag & EFFECT_FLAG_EVENT_PLAYER) && peffect->handler->is_has_relation(peffect)) {
clit
->
triggering_player
=
clit
->
triggering_effect
->
handler
->
previous
.
controler
;
clit->triggering_player = peffect->handler->current.controler;
else
clit->triggering_controler = peffect->handler->current.controler;
clit
->
triggering_player
=
clit
->
triggering_effect
->
handler
->
current
.
controler
;
clit->triggering_location = peffect->handler->current.location;
clit->triggering_sequence = peffect->handler->current.sequence;
}
}
if(clit->triggering_player == infos.turn_player)
if(clit->triggering_player == infos.turn_player)
core.tpchain.push_back(*clit);
core.tpchain.push_back(*clit);
...
@@ -4332,7 +4334,6 @@ int32 field::adjust_step(uint16 step) {
...
@@ -4332,7 +4334,6 @@ int32 field::adjust_step(uint16 step) {
//win, isable, control, self_des, equip, position, trap_monster
//win, isable, control, self_des, equip, position, trap_monster
switch(step) {
switch(step) {
case 0: {
case 0: {
core
.
units
.
begin
()
->
arg1
=
FALSE
;
core.re_adjust = FALSE;
core.re_adjust = FALSE;
return FALSE;
return FALSE;
}
}
...
@@ -4412,7 +4413,7 @@ int32 field::adjust_step(uint16 step) {
...
@@ -4412,7 +4413,7 @@ int32 field::adjust_step(uint16 step) {
pcard->reset(RESET_TURN_SET, RESET_EVENT);
pcard->reset(RESET_TURN_SET, RESET_EVENT);
refresh_location_info_instant();
refresh_location_info_instant();
move_to_field(pcard, tp, tp, LOCATION_SZONE, pcard->current.position);
move_to_field(pcard, tp, tp, LOCATION_SZONE, pcard->current.position);
core
.
units
.
begin
()
->
arg1
=
TRUE
;
core.
re_adjust
= TRUE;
}
}
}
}
tp = 1 - tp;
tp = 1 - tp;
...
@@ -4439,7 +4440,7 @@ int32 field::adjust_step(uint16 step) {
...
@@ -4439,7 +4440,7 @@ int32 field::adjust_step(uint16 step) {
tp = 1 - tp;
tp = 1 - tp;
}
}
if(core.control_adjust_set[0].size() || core.control_adjust_set[1].size()) {
if(core.control_adjust_set[0].size() || core.control_adjust_set[1].size()) {
core
.
units
.
begin
()
->
arg1
=
TRUE
;
core.
re_adjust
= TRUE;
add_process(PROCESSOR_CONTROL_ADJUST, 0, 0, 0, 0, 0);
add_process(PROCESSOR_CONTROL_ADJUST, 0, 0, 0, 0, 0);
}
}
core.units.begin()->step = 7;
core.units.begin()->step = 7;
...
@@ -4491,7 +4492,7 @@ int32 field::adjust_step(uint16 step) {
...
@@ -4491,7 +4492,7 @@ int32 field::adjust_step(uint16 step) {
}
}
case 9: {
case 9: {
if(returns.ivalue[0] > 0)
if(returns.ivalue[0] > 0)
core
.
units
.
begin
()
->
arg1
=
TRUE
;
core.
re_adjust
= TRUE;
//equip check
//equip check
uint8 tp = infos.turn_player;
uint8 tp = infos.turn_player;
card* pcard;
card* pcard;
...
@@ -4505,7 +4506,7 @@ int32 field::adjust_step(uint16 step) {
...
@@ -4505,7 +4506,7 @@ int32 field::adjust_step(uint16 step) {
tp = 1 - tp;
tp = 1 - tp;
}
}
if(core.destroy_set.size()) {
if(core.destroy_set.size()) {
core
.
units
.
begin
()
->
arg1
=
TRUE
;
core.
re_adjust
= TRUE;
destroy(&core.destroy_set, 0, REASON_RULE, PLAYER_NONE);
destroy(&core.destroy_set, 0, REASON_RULE, PLAYER_NONE);
}
}
return FALSE;
return FALSE;
...
@@ -4540,7 +4541,7 @@ int32 field::adjust_step(uint16 step) {
...
@@ -4540,7 +4541,7 @@ int32 field::adjust_step(uint16 step) {
tp = 1 - tp;
tp = 1 - tp;
}
}
if(pos_adjust.size()) {
if(pos_adjust.size()) {
core
.
units
.
begin
()
->
arg1
=
TRUE
;
core.
re_adjust
= TRUE;
group* ng = pduel->new_group();
group* ng = pduel->new_group();
ng->container = pos_adjust;
ng->container = pos_adjust;
ng->is_readonly = TRUE;
ng->is_readonly = TRUE;
...
@@ -4571,15 +4572,15 @@ int32 field::adjust_step(uint16 step) {
...
@@ -4571,15 +4572,15 @@ int32 field::adjust_step(uint16 step) {
return FALSE;
return FALSE;
}
}
case 12: {
case 12: {
//reverse_deck
//reverse_deck
&& remove brainwashing
effect_set eset;
effect_set eset;
filter_field_effect(EFFECT_REVERSE_DECK, &eset, FALSE);
filter_field_effect(EFFECT_REVERSE_DECK, &eset, FALSE);
uint8
r
v
=
eset
.
count
?
TRUE
:
FALSE
;
uint8 r
es
= eset.count ? TRUE : FALSE;
if
(
core
.
deck_reversed
^
r
v
)
{
if(core.deck_reversed ^ r
es
) {
reverse_deck(0);
reverse_deck(0);
reverse_deck(1);
reverse_deck(1);
pduel->write_buffer8(MSG_REVERSE_DECK);
pduel->write_buffer8(MSG_REVERSE_DECK);
if
(
r
v
)
{
if(r
es
) {
if(player[0].list_main.size()) {
if(player[0].list_main.size()) {
pduel->write_buffer8(MSG_DECK_TOP);
pduel->write_buffer8(MSG_DECK_TOP);
pduel->write_buffer8(0);
pduel->write_buffer8(0);
...
@@ -4594,7 +4595,23 @@ int32 field::adjust_step(uint16 step) {
...
@@ -4594,7 +4595,23 @@ int32 field::adjust_step(uint16 step) {
}
}
}
}
}
}
core
.
deck_reversed
=
rv
;
core.deck_reversed = res;
filter_field_effect(EFFECT_REMOVE_BRAINWASHING, &eset, FALSE);
res = eset.count ? TRUE : FALSE;
if(res && !core.remove_brainwashing) {
for(int i = 0; i < 5; ++i) {
card* pcard = player[0].list_mzone[i];
if(pcard)
pcard->reset(EFFECT_SET_CONTROL, RESET_CODE);
}
for(int i = 0; i < 5; ++i) {
card* pcard = player[1].list_mzone[i];
if(pcard)
pcard->reset(EFFECT_SET_CONTROL, RESET_CODE);
}
core.re_adjust = TRUE;
}
core.remove_brainwashing = res;
return FALSE;
return FALSE;
}
}
case 13: {
case 13: {
...
@@ -4603,7 +4620,7 @@ int32 field::adjust_step(uint16 step) {
...
@@ -4603,7 +4620,7 @@ int32 field::adjust_step(uint16 step) {
return FALSE;
return FALSE;
}
}
case 14: {
case 14: {
if
(
core
.
re_adjust
||
core
.
units
.
begin
()
->
arg1
)
{
if(core.re_adjust) {
core.units.begin()->step = -1;
core.units.begin()->step = -1;
return FALSE;
return FALSE;
}
}
...
...
script/c94739788.lua
0 → 100644
View file @
3385a07e
--洗脳解除
function
c94739788
.
initial_effect
(
c
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e1
)
--
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCode
(
EFFECT_REMOVE_BRAINWASHING
)
e2
:
SetRange
(
LOCATION_SZONE
)
c
:
RegisterEffect
(
e2
)
end
script/c9720537.lua
0 → 100644
View file @
3385a07e
--所有者の刻印
function
c9720537
.
initial_effect
(
c
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_CONTROL
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetTarget
(
c9720537
.
target
)
e1
:
SetOperation
(
c9720537
.
activate
)
c
:
RegisterEffect
(
e1
)
end
function
c9720537
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetFieldGroupCount
(
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
)
>
0
end
end
function
c9720537
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
Duel
.
GetFieldGroup
(
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
)
local
tc
=
g
:
GetFirst
()
while
tc
do
tc
:
ResetEffect
(
EFFECT_SET_CONTROL
,
RESET_CODE
)
tc
=
g
:
GetNext
()
end
end
script/constant.lua
View file @
3385a07e
...
@@ -414,6 +414,7 @@ EFFECT_NECRO_VALLEY =291
...
@@ -414,6 +414,7 @@ EFFECT_NECRO_VALLEY =291
EFFECT_FORBIDDEN
=
292
EFFECT_FORBIDDEN
=
292
EFFECT_NECRO_VALLEY_IM
=
293
EFFECT_NECRO_VALLEY_IM
=
293
EFFECT_REVERSE_DECK
=
294
EFFECT_REVERSE_DECK
=
294
EFFECT_REMOVE_BRAINWASHING
=
295
EVENT_STARTUP
=
1000
EVENT_STARTUP
=
1000
EVENT_FLIP
=
1001
EVENT_FLIP
=
1001
...
...
system.conf
View file @
3385a07e
...
@@ -9,5 +9,5 @@ lastdeck = test
...
@@ -9,5 +9,5 @@ lastdeck = test
textfont
=
c
:/
windows
/
fonts
/
simsun
.
ttc
14
textfont
=
c
:/
windows
/
fonts
/
simsun
.
ttc
14
numfont
=
c
:/
windows
/
fonts
/
arialbd
.
ttf
numfont
=
c
:/
windows
/
fonts
/
arialbd
.
ttf
serverport
=
7911
serverport
=
7911
lastip
=
192
.
168
.
3
.
235
lastip
=
192
.
168
.
2
.
100
lastport
=
7911
lastport
=
7911
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