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
2f81e734
Commit
2f81e734
authored
Nov 30, 2018
by
mercury233
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://github.com/Fluorohydride/ygopro
parents
08ac0b5e
3d2caeb9
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
110 additions
and
75 deletions
+110
-75
gframe/client_card.cpp
gframe/client_card.cpp
+2
-2
gframe/deck_con.cpp
gframe/deck_con.cpp
+89
-57
gframe/duelclient.cpp
gframe/duelclient.cpp
+4
-1
gframe/duelclient.h
gframe/duelclient.h
+1
-0
gframe/event_handler.cpp
gframe/event_handler.cpp
+2
-1
gframe/game.cpp
gframe/game.cpp
+1
-1
gframe/myfilesystem.h
gframe/myfilesystem.h
+6
-9
ocgcore
ocgcore
+1
-1
script
script
+1
-1
strings.conf
strings.conf
+3
-2
No files found.
gframe/client_card.cpp
View file @
2f81e734
...
@@ -132,7 +132,7 @@ void ClientCard::UpdateInfo(char* buf) {
...
@@ -132,7 +132,7 @@ void ClientCard::UpdateInfo(char* buf) {
int
l
=
BufferIO
::
ReadInt8
(
buf
);
int
l
=
BufferIO
::
ReadInt8
(
buf
);
int
s
=
BufferIO
::
ReadInt8
(
buf
);
int
s
=
BufferIO
::
ReadInt8
(
buf
);
BufferIO
::
ReadInt8
(
buf
);
BufferIO
::
ReadInt8
(
buf
);
ClientCard
*
ecard
=
mainGame
->
dField
.
GetCard
(
c
,
l
,
s
);
ClientCard
*
ecard
=
mainGame
->
dField
.
GetCard
(
mainGame
->
LocalPlayer
(
c
)
,
l
,
s
);
equipTarget
=
ecard
;
equipTarget
=
ecard
;
ecard
->
equipped
.
insert
(
this
);
ecard
->
equipped
.
insert
(
this
);
}
}
...
@@ -143,7 +143,7 @@ void ClientCard::UpdateInfo(char* buf) {
...
@@ -143,7 +143,7 @@ void ClientCard::UpdateInfo(char* buf) {
int
l
=
BufferIO
::
ReadInt8
(
buf
);
int
l
=
BufferIO
::
ReadInt8
(
buf
);
int
s
=
BufferIO
::
ReadInt8
(
buf
);
int
s
=
BufferIO
::
ReadInt8
(
buf
);
BufferIO
::
ReadInt8
(
buf
);
BufferIO
::
ReadInt8
(
buf
);
ClientCard
*
tcard
=
mainGame
->
dField
.
GetCard
(
c
,
l
,
s
);
ClientCard
*
tcard
=
mainGame
->
dField
.
GetCard
(
mainGame
->
LocalPlayer
(
c
)
,
l
,
s
);
cardTarget
.
insert
(
tcard
);
cardTarget
.
insert
(
tcard
);
tcard
->
ownerTarget
.
insert
(
this
);
tcard
->
ownerTarget
.
insert
(
this
);
}
}
...
...
gframe/deck_con.cpp
View file @
2f81e734
...
@@ -676,14 +676,14 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -676,14 +676,14 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
return
false
;
return
false
;
}
}
void
DeckBuilder
::
GetHoveredCard
()
{
void
DeckBuilder
::
GetHoveredCard
()
{
int
pre_code
=
hovered_code
;
hovered_pos
=
0
;
hovered_code
=
0
;
irr
::
gui
::
IGUIElement
*
root
=
mainGame
->
env
->
getRootGUIElement
();
irr
::
gui
::
IGUIElement
*
root
=
mainGame
->
env
->
getRootGUIElement
();
if
(
root
->
getElementFromPoint
(
mouse_pos
)
!=
root
)
if
(
root
->
getElementFromPoint
(
mouse_pos
)
!=
root
)
return
;
return
;
int
x
=
mouse_pos
.
X
;
int
x
=
mouse_pos
.
X
;
int
y
=
mouse_pos
.
Y
;
int
y
=
mouse_pos
.
Y
;
int
pre_code
=
hovered_code
;
hovered_pos
=
0
;
hovered_code
=
0
;
is_lastcard
=
0
;
is_lastcard
=
0
;
if
(
x
>=
314
&&
x
<=
794
)
{
if
(
x
>=
314
&&
x
<=
794
)
{
if
(
y
>=
164
&&
y
<=
435
)
{
if
(
y
>=
164
&&
y
<=
435
)
{
...
@@ -775,42 +775,78 @@ void DeckBuilder::StartFilter() {
...
@@ -775,42 +775,78 @@ void DeckBuilder::StartFilter() {
}
}
void
DeckBuilder
::
FilterCards
()
{
void
DeckBuilder
::
FilterCards
()
{
results
.
clear
();
results
.
clear
();
struct
element_t
{
std
::
wstring
keyword
;
int
setcode
;
enum
class
type_t
{
all
,
name
,
setcode
}
type
;
bool
exclude
;
element_t
()
:
setcode
(
0
),
type
(
type_t
::
all
),
exclude
(
false
)
{}
};
const
wchar_t
*
pstr
=
mainGame
->
ebCardName
->
getText
();
const
wchar_t
*
pstr
=
mainGame
->
ebCardName
->
getText
();
std
::
wstring
str
=
std
::
wstring
(
pstr
);
std
::
wstring
str
=
std
::
wstring
(
pstr
);
std
::
vector
<
std
::
wstring
>
query_elements
;
std
::
vector
<
element_t
>
query_elements
;
std
::
vector
<
std
::
vector
<
std
::
wstring
>::
iterator
>
query_elements_track
;
if
(
mainGame
->
gameConf
.
search_multiple_keywords
)
{
size_t
element_start
=
0
;
const
wchar_t
separator
=
mainGame
->
gameConf
.
search_multiple_keywords
==
1
?
L' '
:
L'+'
;
while
(
mainGame
->
gameConf
.
search_multiple_keywords
)
{
const
wchar_t
minussign
=
L'-'
;
size_t
element_end
=
str
.
find_first_of
(
mainGame
->
gameConf
.
search_multiple_keywords
==
1
?
L' '
:
L'+'
,
element_start
);
const
wchar_t
quotation
=
L'\"'
;
if
(
element_end
==
std
::
wstring
::
npos
)
size_t
element_start
=
0
;
break
;
for
(;;)
{
size_t
length
=
element_end
-
element_start
;
element_start
=
str
.
find_first_not_of
(
separator
,
element_start
);
if
(
length
>
0
)
{
if
(
element_start
==
std
::
wstring
::
npos
)
query_elements
.
push_back
(
str
.
substr
(
element_start
,
length
));
break
;
element_t
element
;
if
(
str
[
element_start
]
==
minussign
)
{
element
.
exclude
=
true
;
element_start
++
;
}
if
(
element_start
>=
str
.
size
())
break
;
if
(
str
[
element_start
]
==
L'$'
)
{
element
.
type
=
element_t
::
type_t
::
name
;
element_start
++
;
}
else
if
(
str
[
element_start
]
==
L'@'
)
{
element
.
type
=
element_t
::
type_t
::
setcode
;
element_start
++
;
}
if
(
element_start
>=
str
.
size
())
break
;
wchar_t
delimiter
=
separator
;
if
(
str
[
element_start
]
==
quotation
)
{
delimiter
=
quotation
;
element_start
++
;
}
size_t
element_end
=
str
.
find_first_of
(
delimiter
,
element_start
);
if
(
element_end
!=
std
::
wstring
::
npos
)
{
size_t
length
=
element_end
-
element_start
;
element
.
keyword
=
str
.
substr
(
element_start
,
length
);
}
else
element
.
keyword
=
str
.
substr
(
element_start
);
element
.
setcode
=
dataManager
.
GetSetCode
(
element
.
keyword
.
c_str
());
query_elements
.
push_back
(
element
);
if
(
element_end
==
std
::
wstring
::
npos
)
break
;
element_start
=
element_end
+
1
;
element_start
=
element_end
+
1
;
}
else
}
}
else
{
element_t
element
;
size_t
element_start
=
0
;
if
(
str
[
element_start
]
==
L'$'
)
{
element
.
type
=
element_t
::
type_t
::
name
;
element_start
++
;
element_start
++
;
}
else
if
(
str
[
element_start
]
==
L'@'
)
{
element
.
type
=
element_t
::
type_t
::
setcode
;
element_start
++
;
}
if
(
element_start
<
str
.
size
())
{
element
.
keyword
=
str
.
substr
(
element_start
);
element
.
setcode
=
dataManager
.
GetSetCode
(
element
.
keyword
.
c_str
());
query_elements
.
push_back
(
element
);
}
}
}
query_elements
.
push_back
(
str
.
substr
(
element_start
));
std
::
unordered_map
<
std
::
wstring
,
unsigned
int
>
set_code_map
;
for
(
auto
elements_iterator
=
query_elements
.
begin
();
elements_iterator
!=
query_elements
.
end
();
elements_iterator
++
)
{
const
wchar_t
*
element_pointer
=
elements_iterator
->
c_str
();
if
(
element_pointer
[
0
]
==
L'@'
)
set_code_map
[
*
elements_iterator
]
=
dataManager
.
GetSetCode
(
&
element_pointer
[
1
]);
else
set_code_map
[
*
elements_iterator
]
=
dataManager
.
GetSetCode
(
&
element_pointer
[
0
]);
if
(
element_pointer
[
0
]
==
0
||
(
element_pointer
[
0
]
==
L'$'
&&
element_pointer
[
1
]
==
0
)
||
(
element_pointer
[
0
]
==
L'@'
&&
element_pointer
[
1
]
==
0
))
query_elements_track
.
push_back
(
elements_iterator
);
}
for
(
auto
elements_track_iterator
=
query_elements_track
.
begin
();
elements_track_iterator
!=
query_elements_track
.
end
();
elements_track_iterator
++
)
query_elements
.
erase
(
*
elements_track_iterator
);
unsigned
int
set_code
=
0
;
if
(
pstr
[
0
]
==
L'@'
)
set_code
=
dataManager
.
GetSetCode
(
&
pstr
[
1
]);
else
set_code
=
dataManager
.
GetSetCode
(
&
pstr
[
0
]);
if
(
pstr
[
0
]
==
0
||
(
pstr
[
0
]
==
L'$'
&&
pstr
[
1
]
==
0
)
||
(
pstr
[
0
]
==
L'@'
&&
pstr
[
1
]
==
0
))
pstr
=
0
;
auto
strpointer
=
dataManager
.
_strings
.
begin
();
auto
strpointer
=
dataManager
.
_strings
.
begin
();
for
(
code_pointer
ptr
=
dataManager
.
_datas
.
begin
();
ptr
!=
dataManager
.
_datas
.
end
();
++
ptr
,
++
strpointer
)
{
for
(
code_pointer
ptr
=
dataManager
.
_datas
.
begin
();
ptr
!=
dataManager
.
_datas
.
end
();
++
ptr
,
++
strpointer
)
{
const
CardDataC
&
data
=
ptr
->
second
;
const
CardDataC
&
data
=
ptr
->
second
;
...
@@ -885,33 +921,29 @@ void DeckBuilder::FilterCards() {
...
@@ -885,33 +921,29 @@ void DeckBuilder::FilterCards() {
continue
;
continue
;
}
}
bool
is_target
=
true
;
bool
is_target
=
true
;
for
(
auto
elements_iterator
=
query_elements
.
begin
();
elements_iterator
!=
query_elements
.
end
();
elements_iterator
++
)
{
for
(
auto
elements_iterator
=
query_elements
.
begin
();
elements_iterator
!=
query_elements
.
end
();
++
elements_iterator
)
{
const
wchar_t
*
element_pointer
=
elements_iterator
->
c_str
();
bool
match
=
false
;
if
(
element_pointer
[
0
]
==
L'$'
)
{
if
(
elements_iterator
->
type
==
element_t
::
type_t
::
name
)
{
if
(
!
CardNameContains
(
text
.
name
.
c_str
(),
&
element_pointer
[
1
])){
match
=
CardNameContains
(
text
.
name
.
c_str
(),
elements_iterator
->
keyword
.
c_str
());
is_target
=
false
;
}
else
if
(
elements_iterator
->
type
==
element_t
::
type_t
::
setcode
)
{
break
;
match
=
elements_iterator
->
setcode
&&
check_set_code
(
data
,
elements_iterator
->
setcode
);
}
}
else
if
(
element_pointer
[
0
]
==
L'@'
&&
set_code_map
[
*
elements_iterator
])
{
if
(
!
check_set_code
(
data
,
set_code_map
[
*
elements_iterator
]))
{
is_target
=
false
;
break
;
}
}
else
{
}
else
{
int
trycode
=
BufferIO
::
GetVal
(
elements_iterator
->
c_str
());
int
trycode
=
BufferIO
::
GetVal
(
elements_iterator
->
keyword
.
c_str
());
bool
tryresult
=
dataManager
.
GetData
(
trycode
,
0
);
bool
tryresult
=
dataManager
.
GetData
(
trycode
,
0
);
if
(
!
tryresult
&&
!
CardNameContains
(
text
.
name
.
c_str
(),
elements_iterator
->
c_str
())
&&
text
.
text
.
find
(
elements_iterator
->
c_str
())
==
std
::
wstring
::
npos
if
(
!
tryresult
)
{
&&
(
!
set_code_map
[
*
elements_iterator
]
||
!
check_set_code
(
data
,
set_code_map
[
*
elements_iterator
])))
{
match
=
CardNameContains
(
text
.
name
.
c_str
(),
elements_iterator
->
keyword
.
c_str
())
is_target
=
false
;
||
text
.
text
.
find
(
elements_iterator
->
keyword
)
!=
std
::
wstring
::
npos
break
;
||
(
elements_iterator
->
setcode
&&
check_set_code
(
data
,
elements_iterator
->
setcode
));
}
}
else
{
if
(
tryresult
&&
data
.
code
!=
trycode
match
=
data
.
code
==
trycode
||
data
.
alias
==
trycode
;
&&
!
(
data
.
alias
==
trycode
&&
(
data
.
alias
-
data
.
code
<
CARD_ARTWORK_VERSIONS_OFFSET
||
data
.
code
-
data
.
alias
<
CARD_ARTWORK_VERSIONS_OFFSET
)))
{
is_target
=
false
;
break
;
}
}
}
}
if
(
elements_iterator
->
exclude
)
match
=
!
match
;
if
(
!
match
)
{
is_target
=
false
;
break
;
}
}
}
if
(
is_target
)
if
(
is_target
)
results
.
push_back
(
ptr
);
results
.
push_back
(
ptr
);
...
...
gframe/duelclient.cpp
View file @
2f81e734
...
@@ -24,6 +24,7 @@ char DuelClient::duel_client_read[0x2000];
...
@@ -24,6 +24,7 @@ char DuelClient::duel_client_read[0x2000];
char
DuelClient
::
duel_client_write
[
0x2000
];
char
DuelClient
::
duel_client_write
[
0x2000
];
bool
DuelClient
::
is_closing
=
false
;
bool
DuelClient
::
is_closing
=
false
;
int
DuelClient
::
select_hint
=
0
;
int
DuelClient
::
select_hint
=
0
;
int
DuelClient
::
select_unselect_hint
=
0
;
wchar_t
DuelClient
::
event_string
[
256
];
wchar_t
DuelClient
::
event_string
[
256
];
mtrandom
DuelClient
::
rnd
;
mtrandom
DuelClient
::
rnd
;
...
@@ -1452,7 +1453,9 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
...
@@ -1452,7 +1453,9 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
}
}
std
::
sort
(
mainGame
->
dField
.
selectable_cards
.
begin
(),
mainGame
->
dField
.
selectable_cards
.
end
(),
ClientCard
::
client_card_sort
);
std
::
sort
(
mainGame
->
dField
.
selectable_cards
.
begin
(),
mainGame
->
dField
.
selectable_cards
.
end
(),
ClientCard
::
client_card_sort
);
if
(
select_hint
)
if
(
select_hint
)
myswprintf
(
textBuffer
,
L"%ls(%d-%d)"
,
dataManager
.
GetDesc
(
select_hint
),
select_unselect_hint
=
select_hint
;
if
(
select_unselect_hint
)
myswprintf
(
textBuffer
,
L"%ls(%d-%d)"
,
dataManager
.
GetDesc
(
select_unselect_hint
),
mainGame
->
dField
.
select_min
,
mainGame
->
dField
.
select_max
);
mainGame
->
dField
.
select_min
,
mainGame
->
dField
.
select_max
);
else
myswprintf
(
textBuffer
,
L"%ls(%d-%d)"
,
dataManager
.
GetSysString
(
560
),
mainGame
->
dField
.
select_min
,
mainGame
->
dField
.
select_max
);
else
myswprintf
(
textBuffer
,
L"%ls(%d-%d)"
,
dataManager
.
GetSysString
(
560
),
mainGame
->
dField
.
select_min
,
mainGame
->
dField
.
select_max
);
select_hint
=
0
;
select_hint
=
0
;
...
...
gframe/duelclient.h
View file @
2f81e734
...
@@ -30,6 +30,7 @@ private:
...
@@ -30,6 +30,7 @@ private:
static
char
duel_client_write
[
0x2000
];
static
char
duel_client_write
[
0x2000
];
static
bool
is_closing
;
static
bool
is_closing
;
static
int
select_hint
;
static
int
select_hint
;
static
int
select_unselect_hint
;
static
wchar_t
event_string
[
256
];
static
wchar_t
event_string
[
256
];
static
mtrandom
rnd
;
static
mtrandom
rnd
;
public:
public:
...
...
gframe/event_handler.cpp
View file @
2f81e734
...
@@ -2243,7 +2243,8 @@ void ClientField::ShowCardInfoInList(ClientCard* pcard, irr::gui::IGUIElement* e
...
@@ -2243,7 +2243,8 @@ void ClientField::ShowCardInfoInList(ClientCard* pcard, irr::gui::IGUIElement* e
if
(
pcard
->
code
)
{
if
(
pcard
->
code
)
{
str
.
append
(
dataManager
.
GetName
(
pcard
->
code
));
str
.
append
(
dataManager
.
GetName
(
pcard
->
code
));
}
}
if
(
pcard
->
status
&
STATUS_PROC_COMPLETE
)
if
((
pcard
->
status
&
STATUS_PROC_COMPLETE
)
&&
(
pcard
->
type
&
(
TYPE_RITUAL
|
TYPE_FUSION
|
TYPE_SYNCHRO
|
TYPE_XYZ
|
TYPE_LINK
|
TYPE_SPSUMMON
)))
str
.
append
(
L"
\n
"
).
append
(
dataManager
.
GetSysString
(
224
));
str
.
append
(
L"
\n
"
).
append
(
dataManager
.
GetSysString
(
224
));
for
(
size_t
i
=
0
;
i
<
chains
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
chains
.
size
();
++
i
)
{
wchar_t
formatBuffer
[
2048
];
wchar_t
formatBuffer
[
2048
];
...
...
gframe/game.cpp
View file @
2f81e734
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
#include "netserver.h"
#include "netserver.h"
#include "single_mode.h"
#include "single_mode.h"
const
unsigned
short
PRO_VERSION
=
0x134
7
;
const
unsigned
short
PRO_VERSION
=
0x134
8
;
namespace
ygo
{
namespace
ygo
{
...
...
gframe/myfilesystem.h
View file @
2f81e734
...
@@ -5,10 +5,7 @@
...
@@ -5,10 +5,7 @@
#include <functional>
#include <functional>
#include "bufferio.h"
#include "bufferio.h"
#ifdef _WIN32
#ifndef _WIN32
#include <direct.h>
#include <sys/stat.h>
#else
#include <dirent.h>
#include <dirent.h>
#include <sys/stat.h>
#include <sys/stat.h>
#endif
#endif
...
@@ -20,8 +17,8 @@
...
@@ -20,8 +17,8 @@
class
FileSystem
{
class
FileSystem
{
public:
public:
static
bool
IsFileExists
(
const
wchar_t
*
wfile
)
{
static
bool
IsFileExists
(
const
wchar_t
*
wfile
)
{
struct
_stat
fileStat
;
DWORD
attr
=
GetFileAttributesW
(
wfile
)
;
return
(
_wstat
(
wfile
,
&
fileStat
)
==
0
)
&&
!
(
fileStat
.
st_mode
&
_S_IFDIR
);
return
attr
!=
INVALID_FILE_ATTRIBUTES
&&
!
(
attr
&
FILE_ATTRIBUTE_DIRECTORY
);
}
}
static
bool
IsFileExists
(
const
char
*
file
)
{
static
bool
IsFileExists
(
const
char
*
file
)
{
...
@@ -31,8 +28,8 @@ public:
...
@@ -31,8 +28,8 @@ public:
}
}
static
bool
IsDirExists
(
const
wchar_t
*
wdir
)
{
static
bool
IsDirExists
(
const
wchar_t
*
wdir
)
{
struct
_stat
fileStat
;
DWORD
attr
=
GetFileAttributesW
(
wdir
)
;
return
(
_wstat
(
wdir
,
&
fileStat
)
==
0
)
&&
(
fileStat
.
st_mode
&
_S_IFDIR
);
return
attr
!=
INVALID_FILE_ATTRIBUTES
&&
(
attr
&
FILE_ATTRIBUTE_DIRECTORY
);
}
}
static
bool
IsDirExists
(
const
char
*
dir
)
{
static
bool
IsDirExists
(
const
char
*
dir
)
{
...
@@ -42,7 +39,7 @@ public:
...
@@ -42,7 +39,7 @@ public:
}
}
static
bool
MakeDir
(
const
wchar_t
*
wdir
)
{
static
bool
MakeDir
(
const
wchar_t
*
wdir
)
{
return
_wmkdir
(
wdir
)
==
0
;
return
CreateDirectoryW
(
wdir
,
NULL
)
;
}
}
static
bool
MakeDir
(
const
char
*
dir
)
{
static
bool
MakeDir
(
const
char
*
dir
)
{
...
...
ocgcore
@
7e2ab59a
Subproject commit
60d8b81d6d89c62e9d40d8bb8f6504f45121b053
Subproject commit
7e2ab59a444927546222126e9b0a97bca12f7069
script
@
9845ffd0
Subproject commit
87b2a039e3b02c8fad75aa53719095e60c866466
Subproject commit
9845ffd083503c65aed5b4660b3eb0c49b173fce
strings.conf
View file @
2f81e734
...
@@ -741,7 +741,7 @@
...
@@ -741,7 +741,7 @@
!
setname
0
x82
怒怒怒 ドドド
!
setname
0
x82
怒怒怒 ドドド
!
setname
0
x83
机关傀儡 ギミック・パペット
!
setname
0
x83
机关傀儡 ギミック・パペット
!
setname
0
x84
燃烧拳击手
BK
(バーニングナックラー)
!
setname
0
x84
燃烧拳击手
BK
(バーニングナックラー)
!
setname
0
x85
超级防
御
机器人
SD
ロボ
!
setname
0
x85
超级防
卫
机器人
SD
ロボ
!
setname
0
x86
光天使
!
setname
0
x86
光天使
!
setname
0
x87
阴影 アンブラル
!
setname
0
x87
阴影 アンブラル
!
setname
0
x88
武神
!
setname
0
x88
武神
...
@@ -752,7 +752,7 @@
...
@@ -752,7 +752,7 @@
#setname 0x8c 德鲁伊 ドルイド
#setname 0x8c 德鲁伊 ドルイド
!
setname
0
x8d
鬼计 ゴーストリック
!
setname
0
x8d
鬼计 ゴーストリック
!
setname
0
x8e
吸血鬼 ヴァンパイア
!
setname
0
x8e
吸血鬼 ヴァンパイア
!
setname
0
x8f
刷
啦啦
ズババ
!
setname
0
x8f
刷
拉拉
ズババ
!
setname
0
x90
森罗 森羅
!
setname
0
x90
森罗 森羅
!
setname
0
x91
王家长眠之谷 ネクロバレー
!
setname
0
x91
王家长眠之谷 ネクロバレー
!
setname
0
x92
纹章 メダリオン
!
setname
0
x92
纹章 メダリオン
...
@@ -819,6 +819,7 @@
...
@@ -819,6 +819,7 @@
!
setname
0
xbf
灵使 霊使い
!
setname
0
xbf
灵使 霊使い
!
setname
0
xc0
凭依装着 憑依装着
!
setname
0
xc0
凭依装着 憑依装着
!
setname
0
xc1
PSY
骨架
PSY
フレーム
!
setname
0
xc1
PSY
骨架
PSY
フレーム
!
setname
0
x10c1
PSY
骨架装备
PSY
フレームギア
!
setname
0
xc2
动力工具 パワー・ツール
!
setname
0
xc2
动力工具 パワー・ツール
!
setname
0
xc3
锋利小鬼 エッジインプ
!
setname
0
xc3
锋利小鬼 エッジインプ
!
setname
0
xc4
神数 セフィラ
!
setname
0
xc4
神数 セフィラ
...
...
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