Commit 79af8b1c authored by mercury233's avatar mercury233

Merge branch 'fh' into patch-deck-category

parents c4550277 b7bea21d
project (ygo) project (ygo)
cmake_minimum_required (VERSION 2.8) cmake_minimum_required (VERSION 3.8)
if(NOT CMAKE_BUILD_TYPE) if(NOT CMAKE_BUILD_TYPE)
message(STATUS "Setting build type to 'Debug' as none was specified.") message(STATUS "Setting build type to 'Debug' as none was specified.")
...@@ -15,6 +15,10 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) ...@@ -15,6 +15,10 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
include (AutoFiles) include (AutoFiles)
include (platform/settings) include (platform/settings)
......
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG") set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG")
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG") set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG")
add_definitions ( "-fexceptions" "-fomit-frame-pointer" "-fno-strict-aliasing" "-Wno-format-security" ) add_definitions ( "-fexceptions" "-fomit-frame-pointer" "-fno-strict-aliasing" "-Wno-format-security" )
...@@ -3,3 +3,4 @@ add_definitions ( "-D_UNICODE" "-DUNICODE" "/utf-8" ) ...@@ -3,3 +3,4 @@ add_definitions ( "-D_UNICODE" "-DUNICODE" "/utf-8" )
include (MSVCMultipleProcessCompile) include (MSVCMultipleProcessCompile)
include (MSVCStaticRuntime) include (MSVCStaticRuntime)
include (MSVCJustMyCodeDebugging)
# - Enable Just My Code debugging on MSVC
#
# include(MSVCJustMyCodeDebugging)
#
# Requires these CMake modules:
# ListCombinations.cmake
#
# The cmake property VS_JUST_MY_CODE_DEBUGGING introduced in CMake 3.15
# also add /JMC to Release configuration, which is inappropriate
if(MSVC AND NOT "${MSVC_VERSION}" LESS 1918)
# Only available in VS 2017 15.8 and newer
include(ListCombinations)
list_combinations(_varnames
PREFIXES
CMAKE_CXX_FLAGS_
SUFFIXES
DEBUG
RELWITHDEBINFO)
foreach(_var ${_varnames})
set(${_var} "${${_var}} /JMC")
endforeach()
endif()
set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvm.clang.1_0") set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvm.clang.1_0")
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++14")
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
...@@ -16,7 +16,11 @@ endif () ...@@ -16,7 +16,11 @@ endif ()
if (MSVC) if (MSVC)
add_executable (ygopro WIN32 ${AUTO_FILES_RESULT}) add_executable (ygopro WIN32 ${AUTO_FILES_RESULT})
set_target_properties (ygopro PROPERTIES LINK_FLAGS /ENTRY:"mainCRTStartup") set_target_properties (ygopro PROPERTIES
LINK_FLAGS /ENTRY:"mainCRTStartup"
VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
)
set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ygopro)
else () else ()
add_executable (ygopro ${AUTO_FILES_RESULT}) add_executable (ygopro ${AUTO_FILES_RESULT})
endif () endif ()
......
...@@ -199,6 +199,8 @@ void ClientCard::ClearTarget() { ...@@ -199,6 +199,8 @@ void ClientCard::ClearTarget() {
ownerTarget.clear(); ownerTarget.clear();
} }
bool ClientCard::client_card_sort(ClientCard* c1, ClientCard* c2) { bool ClientCard::client_card_sort(ClientCard* c1, ClientCard* c2) {
if(c1->is_selected != c2->is_selected)
return c1->is_selected < c2->is_selected;
int32 cp1 = c1->overlayTarget ? c1->overlayTarget->controler : c1->controler; int32 cp1 = c1->overlayTarget ? c1->overlayTarget->controler : c1->controler;
int32 cp2 = c2->overlayTarget ? c2->overlayTarget->controler : c2->controler; int32 cp2 = c2->overlayTarget ? c2->overlayTarget->controler : c2->controler;
if(cp1 != cp2) if(cp1 != cp2)
......
...@@ -959,7 +959,7 @@ void Game::ShowElement(irr::gui::IGUIElement * win, int autoframe) { ...@@ -959,7 +959,7 @@ void Game::ShowElement(irr::gui::IGUIElement * win, int autoframe) {
FadingUnit fu; FadingUnit fu;
fu.fadingSize = win->getRelativePosition(); fu.fadingSize = win->getRelativePosition();
for(auto fit = fadingList.begin(); fit != fadingList.end(); ++fit) for(auto fit = fadingList.begin(); fit != fadingList.end(); ++fit)
if(win == fit->guiFading && win != wOptions) // the size of wOptions is always setted by ClientField::ShowSelectOption before showing it if(win == fit->guiFading && win != wOptions && win != wANNumber) // the size of wOptions is always setted by ClientField::ShowSelectOption before showing it
fu.fadingSize = fit->fadingSize; fu.fadingSize = fit->fadingSize;
irr::core::position2di center = fu.fadingSize.getCenter(); irr::core::position2di center = fu.fadingSize.getCenter();
fu.fadingDiff.X = fu.fadingSize.getWidth() / 10; fu.fadingDiff.X = fu.fadingSize.getWidth() / 10;
......
...@@ -3496,12 +3496,44 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -3496,12 +3496,44 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
int count = BufferIO::ReadInt8(pbuf); int count = BufferIO::ReadInt8(pbuf);
mainGame->gMutex.lock(); mainGame->gMutex.lock();
mainGame->cbANNumber->clear(); mainGame->cbANNumber->clear();
bool quickmode = count <= 12;
if(quickmode) {
for(int i = 0; i < 12; ++i) {
mainGame->btnANNumber[i]->setEnabled(false);
mainGame->btnANNumber[i]->setPressed(false);
mainGame->btnANNumber[i]->setVisible(true);
}
}
for (int i = 0; i < count; ++i) { for (int i = 0; i < count; ++i) {
int value = BufferIO::ReadInt32(pbuf); int value = BufferIO::ReadInt32(pbuf);
myswprintf(textBuffer, L" % d", value); myswprintf(textBuffer, L" % d", value);
mainGame->cbANNumber->addItem(textBuffer, value); mainGame->cbANNumber->addItem(textBuffer, value);
if(quickmode) {
if((value > 12 || value <= 0)) {
quickmode = false;
} else {
mainGame->btnANNumber[value - 1]->setEnabled(true);
}
}
} }
mainGame->cbANNumber->setSelected(0); mainGame->cbANNumber->setSelected(0);
if(quickmode) {
mainGame->cbANNumber->setVisible(false);
mainGame->btnANNumberOK->setRelativePosition(rect<s32>(20, 195, 210, 230));
mainGame->btnANNumberOK->setEnabled(false);
recti pos = mainGame->wANNumber->getRelativePosition();
pos.LowerRightCorner.Y = pos.UpperLeftCorner.Y + 250;
mainGame->wANNumber->setRelativePosition(pos);
} else {
for(int i = 0; i < 12; ++i) {
mainGame->btnANNumber[i]->setVisible(false);
}
mainGame->cbANNumber->setVisible(true);
mainGame->btnANNumberOK->setRelativePosition(rect<s32>(80, 60, 150, 85));
recti pos = mainGame->wANNumber->getRelativePosition();
pos.LowerRightCorner.Y = pos.UpperLeftCorner.Y + 95;
mainGame->wANNumber->setRelativePosition(pos);
}
if(select_hint) if(select_hint)
myswprintf(textBuffer, L"%ls", dataManager.GetDesc(select_hint)); myswprintf(textBuffer, L"%ls", dataManager.GetDesc(select_hint));
else myswprintf(textBuffer, dataManager.GetSysString(565)); else myswprintf(textBuffer, dataManager.GetSysString(565));
......
...@@ -320,6 +320,31 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -320,6 +320,31 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
SetResponseSelectedOption(); SetResponseSelectedOption();
break; break;
} }
case BUTTON_ANNUMBER_1:
case BUTTON_ANNUMBER_2:
case BUTTON_ANNUMBER_3:
case BUTTON_ANNUMBER_4:
case BUTTON_ANNUMBER_5:
case BUTTON_ANNUMBER_6:
case BUTTON_ANNUMBER_7:
case BUTTON_ANNUMBER_8:
case BUTTON_ANNUMBER_9:
case BUTTON_ANNUMBER_10:
case BUTTON_ANNUMBER_11:
case BUTTON_ANNUMBER_12: {
soundManager.PlaySoundEffect(SOUND_BUTTON);
for(int i = 0; i < mainGame->cbANNumber->getItemCount(); ++i) {
if(id - BUTTON_ANNUMBER_1 + 1 == mainGame->cbANNumber->getItemData(i)) {
mainGame->cbANNumber->setSelected(i);
break;
}
}
for(int i = 0; i < 12; ++i) {
mainGame->btnANNumber[i]->setPressed(event.GUIEvent.Caller == mainGame->btnANNumber[i]);
}
mainGame->btnANNumberOK->setEnabled(true);
break;
}
case BUTTON_ANNUMBER_OK: { case BUTTON_ANNUMBER_OK: {
soundManager.PlaySoundEffect(SOUND_BUTTON); soundManager.PlaySoundEffect(SOUND_BUTTON);
DuelClient::SetResponseI(mainGame->cbANNumber->getSelected()); DuelClient::SetResponseI(mainGame->cbANNumber->getSelected());
...@@ -2431,6 +2456,7 @@ void ClientField::CancelOrFinish() { ...@@ -2431,6 +2456,7 @@ void ClientField::CancelOrFinish() {
if(selected_cards.size() == 0) { if(selected_cards.size() == 0) {
if(select_cancelable) { if(select_cancelable) {
DuelClient::SetResponseI(-1); DuelClient::SetResponseI(-1);
ShowCancelOrFinishButton(0);
if(mainGame->wCardSelect->isVisible()) if(mainGame->wCardSelect->isVisible())
mainGame->HideElement(mainGame->wCardSelect, true); mainGame->HideElement(mainGame->wCardSelect, true);
else else
......
...@@ -454,11 +454,16 @@ bool Game::Initialize() { ...@@ -454,11 +454,16 @@ bool Game::Initialize() {
scrDisplayList = env->addScrollBar(true, rect<s32>(30, 235, 650, 255), wCardDisplay, SCROLL_CARD_DISPLAY); scrDisplayList = env->addScrollBar(true, rect<s32>(30, 235, 650, 255), wCardDisplay, SCROLL_CARD_DISPLAY);
btnDisplayOK = env->addButton(rect<s32>(300, 265, 380, 290), wCardDisplay, BUTTON_CARD_DISP_OK, dataManager.GetSysString(1211)); btnDisplayOK = env->addButton(rect<s32>(300, 265, 380, 290), wCardDisplay, BUTTON_CARD_DISP_OK, dataManager.GetSysString(1211));
//announce number //announce number
wANNumber = env->addWindow(rect<s32>(550, 200, 780, 295), false, L""); wANNumber = env->addWindow(rect<s32>(550, 180, 780, 430), false, L"");
wANNumber->getCloseButton()->setVisible(false); wANNumber->getCloseButton()->setVisible(false);
wANNumber->setVisible(false); wANNumber->setVisible(false);
cbANNumber = env->addComboBox(rect<s32>(40, 30, 190, 50), wANNumber, -1); cbANNumber = env->addComboBox(rect<s32>(40, 30, 190, 50), wANNumber, -1);
cbANNumber->setTextAlignment(irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER); cbANNumber->setTextAlignment(irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER);
for(int i = 0; i < 12; ++i) {
myswprintf(strbuf, L"%d", i + 1);
btnANNumber[i] = env->addButton(rect<s32>(20 + 50 * (i % 4), 40 + 50 * (i / 4), 60 + 50 * (i % 4), 80 + 50 * (i / 4)), wANNumber, BUTTON_ANNUMBER_1 + i, strbuf);
btnANNumber[i]->setIsPushButton(true);
}
btnANNumberOK = env->addButton(rect<s32>(80, 60, 150, 85), wANNumber, BUTTON_ANNUMBER_OK, dataManager.GetSysString(1211)); btnANNumberOK = env->addButton(rect<s32>(80, 60, 150, 85), wANNumber, BUTTON_ANNUMBER_OK, dataManager.GetSysString(1211));
//announce card //announce card
wANCard = env->addWindow(rect<s32>(510, 120, 820, 420), false, L""); wANCard = env->addWindow(rect<s32>(510, 120, 820, 420), false, L"");
...@@ -1687,7 +1692,7 @@ void Game::OnResize() { ...@@ -1687,7 +1692,7 @@ void Game::OnResize() {
wOptions->setRelativePosition(ResizeWin(490, 200, 840, 340)); wOptions->setRelativePosition(ResizeWin(490, 200, 840, 340));
wPosSelect->setRelativePosition(ResizeWin(340, 200, 935, 410)); wPosSelect->setRelativePosition(ResizeWin(340, 200, 935, 410));
wCardSelect->setRelativePosition(ResizeWin(320, 100, 1000, 400)); wCardSelect->setRelativePosition(ResizeWin(320, 100, 1000, 400));
wANNumber->setRelativePosition(ResizeWin(550, 200, 780, 295)); wANNumber->setRelativePosition(ResizeWin(550, 180, 780, 430));
wANCard->setRelativePosition(ResizeWin(510, 120, 820, 420)); wANCard->setRelativePosition(ResizeWin(510, 120, 820, 420));
wANAttribute->setRelativePosition(ResizeWin(500, 200, 830, 285)); wANAttribute->setRelativePosition(ResizeWin(500, 200, 830, 285));
wANRace->setRelativePosition(ResizeWin(480, 200, 850, 410)); wANRace->setRelativePosition(ResizeWin(480, 200, 850, 410));
......
...@@ -420,6 +420,7 @@ public: ...@@ -420,6 +420,7 @@ public:
//announce number //announce number
irr::gui::IGUIWindow* wANNumber; irr::gui::IGUIWindow* wANNumber;
irr::gui::IGUIComboBox* cbANNumber; irr::gui::IGUIComboBox* cbANNumber;
irr::gui::IGUIButton* btnANNumber[12];
irr::gui::IGUIButton* btnANNumberOK; irr::gui::IGUIButton* btnANNumberOK;
//announce card //announce card
irr::gui::IGUIWindow* wANCard; irr::gui::IGUIWindow* wANCard;
...@@ -677,9 +678,18 @@ extern Game* mainGame; ...@@ -677,9 +678,18 @@ extern Game* mainGame;
#define BUTTON_CHAIN_WHENAVAIL 266 #define BUTTON_CHAIN_WHENAVAIL 266
#define BUTTON_CANCEL_OR_FINISH 267 #define BUTTON_CANCEL_OR_FINISH 267
#define BUTTON_PHASE 268 #define BUTTON_PHASE 268
#define BUTTON_CLEAR_LOG 270 #define BUTTON_ANNUMBER_1 270
#define LISTBOX_LOG 271 #define BUTTON_ANNUMBER_2 271
#define SCROLL_CARDTEXT 280 #define BUTTON_ANNUMBER_3 272
#define BUTTON_ANNUMBER_4 273
#define BUTTON_ANNUMBER_5 274
#define BUTTON_ANNUMBER_6 275
#define BUTTON_ANNUMBER_7 276
#define BUTTON_ANNUMBER_8 277
#define BUTTON_ANNUMBER_9 278
#define BUTTON_ANNUMBER_10 279
#define BUTTON_ANNUMBER_11 280
#define BUTTON_ANNUMBER_12 281
#define BUTTON_DISPLAY_0 290 #define BUTTON_DISPLAY_0 290
#define BUTTON_DISPLAY_1 291 #define BUTTON_DISPLAY_1 291
#define BUTTON_DISPLAY_2 292 #define BUTTON_DISPLAY_2 292
...@@ -715,7 +725,6 @@ extern Game* mainGame; ...@@ -715,7 +725,6 @@ extern Game* mainGame;
#define BUTTON_MARKS_FILTER 322 #define BUTTON_MARKS_FILTER 322
#define BUTTON_MARKERS_OK 323 #define BUTTON_MARKERS_OK 323
#define COMBOBOX_SORTTYPE 324 #define COMBOBOX_SORTTYPE 324
#define WINDOW_DECK_MANAGE 330 #define WINDOW_DECK_MANAGE 330
#define BUTTON_NEW_CATEGORY 331 #define BUTTON_NEW_CATEGORY 331
#define BUTTON_RENAME_CATEGORY 332 #define BUTTON_RENAME_CATEGORY 332
...@@ -731,6 +740,9 @@ extern Game* mainGame; ...@@ -731,6 +740,9 @@ extern Game* mainGame;
#define BUTTON_DM_CANCEL 342 #define BUTTON_DM_CANCEL 342
#define COMBOBOX_LFLIST 349 #define COMBOBOX_LFLIST 349
#define BUTTON_CLEAR_LOG 350
#define LISTBOX_LOG 351
#define SCROLL_CARDTEXT 352
#define CHECKBOX_AUTO_SEARCH 360 #define CHECKBOX_AUTO_SEARCH 360
#define CHECKBOX_ENABLE_SOUND 361 #define CHECKBOX_ENABLE_SOUND 361
#define CHECKBOX_ENABLE_MUSIC 362 #define CHECKBOX_ENABLE_MUSIC 362
......
...@@ -49,6 +49,7 @@ void SoundManager::PlaySoundEffect(int sound) { ...@@ -49,6 +49,7 @@ void SoundManager::PlaySoundEffect(int sound) {
#ifdef YGOPRO_USE_IRRKLANG #ifdef YGOPRO_USE_IRRKLANG
if(!mainGame->chkEnableSound->isChecked()) if(!mainGame->chkEnableSound->isChecked())
return; return;
engineSound->setSoundVolume(mainGame->gameConf.sound_volume);
switch(sound) { switch(sound) {
case SOUND_SUMMON: { case SOUND_SUMMON: {
engineSound->play2D("./sound/summon.wav"); engineSound->play2D("./sound/summon.wav");
...@@ -173,7 +174,6 @@ void SoundManager::PlaySoundEffect(int sound) { ...@@ -173,7 +174,6 @@ void SoundManager::PlaySoundEffect(int sound) {
default: default:
break; break;
} }
engineSound->setSoundVolume(mainGame->gameConf.sound_volume);
#endif #endif
} }
void SoundManager::PlayDialogSound(irr::gui::IGUIElement * element) { void SoundManager::PlayDialogSound(irr::gui::IGUIElement * element) {
...@@ -205,8 +205,8 @@ void SoundManager::PlayMusic(char* song, bool loop) { ...@@ -205,8 +205,8 @@ void SoundManager::PlayMusic(char* song, bool loop) {
return; return;
if(!engineMusic->isCurrentlyPlaying(song)) { if(!engineMusic->isCurrentlyPlaying(song)) {
engineMusic->stopAllSounds(); engineMusic->stopAllSounds();
soundBGM = engineMusic->play2D(song, loop, false, true);
engineMusic->setSoundVolume(mainGame->gameConf.music_volume); engineMusic->setSoundVolume(mainGame->gameConf.music_volume);
soundBGM = engineMusic->play2D(song, loop, false, true);
} }
#endif #endif
} }
......
...@@ -528,8 +528,7 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) { ...@@ -528,8 +528,7 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) {
case 1: case 1:
case 2: case 2:
case 3: case 3:
case 5: case 5: {
case 10: {
NetServer::SendBufferToPlayer(cur_player[player], STOC_GAME_MSG, offset, pbuf - offset); NetServer::SendBufferToPlayer(cur_player[player], STOC_GAME_MSG, offset, pbuf - offset);
break; break;
} }
...@@ -545,6 +544,13 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) { ...@@ -545,6 +544,13 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) {
NetServer::ReSendToPlayer(*oit); NetServer::ReSendToPlayer(*oit);
break; break;
} }
case 10: {
for(int i = 0; i < 4; ++i)
NetServer::SendBufferToPlayer(players[i], STOC_GAME_MSG, offset, pbuf - offset);
for(auto oit = observers.begin(); oit != observers.end(); ++oit)
NetServer::ReSendToPlayer(*oit);
break;
}
} }
break; break;
} }
......
This diff is collapsed.
...@@ -2,7 +2,6 @@ solution "ygo" ...@@ -2,7 +2,6 @@ solution "ygo"
location "build" location "build"
language "C++" language "C++"
objdir "obj" objdir "obj"
startproject "ygopro"
configurations { "Debug", "Release" } configurations { "Debug", "Release" }
......
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
!system 94 是否现在使用这张卡的效果? !system 94 是否现在使用这张卡的效果?
!system 95 是否使用[%ls]的效果? !system 95 是否使用[%ls]的效果?
!system 96 是否使用[%ls]的效果代替破坏? !system 96 是否使用[%ls]的效果代替破坏?
!system 97 是否把[%ls]在魔法与陷阱区域盖放 !system 97 是否把[%ls]在魔法与陷阱区域放置
!system 98 是否要解放对方怪兽? !system 98 是否要解放对方怪兽?
!system 100 先攻 !system 100 先攻
!system 101 后攻 !system 101 后攻
...@@ -608,6 +608,7 @@ ...@@ -608,6 +608,7 @@
!counter 0x53 指示物(炽天蝶) !counter 0x53 指示物(炽天蝶)
!counter 0x54 指示物(星遗物引导的前路) !counter 0x54 指示物(星遗物引导的前路)
!counter 0x55 指示物(隐居者的大釜) !counter 0x55 指示物(隐居者的大釜)
!counter 0x56 炎星指示物
#setnames, using tab for comment #setnames, using tab for comment
!setname 0x1 正义盟军 AOJ !setname 0x1 正义盟军 AOJ
!setname 0x2 次世代 ジェネクス !setname 0x2 次世代 ジェネクス
...@@ -785,6 +786,7 @@ ...@@ -785,6 +786,7 @@
!setname 0x7e 异热同心武器 ZW(ゼアル・ウェポン) !setname 0x7e 异热同心武器 ZW(ゼアル・ウェポン)
!setname 0x7f 霍普 ホープ !setname 0x7f 霍普 ホープ
!setname 0x107f 希望皇 霍普 希望皇ホープ !setname 0x107f 希望皇 霍普 希望皇ホープ
!setname 0x207f 未来皇 霍普 未来皇ホープ
!setname 0x80 尘妖 ダストン !setname 0x80 尘妖 ダストン
!setname 0x81 炎王 !setname 0x81 炎王
!setname 0x1081 炎王兽 炎王獣 !setname 0x1081 炎王兽 炎王獣
...@@ -978,15 +980,16 @@ ...@@ -978,15 +980,16 @@
!setname 0x11b 自奏圣乐 オルフェゴール !setname 0x11b 自奏圣乐 オルフェゴール
!setname 0x11c 雷龙 サンダー·ドラゴン !setname 0x11c 雷龙 サンダー·ドラゴン
!setname 0x11d 禁忌的 禁じられた !setname 0x11d 禁忌的 禁じられた
!setname 0x11e 危险! Danger! !setname 0x11e 未界域
!setname 0x11f 奈芙提斯 ネフティス !setname 0x11f 奈芙提斯 ネフティス
!setname 0x120 调皮宝贝 プランキッズ !setname 0x120 调皮宝贝 プランキッズ
!setname 0x121 魔妖 !setname 0x121 魔妖
!setname 0x122 女武神 Valkyrie !setname 0x122 女武神 ワルキューレ
!setname 0x123 蔷薇龙 ローズ・ドラゴン !setname 0x123 蔷薇 ローズ
!setname 0x1123 蔷薇龙 ローズ・ドラゴン
!setname 0x124 机械天使 機械天使 !setname 0x124 机械天使 機械天使
!setname 0x125 笑容 スマイル !setname 0x125 笑容 スマイル
!setname 0x126 时间怪盗 Time Thief !setname 0x126 时间潜行者 クロノダイバー
!setname 0x127 无限起动 無限起動 !setname 0x127 无限起动 無限起動
!setname 0x128 魔女术 ウィッチクラフト !setname 0x128 魔女术 ウィッチクラフト
!setname 0x129 咒眼 呪眼 !setname 0x129 咒眼 呪眼
...@@ -999,3 +1002,12 @@ ...@@ -999,3 +1002,12 @@
!setname 0x130 破械 !setname 0x130 破械
!setname 0x1130 破械神 !setname 0x1130 破械神
!setname 0x131 梦镜 Dream Mirror !setname 0x131 梦镜 Dream Mirror
!setname 0x132 斩机 斬機
!setname 0x133 半龙女仆 ドラゴンメイド
!setname 0x134 王战 ジェネレイド
!setname 0x135 @火灵天星 @イグニスター
!setname 0x136 “艾” Ai(アイ)
!setname 0x137 战华 戦華
!setname 0x138 巨石遗物 メガリス
!setname 0x139 守护神官 守護神官
!setname 0x13a 拟声 オノマト
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment