当前位置:首页 > 游戏资讯 > 游戏攻略 > 魔兽世界蓝条卡顿怎么办 魔兽世界蓝条卡顿解决方法

魔兽世界蓝条卡顿怎么办 魔兽世界蓝条卡顿解决方法

2024-11-25 13:08:01玩吧吧

魔兽世界在近期更新后很多小伙伴们会出现蓝条卡顿的问题,这个卡顿其实是因为暴雪源码中的事件处理逻辑出现问题导致的,需要关闭公会新闻来解决,详细操作步骤请看正文。

魔兽世界蓝条卡顿怎么办 魔兽世界蓝条卡顿解决方法

魔兽世界蓝条卡顿解决方法如下:

众所周知的原因,不知道什么时候开始每次过蓝条之后都会卡好一会,这个卡顿需要关闭公会新闻来解决。

NGA的用户@老李三鹿李发现这是由于暴雪源码中的事件处理逻辑导致的,并给出了解决方案。

问题根源:

每次玩家过图时,公会界面都会调用QueryGuildNews()函数;

重新查询所有公会新闻,触发一连串的“GUILD_NEWS_UPDATE”事件。

魔兽世界蓝条卡顿怎么办 魔兽世界蓝条卡顿解决方法

事件触发分析:

事件触发次数与公会新闻量成正比,新闻量越大,触发次数越多。

测试显示,小型公会触发7次,大型公会触发2486次,每次过图额外触发800-2000次不等。

过图前:

魔兽世界蓝条卡顿怎么办 魔兽世界蓝条卡顿解决方法

过图后:

魔兽世界蓝条卡顿怎么办 魔兽世界蓝条卡顿解决方法

卡顿原因:

每次事件都会执行公会新闻更新,拉取所有数据并更新新闻列表,这是卡顿的主要来源。

魔兽世界蓝条卡顿怎么办 魔兽世界蓝条卡顿解决方法

在这里会拉取所有数据,然后更新新闻列表,这个self.ScrollBox:SetDataProvider(dataProvider);

会清除滚动列表 然后一条条重新添加,这个就是卡顿的主要来源了。

数据量估算:

以某公会为例,公会新闻里面一共有7400多条数据。

每次过图时,游戏会重复向公会新闻框体添加约600-1400万次数据。

魔兽世界蓝条卡顿怎么办 魔兽世界蓝条卡顿解决方法

解决方案:

@老李三鹿李编写了一段代码,替换原有公会新闻框体的事件处理器,限制最多处理一次公会新闻更新,多触发的更新会被延迟到1秒后一次性执行。

请将代码复制并粘贴到您的任意lua文件中。

代码实现:

local BLZCommunitiesGuildNewsFrame_OnEvent = CommunitiesGuildNewsFrame_OnEventlocal newsRequireUpdate, newsTimer

CommunitiesFrameGuildDetailsFrameNews:SetScript("OnEvent", function(frame, event)

if event == "GUILD_NEWS_UPDATE" then

if newsTimer then

newsRequireUpdate = true

else

BLZCommunitiesGuildNewsFrame_OnEvent(frame, event)

-- 1秒后, 如果还需要更新公会新闻, 再次更新

newsTimer = C_Timer.NewTimer(1, function()

if newsRequireUpdate then

BLZCommunitiesGuildNewsFrame_OnEvent(frame, event)

end

newsTimer = nil

end)

end

else

BLZCommunitiesGuildNewsFrame_OnEvent(frame, event)

end

end)

通过上述修改,玩家可以更加流畅地浏览公会新闻,同时减少了因频繁更新造成的资源浪费。

以上就是笔者整理的魔兽世界蓝条卡顿的相关内容了,更多游戏攻略请关注玩吧吧游戏网。

