LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
查看: 171|回复: 10

[wowbee] 请教函数大佬!!!!

[复制链接]
发表于 2024-3-9 13:59:41 | 显示全部楼层 |阅读模式
在不检测当前目标或目标的目标或焦点的目标的情况下


队伍或者团队成员里法师、术士、牧师,这三种职业受到怪物直接攻击时(就是OT了),对其释放保护之手。


这该怎么写啊?
回复

使用道具 举报

发表于 2024-3-9 23:55:56 | 显示全部楼层
飞扬 发表于 2024-3-9 11:28 PM
啥意思啊?大佬~~~~~~~~

我们的普通解锁期  做不到
回复 支持 1 反对 0

使用道具 举报

发表于 2024-3-9 17:41:54 | 显示全部楼层
高级解锁   zsbd
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-9 23:28:36 | 显示全部楼层

啥意思啊?大佬~~~~~~~~
回复 支持 反对

使用道具 举报

发表于 2024-3-10 00:51:09 | 显示全部楼层
不用高级函数
自带函数就可以了
local Unit = BeeGroupMaxScript('class=="牧师"',"BeeUnitHealth(unit,nil,1)","party")

if Unit and BeeIsRun("保护之手",Unit)  then
   BeeRun("保护之手",BeeGetVariable("BeeGroupMaxInfo_Unit"))
end


点评

似乎并不是楼主需要的  详情 回复 发表于 2024-3-10 12:17 PM
回复 支持 反对

使用道具 举报

发表于 2024-3-10 12:17:31 | 显示全部楼层
lulin155 发表于 2024-3-10 12:51 AM
不用高级函数
自带函数就可以了
local Unit = BeeGroupMaxScript('class=="牧师"',"BeeUnitHealth(unit,n ...

似乎并不是楼主需要的
回复 支持 反对

使用道具 举报

发表于 2024-3-12 20:47:34 | 显示全部楼层
最简单的就是定义一个焦点目标,然后把focus参数传到BeeGroupCountScript()第二个属性中做仇恨级别的判断,怎奈你这需求有点特殊。由于没有进阶函数,只好参考前辈的模板来实现。
正常的东西写腻歪了,就研究这些奇奇怪怪的东西
原理:获取战斗日志中全部怪物的GUID,找出血量最多的定义为boss,如果布甲OT了,就给OT的目标上保护之手。
[Lua] 纯文本查看 复制代码
--'初始化创建框体'
F = F or CreateFrame("Frame")
--'注册事件'
F:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
F:RegisterEvent("PLAYER_REGEN_ENABLED")
local lastUpdate = GetTime()
local targets = {}
local targetsTable = {}
local maxHealth = 0
local bossName = ""
F:SetScript("OnEvent", function(self, event, ...)
        if event == "COMBAT_LOG_EVENT_UNFILTERED" then
            local timestamp = ...
            local currentTime = GetTime()
            local playerGUID = UnitGUID("player")
            local arg = {...}
            local TargetGUID = arg[3]
            local TargetName = arg[4]
            local str=string.find(arg[3],"0x0")
            if TargetGUID ~= playerGUID and TargetGUID ~= "0x0000000000000000" and not str then
                if currentTime - lastUpdate >= 1  then
                    local totalTargets = table.getn(targets)
                    if totalTargets > 0 then
                        local arrhp={}
                        for k,v in pairs(targetsTable) do  
                            BeeRun("/target " .. TargetName)
                            --'比较血量,选出最大血量为boss'
                            if(maxHealth<UnitHealth("target")) then 
                                maxHealth = UnitHealth("target")
                                bossName = TargetName
                            end
                        end    
                        lastUpdate = currentTime
                        wipe(targets)    
                    end
                end  
                if not tContains(targets, TargetGUID) then
                    tinsert(targets, TargetGUID)
                    tinsert(targetsTable,arg)
                end
            end
            --print(bossName)
        elseif event == "PLAYER_REGEN_ENABLED" then
            --'清空目标表'
            wipe(targets)
        end
end)
--'团队框架'
grouptype="" 
if GetNumRaidMembers()>0 
then 
    grouptype="raid" 
else 
    grouptype="party" 
end
local m,u = BeeGroupCountScript('BeeRange(unit)<=40 and class=="牧师" or class=="术士" or class=="法师"','UnitName(BeeUnit(bossName).. "-target") == UnitName(unit)',grouptype)
if m>0 and BeeIsRun("保护之手",u) and BeeUnitBuffTime("保护之手",u)<1 then 
    BeeRun("保护之手",u)
end



回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-14 11:11:27 | 显示全部楼层
z22904220 发表于 2024-3-12 08:47 PM
最简单的就是定义一个焦点目标,然后把focus参数传到BeeGroupCountScript()第二个属性中做仇恨级别的判断, ...

膜拜大佬~~~~~~~~~~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-14 11:14:27 | 显示全部楼层
z22904220 发表于 2024-3-12 08:47 PM
最简单的就是定义一个焦点目标,然后把focus参数传到BeeGroupCountScript()第二个属性中做仇恨级别的判断, ...

这这这太高端了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-14 12:04:20 | 显示全部楼层
z22904220 发表于 2024-3-12 08:47 PM
最简单的就是定义一个焦点目标,然后把focus参数传到BeeGroupCountScript()第二个属性中做仇恨级别的判断, ...

大佬写的代码太高端了,再请教该如何修改一下

获取战斗日志中全部怪物的GUID,不管是BOSS还是小怪的目标 是法师、术士、牧师,就对其释放保护之手。

比如ICC老2传销女召唤的几只小怪,T没有第一时间全部拉完的话,一巴掌能把布甲拍死,还有老4召唤的血兽也能啃死布甲,还有红玉圣殿的小怪等等.....

我想要实现的功能是:场面上有多只怪物的情况下,检索所有怪物的目标,如果其中一只目标是布甲职业,能第一时间甩出保护救人一命

因为是我是治疗职业,我的焦点是T,我的当前目是团队成员,所以 使用target、focustarget、targettarget,这样的函数来检索场面上所有怪物的目标不太方便,也不够智能
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|LUACN论坛

GMT+8, 2024-5-6 01:50 AM , Processed in 0.069116 second(s), 36 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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