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
baichixing
ygopro
Commits
d50cf377
Commit
d50cf377
authored
Jun 28, 2024
by
wind2009
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'upstream/master'
parents
967bfd6a
82542f13
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
299 additions
and
100 deletions
+299
-100
gframe/bufferio.h
gframe/bufferio.h
+4
-0
gframe/config.h
gframe/config.h
+0
-1
gframe/deck_con.cpp
gframe/deck_con.cpp
+1
-1
gframe/deck_manager.cpp
gframe/deck_manager.cpp
+6
-4
gframe/duelclient.cpp
gframe/duelclient.cpp
+13
-14
gframe/duelclient.h
gframe/duelclient.h
+4
-7
gframe/gframe.cpp
gframe/gframe.cpp
+1
-0
gframe/netserver.cpp
gframe/netserver.cpp
+17
-17
gframe/netserver.h
gframe/netserver.h
+5
-8
gframe/single_duel.cpp
gframe/single_duel.cpp
+3
-2
gframe/tag_duel.cpp
gframe/tag_duel.cpp
+3
-2
lflist.conf
lflist.conf
+213
-17
premake/gframe/ygopro.rc
premake/gframe/ygopro.rc
+27
-27
strings.conf
strings.conf
+2
-0
No files found.
gframe/bufferio.h
View file @
d50cf377
...
...
@@ -153,6 +153,10 @@ public:
static
int
DecodeUTF8
(
const
char
*
src
,
wchar_t
(
&
dst
)[
N
])
{
return
DecodeUTF8String
(
src
,
dst
,
N
);
}
template
<
size_t
N
,
typename
T
>
static
void
NullTerminate
(
T
(
&
str
)[
N
])
{
str
[
N
-
1
]
=
0
;
}
static
int
GetVal
(
const
wchar_t
*
pstr
)
{
unsigned
int
ret
=
0
;
while
(
*
pstr
>=
L'0'
&&
*
pstr
<=
L'9'
)
{
...
...
gframe/config.h
View file @
d50cf377
...
...
@@ -31,7 +31,6 @@
#include <arpa/inet.h>
#include <netdb.h>
#include <unistd.h>
#include <locale.h>
#define SD_BOTH 2
#define SOCKET int
...
...
gframe/deck_con.cpp
View file @
d50cf377
...
...
@@ -1757,7 +1757,7 @@ bool DeckBuilder::push_main(code_pointer pointer, int seq) {
if
(
pointer
->
second
.
type
&
(
TYPE_FUSION
|
TYPE_SYNCHRO
|
TYPE_XYZ
|
TYPE_LINK
))
return
false
;
auto
&
container
=
deckManager
.
current_deck
.
main
;
int
maxc
=
mainGame
->
is_siding
?
DECK_MAX_SIZE
+
4
:
DECK_MAX_SIZE
;
int
maxc
=
mainGame
->
is_siding
?
DECK_MAX_SIZE
+
5
:
DECK_MAX_SIZE
;
if
((
int
)
container
.
size
()
>=
maxc
)
return
false
;
if
(
seq
>=
0
&&
seq
<
(
int
)
container
.
size
())
...
...
gframe/deck_manager.cpp
View file @
d50cf377
...
...
@@ -173,7 +173,7 @@ int DeckManager::LoadDeck(Deck& deck, int* dbuf, int mainc, int sidec, bool is_p
}
if
(
cd
.
type
&
TYPE_TOKEN
)
continue
;
if
(
deck
.
side
.
size
()
<
15
)
if
(
deck
.
side
.
size
()
<
SIDE_MAX_SIZE
)
deck
.
side
.
push_back
(
dataManager
.
GetCodePointer
(
code
));
}
return
errorcode
;
...
...
@@ -242,6 +242,8 @@ bool DeckManager::LoadDeck(irr::gui::IGUIComboBox* cbCategory, irr::gui::IGUICom
bool
res
=
LoadDeck
(
filepath
,
is_packlist
);
if
(
res
&&
mainGame
->
is_building
)
mainGame
->
deckBuilder
.
RefreshPackListScroll
();
if
(
!
res
)
current_deck
.
clear
();
return
res
;
}
FILE
*
DeckManager
::
OpenDeckFile
(
const
wchar_t
*
file
,
const
char
*
mode
)
{
...
...
@@ -280,8 +282,8 @@ bool DeckManager::LoadDeck(const wchar_t* file, bool is_packlist) {
}
if
(
!
reader
)
return
false
;
size_t
size
=
reader
->
getSize
();
if
(
size
>=
0x20000
)
{
auto
size
=
reader
->
getSize
();
if
(
size
>=
(
int
)
sizeof
deckBuffer
)
{
reader
->
drop
();
return
false
;
}
...
...
@@ -296,7 +298,7 @@ bool DeckManager::LoadDeck(std::istringstream* deckStream, bool is_packlist) {
int
cardlist
[
300
];
bool
is_side
=
false
;
std
::
string
linebuf
;
while
(
std
::
getline
(
*
deckStream
,
linebuf
)
&&
ct
<
300
)
{
while
(
std
::
getline
(
*
deckStream
,
linebuf
,
'\n'
)
&&
ct
<
300
)
{
if
(
linebuf
[
0
]
==
'!'
)
{
is_side
=
true
;
continue
;
...
...
gframe/duelclient.cpp
View file @
d50cf377
...
...
@@ -19,8 +19,6 @@ unsigned char DuelClient::selftype = 0;
bool
DuelClient
::
is_host
=
false
;
event_base
*
DuelClient
::
client_base
=
0
;
bufferevent
*
DuelClient
::
client_bev
=
0
;
unsigned
char
DuelClient
::
duel_client_read
[
SIZE_NETWORK_BUFFER
];
int
DuelClient
::
read_len
=
0
;
unsigned
char
DuelClient
::
duel_client_write
[
SIZE_NETWORK_BUFFER
];
bool
DuelClient
::
is_closing
=
false
;
bool
DuelClient
::
is_swapping
=
false
;
...
...
@@ -50,6 +48,7 @@ bool DuelClient::StartClient(unsigned int ip, unsigned short port, bool create_g
sin
.
sin_addr
.
s_addr
=
htonl
(
ip
);
sin
.
sin_port
=
htons
(
port
);
client_bev
=
bufferevent_socket_new
(
client_base
,
-
1
,
BEV_OPT_CLOSE_ON_FREE
);
bufferevent_setwatermark
(
client_bev
,
EV_READ
,
3
,
0
);
bufferevent_setcb
(
client_bev
,
ClientRead
,
NULL
,
ClientEvent
,
(
void
*
)
create_game
);
if
(
bufferevent_socket_connect
(
client_bev
,
(
sockaddr
*
)
&
sin
,
sizeof
(
sin
))
<
0
)
{
bufferevent_free
(
client_bev
);
...
...
@@ -100,24 +99,23 @@ void DuelClient::StopClient(bool is_exiting) {
void
DuelClient
::
ClientRead
(
bufferevent
*
bev
,
void
*
ctx
)
{
evbuffer
*
input
=
bufferevent_get_input
(
bev
);
int
len
=
evbuffer_get_length
(
input
);
unsigned
short
packet_len
=
0
;
while
(
true
)
{
if
(
len
<
2
)
return
;
evbuffer_copyout
(
input
,
&
packet_len
,
2
);
unsigned
char
*
duel_client_read
=
new
unsigned
char
[
std
::
min
(
len
,
SIZE_NETWORK_BUFFER
)];
unsigned
short
packet_len
;
while
(
len
>=
2
)
{
evbuffer_copyout
(
input
,
&
packet_len
,
sizeof
packet_len
);
if
(
packet_len
+
2
>
SIZE_NETWORK_BUFFER
)
{
delete
[]
duel_client_read
;
ClientEvent
(
bev
,
BEV_EVENT_ERROR
,
0
);
return
;
}
if
(
len
<
packet_len
+
2
)
return
;
if
(
packet_len
<
1
)
return
;
read_len
=
evbuffer_remove
(
input
,
duel_client_read
,
packet_len
+
2
);
if
(
len
<
packet_len
+
2
)
break
;
int
read_len
=
evbuffer_remove
(
input
,
duel_client_read
,
packet_len
+
2
);
if
(
read_len
>=
3
)
HandleSTOCPacketLan
(
&
duel_client_read
[
2
],
read_len
-
2
);
len
-=
packet_len
+
2
;
}
delete
[]
duel_client_read
;
}
void
DuelClient
::
ClientEvent
(
bufferevent
*
bev
,
short
events
,
void
*
ctx
)
{
if
(
events
&
BEV_EVENT_CONNECTED
)
{
...
...
@@ -823,10 +821,11 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, int len) {
soundManager
.
PlaySoundEffect
(
SOUND_PLAYER_ENTER
);
STOC_HS_PlayerEnter
packet
;
std
::
memcpy
(
&
packet
,
pdata
,
STOC_HS_PlayerEnter_size
);
const
auto
*
pkt
=
&
packet
;
auto
pkt
=
&
packet
;
if
(
pkt
->
pos
>
3
)
break
;
wchar_t
name
[
20
];
BufferIO
::
NullTerminate
(
pkt
->
name
);
BufferIO
::
CopyWStr
(
pkt
->
name
,
name
,
20
);
if
(
mainGame
->
dInfo
.
isTag
)
{
if
(
pkt
->
pos
==
0
)
...
...
@@ -1515,7 +1514,7 @@ int DuelClient::ClientAnalyze(unsigned char* msg, unsigned int len) {
wchar_t
ynbuf
[
256
];
myswprintf
(
ynbuf
,
dataManager
.
GetSysString
(
221
),
dataManager
.
FormatLocation
(
l
,
s
),
dataManager
.
GetName
(
code
));
myswprintf
(
textBuffer
,
L"%ls
\n
%ls
\n
%ls"
,
event_string
,
ynbuf
,
dataManager
.
GetSysString
(
223
));
}
else
if
(
desc
<
2048
)
{
}
else
if
(
desc
<
=
MAX_STRING_ID
)
{
myswprintf
(
textBuffer
,
dataManager
.
GetSysString
(
desc
),
dataManager
.
GetName
(
code
));
}
else
{
myswprintf
(
textBuffer
,
dataManager
.
GetDesc
(
desc
),
dataManager
.
GetName
(
code
));
...
...
gframe/duelclient.h
View file @
d50cf377
...
...
@@ -21,8 +21,6 @@ private:
static
bool
is_host
;
static
event_base
*
client_base
;
static
bufferevent
*
client_bev
;
static
unsigned
char
duel_client_read
[
SIZE_NETWORK_BUFFER
];
static
int
read_len
;
static
unsigned
char
duel_client_write
[
SIZE_NETWORK_BUFFER
];
static
bool
is_closing
;
static
bool
is_swapping
;
...
...
@@ -56,13 +54,12 @@ public:
template
<
typename
ST
>
static
void
SendPacketToServer
(
unsigned
char
proto
,
ST
&
st
)
{
auto
p
=
duel_client_write
;
int
blen
=
sizeof
(
ST
);
if
(
blen
>
MAX_DATA_SIZE
)
if
((
int
)
sizeof
(
ST
)
>
MAX_DATA_SIZE
)
return
;
BufferIO
::
WriteInt16
(
p
,
(
short
)(
1
+
blen
));
BufferIO
::
WriteInt16
(
p
,
(
short
)(
1
+
sizeof
(
ST
)
));
BufferIO
::
WriteInt8
(
p
,
proto
);
std
::
memcpy
(
p
,
&
st
,
blen
);
bufferevent_write
(
client_bev
,
duel_client_write
,
blen
+
3
);
std
::
memcpy
(
p
,
&
st
,
sizeof
(
ST
)
);
bufferevent_write
(
client_bev
,
duel_client_write
,
sizeof
(
ST
)
+
3
);
}
static
void
SendBufferToServer
(
unsigned
char
proto
,
void
*
buffer
,
size_t
len
)
{
auto
p
=
duel_client_write
;
...
...
gframe/gframe.cpp
View file @
d50cf377
...
...
@@ -2,6 +2,7 @@
#include "game.h"
#include "data_manager.h"
#include <event2/thread.h>
#include <locale.h>
#include <memory>
#ifdef __APPLE__
#import <CoreFoundation/CoreFoundation.h>
...
...
gframe/netserver.cpp
View file @
d50cf377
...
...
@@ -9,8 +9,6 @@ event_base* NetServer::net_evbase = 0;
event
*
NetServer
::
broadcast_ev
=
0
;
evconnlistener
*
NetServer
::
listener
=
0
;
DuelMode
*
NetServer
::
duel_mode
=
0
;
unsigned
char
NetServer
::
net_server_read
[
SIZE_NETWORK_BUFFER
];
int
NetServer
::
read_len
=
0
;
unsigned
char
NetServer
::
net_server_write
[
SIZE_NETWORK_BUFFER
];
unsigned
short
NetServer
::
last_sent
=
0
;
...
...
@@ -109,6 +107,7 @@ void NetServer::ServerAccept(evconnlistener* listener, evutil_socket_t fd, socka
dp
.
type
=
0xff
;
dp
.
bev
=
bev
;
users
[
bev
]
=
dp
;
bufferevent_setwatermark
(
bev
,
EV_READ
,
3
,
0
);
bufferevent_setcb
(
bev
,
ServerEchoRead
,
NULL
,
ServerEchoEvent
,
NULL
);
bufferevent_enable
(
bev
,
EV_READ
);
}
...
...
@@ -123,24 +122,23 @@ void NetServer::ServerAcceptError(evconnlistener* listener, void* ctx) {
void
NetServer
::
ServerEchoRead
(
bufferevent
*
bev
,
void
*
ctx
)
{
evbuffer
*
input
=
bufferevent_get_input
(
bev
);
int
len
=
evbuffer_get_length
(
input
);
unsigned
short
packet_len
=
0
;
while
(
true
)
{
if
(
len
<
2
)
return
;
evbuffer_copyout
(
input
,
&
packet_len
,
2
);
unsigned
char
*
net_server_read
=
new
unsigned
char
[
std
::
min
(
len
,
SIZE_NETWORK_BUFFER
)];
unsigned
short
packet_len
;
while
(
len
>=
2
)
{
evbuffer_copyout
(
input
,
&
packet_len
,
sizeof
packet_len
);
if
(
packet_len
+
2
>
SIZE_NETWORK_BUFFER
)
{
delete
[]
net_server_read
;
ServerEchoEvent
(
bev
,
BEV_EVENT_ERROR
,
0
);
return
;
}
if
(
len
<
packet_len
+
2
)
return
;
if
(
packet_len
<
1
)
return
;
read_len
=
evbuffer_remove
(
input
,
net_server_read
,
packet_len
+
2
);
break
;
int
read_len
=
evbuffer_remove
(
input
,
net_server_read
,
packet_len
+
2
);
if
(
read_len
>=
3
)
HandleCTOSPacket
(
&
users
[
bev
],
&
net_server_read
[
2
],
read_len
-
2
);
len
-=
packet_len
+
2
;
}
delete
[]
net_server_read
;
}
void
NetServer
::
ServerEchoEvent
(
bufferevent
*
bev
,
short
events
,
void
*
ctx
)
{
if
(
events
&
(
BEV_EVENT_EOF
|
BEV_EVENT_ERROR
))
{
...
...
@@ -249,7 +247,8 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
return
;
CTOS_PlayerInfo
packet
;
std
::
memcpy
(
&
packet
,
pdata
,
sizeof
packet
);
const
auto
*
pkt
=
&
packet
;
auto
pkt
=
&
packet
;
BufferIO
::
NullTerminate
(
pkt
->
name
);
BufferIO
::
CopyWStr
(
pkt
->
name
,
dp
->
name
,
20
);
break
;
}
...
...
@@ -271,10 +270,10 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
duel_mode
=
new
TagDuel
();
duel_mode
->
etimer
=
event_new
(
net_evbase
,
0
,
EV_TIMEOUT
|
EV_PERSIST
,
TagDuel
::
TagTimer
,
duel_mode
);
}
if
(
pkt
->
info
.
rule
>
5
)
pkt
->
info
.
rule
=
5
;
if
(
pkt
->
info
.
mode
>
2
)
pkt
->
info
.
mode
=
0
;
if
(
pkt
->
info
.
rule
>
CURRENT_RULE
)
pkt
->
info
.
rule
=
CURRENT_RULE
;
if
(
pkt
->
info
.
mode
>
MODE_TAG
)
pkt
->
info
.
mode
=
MODE_SINGLE
;
unsigned
int
hash
=
1
;
for
(
auto
lfit
=
deckManager
.
_lfList
.
begin
();
lfit
!=
deckManager
.
_lfList
.
end
();
++
lfit
)
{
if
(
pkt
->
info
.
lflist
==
lfit
->
hash
)
{
...
...
@@ -284,8 +283,9 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
}
if
(
hash
==
1
)
pkt
->
info
.
lflist
=
deckManager
.
_lfList
[
0
].
hash
;
std
::
memcpy
(
pdata
,
&
packet
,
sizeof
packet
);
duel_mode
->
host_info
=
pkt
->
info
;
BufferIO
::
NullTerminate
(
pkt
->
name
);
BufferIO
::
NullTerminate
(
pkt
->
pass
);
BufferIO
::
CopyWStr
(
pkt
->
name
,
duel_mode
->
name
,
20
);
BufferIO
::
CopyWStr
(
pkt
->
pass
,
duel_mode
->
pass
,
20
);
duel_mode
->
JoinGame
(
dp
,
0
,
true
);
...
...
gframe/netserver.h
View file @
d50cf377
...
...
@@ -18,8 +18,6 @@ private:
static
event
*
broadcast_ev
;
static
evconnlistener
*
listener
;
static
DuelMode
*
duel_mode
;
static
unsigned
char
net_server_read
[
SIZE_NETWORK_BUFFER
];
static
int
read_len
;
static
unsigned
char
net_server_write
[
SIZE_NETWORK_BUFFER
];
static
unsigned
short
last_sent
;
...
...
@@ -50,15 +48,14 @@ public:
template
<
typename
ST
>
static
void
SendPacketToPlayer
(
DuelPlayer
*
dp
,
unsigned
char
proto
,
ST
&
st
)
{
auto
p
=
net_server_write
;
int
blen
=
sizeof
(
ST
);
if
(
blen
>
MAX_DATA_SIZE
)
if
((
int
)
sizeof
(
ST
)
>
MAX_DATA_SIZE
)
return
;
BufferIO
::
WriteInt16
(
p
,
(
short
)(
1
+
blen
));
BufferIO
::
WriteInt16
(
p
,
(
short
)(
1
+
sizeof
(
ST
)
));
BufferIO
::
WriteInt8
(
p
,
proto
);
std
::
memcpy
(
p
,
&
st
,
blen
);
last_sent
=
blen
+
3
;
std
::
memcpy
(
p
,
&
st
,
sizeof
(
ST
)
);
last_sent
=
sizeof
(
ST
)
+
3
;
if
(
dp
)
bufferevent_write
(
dp
->
bev
,
net_server_write
,
blen
+
3
);
bufferevent_write
(
dp
->
bev
,
net_server_write
,
sizeof
(
ST
)
+
3
);
}
static
void
SendBufferToPlayer
(
DuelPlayer
*
dp
,
unsigned
char
proto
,
void
*
buffer
,
size_t
len
)
{
auto
p
=
net_server_write
;
...
...
gframe/single_duel.cpp
View file @
d50cf377
...
...
@@ -34,7 +34,7 @@ void SingleDuel::JoinGame(DuelPlayer* dp, unsigned char* pdata, bool is_creater)
}
CTOS_JoinGame
packet
;
std
::
memcpy
(
&
packet
,
pdata
,
sizeof
packet
);
const
auto
*
pkt
=
&
packet
;
auto
pkt
=
&
packet
;
if
(
pkt
->
version
!=
PRO_VERSION
)
{
STOC_ErrorMsg
scem
;
scem
.
msg
=
ERRMSG_VERERROR
;
...
...
@@ -44,6 +44,7 @@ void SingleDuel::JoinGame(DuelPlayer* dp, unsigned char* pdata, bool is_creater)
return
;
}
wchar_t
jpass
[
20
];
BufferIO
::
NullTerminate
(
pkt
->
pass
);
BufferIO
::
CopyWStr
(
pkt
->
pass
,
jpass
,
20
);
if
(
wcscmp
(
jpass
,
pass
))
{
STOC_ErrorMsg
scem
;
...
...
@@ -1417,7 +1418,7 @@ int SingleDuel::Analyze(unsigned char* msgbuffer, unsigned int len) {
return
0
;
}
void
SingleDuel
::
GetResponse
(
DuelPlayer
*
dp
,
unsigned
char
*
pdata
,
unsigned
int
len
)
{
byte
resb
[
SIZE_RETURN_VALUE
];
byte
resb
[
SIZE_RETURN_VALUE
]
{}
;
if
(
len
>
SIZE_RETURN_VALUE
)
len
=
SIZE_RETURN_VALUE
;
std
::
memcpy
(
resb
,
pdata
,
len
);
...
...
gframe/tag_duel.cpp
View file @
d50cf377
...
...
@@ -38,7 +38,7 @@ void TagDuel::JoinGame(DuelPlayer* dp, unsigned char* pdata, bool is_creater) {
}
CTOS_JoinGame
packet
;
std
::
memcpy
(
&
packet
,
pdata
,
sizeof
packet
);
const
auto
*
pkt
=
&
packet
;
auto
pkt
=
&
packet
;
if
(
pkt
->
version
!=
PRO_VERSION
)
{
STOC_ErrorMsg
scem
;
scem
.
msg
=
ERRMSG_VERERROR
;
...
...
@@ -48,6 +48,7 @@ void TagDuel::JoinGame(DuelPlayer* dp, unsigned char* pdata, bool is_creater) {
return
;
}
wchar_t
jpass
[
20
];
BufferIO
::
NullTerminate
(
pkt
->
pass
);
BufferIO
::
CopyWStr
(
pkt
->
pass
,
jpass
,
20
);
if
(
wcscmp
(
jpass
,
pass
))
{
STOC_ErrorMsg
scem
;
...
...
@@ -1532,7 +1533,7 @@ int TagDuel::Analyze(unsigned char* msgbuffer, unsigned int len) {
return
0
;
}
void
TagDuel
::
GetResponse
(
DuelPlayer
*
dp
,
unsigned
char
*
pdata
,
unsigned
int
len
)
{
byte
resb
[
SIZE_RETURN_VALUE
];
byte
resb
[
SIZE_RETURN_VALUE
]
{}
;
if
(
len
>
SIZE_RETURN_VALUE
)
len
=
SIZE_RETURN_VALUE
;
std
::
memcpy
(
resb
,
pdata
,
len
);
...
...
lflist.conf
View file @
d50cf377
#[2024.
4][2024.4 TCG
][2024.1][2023.10][2023.7][2023.4][2023.1][2022.10][2022.7][2022.4][2022.1][2021.10][2021.7][2021.4][2021.1][2020.10][2020.7][2020.4][2020.1][2019.10][2019.7][2019.4][2019.1][2018.10][2018.7][2018.4][2018.1][2017.10][2017.7][2017.4][2017.1][2016.10][2016.7][2016.4][2016.1][2015.10][2015.4][2015.1][2014.10][2014.7][2014.4][2014.2][2013.9][2024.1 TCG][2023.9 TCG][2023.6 TCG][2023.2 TCG][2022.12 TCG][2022.10 TCG][2022.5 TCG][2022.2 TCG][2021.10 TCG][2021.7 TCG][2021.3 TCG][2020.12 TCG][2020.9 TCG][2020.6 TCG][2020.4 TCG][2020.1 TCG][2019.10 TCG][2019.7 TCG][2019.4 TCG][2019.1 TCG][2018.12 TCG][2018.9 TCG][2018.5 TCG][2018.2 TCG][2017.11 TCG][2017.9 TCG][2017.6 TCG][2017.3 TCG][2016.8 TCG][2016.4 TCG][2015.11 TCG][2015.7 TCG][2015.4 TCG][2015.1 TCG][2014.10 TCG][2014.7 TCG][2014.4 TCG][2014.1.1 TCG][2013.10.11 TCG][2013.3.1][2012.9.1][2012.3.1][2011.9.1]
!
2024
.
4
#[2024.
7][2024.4 TCG][2024.4
][2024.1][2023.10][2023.7][2023.4][2023.1][2022.10][2022.7][2022.4][2022.1][2021.10][2021.7][2021.4][2021.1][2020.10][2020.7][2020.4][2020.1][2019.10][2019.7][2019.4][2019.1][2018.10][2018.7][2018.4][2018.1][2017.10][2017.7][2017.4][2017.1][2016.10][2016.7][2016.4][2016.1][2015.10][2015.4][2015.1][2014.10][2014.7][2014.4][2014.2][2013.9][2024.1 TCG][2023.9 TCG][2023.6 TCG][2023.2 TCG][2022.12 TCG][2022.10 TCG][2022.5 TCG][2022.2 TCG][2021.10 TCG][2021.7 TCG][2021.3 TCG][2020.12 TCG][2020.9 TCG][2020.6 TCG][2020.4 TCG][2020.1 TCG][2019.10 TCG][2019.7 TCG][2019.4 TCG][2019.1 TCG][2018.12 TCG][2018.9 TCG][2018.5 TCG][2018.2 TCG][2017.11 TCG][2017.9 TCG][2017.6 TCG][2017.3 TCG][2016.8 TCG][2016.4 TCG][2015.11 TCG][2015.7 TCG][2015.4 TCG][2015.1 TCG][2014.10 TCG][2014.7 TCG][2014.4 TCG][2014.1.1 TCG][2013.10.11 TCG][2013.3.1][2012.9.1][2012.3.1][2011.9.1]
!
2024
.
7
#forbidden
91869203
0
--アマゾネスの射手
20663556
0
--イレカエル
44910027
0
--ヴィクトリー・ドラゴン
51858306
0
--エクリプス・ワイバーン
07563579
0
--
Em
ヒグルミ
62242678
0
--琰魔竜王 レッド・デーモン・カラミティ
34945480
0
--外神アザトート
95727991
0
--カタパルト・タートル
08903700
0
--儀式魔人リリーサー
11384280
0
--キャノン・ソルジャー
17412721
0
--旧神ノーデン
...
...
@@ -46,7 +46,6 @@
23558733
0
--フェニキシアン・クラスター・アマリリス
09929398
0
--
BF
-朧影のゴウフウ
70369116
0
--捕食植物ヴェルテ・アナコンダ
31178212
0
--マジェスペクター・ユニコーン
63101919
0
--マジックテンペスター
34206604
0
--魔導サイエンティスト
14702066
0
--メガキャノン・ソルジャー
...
...
@@ -60,6 +59,7 @@
41482598
0
--悪夢の蜃気楼
44763025
0
--いたずら好きな双子悪魔
17375316
0
--押収
35059553
0
--カイザーコロシアム
74191942
0
--苦渋の選択
42829885
0
--強引な番兵
45986603
0
--強奪
...
...
@@ -91,11 +91,11 @@
#limit
76794549
1
--アストログラフ・マジシャン
40177746
1
--イーバ
53804307
1
--焔征竜-ブラスター
27552504
1
--永遠の淑女 ベアトリーチェ
29301450
1
--
S
:
P
リトルナイト
07563579
1
--
Em
ヒグルミ
17330916
1
--
EM
モンキーボード
90411554
1
--巌征竜-レドックス
68304193
1
--クシャトリラ・ユニコーン
67441435
1
--グローアップ・バルブ
12289247
1
--クロノグラフ・マジシャン
99937011
1
--剣神官ムドラ
38814750
1
--
PSY
フレームギア・γ
...
...
@@ -105,22 +105,21 @@
78872731
1
--十二獣モルモラット
06602300
1
--重爆撃禽 ボム・フェネクス
63542003
1
--宿神像ケルドウ
78080961
1
--
SPYRAL
-ジーニアス
09674034
1
--スネークアイ・エクセル
81275020
1
--
SR
ベイゴマックス
13533678
1
--スプライト・ジェット
76145933
1
--スプライト・ブルー
82385847
1
--ダイナレスラー・パンクラトプス
90361010
1
--超重武者装留イワトオシ
15291624
1
--超雷龍-サンダー・ドラゴン
04928565
1
--ティアラメンツ・クシャトリラ
00572850
1
--ティアラメンツ・シェイレーン
37961969
1
--ティアラメンツ・ハゥフニス
74078255
1
--ティアラメンツ・メイルゥ
73956664
1
--ティアラメンツ・レイノハート
90953320
1
--
TG
ハイパー・ライブラリアン
75433814
1
--
No
.
40
ギミック・パペット-ヘブンズ・ストリングス
90448279
1
--天霆號アーゼウス
17266660
1
--朱光の宣告者
26400609
1
--瀑征竜-タイダル
06637331
1
--深淵の獣ドルイドヴルム
72656408
1
--深淵の獣バルドレイク
33854624
1
--深淵の獣マグナムート
...
...
@@ -129,12 +128,11 @@
07902349
1
--封印されし者の左腕
08124921
1
--封印されし者の右足
70903634
1
--封印されし者の右腕
35272499
1
--捕食植物オフリス・スコーピオ
94689206
1
--ブロックドラゴン
24094258
1
--ヘビーメタルフォーゼ・エレクトラム
31178212
1
--マジェスペクター・ユニコーン
04423206
1
--
M
.
X
-セイバー インヴォーカー
33508719
1
--メタモルポット
89399912
1
--嵐征竜-テンペスト
92746535
1
--竜剣士ラスター
P
77103950
1
--壱世壊=ペルレイノ
33782437
1
--一時休戦
...
...
@@ -145,6 +143,7 @@
84211599
1
--金満で謙虚な壺
23701465
1
--原初の種
80845034
1
--“罪宝狩りの悪魔”
30336082
1
--盃満ちる燦幻荘
83764718
1
--死者蘇生
46060017
1
--十二獣の会局
15443125
1
--スプライト・スターター
...
...
@@ -167,21 +166,23 @@
27970830
1
--六武の門
02295440
1
--ワン・フォー・ワン
90846359
1
--群雄割拠
23516703
1
--サモンリミッター
82732705
1
--スキルドレイン
24207889
1
--センサー万別
35316708
1
--刻の封印
21076084
1
--トリックスター・リンカーネイション
23002292
1
--レッド・リブート
#semi limit
29301450
2
--
S
:
P
リトルナイト
02526224
2
--炎王神獣 キリン
09674034
2
--スネークアイ・エクセル
94677445
2
--星杯の神子イヴ
53804307
2
--焔征竜-ブラスター
90411554
2
--巌征竜-レドックス
78080961
2
--
SPYRAL
-ジーニアス
91800273
2
--ディメンション・アトラクター
09411399
2
--
D
-
HERO
ディアボリックガイ
26400609
2
--瀑征竜-タイダル
89399912
2
--嵐征竜-テンペスト
65734501
2
--
R
-
ACE
エアホイスター
35726888
2
--おろかな副葬
35059553
2
--カイザーコロシアム
85106525
2
--篝火
67723438
2
--緊急テレポート
49238328
2
--強欲で金満な壺
35261759
2
--強欲で貪欲な壺
...
...
@@ -394,6 +395,201 @@
21347668
2
--
Purrely
Sleepy
Memory
92107604
2
--
Runick
Fountain
!
2024
.
4
#forbidden
91869203
0
--アマゾネスの射手
20663556
0
--イレカエル
44910027
0
--ヴィクトリー・ドラゴン
51858306
0
--エクリプス・ワイバーン
07563579
0
--
Em
ヒグルミ
62242678
0
--琰魔竜王 レッド・デーモン・カラミティ
34945480
0
--外神アザトート
08903700
0
--儀式魔人リリーサー
11384280
0
--キャノン・ソルジャー
17412721
0
--旧神ノーデン
32909498
0
--クシャトリラ・フェンリル
50588353
0
--水晶機巧-ハリファイバー
62320425
0
--古衛兵アギド
25926710
0
--古尖兵ケルベク
03040496
0
--混沌魔龍 カオス・ルーラー
34124316
0
--サイバーポッド
02563463
0
--流離のグリフォンライダー
88071625
0
--
The
tyrant
NEPTUNE
52653092
0
--
SNo
.
0
ホープ・ゼアル
48905153
0
--十二獣ドランシア
85115440
0
--十二獣ブルホーン
59537380
0
--守護竜アガーペイン
86148577
0
--守護竜エルピィ
88581108
0
--真竜皇
V
.
F
.
D
.
21377582
0
--真竜剣皇マスター
P
27381364
0
--スプライト・エルフ
16923472
0
--ゼンマイハンター
15341821
0
--ダンディライオン
77679716
0
--超重武者装留ブレイク・アーマー
37818794
0
--超魔導竜騎士-ドラグーン・オブ・レッドアイズ
92731385
0
--ティアラメンツ・キトカロス
69015963
0
--デビル・フランケン
79875176
0
--トゥーン・キャノン・ソルジャー
75732622
0
--トーチ・ゴーレム
22593417
0
--トポロジック・ガンブラー・ドラゴン
39064822
0
--トロイメア・ゴブリン
03679218
0
--トロイメア・マーメイド
54719828
0
--
No
.
16
色の支配者ショック・ルーラー
63504681
0
--
No
.
86
H
-
C
ロンゴミアント
58820923
0
--
No
.
95
ギャラクシーアイズ・ダークマター・ドラゴン
78706415
0
--ファイバーポッド
93369354
0
--フィッシュボーグ-ガンナー
23558733
0
--フェニキシアン・クラスター・アマリリス
09929398
0
--
BF
-朧影のゴウフウ
70369116
0
--捕食植物ヴェルテ・アナコンダ
31178212
0
--マジェスペクター・ユニコーン
63101919
0
--マジックテンペスター
34206604
0
--魔導サイエンティスト
14702066
0
--メガキャノン・ソルジャー
96782886
0
--メンタルマスター
90809975
0
--餅カエル
83152482
0
--ユニオン・キャリアー
34086406
0
--ラヴァルバル・チェイン
85243784
0
--リンクロス
73356503
0
--烈風の結界像
57421866
0
--レベル・スティーラー
41482598
0
--悪夢の蜃気楼
44763025
0
--いたずら好きな双子悪魔
17375316
0
--押収
74191942
0
--苦渋の選択
42829885
0
--強引な番兵
45986603
0
--強奪
55144522
0
--強欲な壺
23557835
0
--次元融合
31423101
0
--神剣-フェニックスブレード
57953380
0
--生還の宝札
54447022
0
--ソウル・チャージ
60682203
0
--大寒波
69243953
0
--蝶の短剣-エルマ
79571449
0
--天使の施し
63789924
0
--盗人の煙玉
70828912
0
--早すぎた埋葬
42703248
0
--ハリケーン
76375976
0
--魔鍾洞
34906152
0
--マスドライバー
46411259
0
--突然変異
85602018
0
--遺言状
27174286
0
--異次元からの帰還
05851097
0
--虚無空間
93016201
0
--王宮の弾圧
61740673
0
--王宮の勅命
03280747
0
--第六感
64697231
0
--ダスト・シュート
80604091
0
--血の代償
32723153
0
--マジカル・エクスプロージョン
17178486
0
--ライフチェンジャー
28566710
0
--ラストバトル!
#limit
76794549
1
--アストログラフ・マジシャン
40177746
1
--イーバ
53804307
1
--焔征竜-ブラスター
17330916
1
--
EM
モンキーボード
90411554
1
--巌征竜-レドックス
68304193
1
--クシャトリラ・ユニコーン
67441435
1
--グローアップ・バルブ
12289247
1
--クロノグラフ・マジシャン
99937011
1
--剣神官ムドラ
38814750
1
--
PSY
フレームギア・γ
74586817
1
--
PSY
フレームロード・Ω
32731036
1
--深淵の獣ルベリオン
36521307
1
--斬機サーキュラー
78872731
1
--十二獣モルモラット
06602300
1
--重爆撃禽 ボム・フェネクス
63542003
1
--宿神像ケルドウ
78080961
1
--
SPYRAL
-ジーニアス
81275020
1
--
SR
ベイゴマックス
13533678
1
--スプライト・ジェット
76145933
1
--スプライト・ブルー
82385847
1
--ダイナレスラー・パンクラトプス
90361010
1
--超重武者装留イワトオシ
15291624
1
--超雷龍-サンダー・ドラゴン
04928565
1
--ティアラメンツ・クシャトリラ
00572850
1
--ティアラメンツ・シェイレーン
37961969
1
--ティアラメンツ・ハゥフニス
74078255
1
--ティアラメンツ・メイルゥ
73956664
1
--ティアラメンツ・レイノハート
90953320
1
--
TG
ハイパー・ライブラリアン
90448279
1
--天霆號アーゼウス
17266660
1
--朱光の宣告者
26400609
1
--瀑征竜-タイダル
06637331
1
--深淵の獣ドルイドヴルム
72656408
1
--深淵の獣バルドレイク
33854624
1
--深淵の獣マグナムート
33396948
1
--封印されしエクゾディア
44519536
1
--封印されし者の左足
07902349
1
--封印されし者の左腕
08124921
1
--封印されし者の右足
70903634
1
--封印されし者の右腕
35272499
1
--捕食植物オフリス・スコーピオ
94689206
1
--ブロックドラゴン
24094258
1
--ヘビーメタルフォーゼ・エレクトラム
04423206
1
--
M
.
X
-セイバー インヴォーカー
33508719
1
--メタモルポット
89399912
1
--嵐征竜-テンペスト
92746535
1
--竜剣士ラスター
P
77103950
1
--壱世壊=ペルレイノ
33782437
1
--一時休戦
01845204
1
--簡易融合
61292243
1
--
EMERGENCY
!
19613556
1
--大嵐
81439173
1
--おろかな埋葬
84211599
1
--金満で謙虚な壺
23701465
1
--原初の種
80845034
1
--“罪宝狩りの悪魔”
83764718
1
--死者蘇生
46060017
1
--十二獣の会局
15443125
1
--スプライト・スターター
52340444
1
--閃刀機-ホーネットビット
32807846
1
--増援
72892473
1
--手札抹殺
73628505
1
--テラ・フォーミング
18144506
1
--ハーピィの羽根帚
21347668
1
--ピュアリィ・スリーピィメモリー
75500286
1
--封印の黄金櫃
52947044
1
--フュージョン・デステニー
07394770
1
--ブリリアント・フュージョン
73468603
1
--盆回し
93600443
1
--マスク・チェンジ・セカンド
65681983
1
--抹殺の指名者
71832012
1
--六世壊=パライゾス
36637374
1
--烙印開幕
44362883
1
--烙印融合
92107604
1
--神碑の泉
27970830
1
--六武の門
02295440
1
--ワン・フォー・ワン
90846359
1
--群雄割拠
82732705
1
--スキルドレイン
24207889
1
--センサー万別
35316708
1
--刻の封印
21076084
1
--トリックスター・リンカーネイション
23002292
1
--レッド・リブート
#semi limit
29301450
2
--
S
:
P
リトルナイト
02526224
2
--炎王神獣 キリン
09674034
2
--スネークアイ・エクセル
94677445
2
--星杯の神子イヴ
91800273
2
--ディメンション・アトラクター
09411399
2
--
D
-
HERO
ディアボリックガイ
65734501
2
--
R
-
ACE
エアホイスター
35726888
2
--おろかな副葬
35059553
2
--カイザーコロシアム
67723438
2
--緊急テレポート
49238328
2
--強欲で金満な壺
35261759
2
--強欲で貪欲な壺
12580477
2
--サンダー・ボルト
48130397
2
--超融合
11110587
2
--隣の芝刈り
24224830
2
--墓穴の指名者
55584558
2
--ピュアリィ・デリシャスメモリー
56700100
2
--ピュアリィ・マイフレンド
14532163
2
--ライトニング・ストーム
92714517
2
--ビッグウェルカム・ラビュリンス
!
2024
.
1
#forbidden
91869203
0
--アマゾネスの射手
...
...
premake/gframe/ygopro.rc
View file @
d50cf377
strings.conf
View file @
d50cf377
...
...
@@ -1222,3 +1222,5 @@
!
setname
0
x1b1
白森林 白き森
!
setname
0
x1b2
欢聚友伴 マルチャミー
!
setname
0
x1b3
徽记 エンブレーマ
!
setname
0
x1b4
时空 タキオン
!
setname
0
x1b5
蓝泪 青い涙
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