Commit d45cd44c authored by fallenstardust's avatar fallenstardust

修改局域网建主时禁卡表根据是否启用genesys模式检查不同的lflist组

parent 147378be
......@@ -263,7 +263,7 @@ void DuelClient::ClientEvent(bufferevent* bev, short events, void* ctx) {
cscg.info.start_lp = std::wcstol(mainGame->ebStartLP->getText(), nullptr, 10);
cscg.info.draw_count = std::wcstol(mainGame->ebDrawCount->getText(), nullptr, 10);
cscg.info.time_limit = std::wcstol(mainGame->ebTimeLimit->getText(), nullptr, 10);
cscg.info.lflist = mainGame->cbHostLFlist->getItemData(mainGame->cbHostLFlist->getSelected());
cscg.info.lflist = mainGame->gameConf.enable_genesys_mode == 1 ? mainGame->cbHostGenesysLFlist->getItemData(mainGame->cbHostGenesysLFlist->getSelected()) : mainGame->cbHostLFlist->getItemData(mainGame->cbHostLFlist->getSelected());
cscg.info.duel_rule = mainGame->cbDuelRule->getSelected() + 1;
cscg.info.no_check_deck = mainGame->chkNoCheckDeck->isChecked();
cscg.info.no_shuffle_deck = mainGame->chkNoShuffleDeck->isChecked();
......
......@@ -459,7 +459,7 @@ bool Game::Initialize(ANDROID_APP app, irr::android::InitOptions *options) {
ChangeToIGUIImageWindow(wCreateHost, &bgCreateHost, imageManager.tWindow);
env->addStaticText(dataManager.GetSysString(1226)/*禁限卡表:*/, Resize(20, 30, 90, 65), false, false, wCreateHost);
// 局域网建主的禁卡表选择combobox
cbHostLFlist = irr::gui::CAndroidGUIComboBox::addAndroidComboBox(env, Resize(110, 25, 180, 65), wCreateHost);
cbHostLFlist = irr::gui::CAndroidGUIComboBox::addAndroidComboBox(env, Resize(110, 25, 260, 65), wCreateHost);
for(unsigned int i = 0; i < deckManager._lfList.size(); ++i) {
cbHostLFlist->addItem(deckManager._lfList[i].listName.c_str(), deckManager._lfList[i].hash);
if(!wcscmp(deckManager._lfList[i].listName.c_str(), gameConf.last_limit_list_name)) {//找到名称相同时找到对应的index值作为默认值
......@@ -469,7 +469,7 @@ bool Game::Initialize(ANDROID_APP app, irr::android::InitOptions *options) {
cbHostLFlist->setVisible(!gameConf.enable_genesys_mode);
cbHostLFlist->setSelected(gameConf.use_lflist ? gameConf.default_lflist : cbHostLFlist->getItemCount() - 1);// 设置默认选中的禁限卡表
// 局域网建主的genesys禁卡表选择combobox
cbHostGenesysLFlist = irr::gui::CAndroidGUIComboBox::addAndroidComboBox(env, Resize(110, 25, 180, 65), wCreateHost);
cbHostGenesysLFlist = irr::gui::CAndroidGUIComboBox::addAndroidComboBox(env, Resize(110, 25, 260, 65), wCreateHost);
for(unsigned int i = 0; i < deckManager._genesys_lfList.size(); ++i) {
cbHostGenesysLFlist->addItem(deckManager._genesys_lfList[i].listName.c_str(), deckManager._genesys_lfList[i].hash);
if(!wcscmp(deckManager._genesys_lfList[i].listName.c_str(), gameConf.last_genesys_limit_list_name)) {//找到名称相同时找到对应的index值作为默认值
......
......@@ -3,6 +3,7 @@
#include "single_duel.h"
#include "tag_duel.h"
#include "deck_manager.h"
#include "game.h"
#include <thread>
namespace ygo {
......@@ -491,6 +492,22 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
// 查找合法的禁限卡表哈希值,如果找不到则默认使用第一个可用项
bool found = false;
if (mainGame->gameConf.enable_genesys_mode == 1) {
// 使用genesys模式时验证genesys禁卡表
for (const auto& genesys_lflist : deckManager._genesys_lfList) {
if(pkt->info.lflist == genesys_lflist.hash) {
found = true;
break;
}
}
if (!found) {
if (deckManager._genesys_lfList.size())
pkt->info.lflist = deckManager._genesys_lfList[0].hash;
else
pkt->info.lflist = 0;
}
} else {
// 使用标准模式时验证标准禁卡表
for (const auto& lflist : deckManager._lfList) {
if(pkt->info.lflist == lflist.hash) {
found = true;
......@@ -502,6 +519,7 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
pkt->info.lflist = deckManager._lfList[0].hash;
else
pkt->info.lflist = 0;
}
}
// 根据游戏模式创建相应的决斗实例
......
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