文章作者:雪舞
问题提交:茴香空空
编写时间:2024-11-27
问题描述
在使用 Tab 键呼出地图时,自动寻路框并未一同显示,必须单独按 `Alt + `` 才能打开自动寻路。希望在打开小地图时,自动启用自动寻路功能;在关闭小地图时,自动关闭自动寻路。
打开小地图的方法::
- 键盘按
tab 按键。
- 点击小地图边上的
地区地图 tab 按钮。
- 先点击 "世界地图" ,再点击 "切换至场景地图"。
解决思路与过程
参考武侠世界的老版本代码
通过分析武侠世界客户端的源代码,我们可以找到切换小地图的相关快捷键事件。以下是从源代码中提取的相关部分:
case KC_TAB:
{
if( s_pInputSystem->IsKeyDown( KC_LMENU ) )
break;
std::vector< STRING > vParam;
vParam.push_back( CWorldManager::GetMe()->GetActiveScene()->GetSceneDefine()->szSceneMap );
vParam.push_back( "2" ); // 参数 "2" 用于触发场景地图切换
vParam.push_back( "tab" ); // 事件标识
CEventSystem::GetMe()->PushEvent(GE_TOGLE_SCENEMAP, vParam ); // 触发切换场景地图事件
CEventSystem::GetMe()->PushEvent(GE_TOGLE_CLOSELARGEMAP); // 关闭大地图
CGameProcedure::m_bNeedFreshMinimap = true;
CGameProcedure::m_bWaitNeedFreshMinimap = true;
}
break;
在这段代码中,KC_TAB 对应 Tab 键的事件处理。当按下 Tab 键时,系统触发 GE_TOGLE_SCENEMAP 事件来切换场景地图。
代码详细解析:
剩余 69% 内容需要支付 88.00
金币 后可完整阅读
支持付费阅读,激励作者创作更好的作品。
|