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
xiaoye
ygopro
Commits
228d4829
Commit
228d4829
authored
Sep 07, 2018
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
merge
parents
3ba959f0
5cc986a0
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
127 additions
and
28 deletions
+127
-28
cards.cdb
cards.cdb
+0
-0
gframe/client_field.cpp
gframe/client_field.cpp
+34
-4
gframe/drawing.cpp
gframe/drawing.cpp
+2
-2
gframe/duelclient.cpp
gframe/duelclient.cpp
+7
-4
gframe/event_handler.cpp
gframe/event_handler.cpp
+1
-0
gframe/game.cpp
gframe/game.cpp
+4
-2
gframe/game.h
gframe/game.h
+3
-0
gframe/menu_handler.cpp
gframe/menu_handler.cpp
+36
-0
gframe/single_duel.cpp
gframe/single_duel.cpp
+2
-3
gframe/single_mode.cpp
gframe/single_mode.cpp
+1
-0
gframe/sound_manager.cpp
gframe/sound_manager.cpp
+4
-0
gframe/sound_manager.h
gframe/sound_manager.h
+1
-0
gframe/tag_duel.cpp
gframe/tag_duel.cpp
+20
-3
ocgcore
ocgcore
+1
-1
script
script
+1
-1
sound/files.txt
sound/files.txt
+1
-0
strings.conf
strings.conf
+7
-6
system.conf
system.conf
+2
-2
No files found.
cards.cdb
View file @
228d4829
No preview for this file type
gframe/client_field.cpp
View file @
228d4829
...
...
@@ -1457,10 +1457,25 @@ void ClientField::UpdateDeclarableCodeType(bool enter) {
ancard
.
push_back
(
trycode
);
return
;
}
if
((
pname
[
0
]
==
0
||
pname
[
1
]
==
0
)
&&
!
enter
)
return
;
bool
try_cache
=
false
;
if
(
pname
[
0
]
==
0
||
pname
[
1
]
==
0
)
{
if
(
!
enter
)
return
;
try_cache
=
true
;
}
mainGame
->
lstANCard
->
clear
();
ancard
.
clear
();
if
(
try_cache
&&
mainGame
->
dInfo
.
announce_cache
.
size
())
{
for
(
int
i
=
0
;
i
<
mainGame
->
dInfo
.
announce_cache
.
size
();
++
i
)
{
unsigned
int
cache_code
=
mainGame
->
dInfo
.
announce_cache
[
i
];
if
(
dataManager
.
GetString
(
cache_code
,
&
cstr
)
&&
dataManager
.
GetData
(
cache_code
,
&
cd
)
&&
is_declarable
(
cd
,
declarable_type
))
{
mainGame
->
lstANCard
->
addItem
(
cstr
.
name
.
c_str
());
ancard
.
push_back
(
cache_code
);
}
}
if
(
ancard
.
size
())
return
;
}
for
(
auto
cit
=
dataManager
.
_strings
.
begin
();
cit
!=
dataManager
.
_strings
.
end
();
++
cit
)
{
if
(
cit
->
second
.
name
.
find
(
pname
)
!=
std
::
wstring
::
npos
)
{
auto
cp
=
dataManager
.
GetCodePointer
(
cit
->
first
);
//verified by _strings
...
...
@@ -1489,10 +1504,25 @@ void ClientField::UpdateDeclarableCodeOpcode(bool enter) {
ancard
.
push_back
(
trycode
);
return
;
}
if
((
pname
[
0
]
==
0
||
pname
[
1
]
==
0
)
&&
!
enter
)
return
;
bool
try_cache
=
false
;
if
(
pname
[
0
]
==
0
||
pname
[
1
]
==
0
)
{
if
(
!
enter
)
return
;
try_cache
=
true
;
}
mainGame
->
lstANCard
->
clear
();
ancard
.
clear
();
if
(
try_cache
&&
mainGame
->
dInfo
.
announce_cache
.
size
())
{
for
(
int
i
=
0
;
i
<
mainGame
->
dInfo
.
announce_cache
.
size
();
++
i
)
{
unsigned
int
cache_code
=
mainGame
->
dInfo
.
announce_cache
[
i
];
if
(
dataManager
.
GetString
(
cache_code
,
&
cstr
)
&&
dataManager
.
GetData
(
cache_code
,
&
cd
)
&&
is_declarable
(
cd
,
opcode
))
{
mainGame
->
lstANCard
->
addItem
(
cstr
.
name
.
c_str
());
ancard
.
push_back
(
cache_code
);
}
}
if
(
ancard
.
size
())
return
;
}
for
(
auto
cit
=
dataManager
.
_strings
.
begin
();
cit
!=
dataManager
.
_strings
.
end
();
++
cit
)
{
if
(
cit
->
second
.
name
.
find
(
pname
)
!=
std
::
wstring
::
npos
)
{
auto
cp
=
dataManager
.
GetCodePointer
(
cit
->
first
);
//verified by _strings
...
...
gframe/drawing.cpp
View file @
228d4829
...
...
@@ -552,8 +552,8 @@ void Game::DrawMisc() {
*/
}
else
{
driver
->
draw2DImage
(
imageManager
.
tCover
[
0
],
ResizeCardMid
(
588
,
32
,
600
,
50
,
600
,
41
),
rect
<
s32
>
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
),
0
,
0
,
true
);
driver
->
draw2DImage
(
imageManager
.
tCover
[
1
],
ResizeCardMid
(
695
,
32
,
707
,
50
,
707
,
41
),
rect
<
s32
>
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
),
0
,
0
,
true
);
driver
->
draw2DImage
(
imageManager
.
tCover
[
0
],
ResizeCardMid
(
588
,
32
,
600
,
50
,
600
,
41
),
Resize
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
),
0
,
0
,
true
);
driver
->
draw2DImage
(
imageManager
.
tCover
[
1
],
ResizeCardMid
(
695
,
32
,
707
,
50
,
707
,
41
),
Resize
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
),
0
,
0
,
true
);
DrawShadowText
(
numFont
,
dInfo
.
str_card_count
[
0
],
Resize
(
600
,
31
,
625
,
50
),
Resize
(
0
,
1
,
2
,
0
),
dInfo
.
card_count_color
[
0
],
0xff000000
,
true
,
false
,
0
);
DrawShadowText
(
numFont
,
dInfo
.
str_card_count
[
1
],
Resize
(
707
,
31
,
732
,
50
),
Resize
(
0
,
1
,
2
,
0
),
dInfo
.
card_count_color
[
1
],
0xff000000
,
true
,
false
,
0
);
...
...
gframe/duelclient.cpp
View file @
228d4829
...
...
@@ -390,6 +390,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame
->
wDeckEdit
->
setVisible
(
false
);
mainGame
->
wFilter
->
setVisible
(
false
);
mainGame
->
wSort
->
setVisible
(
false
);
mainGame
->
stTip
->
setVisible
(
false
);
mainGame
->
btnSideOK
->
setVisible
(
true
);
mainGame
->
btnSideShuffle
->
setVisible
(
true
);
mainGame
->
btnSideSort
->
setVisible
(
true
);
...
...
@@ -600,6 +601,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame
->
RefreshTimeDisplay
();
mainGame
->
dInfo
.
time_player
=
2
;
mainGame
->
dInfo
.
isReplaySwapped
=
false
;
mainGame
->
dInfo
.
announce_cache
.
clear
();
mainGame
->
is_building
=
false
;
mainGame
->
wCardImg
->
setVisible
(
true
);
mainGame
->
wInfos
->
setVisible
(
true
);
...
...
@@ -677,6 +679,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame
->
gMutex
.
Lock
();
mainGame
->
dInfo
.
isStarted
=
false
;
mainGame
->
dInfo
.
isFinished
=
true
;
mainGame
->
dInfo
.
announce_cache
.
clear
();
mainGame
->
is_building
=
false
;
mainGame
->
wDeckEdit
->
setVisible
(
false
);
mainGame
->
btnCreateHost
->
setEnabled
(
true
);
...
...
@@ -1564,6 +1567,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
ClientCard
*
pcard
;
bool
panelmode
=
false
;
bool
conti_exist
=
false
;
bool
select_trigger
=
(
specount
==
0x7f
);
mainGame
->
dField
.
chain_forced
=
(
forced
!=
0
);
mainGame
->
dField
.
activatable_cards
.
clear
();
mainGame
->
dField
.
activatable_descs
.
clear
();
...
...
@@ -1604,7 +1608,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
panelmode
=
true
;
}
}
if
(
!
forced
&&
(
mainGame
->
ignore_chain
||
((
count
==
0
||
specount
==
0
)
&&
!
mainGame
->
always_chain
))
&&
(
count
==
0
||
!
mainGame
->
chain_when_avail
))
{
if
(
!
select_trigger
&&
!
forced
&&
(
mainGame
->
ignore_chain
||
((
count
==
0
||
specount
==
0
)
&&
!
mainGame
->
always_chain
))
&&
(
count
==
0
||
!
mainGame
->
chain_when_avail
))
{
SetResponseI
(
-
1
);
mainGame
->
dField
.
ClearChainSelect
();
if
(
mainGame
->
chkWaitChain
->
isChecked
()
&&
!
mainGame
->
ignore_chain
)
{
...
...
@@ -2345,11 +2349,9 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame
->
dInfo
.
is_swapped
=
!
mainGame
->
dInfo
.
is_swapped
;
return
true
;
}
if
(
!
mainGame
->
dInfo
.
is
Tag
&&
!
mainGame
->
dInfo
.
is
Replay
&&
mainGame
->
dInfo
.
player_type
<
7
)
{
if
(
!
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
player_type
<
7
)
{
mainGame
->
btnLeaveGame
->
setText
(
dataManager
.
GetSysString
(
1351
));
mainGame
->
btnLeaveGame
->
setVisible
(
true
);
}
if
(
!
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
player_type
<
7
)
{
if
(
mainGame
->
gameConf
.
control_mode
==
0
)
{
mainGame
->
btnChainIgnore
->
setVisible
(
true
);
mainGame
->
btnChainAlways
->
setVisible
(
true
);
...
...
@@ -2883,6 +2885,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
case
MSG_CHAIN_DISABLED
:
{
int
ct
=
BufferIO
::
ReadInt8
(
pbuf
);
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
soundManager
.
PlaySoundEffect
(
SOUND_NEGATE
);
mainGame
->
showcardcode
=
mainGame
->
dField
.
chains
[
ct
-
1
].
code
;
mainGame
->
showcarddif
=
0
;
mainGame
->
showcard
=
3
;
...
...
gframe/event_handler.cpp
View file @
228d4829
...
...
@@ -338,6 +338,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
if
(
sel
==
-
1
)
break
;
DuelClient
::
SetResponseI
(
ancard
[
sel
]);
mainGame
->
dInfo
.
announce_cache
.
insert
(
mainGame
->
dInfo
.
announce_cache
.
begin
(),
ancard
[
sel
]);
mainGame
->
HideElement
(
mainGame
->
wANCard
,
true
);
break
;
}
...
...
gframe/game.cpp
View file @
228d4829
...
...
@@ -697,8 +697,9 @@ bool Game::Initialize() {
btnDeleteReplay
=
env
->
addButton
(
rect
<
s32
>
(
360
,
355
,
460
,
380
),
wReplay
,
BUTTON_DELETE_REPLAY
,
dataManager
.
GetSysString
(
1361
));
btnRenameReplay
=
env
->
addButton
(
rect
<
s32
>
(
360
,
385
,
460
,
410
),
wReplay
,
BUTTON_RENAME_REPLAY
,
dataManager
.
GetSysString
(
1362
));
btnReplayCancel
=
env
->
addButton
(
rect
<
s32
>
(
470
,
385
,
570
,
410
),
wReplay
,
BUTTON_CANCEL_REPLAY
,
dataManager
.
GetSysString
(
1347
));
btnExportDeck
=
env
->
addButton
(
rect
<
s32
>
(
470
,
325
,
570
,
350
),
wReplay
,
BUTTON_EXPORT_DECK
,
dataManager
.
GetSysString
(
1369
));
env
->
addStaticText
(
dataManager
.
GetSysString
(
1349
),
rect
<
s32
>
(
360
,
30
,
570
,
50
),
false
,
true
,
wReplay
);
stReplayInfo
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
360
,
60
,
570
,
3
5
0
),
false
,
true
,
wReplay
);
stReplayInfo
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
360
,
60
,
570
,
3
2
0
),
false
,
true
,
wReplay
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1353
),
rect
<
s32
>
(
360
,
275
,
570
,
295
),
false
,
true
,
wReplay
);
ebRepStartTurn
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
360
,
300
,
460
,
320
),
true
,
wReplay
,
-
1
);
ebRepStartTurn
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
...
...
@@ -1679,6 +1680,7 @@ void Game::AddChatMsg(wchar_t* msg, int player) {
wchar_t
msg_front
[
256
];
myswprintf
(
msg_front
,
L"[Chat]%ls"
,
chatMsg
[
0
].
c_str
());
lstLog
->
addItem
(
msg_front
);
logParam
.
push_back
(
0
);
}
void
Game
::
ClearChatMsg
()
{
for
(
int
i
=
7
;
i
>=
0
;
--
i
)
{
...
...
@@ -1937,7 +1939,7 @@ void Game::OnResize() {
wPosSelect
->
setRelativePosition
(
ResizeWin
(
340
,
200
,
935
,
410
));
wCardSelect
->
setRelativePosition
(
ResizeWin
(
320
,
100
,
1000
,
400
));
wANNumber
->
setRelativePosition
(
ResizeWin
(
550
,
200
,
780
,
295
));
wANCard
->
setRelativePosition
(
ResizeWin
(
430
,
170
,
84
0
,
370
));
wANCard
->
setRelativePosition
(
ResizeWin
(
560
,
170
,
77
0
,
370
));
wANAttribute
->
setRelativePosition
(
ResizeWin
(
500
,
200
,
830
,
285
));
wANRace
->
setRelativePosition
(
ResizeWin
(
480
,
200
,
850
,
410
));
wReplaySave
->
setRelativePosition
(
ResizeWin
(
510
,
200
,
820
,
320
));
...
...
gframe/game.h
View file @
228d4829
...
...
@@ -94,6 +94,7 @@ struct DuelInfo {
wchar_t
str_card_count
[
2
][
16
];
video
::
SColor
card_count_color
[
2
];
bool
isReplaySwapped
;
std
::
vector
<
unsigned
int
>
announce_cache
;
};
struct
BotInfo
{
...
...
@@ -369,6 +370,7 @@ public:
irr
::
gui
::
IGUIButton
*
btnDeleteReplay
;
irr
::
gui
::
IGUIButton
*
btnRenameReplay
;
irr
::
gui
::
IGUIButton
*
btnReplayCancel
;
irr
::
gui
::
IGUIButton
*
btnExportDeck
;
irr
::
gui
::
IGUIEditBox
*
ebRepStartTurn
;
//single play
irr
::
gui
::
IGUIWindow
*
wSinglePlay
;
...
...
@@ -608,6 +610,7 @@ extern HostInfo game_info;
#define BUTTON_CANCEL_REPLAY 132
#define BUTTON_DELETE_REPLAY 133
#define BUTTON_RENAME_REPLAY 134
#define BUTTON_EXPORT_DECK 135
#define EDITBOX_CHAT 140
#define BUTTON_MSG_OK 200
#define BUTTON_YES 201
...
...
gframe/menu_handler.cpp
View file @
228d4829
...
...
@@ -280,6 +280,42 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
mainGame
->
ShowElement
(
mainGame
->
wMainMenu
);
break
;
}
case
BUTTON_EXPORT_DECK
:
{
if
(
mainGame
->
lstReplayList
->
getSelected
()
==
-
1
)
break
;
Replay
replay
;
wchar_t
ex_filename
[
256
];
wchar_t
namebuf
[
4
][
20
];
wchar_t
filename
[
256
];
myswprintf
(
ex_filename
,
L"%ls"
,
mainGame
->
lstReplayList
->
getListItem
(
mainGame
->
lstReplayList
->
getSelected
()));
if
(
!
replay
.
OpenReplay
(
ex_filename
))
break
;
const
ReplayHeader
&
rh
=
replay
.
pheader
;
if
(
rh
.
flag
&
REPLAY_SINGLE_MODE
)
break
;
int
max
=
(
rh
.
flag
&
REPLAY_TAG
)
?
4
:
2
;
//player name
for
(
int
i
=
0
;
i
<
max
;
++
i
)
replay
.
ReadName
(
namebuf
[
i
]);
//skip pre infos
for
(
int
i
=
0
;
i
<
4
;
++
i
)
replay
.
ReadInt32
();
//deck
for
(
int
i
=
0
;
i
<
max
;
++
i
)
{
int
main
=
replay
.
ReadInt32
();
Deck
tmp_deck
;
for
(
int
j
=
0
;
j
<
main
;
++
j
)
tmp_deck
.
main
.
push_back
(
dataManager
.
GetCodePointer
(
replay
.
ReadInt32
()));
int
extra
=
replay
.
ReadInt32
();
for
(
int
j
=
0
;
j
<
extra
;
++
j
)
tmp_deck
.
extra
.
push_back
(
dataManager
.
GetCodePointer
(
replay
.
ReadInt32
()));
myswprintf
(
filename
,
L"%ls %ls"
,
ex_filename
,
namebuf
[
i
]);
deckManager
.
SaveDeck
(
tmp_deck
,
filename
);
}
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1335
));
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
break
;
}
case
BUTTON_BOT_START
:
{
int
sel
=
mainGame
->
lstBotList
->
getSelected
();
if
(
sel
==
-
1
)
...
...
gframe/single_duel.cpp
View file @
228d4829
...
...
@@ -1871,8 +1871,7 @@ void SingleDuel::RequestField(DuelPlayer* dp) {
NetServer
::
SendBufferToPlayer
(
dp
,
STOC_GAME_MSG
,
phasebuf
,
3
);
char
query_buffer
[
256
];
char
*
qbuf
=
query_buffer
;
int
length
=
query_field_info
(
pduel
,
(
unsigned
char
*
)
qbuf
);
int
length
=
query_field_info
(
pduel
,
(
unsigned
char
*
)
query_buffer
);
NetServer
::
SendBufferToPlayer
(
dp
,
STOC_GAME_MSG
,
query_buffer
,
length
);
RefreshMzone
(
1
-
player
,
0xffdfff
,
0
,
dp
);
RefreshMzone
(
player
,
0xffdfff
,
0
,
dp
);
...
...
@@ -2231,7 +2230,7 @@ void SingleDuel::TestCard(int code) {
time_t
seed
=
time
(
0
);
mtrandom
rnd
;
rnd
.
reset
(
seed
);
set_script_reader
(
default_script_reader
);
set_script_reader
(
(
script_reader
)
ScriptReaderEx
);
set_card_reader
((
card_reader
)
DataManager
::
CardReader
);
set_message_handler
((
message_handler
)
SingleDuel
::
MessageHandler
);
rnd
.
reset
(
seed
);
...
...
gframe/single_mode.cpp
View file @
228d4829
...
...
@@ -53,6 +53,7 @@ int SingleMode::SinglePlayThread(void* param) {
BufferIO
::
CopyWStr
(
mainGame
->
ebNickName
->
getText
(),
mainGame
->
dInfo
.
hostname
,
20
);
mainGame
->
dInfo
.
clientname
[
0
]
=
0
;
mainGame
->
dInfo
.
turn
=
0
;
mainGame
->
dInfo
.
announce_cache
.
clear
();
char
filename
[
256
];
size_t
slen
=
0
;
if
(
open_file
)
{
...
...
gframe/sound_manager.cpp
View file @
228d4829
...
...
@@ -126,6 +126,10 @@ void SoundManager::PlaySoundEffect(int sound) {
engineSound
->
play2D
(
"./sound/token.wav"
);
break
;
}
case
SOUND_NEGATE
:
{
engineSound
->
play2D
(
"./sound/negate.wav"
);
break
;
}
case
SOUND_ATTACK
:
{
engineSound
->
play2D
(
"./sound/attack.wav"
);
break
;
...
...
gframe/sound_manager.h
View file @
228d4829
...
...
@@ -48,6 +48,7 @@ extern SoundManager soundManager;
#define SOUND_DESTROYED 108
#define SOUND_BANISHED 109
#define SOUND_TOKEN 110
#define SOUND_NEGATE 111
#define SOUND_ATTACK 201
#define SOUND_DIRECT_ATTACK 202
...
...
gframe/tag_duel.cpp
View file @
228d4829
...
...
@@ -630,7 +630,25 @@ void TagDuel::DuelEndProc() {
NetServer
::
StopServer
();
}
void
TagDuel
::
Surrender
(
DuelPlayer
*
dp
)
{
return
;
if
(
dp
->
type
>
3
||
!
pduel
)
return
;
unsigned
char
wbuf
[
3
];
uint32
player
=
(
dp
->
type
<
2
)
?
0
:
1
;
wbuf
[
0
]
=
MSG_WIN
;
wbuf
[
1
]
=
1
-
player
;
wbuf
[
2
]
=
0
;
NetServer
::
SendBufferToPlayer
(
players
[
0
],
STOC_GAME_MSG
,
wbuf
,
3
);
NetServer
::
ReSendToPlayer
(
players
[
1
]);
NetServer
::
ReSendToPlayer
(
players
[
2
]);
NetServer
::
ReSendToPlayer
(
players
[
3
]);
for
(
auto
oit
=
observers
.
begin
();
oit
!=
observers
.
end
();
++
oit
)
NetServer
::
ReSendToPlayer
(
*
oit
);
#ifdef YGOPRO_SERVER_MODE
NetServer
::
ReSendToPlayers
(
cache_recorder
,
replay_recorder
);
#endif
EndDuel
();
DuelEndProc
();
event_del
(
etimer
);
}
int
TagDuel
::
Analyze
(
char
*
msgbuffer
,
unsigned
int
len
)
{
char
*
offset
,
*
pbufw
,
*
pbuf
=
msgbuffer
;
...
...
@@ -1891,8 +1909,7 @@ void TagDuel::RequestField(DuelPlayer* dp) {
NetServer
::
SendBufferToPlayer
(
dp
,
STOC_GAME_MSG
,
phasebuf
,
3
);
char
query_buffer
[
256
];
char
*
qbuf
=
query_buffer
;
int
length
=
query_field_info
(
pduel
,
(
unsigned
char
*
)
qbuf
);
int
length
=
query_field_info
(
pduel
,
(
unsigned
char
*
)
query_buffer
);
NetServer
::
SendBufferToPlayer
(
dp
,
STOC_GAME_MSG
,
query_buffer
,
length
);
RefreshMzone
(
1
-
player
,
0xffdfff
,
0
,
dp
);
RefreshMzone
(
player
,
0xffdfff
,
0
,
dp
);
...
...
ocgcore
@
5807ac79
Subproject commit
69cbfa06b5019116b8327e43753be88a0c372812
Subproject commit
5807ac79cc78e70f7af08b4d7617748b4f9d162e
script
@
2b1bcd95
Subproject commit
fa9a0e7ba5c6eb54a0c330bf90f83e90a6d187b
0
Subproject commit
2b1bcd9532fc167ed65d1c117eee28d68b533f1
0
sound/files.txt
View file @
228d4829
...
...
@@ -8,6 +8,7 @@ equip.wav
destroyed.wav
banished.wav
token.wav
negate.wav
attack.wav
directattack.wav
draw.wav
...
...
strings.conf
View file @
228d4829
...
...
@@ -48,7 +48,7 @@
!
system
94
是否现在使用这张卡的效果?
!
system
95
是否使用[%
ls
]的效果?
!
system
96
是否使用[%
ls
]的效果代替破坏?
!
system
97
是否把[%
ls
]在魔法与陷阱区域
放置
?
!
system
97
是否把[%
ls
]在魔法与陷阱区域
盖放
?
!
system
98
是否要解放对方怪兽?
!
system
100
先攻
!
system
101
后攻
...
...
@@ -95,7 +95,7 @@
!
system
524
请选择里侧攻击表示的怪兽
!
system
525
请选择里侧守备表示的怪兽
!
system
526
请选择给对方确认的卡
!
system
527
请选择要
放置
到场上的卡
!
system
527
请选择要
盖放
到场上的卡
!
system
528
请选择要改变表示形式的怪兽
!
system
529
请选择自己的卡
!
system
530
请选择对方的卡
...
...
@@ -229,13 +229,13 @@
!
system
1150
发动
!
system
1151
召唤
!
system
1152
特殊召唤
!
system
1153
放置
!
system
1153
盖放
!
system
1154
反转召唤
!
system
1155
守备表示
!
system
1156
攻击表示
!
system
1157
攻击
!
system
1158
查看列表
!
system
1159
当魔法卡
放置
!
system
1159
当魔法卡
盖放
!
system
1160
在灵摆区域发动
!
system
1161
效果处理
!
system
1162
效果重置
...
...
@@ -394,6 +394,7 @@
!
system
1366
重命名成功
!
system
1367
重命名卡组
!
system
1368
卡组文件:
!
system
1369
提取卡组
!
system
1370
星数↑
!
system
1371
攻击↑
!
system
1372
守备↑
...
...
@@ -437,7 +438,7 @@
!
system
1511
对方宣言了:[%
ls
]
!
system
1512
对方选择了:[%
d
]
!
system
1600
卡片改变了表示形式
!
system
1601
放置
了卡片
!
system
1601
盖放
了卡片
!
system
1602
卡的控制权改变了
!
system
1603
[%
ls
]召唤中
!
system
1604
怪兽召唤成功
...
...
@@ -925,4 +926,4 @@
!
setname
0
x11f
奈芙提斯 ネフティス
!
setname
0
x120
调皮宝贝 プランキッズ
!
setname
0
x121
魔妖
!
setname
0
x122
女武神
!
setname
0
x122
女武神
Valkyrie
system.conf
View file @
228d4829
...
...
@@ -8,8 +8,8 @@ errorlog = 3
nickname
=
Komeiji
Koishi
gamename
=
Game
lastdeck
=
new
textfont
=
c
:/
windows
/
fonts
/
simhei
.
ttf
14
numfont
=
c
:/
windows
/
fonts
/
arial
.
ttf
textfont
=
.
/
fonts
/
simhei
.
ttf
14
numfont
=
.
/
fonts
/
arial
.
ttf
serverport
=
7911
lasthost
=
127
.
0
.
0
.
1
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