QQ登录

只需一步,快速开始

 找回密码
 加入一朵

QQ登录

只需一步,快速开始

查看: 5013|回复: 16
打印 上一主题 下一主题

剑3插件语言

[复制链接]
  • TA的每日心情
    奋斗
    2021-4-28 23:23
  • 签到天数: 20 天

    [LV.4]偶尔看看III

    跳转到指定楼层
    1
    本帖最后由 丨一朵丶大脑壳 于 2009-6-9 21:56 编辑

    今天发现最可能的就是LUA了就连二测都有,不信用搜索 *.LUA 所以赶快去学习这个。同志加油哦。这下面可能是个更新的,但是还没确定引用的函数,所以不知道啦,争取在没公布之前,找到嘿嘿.
    -----------------------------------------------------------------------------
    local tNotifyList = {}
    local NORMAL_FONT = 162
    local STRESS_FONT = 163
    function OnBattleFieldNotify(dwMapID, nNotifyType, nAvgQueueTime, nPassTime, nTimeIndex, nSerialNumber)
    -- update data
    if nNotifyType == BATTLE_FIELD_NOTIFY_TYPE.QUEUE_INFO
    or nNotifyType == BATTLE_FIELD_NOTIFY_TYPE.JOIN_BATTLE_FIELD then
      if not tNotifyList[dwMapID] then
       tNotifyList[dwMapID] = {}
       FireEvent("BATTLE_FIELD_STATE_UPDATE")
      end
      tNotifyList[dwMapID].nNotifyType = nNotifyType
      tNotifyList[dwMapID].nAvgQueueTime = nAvgQueueTime
      tNotifyList[dwMapID].nPassTime = nPassTime
      tNotifyList[dwMapID].nTimeIndex = nTimeIndex
      tNotifyList[dwMapID].nSerialNumber = nSerialNumber
    elseif nNotifyType == BATTLE_FIELD_NOTIFY_TYPE.LEAVE_BATTLE_FIELD then
      CloseMessageBox("BattleField_Enter_" .. dwMapID)
      tNotifyList[dwMapID] = nil
      FireEvent("BATTLE_FIELD_STATE_UPDATE")
    end

    if nNotifyType == BATTLE_FIELD_NOTIFY_TYPE.JOIN_BATTLE_FIELD then
      if not tNotifyList[dwMapID].bRemind then
       local tMsg =
       {
        szMessage = FormatString(
         g_tStrings.STR_BATTLEFIELD_MESSAGE_ENTER,
         GetBattleFieldQueueName(dwMapID, tNotifyList[dwMapID].nTimeIndex, tNotifyList[dwMapID].nSerialNumber)
        ),
        szName = "BattleField_Enter_" .. dwMapID,
        {szOption = g_tStrings.STR_HOTKEY_ENTER, fnAction = function() DoAcceptJoinBattleField(dwMapID, nTimeIndex, nSerialNumber) end, },
        {szOption = g_tStrings.STR_HOTKEY_HIDE, },
        {szOption = g_tStrings.STR_HOTKEY_LEAVE, fnAction = function() DoLeaveBattleFieldQueue(dwMapID) end, },
       }
       MessageBox(tMsg)
       tNotifyList[dwMapID].bRemind = true
      end
    end
    end
    function GetCurrentBattleField()
    return tNotifyList
    end
    function GetBattleFieldStateTip()
    local szTip = nil

    if IsInBattleField() then
      local hScene = GetClientPlayer().GetScene()
      local szBattleFiledName = GetBattleFieldQueueName(hScene.dwMapID, nil, hScene.GetSerialNumber())
      if szBattleFiledName then
       szTip = GetFormatText(g_tStrings.STR_BATTLEFIELD_FIGHTING, NORMAL_FONT) .. GetFormatText(szBattleFiledName, STRESS_FONT)
      end
    end
      
    for dwMapID, tData in pairs(tNotifyList) do
      local szSubTip = nil
      if tData.nNotifyType == BATTLE_FIELD_NOTIFY_TYPE.QUEUE_INFO then
       szSubTip = FormatBattleFieldQueueTip(
        GetBattleFieldQueueName(dwMapID, tData.nTimeIndex, tData.nSerialNumber),
        tData.nPassTime,
        tData.nAvgQueueTime
       )
      elseif tData.nNotifyType == BATTLE_FIELD_NOTIFY_TYPE.JOIN_BATTLE_FIELD then
       szSubTip = FormatBattleFieldJoinTip(
        GetBattleFieldQueueName(dwMapID, tData.nTimeIndex, tData.nSerialNumber),  
        MAX_BATTLE_FIELD_OVERTIME - tData.nPassTime
       )
      end
      if szSubTip then
       if szTip then
        szTip = szTip .. GetFormatText("\n\n", NORMAL_FONT) .. szSubTip
       else
        szTip = szSubTip
       end
      end
    end
    return szTip
    end
    function GetBattleFieldMenu()
    local tMenu = nil

    if IsInBattleField() then
      tMenu = { { szOption = g_tStrings.STR_BATTLEFIELD_MENU_LEAVE, fnAction = function() LeaveBattleField() end, } }
    end

    for dwMapID, tData in pairs(tNotifyList) do
      if tData.nNotifyType == BATTLE_FIELD_NOTIFY_TYPE.QUEUE_INFO
      or tData.nNotifyType == BATTLE_FIELD_NOTIFY_TYPE.JOIN_BATTLE_FIELD then
       if tMenu then
        table.insert(tMenu, {bDevide = true})
       else
        tMenu = {}
       end
       
       table.insert(tMenu, { szOption = GetBattleFieldQueueName(dwMapID, tData.nTimeIndex, tData.nSerialNumber), bDisable = true, nFont = STRESS_FONT, })
       if tData.nNotifyType == BATTLE_FIELD_NOTIFY_TYPE.JOIN_BATTLE_FIELD then
        table.insert(tMenu, { szOption = g_tStrings.STR_BATTLEFIELD_MENU_ENTER, fnAction = function() DoAcceptJoinBattleField(dwMapID, tData.nTimeIndex, tData.nSerialNumber) end, })
       end
       table.insert(tMenu, { szOption = g_tStrings.STR_BATTLEFIELD_MENU_LEAVE, fnAction = function() DoLeaveBattleFieldQueue(dwMapID) end, })
      end
    end
    return tMenu
    end
    function GetBattleFieldQueueName(dwMapID, nTimeIndex, nSerialNumber)
    local szName = GetBattleFieldName(dwMapID)
    if nSerialNumber and nSerialNumber ~= 0 then
      szName = szName .. "(" .. nSerialNumber .. ")"
    end
    return szName
    end
    function HasBattleFieldInfo()
    local hPlayer = GetClientPlayer()
    if not hPlayer then
      return false
    end

    local hScene = hPlayer.GetScene()
    if IsBattleFieldMap(hScene.dwMapID) then
      return true
    end
    for _, _ in pairs(tNotifyList) do
      return true
    end
    end
    function IsInBattleField()
    local hPlayer = GetClientPlayer()
    if hPlayer then
      local hScene = hPlayer.GetScene()
      return IsBattleFieldMap(hScene.dwMapID)
    end
    end
    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------
    function DoAcceptJoinBattleField(dwMapID, nTimeIndex, nSerialNumber)
    CloseMessageBox("BattleField_Enter_" .. dwMapID)
    tNotifyList[dwMapID] = nil
    FireEvent("BATTLE_FIELD_STATE_UPDATE")
    AcceptJoinBattleField(dwMapID, nTimeIndex, nSerialNumber)
    end
    function DoLeaveBattleFieldQueue(dwMapID)
    CloseMessageBox("BattleField_Enter_" .. dwMapID)
    tNotifyList[dwMapID] = nil
    FireEvent("BATTLE_FIELD_STATE_UPDATE")
    LeaveBattleFieldQueue(dwMapID)
    end
    function FormatBattleFieldTime(nTime)
    local szTime
    if nTime > 60 then
      szTime = math.floor(nTime / 60) .. g_tStrings.STR_BUFF_H_TIME_M
    else
      szTime = nTime .. g_tStrings.STR_BUFF_H_TIME_S
    end
    return szTime
    end
    function FormatBattleFieldQueueTip(szBattleField, nPassTime, nAvgTime)
    local szBattleField = GetFormatText(szBattleField, STRESS_FONT)
    local szTip = FormatString(
      g_tStrings.STR_BATTLEFIELD_QUEUE_WAIT,
      "\"font=" .. NORMAL_FONT .. " </text>" .. szBattleField .. "<text>text=\""
    )
    szTip = szTip .. "\n"
    szTip = "<text>text=\"" .. szTip .. "\" font=" .. NORMAL_FONT .. "</text>"

    if nAvgTime > 0 then
      szTip = szTip .. GetFormatText(g_tStrings.STR_BATTLEFIELD_QUEUE_AVGTIME, NORMAL_FONT)
      szTip = szTip .. GetFormatText(FormatBattleFieldTime(nAvgTime) .. "\n", STRESS_FONT)
    else
      szTip = szTip .. GetFormatText(g_tStrings.STR_BATTLEFIELD_QUEUE_TIME_UNKNOW .. "\n", NORMAL_FONT)
    end

    szTip = szTip .. GetFormatText(g_tStrings.STR_BATTLEFIELD_QUEUE_PASSTIME, NORMAL_FONT)
    szTip = szTip .. GetFormatText(FormatBattleFieldTime(nPassTime) .. "\n", STRESS_FONT)
    return szTip
    end
    function FormatBattleFieldJoinTip(szBattleField, nLastTime)
    local szBattleField = GetFormatText(szBattleField, STRESS_FONT)
    local szLastTime = GetFormatText(FormatBattleFieldTime(nLastTime), STRESS_FONT)
    local szTip = FormatString(
      g_tStrings.STR_BATTLEFIELD_QUEUE_ENTER,
      "\"font=" .. NORMAL_FONT .. " </text>" .. szBattleField .. "<text>text=\"",
      "\"font=" .. NORMAL_FONT .. " </text>" .. szLastTime .. "<text>text=\""
    )
    return "<text>text=\"" .. szTip .. "\" font=" .. NORMAL_FONT .. "</text>"
    end
    RegisterEvent("BATTLE_FIELD_NOTIFY", function() OnBattleFieldNotify(arg3, arg0, arg1, arg2, arg4, arg5) end)

    评分

    3

    查看全部评分

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏 转播转播
    回复

    使用道具 举报

  • TA的每日心情

    2014-1-29 01:28
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    2
    丨一朵丶撒旦 发表于 2009-6-9 22:07:47 | 只看该作者
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2015-2-26 22:24
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    3
    丨一朵丶败邶 发表于 2009-6-9 22:13:00 | 只看该作者
    什么 东东   我不懂``- -
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4
    丨一朵丶裳儿 发表于 2009-6-9 22:17:31 | 只看该作者
    天文啊比英文还难看懂
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-4-28 23:23
  • 签到天数: 20 天

    [LV.4]偶尔看看III

    5
     楼主| 丨一朵丶大脑壳 发表于 2009-6-9 22:20:29 | 只看该作者
    晕这就是LUA语言写的,刚才在剑3里发现这东西,嘿嘿,就和魔兽写插件一样,只不过的是好象,金山没给接口,没说明书呵呵。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-1-13 14:11
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    6
    丨一朵丶箪禅 发表于 2009-6-9 22:23:27 | 只看该作者
    先收藏,有机会再学习学习
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-8-17 20:13
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    7
    丨一朵丶墨子 发表于 2009-6-9 22:26:45 | 只看该作者
    不要只发代码,至少注释之后再发,要不好多童鞋都晕的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-4-28 23:23
  • 签到天数: 20 天

    [LV.4]偶尔看看III

    8
     楼主| 丨一朵丶大脑壳 发表于 2009-6-9 23:02:36 | 只看该作者
    我都不知道怎么注释,金山没给我接口说明,只能理解下表示的什么意思,确定金山开插件是使用=LUA语言,说以还不会的赶快去www.lua.org学习正在找人翻译呵呵,还有就是LUA在哪下后面在说.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2015-2-26 22:24
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    9
    丨一朵丶败邶 发表于 2009-6-10 00:09:52 | 只看该作者
    话说  只能用现成的  不会自己编的人  爬过- -

       我还是等现成的吧- -
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2022-4-25 19:25
  • 签到天数: 562 天

    [LV.9]以坛为家II

    10
    丨一朵丶小扇 发表于 2009-6-12 02:18:54 | 只看该作者
    我们期待大脑壳同学的大作
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入一朵

    本版积分规则

    GMT+8, 2024-11-27 07:37

    © 2001-2011 Powered by Discuz! X3.2. Theme By Yeei!

    快速回复 返回顶部 返回列表