不用插件的只用一个宏:/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战场报新场宏实现(以及该插件实现研究)相关推荐

  1. 阅读小课堂:【程序员职场关系商】 关系基本盘、破冰式求助、 点头之交的中立同事本质、 盟友、 和你的领导互通信号(好的上下级关系、 什么样的领导不值得跟、 职场的竞争不是战场而是秀场即开放性竞争)

    文章目录 I .关系商 1.1 关系基本盘 1.2 破冰式求助 1.3 点头之交的中立同事本质 1.4 盟友 1.5 和你的领导互通信号 1.5.1 好的上下级关系 1.5.2 什么样的领导不值得跟? ...

  2. 新场计算机培训,赢在职新场经典实用课件《创造培训奇迹--ttt》讲义(共90.ppt

    赢在职新场经典实用课件<创造培训奇迹--ttt>讲义(共90 专业培训技巧 1.做好课前准备 2.良好的形象 3.选择恰当的位置 4.优秀的讲授风度 5.幽默感 6.发音的控制 7.利用辅 ...

  3. 中国帘子布市场投资前景分析及供需格局研究预测报告

    智研瞻产业研究院专注于中国产业经济情报及研究,目前主要提供的产品和服务包括传统及新兴行业研究.商业计划书.可行性研究.市场调研.专题报告.定制报告等.涵盖文化体育.物流旅游.健康养老.生物医药.能源化 ...

  4. 独立版:零点城市社交电商V2.1.9.8 新增多宝鱼第三方商品插件

    独立版:零点城市社交电商.至尊SaaS版 .版本更新至v2.1.9.8,前端工具上传.含最新头条.微信小程序.后端开源,包更新,包修复.这个是源码,覆盖升级版(修复很多问题): 最新版本更新了:新增多 ...

  5. AI战场,李彦宏马化腾马云都在频频刷脸,周鸿祎和他的360在想啥呢?

    (注:图文为小编调侃,非两位大佬的话术) 作者 | 张明明 编辑 | 鸽子 昨日,朋友圈里被一张脸刷屏了,一张帅气儒雅毫不油腻的脸,一张足以上所有科技女记者边看演讲边写稿边花痴的脸.有媒体甚至直接发文 ...

  6. DuerOS业绩亮眼,如何成为了百度财报新增长点?

    8月1日,百度发布2018年第二季度未经审计财报,当季度营收260亿元人民币,同比增长32%,净利润64亿人民币,同比增长45%,移动端收入占比77%,高于去年同期的72%.从财报来看,百度依然是沿着 ...

  7. 谷歌退出后百度首发财报 李彦宏称获益不少(转)

    百度今日发布了2010财年第一季度业绩报告,这也是百度自谷歌退出中国市场之后,第一次发布财报. 财报显示,百度第一季度总营收为人民币12.94亿元(约合1.896亿美元),同比增长59.6%:第一季度 ...

  8. 抖音最火刺激战场S5新赛季灵敏度:用过的都说好,建议收藏

    刺激战场新赛季怎么设置灵敏度压枪最稳?随着刺激战场S5赛季的到来,新版本的灵敏度也发生了天翻地覆的变化,所有的枪件后坐力都有所改动,那么,这个版本可以通用的灵敏度怎么样设置最好用呢? 本人测试了抖音最 ...

  9. wow怀旧服新开服务器最新消息,魔兽世界怀旧服服务器开放进展3月24日更新

    魔兽世界怀旧服玩家: 我们已于今日(3月24日)新增2组经典怀旧服服务器: 同时,以下服务器的玩家可以通过免费角色转移服务转入巨龙沼泽服务器: 转出服务器 转移方向 转入服务器 光芒.范沃森.无畏.寒 ...

最新文章

  1. 浅析php-fpm静态和动态执行方式的比较
  2. 【Linux系统编程】进程和线程的区别
  3. 线性代数二之矩阵加速DP——数学作业,Arc of Dream
  4. 识别Gradle约定
  5. dedecms ---m站功能基础详解
  6. 09-Flutter移动电商实战-移动商城数据请求实战
  7. 对鸢尾花数据集和月亮数据集,分别采用线性LDA、k-means和SVM算法进行二分类可视化分析
  8. Arduino 连接JDY-08蓝牙模块
  9. 二级计算机题世界动物日,计算机二级考试真题-PPT-张宇-世界动物日介绍
  10. 【转载】关于小程序的100个常见问题(基础知识扫盲)
  11. Google kickstart 2013 Practice Round Captain Hammer 题解
  12. 【机器人学习】abb机器人运动学分析与轨迹规划(三维模型+matlab代码+word报告)
  13. 必应(Bing)的站内搜索 site:<域名> <搜索内容>
  14. 演出节目名字_《我们的歌》新人太一无人识?看了节目才知道原来他这么优秀...
  15. 【雪碧图】url放置图片路径
  16. 知识图谱介绍-我的学习笔记
  17. 大疆创始人汪滔的创业路
  18. Ubuntu-20.04-live-server无人值守安装
  19. Python-Django毕业设计高校田径运动会管理(程序+LW)
  20. android Scoket通信

热门文章

  1. 电大计算机与英语模拟测试题,2014年9月大学英语B统考 电大 网院网考模拟试题4...
  2. Android学习文章推荐
  3. 【C++】类和对象---什么是类?
  4. 中英文标点符号切换的组合键_最全的键盘各键及组合键功能说明,好好学习
  5. python制表符什么意思_【后端开发】python中制表符是什么意思
  6. 买《Python数据分析师:从0基础到数据分析达人》专题视频课程送纸质图书
  7. 天猫、淘宝运营数据抓取技术概述
  8. 511遇见易语言乐玩插件FindMultiColor找色多点及找色块
  9. 201709今日头条测试开发校招面经
  10. python程序语言和机器人控制-利用树莓派+Python语言制作一部机器人就是如此简单!...