Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-2pick
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
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
MyCard
ygopro-2pick
Commits
bae4dae8
Commit
bae4dae8
authored
Nov 13, 2017
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'koishibuild' of
https://github.com/purerosefallen/ygopro-7210srv
into koishibuild
parents
ee1cac72
5f2feb70
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
118 additions
and
7 deletions
+118
-7
appveyor.yml
appveyor.yml
+6
-2
ocgcore/playerop.cpp
ocgcore/playerop.cpp
+8
-2
ocgcore/processor.cpp
ocgcore/processor.cpp
+104
-3
No files found.
appveyor.yml
View file @
bae4dae8
version
:
'
{build}'
version
:
'
{build}'
skip_tags
:
true
install
:
install
:
-
git submodule update --init --recursive
-
git submodule update --init --recursive
...
@@ -56,9 +55,14 @@ after_build:
...
@@ -56,9 +55,14 @@ after_build:
-
mv -f irrklang\bin\win32-visualStudio\irrKlang.dll .
-
mv -f irrklang\bin\win32-visualStudio\irrKlang.dll .
-
mv -f irrklang\bin\win32-visualStudio\ikpMP3.dll .
-
mv -f irrklang\bin\win32-visualStudio\ikpMP3.dll .
-
bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/
Fluorohydride
/ygopro-scripts/archive/master.zip ; exit 0"
-
bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/
Smile-DK
/ygopro-scripts/archive/master.zip ; exit 0"
-
7z x ygopro-scripts-master.zip
-
7z x ygopro-scripts-master.zip
-
mv -f ygopro-scripts-master script
-
mv -f ygopro-scripts-master script
-
rm -rf ygopro-scripts-master.zip
-
bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/Fluorohydride/ygopro-scripts/archive/master.zip ; exit 0"
-
7z x ygopro-scripts-master.zip
-
cp -rf ygopro-scripts-master/*.lua script
-
bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/HuangYuNan/ygopro222-images/archive/master.zip ; exit 0"
-
bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/HuangYuNan/ygopro222-images/archive/master.zip ; exit 0"
-
7z x ygopro222-images-master.zip
-
7z x ygopro222-images-master.zip
...
...
ocgcore/playerop.cpp
View file @
bae4dae8
...
@@ -28,7 +28,10 @@ int32 field::select_battle_command(uint16 step, uint8 playerid) {
...
@@ -28,7 +28,10 @@ int32 field::select_battle_command(uint16 step, uint8 playerid) {
for
(
i
=
0
;
i
<
core
.
select_chains
.
size
();
++
i
)
{
for
(
i
=
0
;
i
<
core
.
select_chains
.
size
();
++
i
)
{
peffect
=
core
.
select_chains
[
i
].
triggering_effect
;
peffect
=
core
.
select_chains
[
i
].
triggering_effect
;
pcard
=
peffect
->
get_handler
();
pcard
=
peffect
->
get_handler
();
pduel
->
write_buffer32
(
pcard
->
data
.
code
);
if
(
!
peffect
->
is_flag
(
EFFECT_FLAG_FIELD_ONLY
))
pduel
->
write_buffer32
(
pcard
->
data
.
code
);
else
pduel
->
write_buffer32
(
pcard
->
data
.
code
|
0x80000000
);
pduel
->
write_buffer8
(
pcard
->
current
.
controler
);
pduel
->
write_buffer8
(
pcard
->
current
.
controler
);
pduel
->
write_buffer8
(
pcard
->
current
.
location
);
pduel
->
write_buffer8
(
pcard
->
current
.
location
);
pduel
->
write_buffer8
(
pcard
->
current
.
sequence
);
pduel
->
write_buffer8
(
pcard
->
current
.
sequence
);
...
@@ -126,7 +129,10 @@ int32 field::select_idle_command(uint16 step, uint8 playerid) {
...
@@ -126,7 +129,10 @@ int32 field::select_idle_command(uint16 step, uint8 playerid) {
for
(
i
=
0
;
i
<
core
.
select_chains
.
size
();
++
i
)
{
for
(
i
=
0
;
i
<
core
.
select_chains
.
size
();
++
i
)
{
peffect
=
core
.
select_chains
[
i
].
triggering_effect
;
peffect
=
core
.
select_chains
[
i
].
triggering_effect
;
pcard
=
peffect
->
get_handler
();
pcard
=
peffect
->
get_handler
();
pduel
->
write_buffer32
(
pcard
->
data
.
code
);
if
(
!
peffect
->
is_flag
(
EFFECT_FLAG_FIELD_ONLY
))
pduel
->
write_buffer32
(
pcard
->
data
.
code
);
else
pduel
->
write_buffer32
(
pcard
->
data
.
code
|
0x80000000
);
pduel
->
write_buffer8
(
pcard
->
current
.
controler
);
pduel
->
write_buffer8
(
pcard
->
current
.
controler
);
pduel
->
write_buffer8
(
pcard
->
current
.
location
);
pduel
->
write_buffer8
(
pcard
->
current
.
location
);
pduel
->
write_buffer8
(
pcard
->
current
.
sequence
);
pduel
->
write_buffer8
(
pcard
->
current
.
sequence
);
...
...
ocgcore/processor.cpp
View file @
bae4dae8
...
@@ -1371,9 +1371,8 @@ int32 field::process_phase_event(int16 step, int32 phase) {
...
@@ -1371,9 +1371,8 @@ int32 field::process_phase_event(int16 step, int32 phase) {
tf_count++;
tf_count++;
}
}
pr = effects.continuous_effect.equal_range(phase_event);
pr = effects.continuous_effect.equal_range(phase_event);
for
(;
pr
.
first
!=
pr
.
second
;)
{
for(; pr.first != pr.second;
++pr.first
) {
peffect = pr.first->second;
peffect = pr.first->second;
++
pr
.
first
;
if(peffect->get_handler_player() != check_player || !peffect->is_activateable(check_player, nil_event))
if(peffect->get_handler_player() != check_player || !peffect->is_activateable(check_player, nil_event))
continue;
continue;
peffect->id = infos.field_id++;
peffect->id = infos.field_id++;
...
@@ -1457,6 +1456,16 @@ int32 field::process_phase_event(int16 step, int32 phase) {
...
@@ -1457,6 +1456,16 @@ int32 field::process_phase_event(int16 step, int32 phase) {
core.select_chains.push_back(newchain);
core.select_chains.push_back(newchain);
fc_count++;
fc_count++;
}
}
pr = effects.continuous_effect.equal_range(EVENT_FREE_CHAIN);
for(; pr.first != pr.second; ++pr.first) {
peffect = pr.first->second;
if(peffect->get_handler_player() != check_player || !peffect->is_activateable(check_player, nil_event))
continue;
peffect->id = infos.field_id++;
newchain.triggering_effect = peffect;
core.select_chains.push_back(newchain);
fc_count++;
}
}
}
if(core.select_chains.size() == 0) {
if(core.select_chains.size() == 0) {
returns.ivalue[0] = -1;
returns.ivalue[0] = -1;
...
@@ -1967,6 +1976,70 @@ int32 field::process_point_event(int16 step, int32 skip_trigger, int32 skip_free
...
@@ -1967,6 +1976,70 @@ int32 field::process_point_event(int16 step, int32 skip_trigger, int32 skip_free
core.units.begin()->step = 4;
core.units.begin()->step = 4;
return FALSE;
return FALSE;
}
}
case 30: {
int32 check_player = infos.turn_player;
nil_event.event_code = EVENT_FREE_CHAIN;
chain newchain;
core.select_chains.clear();
core.spe_effect[check_player] = 0;
auto pr = effects.continuous_effect.equal_range(EVENT_FREE_CHAIN);
for(; pr.first != pr.second; ++pr.first) {
effect* peffect = pr.first->second;
newchain.triggering_effect = peffect;
if(peffect->get_handler_player() == check_player && peffect->is_activateable(check_player, nil_event)) {
core.select_chains.push_back(newchain);
core.spe_effect[check_player]++;
}
}
if(!core.select_chains.empty())
add_process(PROCESSOR_SELECT_CHAIN, 0, 0, 0, check_player, core.spe_effect[check_player]);
else
core.units.begin()->step = 31;
return FALSE;
}
case 31: {
if(returns.ivalue[0] == -1)
return FALSE;
const chain& newchain = core.select_chains[returns.ivalue[0]];
effect* peffect = newchain.triggering_effect;
core.select_chains.clear();
core.sub_solving_event.push_back(nil_event);
add_process(PROCESSOR_SOLVE_CONTINUOUS, 0, peffect, 0, peffect->get_handler_player(), 0);
core.units.begin()->step = 29;
return FALSE;
}
case 32: {
int32 check_player = 1 - infos.turn_player;
nil_event.event_code = EVENT_FREE_CHAIN;
chain newchain;
core.select_chains.clear();
core.spe_effect[check_player] = 0;
auto pr = effects.continuous_effect.equal_range(EVENT_FREE_CHAIN);
for(; pr.first != pr.second; ++pr.first) {
effect* peffect = pr.first->second;
newchain.triggering_effect = peffect;
if(peffect->get_handler_player() == check_player && peffect->is_activateable(check_player, nil_event)) {
core.select_chains.push_back(newchain);
core.spe_effect[check_player]++;
}
}
if(!core.select_chains.empty())
add_process(PROCESSOR_SELECT_CHAIN, 0, 0, 0, check_player, core.spe_effect[check_player]);
else
core.units.begin()->step = -1;
return FALSE;
}
case 33: {
if(returns.ivalue[0] == -1)
return FALSE;
const chain& newchain = core.select_chains[returns.ivalue[0]];
effect* peffect = newchain.triggering_effect;
core.select_chains.clear();
core.sub_solving_event.push_back(nil_event);
add_process(PROCESSOR_SOLVE_CONTINUOUS, 0, peffect, 0, peffect->get_handler_player(), 0);
core.units.begin()->step = 31;
return FALSE;
}
}
}
return TRUE;
return TRUE;
}
}
...
@@ -2518,6 +2591,13 @@ int32 field::process_idle_command(uint16 step) {
...
@@ -2518,6 +2591,13 @@ int32 field::process_idle_command(uint16 step) {
if(peffect->is_activateable(infos.turn_player, nil_event))
if(peffect->is_activateable(infos.turn_player, nil_event))
core.select_chains.push_back(newchain);
core.select_chains.push_back(newchain);
}
}
pr = effects.continuous_effect.equal_range(EVENT_FREE_CHAIN);
for(; pr.first != pr.second; ++pr.first) {
peffect = pr.first->second;
newchain.triggering_effect = peffect;
if(peffect->get_handler_player() == infos.turn_player && peffect->is_activateable(infos.turn_player, nil_event))
core.select_chains.push_back(newchain);
}
for(auto eit = effects.ignition_effect.begin(); eit != effects.ignition_effect.end(); ++eit) {
for(auto eit = effects.ignition_effect.begin(); eit != effects.ignition_effect.end(); ++eit) {
peffect = eit->second;
peffect = eit->second;
peffect->set_activate_location();
peffect->set_activate_location();
...
@@ -2589,6 +2669,13 @@ int32 field::process_idle_command(uint16 step) {
...
@@ -2589,6 +2669,13 @@ int32 field::process_idle_command(uint16 step) {
if(ctype == 5) {
if(ctype == 5) {
chain newchain = core.select_chains[sel];
chain newchain = core.select_chains[sel];
effect* peffect = newchain.triggering_effect;
effect* peffect = newchain.triggering_effect;
if(peffect->type & EFFECT_TYPE_CONTINUOUS) {
core.select_chains.clear();
core.sub_solving_event.push_back(nil_event);
add_process(PROCESSOR_SOLVE_CONTINUOUS, 0, peffect, 0, peffect->get_handler_player(), 0);
core.units.begin()->step = -1;
return FALSE;
}
card* phandler = peffect->get_handler();
card* phandler = peffect->get_handler();
newchain.flag = 0;
newchain.flag = 0;
newchain.chain_id = infos.field_id++;
newchain.chain_id = infos.field_id++;
...
@@ -2807,6 +2894,13 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -2807,6 +2894,13 @@ int32 field::process_battle_command(uint16 step) {
if(peffect->is_activateable(infos.turn_player, nil_event))
if(peffect->is_activateable(infos.turn_player, nil_event))
core.select_chains.push_back(newchain);
core.select_chains.push_back(newchain);
}
}
pr = effects.continuous_effect.equal_range(EVENT_FREE_CHAIN);
for(; pr.first != pr.second; ++pr.first) {
peffect = pr.first->second;
newchain.triggering_effect = peffect;
if(peffect->get_handler_player() == infos.turn_player && peffect->is_activateable(infos.turn_player, nil_event))
core.select_chains.push_back(newchain);
}
core.attackable_cards.clear();
core.attackable_cards.clear();
card_vector first_attack;
card_vector first_attack;
card_vector must_attack;
card_vector must_attack;
...
@@ -2849,6 +2943,13 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -2849,6 +2943,13 @@ int32 field::process_battle_command(uint16 step) {
if(ctype == 0) {
if(ctype == 0) {
chain newchain = core.select_chains[sel];
chain newchain = core.select_chains[sel];
effect* peffect = newchain.triggering_effect;
effect* peffect = newchain.triggering_effect;
if(peffect->type & EFFECT_TYPE_CONTINUOUS) {
core.select_chains.clear();
core.sub_solving_event.push_back(nil_event);
add_process(PROCESSOR_SOLVE_CONTINUOUS, 0, peffect, 0, peffect->get_handler_player(), 0);
core.units.begin()->step = -1;
return FALSE;
}
card* phandler = peffect->get_handler();
card* phandler = peffect->get_handler();
newchain.flag = 0;
newchain.flag = 0;
newchain.chain_id = infos.field_id++;
newchain.chain_id = infos.field_id++;
...
@@ -3081,7 +3182,7 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -3081,7 +3182,7 @@ int32 field::process_battle_command(uint16 step) {
pduel->write_buffer32(24);
pduel->write_buffer32(24);
core.hint_timing[0] = TIMING_BATTLE_PHASE;
core.hint_timing[0] = TIMING_BATTLE_PHASE;
core.hint_timing[1] = TIMING_BATTLE_PHASE;
core.hint_timing[1] = TIMING_BATTLE_PHASE;
add_process
(
PROCESSOR_POINT_EVENT
,
0
,
0
,
0
,
0
,
0
);
add_process(PROCESSOR_POINT_EVENT,
3
0, 0, 0, 0, 0);
return FALSE;
return FALSE;
}
}
case 10: {
case 10: {
...
...
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