WOW战场报新场宏实现(以及该插件实现研究)
不用插件的只用一个宏:/run空格JoinBattlefield(0)打开战场npc ,然后等喊排时点这个宏排队,这样排队的战场列表不会消失,等出场时,如果列表里没有你出的场就是新场.有的话就是老场了
/**************************************************************************************************8888*/
【插件说明】
战场国家队插件BattleInfo主要功能是报新场,最适合奥山团排,其他战场配合dbm能达到所有战场插件的效果。
/bi 或 /battleinfo 来设置比分栏的命令:
/bi center 设置到屏幕中央
/bi top 设置到默认位置
7月20日更新:
1、增加了按键邦定功能,设置可以在 ESC菜单 绑定按键中找到;
2、bug修正
-- 如果用户加载了QuestRepeat Bi的自动交牌子功能会自惭形秽的关闭
-- 取消了打开排队窗口时 ctrl 排队
-- 修成了一个不常见的Titan兼容问题
-- 修正了好久好久以前遗留的不常见
7月11日更新:
修正回车不能加入bug
7月11日更新:
v1.41 svn r48
根据 单翼天使 的反馈 修改了收回快捷窗的方式
快捷窗消失原因打字了
现在删除了打字关闭对 话框的功能
按">"后变成 1.40 的工作方式
v1.41 svn r47
根据Juha的建议
修改的快速排队的出现方式
现在大家可以通过">"来调用快速排队界面
快速排队界面默认关闭再也不会影响到打字了
另外ctrl+npc那句话也改为白色方便阅读
7月5日更新:
修正了按回车键不影响正常聊天;
6月29日更新:
1 与SSPVP兼容
现在同时使用BI和SSPVP也可以看到新旧场次了
sspvp和bi有些交集功能 关闭注意关闭两个
2 快速排队界面调整
快速排队界面作了调整 有了小队快速加入功能
3 奥山开战前有了比分栏
这个市Blz bug 我代为修正 现在奥山战斗不开始也能看到比分栏使人数一目了然
4 新旧场提示调整
增加一个可能的提示
由于网络延迟 有些人提示新 有喜人提示旧 最后导致坑的出现
现在对于刚刚变成旧场的场次 有了一个新的称号 可能
5月19日更新:
1、增加一个离场时候的计算功能。计算你进入战场到战斗结束的时间;你在在场中一共获得多少荣誉;这将帮助你更好选择队伍;
2、增加一个屏蔽战斗结束时候离队信息的功能。默认是关闭的,/bi 开启之后,战斗结束后就不会有烦人的XX离开团队了;
3、倒计时被移动到按钮上防止刷屏;
5月17日更新:
纠正一个打开关闭地图时候引起新旧重复的bug
5月13日更新:
1 添加 输出到当前聊天 解决 密语 和 各种怪异频道的要求
2 添加 输出到输入框 使灵活性更大 方便复制粘贴
4月19日更新:
1 增加了一个图形设置界面 移除了陈旧的命令行设置方式
2 自动离开战场增加了一个开关
3 显示帮助信息增加了一个开关
4 修改比分栏重置方式以修正与Titan冲突问题 (看不见就/bi重置下 一般就能看见了)
5 所有的语言信息被重新制作以防止未知冲突
6 修正非战场时报告的问题
7 修正一个可能引发新旧场报告错误的bug
8 全新的定向报告方式可以方便的定位到各频道
9 解决部落用户无法使用自动交牌自功能
10 修正自己交牌子时候提示交牌子完成的bug
建议删除/addons下原来的battleinfo目录 再安装
原来的用户配置没有跟随升级 请/bi重新设置
繁体中文配置文件需要彻底更新
4月7日更新:
1 增加了一个自动化模块 这个模块包括
* CTRL+NPC自动排队
* 自动释放灵魂
* 战斗结束3秒自动退场
目前只有 自动释放灵魂设有开关 /bi norel
2 修正灵魂医者计时器字体过大问题
3 调整灵魂医者计时器
* 我发现灵魂医者 复活不是统一时间的 而且间断的周期 在奥山要比其他战场稍微长些
4月6日更新:
1 加入了一个灵魂医者复活计时 可以让你方便了知道什么时候释放尸体
2 代码重构 现在BattleInfo被按模块封装起来 任何人都可以通过简单的代码调用BattleInfo的功能 轻松完成2次开发
3 灵敏性再一次被提高 不会出现提示人数与实际人数不符了
4 本地化模块被分离出来 自带了一个不太完整的 繁体中文模块 这个模块是参考 nnjack512 制作的BI v0.44繁体中文版制作的
5 参考了gzkuru修改版BI添加了搜索新场功能
6 现在默认的提示会告诉你是不是国家队而不是一个服务器的名字
7 奥特兰克山谷现在也像其他战场一样提示是否是国家队了
4月3日更新:
1 新增 自动提交牌子功能 大家可以输入/bi x=? 来交牌子 当然用鼠标点开NPC还是不能避免的 但是工作量也大大减少
2 更新TOC 适应2.4
3 修正了一个引起场次可能不被报告的bug
v0.44 更新说明 2008-2-14
增加ctrl+进入战场不向团队发送新场。自己没有排到需要重排的时候,就不会向团队发送错误信息了
取消将比分牌移动到屏幕中间和玩家头像下方命令,改以ctrl+拖动改变比分牌位置。新的位置能够被保存。
解决本插件一直以来每次进入游戏,比分牌位置与头像重叠bug
解决非战场区域,比分牌与头像重叠bug
去除非战场区域,比分牌前面的“?”
将按着ctrl不发送信息改为按着ctrl键才向团队发送
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【作者专区】
作为国内最大和最早的中文魔兽世界插件网站之一,本站欢迎各位魔兽世界插件爱好者发布原创和汉化的优秀插件,并作为稳定的发布页面。插件发布Email:iqq800@gmail.com。所有经测试认证的发布插件都将在本站首页作者专区推荐下载!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【本站说明】
1.插件下载后解压缩到World of Warcraft 目录里Interface文件夹下 AddOns目录里。
2.如下载的插件包内有任何不明.EXE文件,请不要执行。应立即用新版杀毒软件查杀。
3.下载插件请到正规专题网站下载,以防资料被盗。本站所有插件均已通过安全性测试。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
『魔兽世界插件中文站团队』于江苏常州
/*******************************************************************************************/
## Interface: 20400
## Title: BattleInfo V 1.42
## Notes: 战场详情指示器 by T.G.(farmer1992@gmail.com)
## SavedVariablesPerCharacter: BattleInfoDB
localization/localization.lua
localization/enUS.lua
localization/zhCN.lua
localization/zhTW.lua
BattleInfo.xml
mod/common.lua
mod/server.lua
mod/newbattle.lua
mod/quest.lua
mod/auto.lua
mod/option.lua
mod/av.lua
mod/binding.lua
BattleInfo.lua
/********************************************************************************************/
local L=BATTLEINFO_LOACALE
local biS=BattleInfo_Server:New()
local biNF=BattleInfo_NewBattleFinder:New()
local biQ=BattleInfo_Quest:New()
local biA=BattleInfo_AutoExeC:New()
function BattleInfo_ReportTo(tostr)
if BattleInfo_InBattle() then
local tstr={strsplit("*", biS:Report())}
for i in pairs(tstr) do
SendChatMessage(tstr[i],tostr)
end
end
end
--国家队分析Hook的callbak
function BattleInfo_Update()
BattleInfo1Text:SetText("")
BattleInfo0Text:SetText("")
BattleInfoSHText:SetText("")
if AlwaysUpFrame1Text then
BattleInfo1:SetParent("AlwaysUpFrame1")
BattleInfo1:SetPoint("RIGHT", "AlwaysUpFrame1Text", "LEFT", -8, 0)
BattleInfo1:Show()
BattleInfoSH:SetParent("AlwaysUpFrame1")
BattleInfoSH:SetPoint("RIGHT", "AlwaysUpFrame1Text", "LEFT", -8, 20)
BattleInfoSH:Hide()
if BattleInfo_InBattle() then
BattleInfo1Text:SetText(biS.data[1].num)
BattleInfo1Text:SetTextColor(biS.data[1].color.r,biS.data[1].color.g,biS.data[1].color.b)
AlwaysUpFrame1.tooltip=biS.data[1]:GetTooltip()
x=biS:GetAreaSpiritHealerTime()
if x then
BattleInfoSHText:SetText(x)
BattleInfoSH:Show()
end
else
biS.timesh=nil
end
end
if AlwaysUpFrame2Text then
BattleInfo0:SetParent("AlwaysUpFrame2")
BattleInfo0:SetPoint("RIGHT", "AlwaysUpFrame2Text", "LEFT", -8, 0)
BattleInfo0:Show()
if BattleInfo_InBattle() then
BattleInfo0Text:SetText(biS.data[0].num)
BattleInfo0Text:SetTextColor(biS.data[0].color.r,biS.data[0].color.g,biS.data[0].color.b)
AlwaysUpFrame2.tooltip=biS.data[0]:GetTooltip()
end
end
end
local Keyin=""
function BattleInfo_OnKey(k)
if k=="ENTER" then
BattleInfo_QS()
--elseif k=="LCTRL" or k=="RCTRL" then
-- BattlefieldFrameJoinButton_OnClick()
elseif k==nil then
Keyin=""
elseif k=="BACKSPACE" or k=="NUMPADMINUS" then
Keyin=string.sub(Keyin,1,-2) or ""
elseif k=="NUMPADPLUS" then
Keyin=Keyin=="" and "0" or Keyin
BattleInfo_QS(CanJoinBattlefieldAsGroup() and IsPartyLeader())
elseif k=="DELETE" or k=="NUMPADDECIMAL" then
Keyin=""
elseif k=="ESCAPE" then
HideUIPanel(BattlefieldFrame)
else
local _,_,x,_ =strfind(k,".*(%d+)")
if x and string.len(Keyin)<3 then
Keyin=Keyin..x
else
end
end
BIQuickSortTip:SetOwner(BIQuickSort, "ANCHOR_RIGHT",-50);
BIQuickSortTip:AddLine(string.format(L.QUICKJOINTIP,Keyin))
BIQuickSortTip:Show()
end
function BattleInfo_QS(t)
if Keyin=="" then
return
elseif Keyin=="0" then
JoinBattlefield(0,t)
BattleInfo_Print(string.format(L.QUICKJOIN,L.QUICKJOIN_FIRST))
BattleInfo_OnKey()
return
else
for i=1, GetNumBattlefields() do
if Keyin == GetBattlefieldInstanceInfo(i) .."" then
JoinBattlefield(i,t)
BattleInfo_Print(string.format(L.QUICKJOIN,Keyin))
BattleInfo_OnKey()
return
end
end
end
BattleInfo_Print(string.format(L.QUICKJOIN_CANTFIND,Keyin))
BattleInfo_OnKey()
end
local QsShow=nil;
local keyupf=function() BattleInfo_OnKey(arg1) end
local eventf=function() BattleInfo_OnKey() end
function BattleInfo_QsShowHide(force,fv)
if force then
QsShow= fv
else
QsShow=not QsShow
end
if QsShow then
BIQuickSortShowHide:SetNormalTexture("Interface//Buttons//UI-SpellbookIcon-PrevPage-Up")
BIQuickSortShowHide:SetPushedTexture("Interface//Buttons//UI-SpellbookIcon-PrevPage-Down")
BIQuickSortShowHide:SetDisabledTexture("Interface//Buttons//UI-SpellbookIcon-PrevPage-Disabled")
BIQuickSort:SetScript("OnKeyUp",keyupf)
BIQuickSort:SetScript("OnEvent",eventf)
BattleInfo_OnKey()
else
BIQuickSortShowHide:SetNormalTexture("Interface//Buttons//UI-SpellbookIcon-NextPage-Up")
BIQuickSortShowHide:SetPushedTexture("Interface//Buttons//UI-SpellbookIcon-NextPage-Down")
BIQuickSortShowHide:SetDisabledTexture("Interface//Buttons//UI-SpellbookIcon-NextPage-Disabled")
BIQuickSort:SetScript("OnKeyUp",nil)
BIQuickSort:SetScript("OnEvent",nil)
BIQuickSortTip:Hide()
end
end
-- 参考 Talented
local function getChatWrite(tostr)
local edit = DEFAULT_CHAT_FRAME.editBox
local SendChatMessage = SendChatMessage
local type = edit:GetAttribute("chatType")
local lang = edit.language
if tostr~=nil then
return function (text, ...)
SendChatMessage(text, tostr, lang, channel)
end
end
if type == "WHISPER" then
local target = edit:GetAttribute("tellTarget")
return function (text, ...)
if text:find("%", 1, true) then text = text:format(...) end
SendChatMessage(text, type, lang, target)
end
elseif type == "CHANNEL" then
local channel = edit:GetAttribute("channelTarget")
return function (text, ...)
if text:find("%", 1, true) then text = text:format(...) end
SendChatMessage(text, type, lang, channel)
end
else
return function (text, ...)
if text:find("%", 1, true) then text = text:format(...) end
SendChatMessage(text, type, lang)
end
end
end
function BattleInfo_SCan()
local mapName= GetBattlefieldInfo()
local t={}
for i=1, GetNumBattlefields() do
instanceID = GetBattlefieldInstanceInfo(i)
table.insert(t,instanceID)
end
table.sort(t)
local write=getChatWrite("SAY")
if biNF.sayto==L.SELF then
BattleInfo_Print(string.format(L.HINT3,mapName))
BattleInfo_Print("|CFF00FF00"..biNF:FindNew(t).."|r")
BattleInfo_Print(L.HINT1,1)
elseif biNF.sayto==L.CHATBOX then
DEFAULT_CHAT_FRAME.editBox:SetText(DEFAULT_CHAT_FRAME.editBox:GetText()..biNF:FindNew(t))
DEFAULT_CHAT_FRAME.editBox:Show()
else
if biNF.sayto==L.YELL then
write=getChatWrite("YELL")
elseif biNF.sayto==L.RAID or biNF.sayto==L.PARTY then
if UnitInRaid("player") then
write=getChatWrite("RAID")
elseif UnitInParty("player") then
write=getChatWrite("PARTY")
else
BattleInfo_Print(L.HINT2,1)
end
elseif biNF.sayto==L.CURRENT then
write = getChatWrite()
end
write(string.format(L.HINT3,mapName))
write(biNF:FindNew(t))
end
end
function BattleInfo_Reset()
BattleInfoParent:ClearAllPoints()
BattleInfoParent:SetPoint("TOP", "UIParent", "TOP",-5,-15)
WorldStateAlwaysUpFrame:ClearAllPoints()
WorldStateAlwaysUpFrame:SetPoint("TOPLEFT","BattleInfoParent","TOPLEFT",0,0)
end
function BattleInfo_Command(msg)
local _,_,x,_ =strfind(msg,"x=(%d+)")
x=tonumber(x)
if x then
if x>=0 and x<=100 then
BattleInfo_Print(string.format(L.MARKINIT,x))
biQ.pMax=x
else
BattleInfo_Print(L.MARKERR)
end
elseif msg=="titan" then
BattleInfoDB.titanpatch=not BattleInfoDB.titanpatch
BattleInfo_Print("Moving patch is now "..(BattleInfoDB.titanpatch and "on" or "off").." Reload UI (/console reloadui)")
else
InterfaceOptionsFrame_OpenToFrame("BattleInfo")
end
end
local function BattleInfo_Apply()
biNF.selfsay=BattleInfoDB.selfsay
biNF.sayto=BattleInfoDB.sayto
biA.autorelease=BattleInfoDB.autorelease
biA.autoleave=BattleInfoDB.autoleave
biA.leavetime=BattleInfoDB.leavetime
biA.stat=BattleInfoDB.showstat
biA.igleft=BattleInfoDB.igleft
end
function BattleInfo_OnLoad()
biS:Hook(BattleInfo_Update)
biNF:Hook(BattleInfo_SCan)
if not IsAddOnLoaded("QuestRepeat") then
biQ:Hook()
end
biA:Hook()
BattleInfoDBDefault=
{
sayto=L.SELF,
leavetime=3,
}
BattleInfoDB=BattleInfoDB or {
showhelp=1,
selfsay=1,
autorelease=1,
autoleave=1,
showstat=1,
igleft=nil,
}
for i,v in pairs(BattleInfoDBDefault) do
BattleInfoDB[i]= BattleInfoDB[i] or v
end
BIOption:Hook(BattleInfo_Apply)
BattleInfo_Apply()
BattleInfo_QsShowHide(1)
SlashCmdList["BATTLEINFO"] = BattleInfo_Command;
SLASH_BATTLEINFO1 = "/BATTLEINFO";
SLASH_BATTLEINFO2 = "/BI";
--titan and other WorldStateAlwaysUpFrame moving ui patch
if BattleInfoDB.titanpatch then
hooksecurefunc(WorldStateAlwaysUpFrame,"SetPoint",function(...)
local _,_,l=...;
if l~="BattleInfoParent" then
WorldStateAlwaysUpFrame:SetPoint("TOPLEFT","BattleInfoParent","TOPLEFT",0,0)
end
end)
end
end
/*******************************************************************************************/
#下面是报WOW战场新场关键代码
/*******************************************************************************************/
local L=BATTLEINFO_LOACALE
local BINewBattle={}
function BINewBattle:New()
local x={}
x.OldBT={}
x.OldOldBT={}
x.OldTime=GetTime()
x.Clicking=0
self.__index = self
setmetatable(x, self)
return x
end
function BINewBattle:lastNew(id)
if #(self.OldOldBT)==0 or GetTime()-self.OldTime>60 then
return nil
end
for i in pairs(self.OldOldBT) do
if self.OldOldBT[i]..""==id then
return nil
end
end
return 1
end
function BINewBattle:IsNew(id)
if self.Clicking==0 then
return nil
end
for i in pairs(self.OldBT) do
if self.OldBT[i]..""==id then
if self:lastNew(id) then
return L.PERHAPS
else
return L.OLD
end
end
end
return L.NEW
end
function BINewBattle:BeforeJoin()
self.Clicking=1
self.OldOldBT=self.OldBT
self.OldTime=GetTime()
self.OldBT={}
for i=1, GetNumBattlefields() do
instanceID = GetBattlefieldInstanceInfo(i)
table.insert(self.OldBT,instanceID)
end
table.sort(self.OldBT)
end
BattleInfo_NewBattleFinder={}
function BattleInfo_NewBattleFinder:New()
local x={}
x.data={
[L.WARSONG]=BINewBattle:New(),
[L.ARATHI]=BINewBattle:New(),
[L.EYE]=BINewBattle:New(),
[L.ALTERAC]=BINewBattle:New(),
["DEFAULT"]={},
}
x.selfsay=true
x.sayto=L.SELF
x.f= CreateFrame("Frame", nil)
self.__index = self
setmetatable(x, self)
return x
end
function BattleInfo_NewBattleFinder:FindNew(t)
local outstr=""
local lsj=1
for i in pairs(t) do
j=lsj
while j<=t[i]-1 do
k=t[i]-1-j
if k>2 then
outstr=outstr..j.."->"..j+k.." "
break
else
outstr=outstr..j.." "
j=j+1
end
end
lsj=t[i]+1
end
outstr=outstr..lsj..L.ANDAFTER
return outstr
end
function BattleInfo_NewBattleFinder:Hook(callback)
--CONFIRM_NEW_BFENTRY SSPVP
if StaticPopupDialogs["CONFIRM_BATTLEFIELD_ENTRY"] then
StaticPopupDialogs["CONFIRM_BATTLEFIELD_ENTRY"].button2=L.LEAVEBUTTON
StaticPopupDialogs["CONFIRM_BATTLEFIELD_ENTRY"].OnCancel=function(arg1,arg2)
if IsControlKeyDown() and arg2=="clicked" then
AcceptBattlefieldPort(arg1,nil)
end
end
StaticPopupDialogs["CONFIRM_BATTLEFIELD_ENTRY"].OnShow=function()
local thisBT=getglobal(this:GetName().."Text")
local tx=thisBT:GetText()
if string.find(tx,L.OLD,1,1) or string.find(tx,L.NEW,1,1) then
return
end
for i in pairs(self.data) do
local _,_,toJ,_ = string.find(tx, ".+"..i.." (%d+).+");
if toJ then
thisBT:SetText(string.gsub(tx,toJ,toJ..(self.data[i]:IsNew(toJ) or "")))
break
end
end
end
elseif StaticPopupDialogs["CONFIRM_NEW_BFENTRY"] then
StaticPopupDialogs["CONFIRM_NEW_BFENTRY"].button2=L.LEAVEBUTTON
StaticPopupDialogs["CONFIRM_NEW_BFENTRY"].OnCancel=function(arg1,arg2)
if IsControlKeyDown() and arg2=="clicked" then
AcceptBattlefieldPort(arg1,nil)
end
end
hooksecurefunc(StaticPopupDialogs["CONFIRM_NEW_BFENTRY"],"OnUpdate",function()
local thisBT=getglobal(this:GetName().."Text")
local tx=thisBT:GetText()
if string.find(tx,L.OLD,1,1) or string.find(tx,L.NEW,1,1) or string.find(tx,L.OLD,1,1) then
return
end
for i in pairs(self.data) do
local _,_,toJ,_ = string.find(tx, ".+"..i.." #(%d+).+");
if toJ then
thisBT:SetText(string.gsub(tx,"#"..toJ,"#"..toJ..(self.data[i]:IsNew(toJ) or "")))
break
end
end
end)
end
--BattlefieldFrameJoinButton_OnClick
hooksecurefunc("JoinBattlefield",function()
local mapName= GetBattlefieldInfo()
if self.data[mapName] then
self.data[mapName]:BeforeJoin()
if self.selfsay then
callback()
end
end
end)
self.f:SetScript("OnEvent", function()
self.data[BattleInfo_SafeZone()].Clicking=0
end)
self.f:RegisterEvent("PLAYER_ENTERING_WORLD")
end
WOW战场报新场宏实现(以及该插件实现研究)相关推荐
- 阅读小课堂:【程序员职场关系商】 关系基本盘、破冰式求助、 点头之交的中立同事本质、 盟友、 和你的领导互通信号(好的上下级关系、 什么样的领导不值得跟、 职场的竞争不是战场而是秀场即开放性竞争)
文章目录 I .关系商 1.1 关系基本盘 1.2 破冰式求助 1.3 点头之交的中立同事本质 1.4 盟友 1.5 和你的领导互通信号 1.5.1 好的上下级关系 1.5.2 什么样的领导不值得跟? ...
- 新场计算机培训,赢在职新场经典实用课件《创造培训奇迹--ttt》讲义(共90.ppt
赢在职新场经典实用课件<创造培训奇迹--ttt>讲义(共90 专业培训技巧 1.做好课前准备 2.良好的形象 3.选择恰当的位置 4.优秀的讲授风度 5.幽默感 6.发音的控制 7.利用辅 ...
- 中国帘子布市场投资前景分析及供需格局研究预测报告
智研瞻产业研究院专注于中国产业经济情报及研究,目前主要提供的产品和服务包括传统及新兴行业研究.商业计划书.可行性研究.市场调研.专题报告.定制报告等.涵盖文化体育.物流旅游.健康养老.生物医药.能源化 ...
- 独立版:零点城市社交电商V2.1.9.8 新增多宝鱼第三方商品插件
独立版:零点城市社交电商.至尊SaaS版 .版本更新至v2.1.9.8,前端工具上传.含最新头条.微信小程序.后端开源,包更新,包修复.这个是源码,覆盖升级版(修复很多问题): 最新版本更新了:新增多 ...
- AI战场,李彦宏马化腾马云都在频频刷脸,周鸿祎和他的360在想啥呢?
(注:图文为小编调侃,非两位大佬的话术) 作者 | 张明明 编辑 | 鸽子 昨日,朋友圈里被一张脸刷屏了,一张帅气儒雅毫不油腻的脸,一张足以上所有科技女记者边看演讲边写稿边花痴的脸.有媒体甚至直接发文 ...
- DuerOS业绩亮眼,如何成为了百度财报新增长点?
8月1日,百度发布2018年第二季度未经审计财报,当季度营收260亿元人民币,同比增长32%,净利润64亿人民币,同比增长45%,移动端收入占比77%,高于去年同期的72%.从财报来看,百度依然是沿着 ...
- 谷歌退出后百度首发财报 李彦宏称获益不少(转)
百度今日发布了2010财年第一季度业绩报告,这也是百度自谷歌退出中国市场之后,第一次发布财报. 财报显示,百度第一季度总营收为人民币12.94亿元(约合1.896亿美元),同比增长59.6%:第一季度 ...
- 抖音最火刺激战场S5新赛季灵敏度:用过的都说好,建议收藏
刺激战场新赛季怎么设置灵敏度压枪最稳?随着刺激战场S5赛季的到来,新版本的灵敏度也发生了天翻地覆的变化,所有的枪件后坐力都有所改动,那么,这个版本可以通用的灵敏度怎么样设置最好用呢? 本人测试了抖音最 ...
- wow怀旧服新开服务器最新消息,魔兽世界怀旧服服务器开放进展3月24日更新
魔兽世界怀旧服玩家: 我们已于今日(3月24日)新增2组经典怀旧服服务器: 同时,以下服务器的玩家可以通过免费角色转移服务转入巨龙沼泽服务器: 转出服务器 转移方向 转入服务器 光芒.范沃森.无畏.寒 ...
最新文章
- 浅析php-fpm静态和动态执行方式的比较
- 【Linux系统编程】进程和线程的区别
- 线性代数二之矩阵加速DP——数学作业,Arc of Dream
- 识别Gradle约定
- dedecms ---m站功能基础详解
- 09-Flutter移动电商实战-移动商城数据请求实战
- 对鸢尾花数据集和月亮数据集,分别采用线性LDA、k-means和SVM算法进行二分类可视化分析
- Arduino 连接JDY-08蓝牙模块
- 二级计算机题世界动物日,计算机二级考试真题-PPT-张宇-世界动物日介绍
- 【转载】关于小程序的100个常见问题(基础知识扫盲)
- Google kickstart 2013 Practice Round Captain Hammer 题解
- 【机器人学习】abb机器人运动学分析与轨迹规划(三维模型+matlab代码+word报告)
- 必应(Bing)的站内搜索 site:<域名> <搜索内容>
- 演出节目名字_《我们的歌》新人太一无人识?看了节目才知道原来他这么优秀...
- 【雪碧图】url放置图片路径
- 知识图谱介绍-我的学习笔记
- 大疆创始人汪滔的创业路
- Ubuntu-20.04-live-server无人值守安装
- Python-Django毕业设计高校田径运动会管理(程序+LW)
- android Scoket通信
热门文章
- 电大计算机与英语模拟测试题,2014年9月大学英语B统考 电大 网院网考模拟试题4...
- Android学习文章推荐
- 【C++】类和对象---什么是类?
- 中英文标点符号切换的组合键_最全的键盘各键及组合键功能说明,好好学习
- python制表符什么意思_【后端开发】python中制表符是什么意思
- 买《Python数据分析师:从0基础到数据分析达人》专题视频课程送纸质图书
- 天猫、淘宝运营数据抓取技术概述
- 511遇见易语言乐玩插件FindMultiColor找色多点及找色块
- 201709今日头条测试开发校招面经
- python程序语言和机器人控制-利用树莓派+Python语言制作一部机器人就是如此简单!...