Commit 59ea2181 authored by nanahira's avatar nanahira

Merge branch 'server' into fullview

parents a6187a08 7eaf5e96
No preview for this file type
...@@ -324,7 +324,7 @@ const wchar_t* DataManager::FormatRace(int race) { ...@@ -324,7 +324,7 @@ const wchar_t* DataManager::FormatRace(int race) {
wchar_t* p = racBuffer; wchar_t* p = racBuffer;
unsigned filter = 1; unsigned filter = 1;
int i = 1020; int i = 1020;
for(; filter != 0x2000000; filter <<= 1, ++i) { for(; filter < (1 << RACES_COUNT); filter <<= 1, ++i) {
if(race & filter) { if(race & filter) {
BufferIO::CopyWStrRef(GetSysString(i), p, 16); BufferIO::CopyWStrRef(GetSysString(i), p, 16);
*p = L'|'; *p = L'|';
......
...@@ -637,6 +637,7 @@ void Game::DrawMisc() { ...@@ -637,6 +637,7 @@ void Game::DrawMisc() {
DrawShadowText(numFont, dInfo.strLP[0], Resize(330, 12, 631, 30), Resize(0, 1, 2, 0), 0xffffff00, 0xff000000, true, false, 0); DrawShadowText(numFont, dInfo.strLP[0], Resize(330, 12, 631, 30), Resize(0, 1, 2, 0), 0xffffff00, 0xff000000, true, false, 0);
DrawShadowText(numFont, dInfo.strLP[1], Resize(691, 12, 992, 30), Resize(0, 1, 2, 0), 0xffffff00, 0xff000000, true, false, 0); DrawShadowText(numFont, dInfo.strLP[1], Resize(691, 12, 992, 30), Resize(0, 1, 2, 0), 0xffffff00, 0xff000000, true, false, 0);
if(!gameConf.hide_player_name) {
recti p1size = Resize(335, 31, 629, 50); recti p1size = Resize(335, 31, 629, 50);
recti p2size = Resize(986, 31, 986, 50); recti p2size = Resize(986, 31, 986, 50);
if(!dInfo.isTag || !dInfo.tag_player[0]) if(!dInfo.isTag || !dInfo.tag_player[0])
...@@ -652,6 +653,7 @@ void Game::DrawMisc() { ...@@ -652,6 +653,7 @@ void Game::DrawMisc() {
p2size.UpperLeftCorner.X -= cld.Width; p2size.UpperLeftCorner.X -= cld.Width;
textFont->draw(dInfo.clientname_tag, p2size, 0xffffffff, false, false, 0); textFont->draw(dInfo.clientname_tag, p2size, 0xffffffff, false, false, 0);
} }
}
driver->draw2DRectangle(Resize(632, 10, 688, 30), 0x00000000, 0x00000000, 0xffffffff, 0xffffffff); driver->draw2DRectangle(Resize(632, 10, 688, 30), 0x00000000, 0x00000000, 0xffffffff, 0xffffffff);
driver->draw2DRectangle(Resize(632, 30, 688, 50), 0xffffffff, 0xffffffff, 0x00000000, 0x00000000); driver->draw2DRectangle(Resize(632, 30, 688, 50), 0xffffffff, 0xffffffff, 0x00000000, 0x00000000);
DrawShadowText(lpcFont, dataManager.GetNumString(dInfo.turn), Resize(635, 5, 687, 40), Resize(0, 0, 2, 0), 0x8000ffff, 0x80000000, true, false, 0); DrawShadowText(lpcFont, dataManager.GetNumString(dInfo.turn), Resize(635, 5, 687, 40), Resize(0, 0, 2, 0), 0x8000ffff, 0x80000000, true, false, 0);
......
...@@ -570,8 +570,11 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) { ...@@ -570,8 +570,11 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame->stHostPrepDuelist[2]->setVisible(false); mainGame->stHostPrepDuelist[2]->setVisible(false);
mainGame->stHostPrepDuelist[3]->setVisible(false); mainGame->stHostPrepDuelist[3]->setVisible(false);
} }
for(int i = 0; i < 4; ++i) for(int i = 0; i < 4; ++i) {
mainGame->chkHostPrepReady[i]->setChecked(false); mainGame->chkHostPrepReady[i]->setChecked(false);
mainGame->stHostPrepDuelist[i]->setText(L"");
mainGame->stHostPrepDuelist[i]->setToolTipText(L"");
}
mainGame->btnHostPrepReady->setVisible(true); mainGame->btnHostPrepReady->setVisible(true);
mainGame->btnHostPrepNotReady->setVisible(false); mainGame->btnHostPrepNotReady->setVisible(false);
mainGame->dInfo.time_limit = pkt->info.time_limit; mainGame->dInfo.time_limit = pkt->info.time_limit;
...@@ -581,10 +584,6 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) { ...@@ -581,10 +584,6 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame->deckBuilder.filterList = deckManager.GetLFListContent(pkt->info.lflist); mainGame->deckBuilder.filterList = deckManager.GetLFListContent(pkt->info.lflist);
if(mainGame->deckBuilder.filterList == nullptr) if(mainGame->deckBuilder.filterList == nullptr)
mainGame->deckBuilder.filterList = &deckManager._lfList[0].content; mainGame->deckBuilder.filterList = &deckManager._lfList[0].content;
mainGame->stHostPrepDuelist[0]->setText(L"");
mainGame->stHostPrepDuelist[1]->setText(L"");
mainGame->stHostPrepDuelist[2]->setText(L"");
mainGame->stHostPrepDuelist[3]->setText(L"");
mainGame->stHostPrepOB->setText(L""); mainGame->stHostPrepOB->setText(L"");
mainGame->SetStaticText(mainGame->stHostPrepRule, 180, mainGame->guiFont, str.c_str()); mainGame->SetStaticText(mainGame->stHostPrepRule, 180, mainGame->guiFont, str.c_str());
mainGame->RefreshCategoryDeck(mainGame->cbCategorySelect, mainGame->cbDeckSelect); mainGame->RefreshCategoryDeck(mainGame->cbCategorySelect, mainGame->cbDeckSelect);
...@@ -723,11 +722,11 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) { ...@@ -723,11 +722,11 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame->btnSpectatorSwap->setVisible(true); mainGame->btnSpectatorSwap->setVisible(true);
} }
if(selftype != 1) { if(selftype != 1) {
BufferIO::CopyWStr(mainGame->stHostPrepDuelist[0]->getText(), mainGame->dInfo.hostname, 20); BufferIO::CopyWStr(mainGame->stHostPrepDuelist[0]->getToolTipText().c_str(), mainGame->dInfo.hostname, 20);
BufferIO::CopyWStr(mainGame->stHostPrepDuelist[1]->getText(), mainGame->dInfo.clientname, 20); BufferIO::CopyWStr(mainGame->stHostPrepDuelist[1]->getToolTipText().c_str(), mainGame->dInfo.clientname, 20);
} else { } else {
BufferIO::CopyWStr(mainGame->stHostPrepDuelist[1]->getText(), mainGame->dInfo.hostname, 20); BufferIO::CopyWStr(mainGame->stHostPrepDuelist[1]->getToolTipText().c_str(), mainGame->dInfo.hostname, 20);
BufferIO::CopyWStr(mainGame->stHostPrepDuelist[0]->getText(), mainGame->dInfo.clientname, 20); BufferIO::CopyWStr(mainGame->stHostPrepDuelist[0]->getToolTipText().c_str(), mainGame->dInfo.clientname, 20);
} }
} else { } else {
if(selftype > 3) { if(selftype > 3) {
...@@ -737,15 +736,15 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) { ...@@ -737,15 +736,15 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame->btnSpectatorSwap->setVisible(true); mainGame->btnSpectatorSwap->setVisible(true);
} }
if(selftype > 1 && selftype < 4) { if(selftype > 1 && selftype < 4) {
BufferIO::CopyWStr(mainGame->stHostPrepDuelist[2]->getText(), mainGame->dInfo.hostname, 20); BufferIO::CopyWStr(mainGame->stHostPrepDuelist[2]->getToolTipText().c_str(), mainGame->dInfo.hostname, 20);
BufferIO::CopyWStr(mainGame->stHostPrepDuelist[3]->getText(), mainGame->dInfo.hostname_tag, 20); BufferIO::CopyWStr(mainGame->stHostPrepDuelist[3]->getToolTipText().c_str(), mainGame->dInfo.hostname_tag, 20);
BufferIO::CopyWStr(mainGame->stHostPrepDuelist[0]->getText(), mainGame->dInfo.clientname, 20); BufferIO::CopyWStr(mainGame->stHostPrepDuelist[0]->getToolTipText().c_str(), mainGame->dInfo.clientname, 20);
BufferIO::CopyWStr(mainGame->stHostPrepDuelist[1]->getText(), mainGame->dInfo.clientname_tag, 20); BufferIO::CopyWStr(mainGame->stHostPrepDuelist[1]->getToolTipText().c_str(), mainGame->dInfo.clientname_tag, 20);
} else { } else {
BufferIO::CopyWStr(mainGame->stHostPrepDuelist[0]->getText(), mainGame->dInfo.hostname, 20); BufferIO::CopyWStr(mainGame->stHostPrepDuelist[0]->getToolTipText().c_str(), mainGame->dInfo.hostname, 20);
BufferIO::CopyWStr(mainGame->stHostPrepDuelist[1]->getText(), mainGame->dInfo.hostname_tag, 20); BufferIO::CopyWStr(mainGame->stHostPrepDuelist[1]->getToolTipText().c_str(), mainGame->dInfo.hostname_tag, 20);
BufferIO::CopyWStr(mainGame->stHostPrepDuelist[2]->getText(), mainGame->dInfo.clientname, 20); BufferIO::CopyWStr(mainGame->stHostPrepDuelist[2]->getToolTipText().c_str(), mainGame->dInfo.clientname, 20);
BufferIO::CopyWStr(mainGame->stHostPrepDuelist[3]->getText(), mainGame->dInfo.clientname_tag, 20); BufferIO::CopyWStr(mainGame->stHostPrepDuelist[3]->getToolTipText().c_str(), mainGame->dInfo.clientname_tag, 20);
} }
mainGame->dInfo.tag_player[0] = false; mainGame->dInfo.tag_player[0] = false;
mainGame->dInfo.tag_player[1] = false; mainGame->dInfo.tag_player[1] = false;
...@@ -922,7 +921,11 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) { ...@@ -922,7 +921,11 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
BufferIO::CopyWStr(pkt->name, mainGame->dInfo.clientname, 20); BufferIO::CopyWStr(pkt->name, mainGame->dInfo.clientname, 20);
} }
mainGame->gMutex.lock(); mainGame->gMutex.lock();
if(mainGame->gameConf.hide_player_name)
mainGame->stHostPrepDuelist[pkt->pos]->setText(L"[********]");
else
mainGame->stHostPrepDuelist[pkt->pos]->setText(name); mainGame->stHostPrepDuelist[pkt->pos]->setText(name);
mainGame->stHostPrepDuelist[pkt->pos]->setToolTipText(name);
mainGame->gMutex.unlock(); mainGame->gMutex.unlock();
mainGame->FlashWindow(); mainGame->FlashWindow();
break; break;
...@@ -936,9 +939,14 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) { ...@@ -936,9 +939,14 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame->gMutex.lock(); mainGame->gMutex.lock();
if(state < 8) { if(state < 8) {
soundManager.PlaySoundEffect(SOUND_PLAYER_ENTER); soundManager.PlaySoundEffect(SOUND_PLAYER_ENTER);
wchar_t* prename = (wchar_t*)mainGame->stHostPrepDuelist[pos]->getText(); wchar_t* prename = (wchar_t*)mainGame->stHostPrepDuelist[pos]->getToolTipText().c_str();
if(mainGame->gameConf.hide_player_name)
mainGame->stHostPrepDuelist[state]->setText(L"[********]");
else
mainGame->stHostPrepDuelist[state]->setText(prename); mainGame->stHostPrepDuelist[state]->setText(prename);
mainGame->stHostPrepDuelist[state]->setToolTipText(prename);
mainGame->stHostPrepDuelist[pos]->setText(L""); mainGame->stHostPrepDuelist[pos]->setText(L"");
mainGame->stHostPrepDuelist[pos]->setToolTipText(L"");
mainGame->chkHostPrepReady[pos]->setChecked(false); mainGame->chkHostPrepReady[pos]->setChecked(false);
if(pos == 0) if(pos == 0)
BufferIO::CopyWStr(prename, mainGame->dInfo.hostname, 20); BufferIO::CopyWStr(prename, mainGame->dInfo.hostname, 20);
...@@ -962,12 +970,14 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) { ...@@ -962,12 +970,14 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
} }
} else if(state == PLAYERCHANGE_LEAVE) { } else if(state == PLAYERCHANGE_LEAVE) {
mainGame->stHostPrepDuelist[pos]->setText(L""); mainGame->stHostPrepDuelist[pos]->setText(L"");
mainGame->stHostPrepDuelist[pos]->setToolTipText(L"");
mainGame->chkHostPrepReady[pos]->setChecked(false); mainGame->chkHostPrepReady[pos]->setChecked(false);
} else if(state == PLAYERCHANGE_OBSERVE) { } else if(state == PLAYERCHANGE_OBSERVE) {
watching++; watching++;
wchar_t watchbuf[32]; wchar_t watchbuf[32];
myswprintf(watchbuf, L"%ls%d", dataManager.GetSysString(1253), watching); myswprintf(watchbuf, L"%ls%d", dataManager.GetSysString(1253), watching);
mainGame->stHostPrepDuelist[pos]->setText(L""); mainGame->stHostPrepDuelist[pos]->setText(L"");
mainGame->stHostPrepDuelist[pos]->setToolTipText(L"");
mainGame->chkHostPrepReady[pos]->setChecked(false); mainGame->chkHostPrepReady[pos]->setChecked(false);
mainGame->stHostPrepOB->setText(watchbuf); mainGame->stHostPrepOB->setText(watchbuf);
} }
...@@ -3788,7 +3798,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -3788,7 +3798,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
/*int player = */mainGame->LocalPlayer(BufferIO::ReadInt8(pbuf)); /*int player = */mainGame->LocalPlayer(BufferIO::ReadInt8(pbuf));
mainGame->dField.announce_count = BufferIO::ReadInt8(pbuf); mainGame->dField.announce_count = BufferIO::ReadInt8(pbuf);
int available = BufferIO::ReadInt32(pbuf); int available = BufferIO::ReadInt32(pbuf);
for(int i = 0, filter = 0x1; i < 25; ++i, filter <<= 1) { for(int i = 0, filter = 0x1; i < RACES_COUNT; ++i, filter <<= 1) {
mainGame->chkRace[i]->setChecked(false); mainGame->chkRace[i]->setChecked(false);
if(filter & available) if(filter & available)
mainGame->chkRace[i]->setVisible(true); mainGame->chkRace[i]->setVisible(true);
......
...@@ -852,7 +852,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -852,7 +852,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
} }
case CHECK_RACE: { case CHECK_RACE: {
int rac = 0, filter = 0x1, count = 0; int rac = 0, filter = 0x1, count = 0;
for(int i = 0; i < 25; ++i, filter <<= 1) { for(int i = 0; i < RACES_COUNT; ++i, filter <<= 1) {
if(mainGame->chkRace[i]->isChecked()) { if(mainGame->chkRace[i]->isChecked()) {
rac |= filter; rac |= filter;
count++; count++;
...@@ -1965,6 +1965,13 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) { ...@@ -1965,6 +1965,13 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
return true; return true;
break; break;
} }
case CHECKBOX_HIDE_PLAYER_NAME: {
mainGame->gameConf.hide_player_name = mainGame->chkHidePlayerName->isChecked() ? 1 : 0;
if(mainGame->gameConf.hide_player_name)
mainGame->ClearChatMsg();
return true;
break;
}
case CHECKBOX_PREFER_EXPANSION: { case CHECKBOX_PREFER_EXPANSION: {
mainGame->gameConf.prefer_expansion_script = mainGame->chkPreferExpansionScript->isChecked() ? 1 : 0; mainGame->gameConf.prefer_expansion_script = mainGame->chkPreferExpansionScript->isChecked() ? 1 : 0;
return true; return true;
......
...@@ -27,7 +27,7 @@ namespace irr { ...@@ -27,7 +27,7 @@ namespace irr {
#include <regex> #include <regex>
#endif //YGOPRO_SERVER_MODE #endif //YGOPRO_SERVER_MODE
unsigned short PRO_VERSION = 0x1354; unsigned short PRO_VERSION = 0x1360;
namespace ygo { namespace ygo {
...@@ -229,7 +229,7 @@ bool Game::Initialize() { ...@@ -229,7 +229,7 @@ bool Game::Initialize() {
SetWindowsIcon(); SetWindowsIcon();
//main menu //main menu
wchar_t strbuf[256]; wchar_t strbuf[256];
myswprintf(strbuf, L"KoishiPro %X.0%X.%X PayaPaya", PRO_VERSION >> 12, (PRO_VERSION >> 4) & 0xff, PRO_VERSION & 0xf); myswprintf(strbuf, L"KoishiPro %X.0%X.%X Ulysses", PRO_VERSION >> 12, (PRO_VERSION >> 4) & 0xff, PRO_VERSION & 0xf);
wMainMenu = env->addWindow(rect<s32>(370, 200, 650, 415), false, strbuf); wMainMenu = env->addWindow(rect<s32>(370, 200, 650, 415), false, strbuf);
wMainMenu->getCloseButton()->setVisible(false); wMainMenu->getCloseButton()->setVisible(false);
btnLanMode = env->addButton(rect<s32>(10, 30, 270, 60), wMainMenu, BUTTON_LAN_MODE, dataManager.GetSysString(1200)); btnLanMode = env->addButton(rect<s32>(10, 30, 270, 60), wMainMenu, BUTTON_LAN_MODE, dataManager.GetSysString(1200));
...@@ -480,6 +480,9 @@ bool Game::Initialize() { ...@@ -480,6 +480,9 @@ bool Game::Initialize() {
chkIgnore2 = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260, posY + 25), tabSystem, -1, dataManager.GetSysString(1291)); chkIgnore2 = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260, posY + 25), tabSystem, -1, dataManager.GetSysString(1291));
chkIgnore2->setChecked(gameConf.chkIgnore2 != 0); chkIgnore2->setChecked(gameConf.chkIgnore2 != 0);
posY += 30; posY += 30;
chkHidePlayerName = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260, posY + 25), tabSystem, CHECKBOX_HIDE_PLAYER_NAME, dataManager.GetSysString(1289));
chkHidePlayerName->setChecked(gameConf.hide_player_name != 0);
posY += 30;
chkIgnoreDeckChanges = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260, posY + 25), tabSystem, -1, dataManager.GetSysString(1357)); chkIgnoreDeckChanges = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260, posY + 25), tabSystem, -1, dataManager.GetSysString(1357));
chkIgnoreDeckChanges->setChecked(gameConf.chkIgnoreDeckChanges != 0); chkIgnoreDeckChanges->setChecked(gameConf.chkIgnoreDeckChanges != 0);
posY += 30; posY += 30;
...@@ -534,7 +537,7 @@ bool Game::Initialize() { ...@@ -534,7 +537,7 @@ bool Game::Initialize() {
chkEnablePScale = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260, posY + 25), tabSystem, -1, dataManager.GetSysString(1269)); chkEnablePScale = env->addCheckBox(false, rect<s32>(posX, posY, posX + 260, posY + 25), tabSystem, -1, dataManager.GetSysString(1269));
chkEnablePScale->setChecked(gameConf.chkEnablePScale != 0); chkEnablePScale->setChecked(gameConf.chkEnablePScale != 0);
posY += 30; posY += 30;
env->addStaticText(dataManager.GetSysString(1289), rect<s32>(posX + 23, posY + 3, posX + 160, posY + 28), false, false, tabSystem); env->addStaticText(dataManager.GetSysString(1267), rect<s32>(posX + 23, posY + 3, posX + 160, posY + 28), false, false, tabSystem);
cbLocale = env->addComboBox(rect<s32>(posX + 150, posY + 4, posX + 250, posY + 21), tabSystem, COMBOBOX_LOCALE); cbLocale = env->addComboBox(rect<s32>(posX + 150, posY + 4, posX + 250, posY + 21), tabSystem, COMBOBOX_LOCALE);
RefreshLocales(); RefreshLocales();
elmTabSystemLast = cbLocale; elmTabSystemLast = cbLocale;
...@@ -674,7 +677,7 @@ bool Game::Initialize() { ...@@ -674,7 +677,7 @@ bool Game::Initialize() {
wANRace = env->addWindow(rect<s32>(480, 200, 850, 410), false, dataManager.GetSysString(563)); wANRace = env->addWindow(rect<s32>(480, 200, 850, 410), false, dataManager.GetSysString(563));
wANRace->getCloseButton()->setVisible(false); wANRace->getCloseButton()->setVisible(false);
wANRace->setVisible(false); wANRace->setVisible(false);
for(int filter = 0x1, i = 0; i < 25; filter <<= 1, ++i) for(int filter = 0x1, i = 0; i < RACES_COUNT; filter <<= 1, ++i)
chkRace[i] = env->addCheckBox(false, rect<s32>(10 + (i % 4) * 90, 25 + (i / 4) * 25, 100 + (i % 4) * 90, 50 + (i / 4) * 25), chkRace[i] = env->addCheckBox(false, rect<s32>(10 + (i % 4) * 90, 25 + (i / 4) * 25, 100 + (i % 4) * 90, 50 + (i / 4) * 25),
wANRace, CHECK_RACE, dataManager.FormatRace(filter)); wANRace, CHECK_RACE, dataManager.FormatRace(filter));
//selection hint //selection hint
...@@ -821,7 +824,7 @@ bool Game::Initialize() { ...@@ -821,7 +824,7 @@ bool Game::Initialize() {
cbRace = env->addComboBox(rect<s32>(60, 40 + 75 / 6, 190, 60 + 75 / 6), wFilter, COMBOBOX_RACE); cbRace = env->addComboBox(rect<s32>(60, 40 + 75 / 6, 190, 60 + 75 / 6), wFilter, COMBOBOX_RACE);
cbRace->setMaxSelectionRows(10); cbRace->setMaxSelectionRows(10);
cbRace->addItem(dataManager.GetSysString(1310), 0); cbRace->addItem(dataManager.GetSysString(1310), 0);
for(int filter = 0x1; filter != 0x2000000; filter <<= 1) for(int filter = 0x1; filter < (1 << RACES_COUNT); filter <<= 1)
cbRace->addItem(dataManager.FormatRace(filter), filter); cbRace->addItem(dataManager.FormatRace(filter), filter);
stAttack = env->addStaticText(dataManager.GetSysString(1322), rect<s32>(205, 22 + 50 / 6, 280, 42 + 50 / 6), false, false, wFilter); stAttack = env->addStaticText(dataManager.GetSysString(1322), rect<s32>(205, 22 + 50 / 6, 280, 42 + 50 / 6), false, false, wFilter);
ebAttack = env->addEditBox(L"", rect<s32>(260, 20 + 50 / 6, 340, 40 + 50 / 6), true, wFilter, EDITBOX_INPUTS); ebAttack = env->addEditBox(L"", rect<s32>(260, 20 + 50 / 6, 340, 40 + 50 / 6), true, wFilter, EDITBOX_INPUTS);
...@@ -1531,6 +1534,8 @@ bool Game::LoadConfigFromFile(const char* file) { ...@@ -1531,6 +1534,8 @@ bool Game::LoadConfigFromFile(const char* file) {
gameConf.auto_save_replay = atoi(valbuf); gameConf.auto_save_replay = atoi(valbuf);
} else if(!strcmp(strbuf, "draw_single_chain")) { } else if(!strcmp(strbuf, "draw_single_chain")) {
gameConf.draw_single_chain = atoi(valbuf); gameConf.draw_single_chain = atoi(valbuf);
} else if(!strcmp(strbuf, "hide_player_name")) {
gameConf.hide_player_name = atoi(valbuf);
} else if(!strcmp(strbuf, "prefer_expansion_script")) { } else if(!strcmp(strbuf, "prefer_expansion_script")) {
gameConf.prefer_expansion_script = atoi(valbuf); gameConf.prefer_expansion_script = atoi(valbuf);
} else if(!strcmp(strbuf, "ask_mset")) { } else if(!strcmp(strbuf, "ask_mset")) {
...@@ -1627,6 +1632,7 @@ void Game::LoadConfig() { ...@@ -1627,6 +1632,7 @@ void Game::LoadConfig() {
gameConf.quick_animation = 0; gameConf.quick_animation = 0;
gameConf.auto_save_replay = 0; gameConf.auto_save_replay = 0;
gameConf.draw_single_chain = 0; gameConf.draw_single_chain = 0;
gameConf.hide_player_name = 0;
gameConf.prefer_expansion_script = 0; gameConf.prefer_expansion_script = 0;
gameConf.ask_mset = 0; gameConf.ask_mset = 0;
gameConf.enable_sound = true; gameConf.enable_sound = true;
...@@ -1766,6 +1772,7 @@ void Game::SaveConfig() { ...@@ -1766,6 +1772,7 @@ void Game::SaveConfig() {
fprintf(fp, "quick_animation = %d\n", gameConf.quick_animation); fprintf(fp, "quick_animation = %d\n", gameConf.quick_animation);
fprintf(fp, "auto_save_replay = %d\n", (chkAutoSaveReplay->isChecked() ? 1 : 0)); fprintf(fp, "auto_save_replay = %d\n", (chkAutoSaveReplay->isChecked() ? 1 : 0));
fprintf(fp, "draw_single_chain = %d\n", gameConf.draw_single_chain); fprintf(fp, "draw_single_chain = %d\n", gameConf.draw_single_chain);
fprintf(fp, "hide_player_name = %d\n", gameConf.hide_player_name);
fprintf(fp, "prefer_expansion_script = %d\n", gameConf.prefer_expansion_script); fprintf(fp, "prefer_expansion_script = %d\n", gameConf.prefer_expansion_script);
fprintf(fp, "ask_mset = %d\n", gameConf.ask_mset); fprintf(fp, "ask_mset = %d\n", gameConf.ask_mset);
fprintf(fp, "window_maximized = %d\n", (gameConf.window_maximized ? 1 : 0)); fprintf(fp, "window_maximized = %d\n", (gameConf.window_maximized ? 1 : 0));
...@@ -1904,6 +1911,8 @@ void Game::AddChatMsg(const wchar_t* msg, int player) { ...@@ -1904,6 +1911,8 @@ void Game::AddChatMsg(const wchar_t* msg, int player) {
chatMsg[0].clear(); chatMsg[0].clear();
chatTiming[0] = 1200; chatTiming[0] = 1200;
chatType[0] = player; chatType[0] = player;
if(gameConf.hide_player_name && player < 4)
player = 10;
switch(player) { switch(player) {
case 0: //from host case 0: //from host
chatMsg[0].append(dInfo.hostname); chatMsg[0].append(dInfo.hostname);
...@@ -1935,6 +1944,9 @@ void Game::AddChatMsg(const wchar_t* msg, int player) { ...@@ -1935,6 +1944,9 @@ void Game::AddChatMsg(const wchar_t* msg, int player) {
case 9: //error message case 9: //error message
chatMsg[0].append(L"[Script Error]: "); chatMsg[0].append(L"[Script Error]: ");
break; break;
case 10: //hidden name
chatMsg[0].append(L"[********]: ");
break;
default: //from watcher or unknown default: //from watcher or unknown
if(player < 11 || player > 19) if(player < 11 || player > 19)
chatMsg[0].append(L"[---]: "); chatMsg[0].append(L"[---]: ");
......
...@@ -64,6 +64,7 @@ struct Config { ...@@ -64,6 +64,7 @@ struct Config {
bool resize_popup_menu; bool resize_popup_menu;
int auto_save_replay; int auto_save_replay;
int draw_single_chain; int draw_single_chain;
int hide_player_name;
int prefer_expansion_script; int prefer_expansion_script;
int ask_mset; int ask_mset;
bool enable_sound; bool enable_sound;
...@@ -339,6 +340,7 @@ public: ...@@ -339,6 +340,7 @@ public:
irr::gui::IGUICheckBox* chkAutoSaveReplay; irr::gui::IGUICheckBox* chkAutoSaveReplay;
irr::gui::IGUICheckBox* chkDrawSingleChain; irr::gui::IGUICheckBox* chkDrawSingleChain;
irr::gui::IGUICheckBox* chkAskMSet; irr::gui::IGUICheckBox* chkAskMSet;
irr::gui::IGUICheckBox* chkHidePlayerName;
irr::gui::IGUIWindow* tabSystem; irr::gui::IGUIWindow* tabSystem;
irr::gui::IGUIElement* elmTabSystemLast; irr::gui::IGUIElement* elmTabSystemLast;
irr::gui::IGUIScrollBar* scrTabSystem; irr::gui::IGUIScrollBar* scrTabSystem;
...@@ -502,7 +504,7 @@ public: ...@@ -502,7 +504,7 @@ public:
irr::gui::IGUICheckBox* chkAttribute[7]; irr::gui::IGUICheckBox* chkAttribute[7];
//announce race //announce race
irr::gui::IGUIWindow* wANRace; irr::gui::IGUIWindow* wANRace;
irr::gui::IGUICheckBox* chkRace[25]; irr::gui::IGUICheckBox* chkRace[RACES_COUNT];
//cmd menu //cmd menu
irr::gui::IGUIWindow* wCmdMenu; irr::gui::IGUIWindow* wCmdMenu;
irr::gui::IGUIButton* btnActivate; irr::gui::IGUIButton* btnActivate;
...@@ -859,9 +861,10 @@ extern unsigned int pre_seed[3]; ...@@ -859,9 +861,10 @@ extern unsigned int pre_seed[3];
#define CHECKBOX_PREFER_EXPANSION 373 #define CHECKBOX_PREFER_EXPANSION 373
#define CHECKBOX_DRAW_SINGLE_CHAIN 374 #define CHECKBOX_DRAW_SINGLE_CHAIN 374
#define CHECKBOX_LFLIST 375 #define CHECKBOX_LFLIST 375
#define CHECKBOX_REGEX 376 #define CHECKBOX_HIDE_PLAYER_NAME 376
#define COMBOBOX_LOCALE 377 #define CHECKBOX_REGEX 377
#define CHECKBOX_ASK_MSET 378 #define COMBOBOX_LOCALE 378
#define CHECKBOX_ASK_MSET 379
#define BUTTON_BIG_CARD_CLOSE 380 #define BUTTON_BIG_CARD_CLOSE 380
#define BUTTON_BIG_CARD_ZOOM_IN 381 #define BUTTON_BIG_CARD_ZOOM_IN 381
......
#[2023.1][2023.2 TCG][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][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] #[2023.4][2023.2 TCG][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][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]
!2023.1 !2023.4
#forbidden #forbidden
91869203 0 --アマゾネスの射手 91869203 0 --アマゾネスの射手
20663556 0 --イレカエル 20663556 0 --イレカエル
44910027 0 --ヴィクトリー・ドラゴン 44910027 0 --ヴィクトリー・ドラゴン
51858306 0 --エクリプス・ワイバーン 51858306 0 --エクリプス・ワイバーン
53804307 0 --焔征竜-ブラスター
07563579 0 --Emヒグルミ 07563579 0 --Emヒグルミ
17330916 0 --EMモンキーボード 17330916 0 --EMモンキーボード
34945480 0 --外神アザトート 34945480 0 --外神アザトート
...@@ -14,7 +13,6 @@ ...@@ -14,7 +13,6 @@
11384280 0 --キャノン・ソルジャー 11384280 0 --キャノン・ソルジャー
17412721 0 --旧神ノーデン 17412721 0 --旧神ノーデン
50588353 0 --水晶機巧-ハリファイバー 50588353 0 --水晶機巧-ハリファイバー
67441435 0 --グローアップ・バルブ
34124316 0 --サイバーポッド 34124316 0 --サイバーポッド
02563463 0 --流離のグリフォンライダー 02563463 0 --流離のグリフォンライダー
88071625 0 --The tyrant NEPTUNE 88071625 0 --The tyrant NEPTUNE
...@@ -26,6 +24,7 @@ ...@@ -26,6 +24,7 @@
86148577 0 --守護竜エルピィ 86148577 0 --守護竜エルピィ
88581108 0 --真竜皇V.F.D. 88581108 0 --真竜皇V.F.D.
21377582 0 --真竜剣皇マスターP 21377582 0 --真竜剣皇マスターP
27381364 0 --スプライト・エルフ
94677445 0 --星杯の神子イヴ 94677445 0 --星杯の神子イヴ
16923472 0 --ゼンマイハンター 16923472 0 --ゼンマイハンター
15341821 0 --ダンディライオン 15341821 0 --ダンディライオン
...@@ -91,15 +90,17 @@ ...@@ -91,15 +90,17 @@
#limit #limit
76794549 1 --アストログラフ・マジシャン 76794549 1 --アストログラフ・マジシャン
40177746 1 --イーバ 40177746 1 --イーバ
25862681 1 --エンシェント・フェアリー・ドラゴン 53804307 1 --焔征竜-ブラスター
32909498 1 --クシャトリラ・フェンリル 32909498 1 --クシャトリラ・フェンリル
68304193 1 --クシャトリラ・ユニコーン 68304193 1 --クシャトリラ・ユニコーン
67441435 1 --グローアップ・バルブ
12289247 1 --クロノグラフ・マジシャン 12289247 1 --クロノグラフ・マジシャン
99937011 1 --剣神官ムドラ
62320425 1 --古衛兵アギド 62320425 1 --古衛兵アギド
25926710 1 --古尖兵ケルベク
38814750 1 --PSYフレームギア・γ 38814750 1 --PSYフレームギア・γ
74586817 1 --PSYフレームロード・Ω 74586817 1 --PSYフレームロード・Ω
26889158 1 --転生炎獣ガゼル 32731036 1 --深淵の獣ルベリオン
74997493 1 --鎖龍蛇-スカルデット
69811710 1 --宵星の騎士ギルス 69811710 1 --宵星の騎士ギルス
78872731 1 --十二獣モルモラット 78872731 1 --十二獣モルモラット
06602300 1 --重爆撃禽 ボム・フェネクス 06602300 1 --重爆撃禽 ボム・フェネクス
...@@ -108,28 +109,30 @@ ...@@ -108,28 +109,30 @@
78080961 1 --SPYRAL-ジーニアス 78080961 1 --SPYRAL-ジーニアス
81275020 1 --SRベイゴマックス 81275020 1 --SRベイゴマックス
13533678 1 --スプライト・ジェット 13533678 1 --スプライト・ジェット
76145933 1 --スプライト・ブルー
82385847 1 --ダイナレスラー・パンクラトプス 82385847 1 --ダイナレスラー・パンクラトプス
15291624 1 --超雷龍-サンダー・ドラゴン 15291624 1 --超雷龍-サンダー・ドラゴン
00572850 1 --ティアラメンツ・シェイレーン 00572850 1 --ティアラメンツ・シェイレーン
37961969 1 --ティアラメンツ・ハゥフニス
74078255 1 --ティアラメンツ・メイルゥ
73956664 1 --ティアラメンツ・レイノハート 73956664 1 --ティアラメンツ・レイノハート
90953320 1 --TG ハイパー・ライブラリアン 90953320 1 --TG ハイパー・ライブラリアン
69015963 1 --デビル・フランケン 69015963 1 --デビル・フランケン
18326736 1 --星守の騎士 プトレマイオス
90448279 1 --天霆號アーゼウス 90448279 1 --天霆號アーゼウス
17266660 1 --朱光の宣告者 17266660 1 --朱光の宣告者
69610326 1 --覇王眷竜ダークヴルム 69610326 1 --覇王眷竜ダークヴルム
06637331 1 --深淵の獣ドルイドヴルム
72656408 1 --深淵の獣バルドレイク
33854624 1 --深淵の獣マグナムート 33854624 1 --深淵の獣マグナムート
33396948 1 --封印されしエクゾディア 33396948 1 --封印されしエクゾディア
44519536 1 --封印されし者の左足 44519536 1 --封印されし者の左足
07902349 1 --封印されし者の左腕 07902349 1 --封印されし者の左腕
08124921 1 --封印されし者の右足 08124921 1 --封印されし者の右足
70903634 1 --封印されし者の右腕 70903634 1 --封印されし者の右腕
09047460 1 --BF-隠れ蓑のスチーム
25725326 1 --プランキッズ・ミュー 25725326 1 --プランキッズ・ミュー
35272499 1 --捕食植物オフリス・スコーピオ 35272499 1 --捕食植物オフリス・スコーピオ
24094258 1 --ヘビーメタルフォーゼ・エレクトラム 24094258 1 --ヘビーメタルフォーゼ・エレクトラム
33508719 1 --メタモルポット 33508719 1 --メタモルポット
83107873 1 --雷鳥龍-サンダー・ドラゴン
89399912 1 --嵐征竜-テンペスト 89399912 1 --嵐征竜-テンペスト
92746535 1 --竜剣士ラスターP 92746535 1 --竜剣士ラスターP
77103950 1 --壱世壊=ペルレイノ 77103950 1 --壱世壊=ペルレイノ
...@@ -145,7 +148,6 @@ ...@@ -145,7 +148,6 @@
32807846 1 --増援 32807846 1 --増援
72892473 1 --手札抹殺 72892473 1 --手札抹殺
73628505 1 --テラ・フォーミング 73628505 1 --テラ・フォーミング
01984618 1 --天底の使徒
13035077 1 --ドラゴニックD 13035077 1 --ドラゴニックD
18144506 1 --ハーピィの羽根帚 18144506 1 --ハーピィの羽根帚
75500286 1 --封印の黄金櫃 75500286 1 --封印の黄金櫃
...@@ -155,24 +157,25 @@ ...@@ -155,24 +157,25 @@
73468603 1 --盆回し 73468603 1 --盆回し
93600443 1 --マスク・チェンジ・セカンド 93600443 1 --マスク・チェンジ・セカンド
65681983 1 --抹殺の指名者 65681983 1 --抹殺の指名者
46448938 1 --魔導書の神判
71832012 1 --六世壊=パライゾス 71832012 1 --六世壊=パライゾス
36637374 1 --烙印開幕 36637374 1 --烙印開幕
44362883 1 --烙印融合 44362883 1 --烙印融合
27970830 1 --六武の門 27970830 1 --六武の門
02295440 1 --ワン・フォー・ワン 02295440 1 --ワン・フォー・ワン
82732705 1 --スキルドレイン
35316708 1 --刻の封印 35316708 1 --刻の封印
21076084 1 --トリックスター・リンカーネイション 21076084 1 --トリックスター・リンカーネイション
23002292 1 --レッド・リブート 23002292 1 --レッド・リブート
#semi limit #semi limit
30741503 2 --オルフェゴール・ガラテア 25862681 2 --エンシェント・フェアリー・ドラゴン
09126351 2 --鬼ガエル 26889158 2 --転生炎獣ガゼル
63288573 2 --閃刀姫-カガリ 74997493 2 --鎖龍蛇-スカルデット
37961969 2 --ティアラメンツ・ハゥフニス
91800273 2 --ディメンション・アトラクター 91800273 2 --ディメンション・アトラクター
09411399 2 --D-HERO ディアボリックガイ 09411399 2 --D-HERO ディアボリックガイ
18326736 2 --星守の騎士 プトレマイオス
87209160 2 --鉄獣戦線 フラクトール 87209160 2 --鉄獣戦線 フラクトール
03078576 2 --八汰烏 09047460 2 --BF-隠れ蓑のスチーム
83107873 2 --雷鳥龍-サンダー・ドラゴン
03285551 2 --アラメシアの儀 03285551 2 --アラメシアの儀
66957584 2 --インフェルニティガン 66957584 2 --インフェルニティガン
57103969 2 --炎舞-「天璣」 57103969 2 --炎舞-「天璣」
...@@ -183,11 +186,13 @@ ...@@ -183,11 +186,13 @@
12580477 2 --サンダー・ボルト 12580477 2 --サンダー・ボルト
63166095 2 --閃刀起動-エンゲージ 63166095 2 --閃刀起動-エンゲージ
48130397 2 --超融合 48130397 2 --超融合
01984618 2 --天底の使徒
11110587 2 --隣の芝刈り 11110587 2 --隣の芝刈り
35371948 2 --トリックスター・ライトステージ 35371948 2 --トリックスター・ライトステージ
31434645 2 --呪われしエルドランド
24224830 2 --墓穴の指名者 24224830 2 --墓穴の指名者
46448938 2 --魔導書の神判
14532163 2 --ライトニング・ストーム 14532163 2 --ライトニング・ストーム
92107604 2 --神碑の泉
!2023.2 TCG !2023.2 TCG
#forbidden #forbidden
...@@ -381,6 +386,196 @@ ...@@ -381,6 +386,196 @@
08491961 2 --Lyrilusc - Recital Starling 08491961 2 --Lyrilusc - Recital Starling
35261759 2 --Pot of Desires 35261759 2 --Pot of Desires
!2023.1
#forbidden
91869203 0 --アマゾネスの射手
20663556 0 --イレカエル
44910027 0 --ヴィクトリー・ドラゴン
51858306 0 --エクリプス・ワイバーン
53804307 0 --焔征竜-ブラスター
07563579 0 --Emヒグルミ
17330916 0 --EMモンキーボード
34945480 0 --外神アザトート
90411554 0 --巌征竜-レドックス
08903700 0 --儀式魔人リリーサー
11384280 0 --キャノン・ソルジャー
17412721 0 --旧神ノーデン
50588353 0 --水晶機巧-ハリファイバー
67441435 0 --グローアップ・バルブ
34124316 0 --サイバーポッド
02563463 0 --流離のグリフォンライダー
88071625 0 --The tyrant NEPTUNE
61665245 0 --サモン・ソーサレス
52653092 0 --SNo.0 ホープ・ゼアル
48905153 0 --十二獣ドランシア
85115440 0 --十二獣ブルホーン
59537380 0 --守護竜アガーペイン
86148577 0 --守護竜エルピィ
88581108 0 --真竜皇V.F.D.
21377582 0 --真竜剣皇マスターP
94677445 0 --星杯の神子イヴ
16923472 0 --ゼンマイハンター
15341821 0 --ダンディライオン
37818794 0 --超魔導竜騎士-ドラグーン・オブ・レッドアイズ
92731385 0 --ティアラメンツ・キトカロス
79875176 0 --トゥーン・キャノン・ソルジャー
75732622 0 --トーチ・ゴーレム
22593417 0 --トポロジック・ガンブラー・ドラゴン
39064822 0 --トロイメア・ゴブリン
03679218 0 --トロイメア・マーメイド
54719828 0 --No.16 色の支配者ショック・ルーラー
58820923 0 --No.95 ギャラクシーアイズ・ダークマター・ドラゴン
26400609 0 --瀑征竜-タイダル
71525232 0 --破滅竜ガンドラX
78706415 0 --ファイバーポッド
93369354 0 --フィッシュボーグ-ガンナー
23558733 0 --フェニキシアン・クラスター・アマリリス
09929398 0 --BF-朧影のゴウフウ
70369116 0 --捕食植物ヴェルテ・アナコンダ
31178212 0 --マジェスペクター・ユニコーン
63101919 0 --マジックテンペスター
34206604 0 --魔導サイエンティスト
04423206 0 --M.X-セイバー インヴォーカー
14702066 0 --メガキャノン・ソルジャー
96782886 0 --メンタルマスター
90809975 0 --餅カエル
83152482 0 --ユニオン・キャリアー
34086406 0 --ラヴァルバル・チェイン
85243784 0 --リンクロス
73356503 0 --烈風の結界像
57421866 0 --レベル・スティーラー
41482598 0 --悪夢の蜃気楼
44763025 0 --いたずら好きな双子悪魔
17375316 0 --押収
19613556 0 --大嵐
74191942 0 --苦渋の選択
42829885 0 --強引な番兵
45986603 0 --強奪
55144522 0 --強欲な壺
23557835 0 --次元融合
31423101 0 --神剣-フェニックスブレード
57953380 0 --生還の宝札
54447022 0 --ソウル・チャージ
60682203 0 --大寒波
69243953 0 --蝶の短剣-エルマ
79571449 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 --イーバ
25862681 1 --エンシェント・フェアリー・ドラゴン
32909498 1 --クシャトリラ・フェンリル
68304193 1 --クシャトリラ・ユニコーン
12289247 1 --クロノグラフ・マジシャン
62320425 1 --古衛兵アギド
38814750 1 --PSYフレームギア・γ
74586817 1 --PSYフレームロード・Ω
26889158 1 --転生炎獣ガゼル
74997493 1 --鎖龍蛇-スカルデット
69811710 1 --宵星の騎士ギルス
78872731 1 --十二獣モルモラット
06602300 1 --重爆撃禽 ボム・フェネクス
28985331 1 --終末の騎士
63542003 1 --宿神像ケルドウ
78080961 1 --SPYRAL-ジーニアス
81275020 1 --SRベイゴマックス
13533678 1 --スプライト・ジェット
82385847 1 --ダイナレスラー・パンクラトプス
15291624 1 --超雷龍-サンダー・ドラゴン
00572850 1 --ティアラメンツ・シェイレーン
73956664 1 --ティアラメンツ・レイノハート
90953320 1 --TG ハイパー・ライブラリアン
69015963 1 --デビル・フランケン
18326736 1 --星守の騎士 プトレマイオス
90448279 1 --天霆號アーゼウス
17266660 1 --朱光の宣告者
69610326 1 --覇王眷竜ダークヴルム
33854624 1 --深淵の獣マグナムート
33396948 1 --封印されしエクゾディア
44519536 1 --封印されし者の左足
07902349 1 --封印されし者の左腕
08124921 1 --封印されし者の右足
70903634 1 --封印されし者の右腕
09047460 1 --BF-隠れ蓑のスチーム
25725326 1 --プランキッズ・ミュー
35272499 1 --捕食植物オフリス・スコーピオ
24094258 1 --ヘビーメタルフォーゼ・エレクトラム
33508719 1 --メタモルポット
83107873 1 --雷鳥龍-サンダー・ドラゴン
89399912 1 --嵐征竜-テンペスト
92746535 1 --竜剣士ラスターP
77103950 1 --壱世壊=ペルレイノ
33782437 1 --一時休戦
01845204 1 --簡易融合
81439173 1 --おろかな埋葬
23701465 1 --原初の種
04031928 1 --心変わり
83764718 1 --死者蘇生
46060017 1 --十二獣の会局
15443125 1 --スプライト・スターター
52340444 1 --閃刀機-ホーネットビット
32807846 1 --増援
72892473 1 --手札抹殺
73628505 1 --テラ・フォーミング
01984618 1 --天底の使徒
13035077 1 --ドラゴニックD
18144506 1 --ハーピィの羽根帚
75500286 1 --封印の黄金櫃
52947044 1 --フュージョン・デステニー
07394770 1 --ブリリアント・フュージョン
28126717 1 --ふわんだりぃずと謎の地図
73468603 1 --盆回し
93600443 1 --マスク・チェンジ・セカンド
65681983 1 --抹殺の指名者
46448938 1 --魔導書の神判
71832012 1 --六世壊=パライゾス
36637374 1 --烙印開幕
44362883 1 --烙印融合
27970830 1 --六武の門
02295440 1 --ワン・フォー・ワン
35316708 1 --刻の封印
21076084 1 --トリックスター・リンカーネイション
23002292 1 --レッド・リブート
#semi limit
30741503 2 --オルフェゴール・ガラテア
09126351 2 --鬼ガエル
63288573 2 --閃刀姫-カガリ
37961969 2 --ティアラメンツ・ハゥフニス
91800273 2 --ディメンション・アトラクター
09411399 2 --D-HERO ディアボリックガイ
87209160 2 --鉄獣戦線 フラクトール
03078576 2 --八汰烏
03285551 2 --アラメシアの儀
66957584 2 --インフェルニティガン
57103969 2 --炎舞-「天璣」
35726888 2 --おろかな副葬
67723438 2 --緊急テレポート
84211599 2 --金満で謙虚な壺
35261759 2 --強欲で貪欲な壺
12580477 2 --サンダー・ボルト
63166095 2 --閃刀起動-エンゲージ
48130397 2 --超融合
11110587 2 --隣の芝刈り
35371948 2 --トリックスター・ライトステージ
31434645 2 --呪われしエルドランド
24224830 2 --墓穴の指名者
14532163 2 --ライトニング・ストーム
!2022.10 !2022.10
#forbidden #forbidden
91869203 0 --アマゾネスの射手 91869203 0 --アマゾネスの射手
......
Subproject commit 6132d084fb053799e7cf4ba4805bc9fba63562fc Subproject commit 0df2566f9356e7b79392bf72edbf1a75fa3a1ac1
1 ICON "ygopro.ico" 1 ICON "ygopro.ico"
1 VERSIONINFO 1 VERSIONINFO
FILEVERSION 1, 0, 35, 4 FILEVERSION 1, 0, 36, 0
PRODUCTVERSION 1, 0, 35, 4 PRODUCTVERSION 1, 0, 36, 0
FILEOS 0x4 FILEOS 0x4
FILETYPE 0x1 FILETYPE 0x1
...@@ -13,7 +13,7 @@ BLOCK "080404b0" ...@@ -13,7 +13,7 @@ BLOCK "080404b0"
BEGIN BEGIN
VALUE "FileDescription", "YGOPRO Server Mode ver.Koishi" VALUE "FileDescription", "YGOPRO Server Mode ver.Koishi"
VALUE "InternalName", "YGOPRO Server Mode" VALUE "InternalName", "YGOPRO Server Mode"
VALUE "LegalCopyright", "Copyright (C) 2022 Nanahira" VALUE "LegalCopyright", "Copyright (C) 2023 Nanahira"
VALUE "OriginalFilename", "ygopro.exe" VALUE "OriginalFilename", "ygopro.exe"
VALUE "ProductName", "YGOPRO Server Mode" VALUE "ProductName", "YGOPRO Server Mode"
VALUE "FileVersion", "Server" VALUE "FileVersion", "Server"
......
Subproject commit d296d267914015581189fe3ba20fac562141f36d Subproject commit d5747ceb983d601d117a838139fe13b0ec502057
...@@ -181,6 +181,7 @@ ...@@ -181,6 +181,7 @@
!system 1042 创造神 !system 1042 创造神
!system 1043 幻龙 !system 1043 幻龙
!system 1044 电子界 !system 1044 电子界
!system 1045 幻想魔
!system 1050 怪兽 !system 1050 怪兽
!system 1051 魔法 !system 1051 魔法
!system 1052 陷阱 !system 1052 陷阱
...@@ -319,6 +320,7 @@ ...@@ -319,6 +320,7 @@
!system 1262 大师规则3 !system 1262 大师规则3
!system 1263 新大师规则 !system 1263 新大师规则
!system 1264 大师规则2020 !system 1264 大师规则2020
!system 1267 语言(重启后生效)
!system 1268 盖放怪兽前询问 !system 1268 盖放怪兽前询问
!system 1269 数字灵摆图片 !system 1269 数字灵摆图片
!system 1270 卡片信息 !system 1270 卡片信息
...@@ -340,7 +342,7 @@ ...@@ -340,7 +342,7 @@
!system 1286 特大 !system 1286 特大
!system 1287 只有连锁1也显示连锁动画 !system 1287 只有连锁1也显示连锁动画
!system 1288 禁限卡表 !system 1288 禁限卡表
!system 1289 语言(重启后生效) !system 1289 隐藏玩家昵称
!system 1290 忽略对方发言 !system 1290 忽略对方发言
!system 1291 忽略观战者发言 !system 1291 忽略观战者发言
!system 1292 忽略时点 !system 1292 忽略时点
...@@ -602,7 +604,7 @@ ...@@ -602,7 +604,7 @@
!counter 0x25 年代记指示物 !counter 0x25 年代记指示物
!counter 0x26 指示物(金属射手) !counter 0x26 指示物(金属射手)
!counter 0x27 指示物(死亡蚊) !counter 0x27 指示物(死亡蚊)
!counter 0x28 指示物(暗黑射手) !counter 0x28 指示物(暗黑射手)
!counter 0x29 指示物(气球蜥蜴) !counter 0x29 指示物(气球蜥蜴)
!counter 0x102a 指示物(魔法防护器) !counter 0x102a 指示物(魔法防护器)
!counter 0x2b 命运指示物 !counter 0x2b 命运指示物
...@@ -646,7 +648,7 @@ ...@@ -646,7 +648,7 @@
!counter 0x57 幻魔指示物 !counter 0x57 幻魔指示物
!counter 0x58 指示物(祢须三破鸣比) !counter 0x58 指示物(祢须三破鸣比)
!counter 0x59 落魂指示物 !counter 0x59 落魂指示物
!counter 0x5a 指示物(岩战之试炼) !counter 0x5a 指示物(战吼试炼)
!counter 0x5b 指示物(北极天熊北斗星) !counter 0x5b 指示物(北极天熊北斗星)
!counter 0x105c 燃烧指示物 !counter 0x105c 燃烧指示物
!counter 0x5d 指示物(机巧传-神使记纪图) !counter 0x5d 指示物(机巧传-神使记纪图)
...@@ -698,7 +700,7 @@ ...@@ -698,7 +700,7 @@
!setname 0x16 机人 ロイド !setname 0x16 机人 ロイド
!setname 0x1016 交通机人 ビークロイド !setname 0x1016 交通机人 ビークロイド
!setname 0x2016 疾行机人 スピードロイド !setname 0x2016 疾行机人 スピードロイド
#!setname 0x17 同调 シンクロ !setname 0x17 同调 シンクロ
!setname 0x1017 同调士 シンクロン !setname 0x1017 同调士 シンクロン
!setname 0x2017 同调龙 シンクロ・ドラゴン !setname 0x2017 同调龙 シンクロ・ドラゴン
!setname 0x18 云魔物 雲魔物 !setname 0x18 云魔物 雲魔物
...@@ -711,7 +713,8 @@ ...@@ -711,7 +713,8 @@
!setname 0x1e 茧状体 C(コクーン) !setname 0x1e 茧状体 C(コクーン)
!setname 0x1f 新空间侠 N(ネオスペーシアン) !setname 0x1f 新空间侠 N(ネオスペーシアン)
!setname 0x20 紫炎 紫炎 !setname 0x20 紫炎 紫炎
!setname 0x21 地缚神 地縛神 !setname 0x21 地缚 地縛
!setname 0x1021 地缚神 地縛神
!setname 0x22 朱罗纪 ジュラック !setname 0x22 朱罗纪 ジュラック
!setname 0x23Sin !setname 0x23Sin
!setname 0x24 废铁 スクラップ !setname 0x24 废铁 スクラップ
...@@ -779,6 +782,7 @@ ...@@ -779,6 +782,7 @@
!setname 0x1050 凶饿毒|蛇毒 スターヴ・ヴェノム !setname 0x1050 凶饿毒|蛇毒 スターヴ・ヴェノム
!setname 0x51 零件 ガジェット !setname 0x51 零件 ガジェット
!setname 0x52 守护者 ガーディアン !setname 0x52 守护者 ガーディアン
!setname 0x1052 门之守护神|守护者 Gate Guardian
!setname 0x53 星圣 セイクリッド !setname 0x53 星圣 セイクリッド
!setname 0x54 我我我 ガガガ !setname 0x54 我我我 ガガガ
!setname 0x55 光子 フォトン !setname 0x55 光子 フォトン
...@@ -830,6 +834,7 @@ ...@@ -830,6 +834,7 @@
!setname 0x107a 圣骑士 聖騎士(せいきし) !setname 0x107a 圣骑士 聖騎士(せいきし)
!setname 0x207a 圣剑 聖剣(せいけん) !setname 0x207a 圣剑 聖剣(せいけん)
!setname 0x507a 焰圣骑士 焔聖騎士 !setname 0x507a 焰圣骑士 焔聖騎士
!setname 0x607a 焰圣剑 焔聖剣
!setname 0x7b 银河 ギャラクシー !setname 0x7b 银河 ギャラクシー
!setname 0x107b 银河眼 ギャラクシーアイズ !setname 0x107b 银河眼 ギャラクシーアイズ
!setname 0x307b 银河眼时空龙 ギャラクシーアイズ・タキオン・ドラゴン !setname 0x307b 银河眼时空龙 ギャラクシーアイズ・タキオン・ドラゴン
...@@ -848,7 +853,9 @@ ...@@ -848,7 +853,9 @@
!setname 0x82 怒怒怒 ドドド !setname 0x82 怒怒怒 ドドド
!setname 0x83 人偶 パペット !setname 0x83 人偶 パペット
!setname 0x1083 机关傀儡 ギミック・パペット !setname 0x1083 机关傀儡 ギミック・パペット
!setname 0x84 燃烧拳击手 BK(バーニングナックラー) #setname 0x84 燃烧拳 バーニングナック
!setname 0x1084 燃烧拳击手 BK(バーニングナックラー)
!setname 0x2084 燃烧拳 バーニングナックル
!setname 0x85 超级防卫机器人 SDロボ !setname 0x85 超级防卫机器人 SDロボ
!setname 0x86 光天使 !setname 0x86 光天使
!setname 0x87 阴影 アンブラル !setname 0x87 阴影 アンブラル
...@@ -1177,3 +1184,11 @@ ...@@ -1177,3 +1184,11 @@
!setname 0x18f 防火 ファイアウォール !setname 0x18f 防火 ファイアウォール
!setname 0x190 末那愚子族 マナドゥム !setname 0x190 末那愚子族 マナドゥム
!setname 0x191 妮穆蕾莉娅 ネムレリア !setname 0x191 妮穆蕾莉娅 ネムレリア
!setname 0x192 黄金荣耀 Gold Pride
!setname 0x193 迷宫壁 Labyrinth Wall
!setname 0x194 至爱 フェイバリット
!setname 0x195 征服斗魂 VS(ヴァンキッシュ・ソウル)
!setname 0x196 新式魔厨 ヌーベルズ
!setname 0x197 食谱 レシピ
!setname 0x198 维萨斯 ヴィサス
!setname 0x199 反击 カウンター
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