关文章

  • 攻略
  • 荒野大镖客2怎么钓鱼 钓鱼操作技巧分享
    荒野大镖客2怎么钓鱼 钓鱼操作技巧分享

    荒野大镖客2钓鱼操作技巧分享:钓鱼需要等鱼上钩,然后收回鱼线,按住右键然后点按左键甩出鱼线,有鱼在附近就用左键拉杆吸引鱼,等右下角勾住鱼常亮,再按左键钩住鱼,钩住鱼后按住shift,点按空格,鼠标往反方向拉,控制距离,水面平静后连续按R收回鱼线,就能钓到鱼了。

  • 泰拉瑞亚药水合成表 最新全79种药水配方大全
    泰拉瑞亚药水合成表 最新全79种药水配方大全

    泰拉瑞亚于2011年5月发布,是由Re-Logic公司开发的一款高自由度的沙盒游戏,在游戏中共有79种药水,其中治疗类有9种、魔力类有4种、恢复类有3种、强化类有12种、药剂增益有6种、攻击增益有8种、防御增益有5种、移动增益有7种、探索增益有6种、钓鱼增益有3种、其他种类药水有16种,详细内容请查看正文。

  • 荒野大镖客2生存大师1怎么过 生存大师挑战1快速完成攻略
    荒野大镖客2生存大师1怎么过 生存大师挑战1快速完成攻略

    荒野大镖客2生存大师挑战1快速完成攻略:需要钓三只蓝鳃太阳鱼,去蓝鳃太阳鱼的刷新点钓就行,第二章跟杰克一起钓鱼的位置就有,用奶酪诱饵就可以轻松钓到三只。

  • 荒野大镖客2生存大师2怎么过 生存大师挑战2快速完成攻略
    荒野大镖客2生存大师2怎么过 生存大师挑战2快速完成攻略

    荒野大镖客2生存大师挑战2快速完成攻略:需要给营地或者捕兽人带五只动物,没有特定的要求,比较方便省事的办法就是钓五条鱼然后去提交就能完成。

  • 荒野大镖客2生存大师3怎么过 生存大师挑战3快速完成攻略
    荒野大镖客2生存大师3怎么过 生存大师挑战3快速完成攻略

    荒野大镖客2生存大师挑战3快速完成攻略:需要用捕猎步枪杀五只动物,晚上去翡翠牧场打鸡可以一次性过,要注意一定得是晚上,不然牧场工人可能会报警,很轻松的一个挑战。

  • 荒野大镖客2生存大师4怎么过 生存大师挑战4配方攻略
    荒野大镖客2生存大师4怎么过 生存大师挑战4配方攻略

    荒野大镖客2生存大师挑战4配方攻略:需要制作炸裂箭、火焰箭、改良箭、毒箭、小型猎物箭各一只,需要先获得配方然后制作,小型猎物箭配方:1箭+1霰弹枪霰弹+1飞羽,改良箭配方:1箭+1飞羽,火焰箭配方:1箭+1动物脂肪+1飞羽,淬毒箭配方:1箭+1夹竹桃鼠尾草+1飞羽,炸裂箭配方:1箭+1炸药+1飞羽。

近期热点

  • 荒野大镖客2怎么钓鱼 钓鱼操作技巧分享
    荒野大镖客2怎么钓鱼 钓鱼操作技巧分享

    荒野大镖客2钓鱼操作技巧分享:钓鱼需要等鱼上钩,然后收回鱼线,按住右键然后点按左键甩出鱼线,有鱼在附近就用左键拉杆吸引鱼,等右下角勾住鱼常亮,再按左键钩住鱼,钩住鱼后按住shift,点按空格,鼠标往反方向拉,控制距离,水面平静后连续按R收回鱼线,就能钓到鱼了。

  • 泰拉瑞亚药水合成表 最新全79种药水配方大全
    泰拉瑞亚药水合成表 最新全79种药水配方大全

    泰拉瑞亚于2011年5月发布,是由Re-Logic公司开发的一款高自由度的沙盒游戏,在游戏中共有79种药水,其中治疗类有9种、魔力类有4种、恢复类有3种、强化类有12种、药剂增益有6种、攻击增益有8种、防御增益有5种、移动增益有7种、探索增益有6种、钓鱼增益有3种、其他种类药水有16种,详细内容请查看正文。

精品推荐