TWW (fix)

anry89
Сообщения: 41
Зарегистрирован: 04 дек 2022, 21:15

Re: TWW (fix)

Сообщение anry89 » 02 авг 2025, 13:58

Ошибки какие выдает? Какой аддон?

komun1st
Сообщения: 23
Зарегистрирован: 12 июн 2022, 20:18

Re: TWW (fix)

Сообщение komun1st » 02 авг 2025, 15:05

Нет ошибок, просто в чат кидает от 1 жо 250 отсчет, пользуюсь черех аддон БДС

komun1st
Сообщения: 23
Зарегистрирован: 12 июн 2022, 20:18

Re: TWW (fix)

Сообщение komun1st » 02 авг 2025, 15:44

Если подождать минуту с фокусом на целе выдает ошибку LUA:
Message: Interface/AddOns/BlackDPS/Main.lua:1125: attempt to call global 'IsCurrentSpell' (a nil value)
Time: Sat Aug 2 18:48:27 2025
Count: 75
Stack:
[Interface/AddOns/BlackDPS/Main.lua]:1125: in function 'MainScan'
[Interface/AddOns/BlackDPS/Main.lua]:840: in function <Interface/AddOns/BlackDPS/Main.lua:810>

Locals:
spell = nil
target = nil
code = nil
(*temporary) = nil
(*temporary) = 6603
(*temporary) = "attempt to call global 'IsCurrentSpell' (a nil value)"
Findlya = false

uaz266
Сообщения: 377
Зарегистрирован: 12 ноя 2016, 03:30

Re: TWW (fix)

Сообщение uaz266 » 20 авг 2025, 02:32

Добавляем это в Пользовательский код (снизу) для совместимости с TWW. И продолжаем пользоваться TMW :)
Не гарантирую что работает для всех сборок.
Все способности полученые из талантов нужно обернуть в условие Активный талант (idTip в помощь).
Работает на офе сборка на фроста. Огромнейшее спасибо!!!
Слепил по быстрому на война, то же работает.
Пару условий прицепил под баф(висит такой бей тем то) работает.
Условия расстояние до цели бей таким то то же работает.
Думаю можно теперь и поиграть на офе

seinjke
Сообщения: 2
Зарегистрирован: 03 апр 2023, 22:56

Re: TWW (fix)

Сообщение seinjke » Вчера, 08:55

Xen1 писал(а):
02 ноя 2024, 22:11
Добавляем это в Пользовательский код (снизу) для совместимости с TWW. И продолжаем пользоваться TMW :)
Не гарантирую что работает для всех сборок.
Все способности полученые из талантов нужно обернуть в условие Активный талант (idTip в помощь).

Код: Выделить всё

PlayerHeroTrees = {}
function UpdateTalents()
    PlayerTalents = {}
    PlayerHeroTrees = {}

    local ActiveConfigID = C_ClassTalents.GetActiveConfigID()

    if ActiveConfigID then
        local ConfigInfo = C_Traits.GetConfigInfo(ActiveConfigID)

        if ConfigInfo then
            local treeIDs = ConfigInfo.treeIDs

            if treeIDs then
                for idx = 1, #treeIDs do
                    for _, TreeNodeID in pairs(C_Traits.GetTreeNodes(treeIDs[idx])) do
                        local NodeInfo = C_Traits.GetNodeInfo(ActiveConfigID, TreeNodeID)

                        if NodeInfo and NodeInfo.activeEntry and NodeInfo.activeRank > 0 then
                            local EntryInfo = C_Traits.GetEntryInfo(ActiveConfigID, NodeInfo.activeEntry.entryID)

                            if EntryInfo.definitionID then
                                local spellID = C_Traits.GetDefinitionInfo(EntryInfo.definitionID).spellID

                                PlayerTalents[tostring(spellID)] = true
                            end
                        end

                        if NodeInfo and NodeInfo.subTreeID then
                            local SubTreeInfo = C_Traits.GetSubTreeInfo(ActiveConfigID, NodeInfo.subTreeID)

                            if SubTreeInfo and SubTreeInfo.isActive then
                                PlayerHeroTrees[SubTreeInfo.name] = true
                            end
                        end
                    end
                end
            end
        end
    end

    for _, talentID in ipairs(C_SpecializationInfo.GetAllSelectedPvpTalentIDs()) do
        local _, _, _, _, _, spellID = GetPvpTalentInfoByID(talentID)

        PlayerTalents[tostring(spellID)] = true
        PlayerTalents[spellID] = true
    end
end

function IsHeroTree(TreeName)
    if PlayerHeroTrees[TreeName] ~= nil then
        return PlayerHeroTrees[TreeName]
    else
        return false
    end
end

function MyIsSpellInRange(SpellName, Unit)
    local in_range = C_Spell.IsSpellInRange(SpellName, Unit)

    if in_range == nil then return true else return in_range end
end

function CanCastUnit(SpellCode, Unit, InMove)
    return UnitExists(Unit) and UnitIsVisible(Unit) and not UnitIsDeadOrGhost(Unit) and Timers["WallBlock" .. UnitGUID(Unit)] == nil and Timers["UnitNotInFront" .. UnitGUID(Unit)] == nil and MyIsSpellInRange(SpellCode, Unit) and CanCast(SpellCode, InMove)
end

function GetSpellInfo(spellIdentifier)
    local data = C_Spell.GetSpellInfo(spellIdentifier)

    if data ~= nil then
        return data.name, 0, data.iconID, data.castTime, data.minRange, data.maxRange, data.spellID, data.originalIconID
    end
end

function GetSpellCooldown(spellIdentifier)
    local data = C_Spell.GetSpellCooldown(spellIdentifier)

    if data ~= nil then
        return data.startTime, data.duration, data.isEnabled, data.modRate
    end
end

function GetItemCooldown(spellIdentifier)
    local data = C_Item.GetItemCooldown(spellIdentifier)

    if data ~= nil then
        return data.startTime, data.duration, data.isEnabled, data.modRate
    end
end

function GetSpellCharges(spellIdentifier)
    local data = C_Spell.GetSpellCharges(spellIdentifier)

    if data ~= nil then
        return data.currentCharges, data.maxCharges, data.cooldownStartTime, data.cooldownDuration, data.chargeModRate
    end
end

function GetSpellDescription(spellIdentifier)
    return C_Spell.GetSpellDescription(spellIdentifier)
end

function IsSpellInRange(spellIdentifier, unit)
    return C_Spell.IsSpellInRange(spellIdentifier, unit)
end

function IsUsableSpell(spellIdentifier)
    return C_Spell.IsSpellUsable(spellIdentifier)
end

function GetSpellCount(spellIdentifier)
    return C_Spell.GetSpellCastCount(spellIdentifier)
end

function IsCurrentSpell(spellIdentifier)
    return C_Spell.IsCurrentSpell(spellIdentifier)
end

function GetSpellPowerCost(spellIdentifier)
    return C_Spell.GetSpellPowerCost(spellIdentifier)
end

function UnitAura(unit, i, kind)
    if kind == "HARMFUL" then
        local data = C_UnitAuras.GetDebuffDataByIndex(unit, i)

        if data ~= nil then
            return data.name, data.icon, data.applications, data.dispelName, data.duration, data.expirationTime, data.sourceUnit, nil, nil, data.spellId, data.canApplyAura, data.isBossDebuff, data.isFromPlayerOrPlayerPet
        end
    end

    if kind == "HELPFUL" then
        local data = C_UnitAuras.GetBuffDataByIndex(unit, i)

        if data ~= nil then
            return data.name, data.icon, data.applications, data.dispelName, data.duration, data.expirationTime, data.sourceUnit, nil, nil, data.spellId, data.canApplyAura, data.isBossDebuff, data.isFromPlayerOrPlayerPet
        end
    end
end
Привет, есть обновленный фикс? мб кто-то смог вернуть в работу "цикл" "время с последнего нажатия" и многое другое?

uaz266
Сообщения: 377
Зарегистрирован: 12 ноя 2016, 03:30

Re: TWW (fix)

Сообщение uaz266 » Сегодня, 01:32

del.
Последний раз редактировалось uaz266 29 авг 2025, 02:00, всего редактировалось 1 раз.

uaz266
Сообщения: 377
Зарегистрирован: 12 ноя 2016, 03:30

Re: TWW (fix)

Сообщение uaz266 » Сегодня, 01:59

seinjke писал(а):
Вчера, 08:55
Xen1 писал(а):
02 ноя 2024, 22:11
Добавляем это в Пользовательский код (снизу) для совместимости с TWW. И продолжаем пользоваться TMW :)
Не гарантирую что работает для всех сборок.
Все способности полученые из талантов нужно обернуть в условие Активный талант (idTip в помощь).

Код: Выделить всё

PlayerHeroTrees = {}
function UpdateTalents()
    PlayerTalents = {}
    PlayerHeroTrees = {}

    local ActiveConfigID = C_ClassTalents.GetActiveConfigID()

    if ActiveConfigID then
        local ConfigInfo = C_Traits.GetConfigInfo(ActiveConfigID)

        if ConfigInfo then
            local treeIDs = ConfigInfo.treeIDs

            if treeIDs then
                for idx = 1, #treeIDs do
                    for _, TreeNodeID in pairs(C_Traits.GetTreeNodes(treeIDs[idx])) do
                        local NodeInfo = C_Traits.GetNodeInfo(ActiveConfigID, TreeNodeID)

                        if NodeInfo and NodeInfo.activeEntry and NodeInfo.activeRank > 0 then
                            local EntryInfo = C_Traits.GetEntryInfo(ActiveConfigID, NodeInfo.activeEntry.entryID)

                            if EntryInfo.definitionID then
                                local spellID = C_Traits.GetDefinitionInfo(EntryInfo.definitionID).spellID

                                PlayerTalents[tostring(spellID)] = true
                            end
                        end

                        if NodeInfo and NodeInfo.subTreeID then
                            local SubTreeInfo = C_Traits.GetSubTreeInfo(ActiveConfigID, NodeInfo.subTreeID)

                            if SubTreeInfo and SubTreeInfo.isActive then
                                PlayerHeroTrees[SubTreeInfo.name] = true
                            end
                        end
                    end
                end
            end
        end
    end

    for _, talentID in ipairs(C_SpecializationInfo.GetAllSelectedPvpTalentIDs()) do
        local _, _, _, _, _, spellID = GetPvpTalentInfoByID(talentID)

        PlayerTalents[tostring(spellID)] = true
        PlayerTalents[spellID] = true
    end
end

function IsHeroTree(TreeName)
    if PlayerHeroTrees[TreeName] ~= nil then
        return PlayerHeroTrees[TreeName]
    else
        return false
    end
end

function MyIsSpellInRange(SpellName, Unit)
    local in_range = C_Spell.IsSpellInRange(SpellName, Unit)

    if in_range == nil then return true else return in_range end
end

function CanCastUnit(SpellCode, Unit, InMove)
    return UnitExists(Unit) and UnitIsVisible(Unit) and not UnitIsDeadOrGhost(Unit) and Timers["WallBlock" .. UnitGUID(Unit)] == nil and Timers["UnitNotInFront" .. UnitGUID(Unit)] == nil and MyIsSpellInRange(SpellCode, Unit) and CanCast(SpellCode, InMove)
end

function GetSpellInfo(spellIdentifier)
    local data = C_Spell.GetSpellInfo(spellIdentifier)

    if data ~= nil then
        return data.name, 0, data.iconID, data.castTime, data.minRange, data.maxRange, data.spellID, data.originalIconID
    end
end

function GetSpellCooldown(spellIdentifier)
    local data = C_Spell.GetSpellCooldown(spellIdentifier)

    if data ~= nil then
        return data.startTime, data.duration, data.isEnabled, data.modRate
    end
end

function GetItemCooldown(spellIdentifier)
    local data = C_Item.GetItemCooldown(spellIdentifier)

    if data ~= nil then
        return data.startTime, data.duration, data.isEnabled, data.modRate
    end
end

function GetSpellCharges(spellIdentifier)
    local data = C_Spell.GetSpellCharges(spellIdentifier)

    if data ~= nil then
        return data.currentCharges, data.maxCharges, data.cooldownStartTime, data.cooldownDuration, data.chargeModRate
    end
end

function GetSpellDescription(spellIdentifier)
    return C_Spell.GetSpellDescription(spellIdentifier)
end

function IsSpellInRange(spellIdentifier, unit)
    return C_Spell.IsSpellInRange(spellIdentifier, unit)
end

function IsUsableSpell(spellIdentifier)
    return C_Spell.IsSpellUsable(spellIdentifier)
end

function GetSpellCount(spellIdentifier)
    return C_Spell.GetSpellCastCount(spellIdentifier)
end

function IsCurrentSpell(spellIdentifier)
    return C_Spell.IsCurrentSpell(spellIdentifier)
end

function GetSpellPowerCost(spellIdentifier)
    return C_Spell.GetSpellPowerCost(spellIdentifier)
end

function UnitAura(unit, i, kind)
    if kind == "HARMFUL" then
        local data = C_UnitAuras.GetDebuffDataByIndex(unit, i)

        if data ~= nil then
            return data.name, data.icon, data.applications, data.dispelName, data.duration, data.expirationTime, data.sourceUnit, nil, nil, data.spellId, data.canApplyAura, data.isBossDebuff, data.isFromPlayerOrPlayerPet
        end
    end

    if kind == "HELPFUL" then
        local data = C_UnitAuras.GetBuffDataByIndex(unit, i)

        if data ~= nil then
            return data.name, data.icon, data.applications, data.dispelName, data.duration, data.expirationTime, data.sourceUnit, nil, nil, data.spellId, data.canApplyAura, data.isBossDebuff, data.isFromPlayerOrPlayerPet
        end
    end
end
Привет, есть обновленный фикс? мб кто-то смог вернуть в работу "цикл" "время с последнего нажатия" и многое другое?
"Время с последнего нажатия" работает. У меня для проверки "Цикл" есть друль 18 лвл на нём проверил сборку на хила работает.
А так после добавления фикса все сборки работают хорошо.

seinjke
Сообщения: 2
Зарегистрирован: 03 апр 2023, 22:56

Re: TWW (fix)

Сообщение seinjke » Сегодня, 14:03

Понял значит проблема у меня, через аддон tmw. т.к. запускаю через лаунчер баттелнет, запустить Wow.exe не могу. поэтому он наверное не инжектится с полным функционалом, а как кликер работает. По другому на ретейле запустить не могу

traf
Сообщения: 12
Зарегистрирован: 30 мар 2022, 08:48

Re: TWW (fix)

Сообщение traf » Сегодня, 19:23

с фиксом работает, но есть пролаг во время нажатия способностей, из-за этого залипают кнопки передвижения и перс прололжает бежать, так же это видно на указателе, видел уже у кого-то есть такая проблема, может кто знает как решить?

eminsk
Сообщения: 288
Зарегистрирован: 19 фев 2016, 17:15

Re: TWW (fix)

Сообщение eminsk » 13 минут назад

traf писал(а):
Сегодня, 19:23
с фиксом работает, но есть пролаг во время нажатия способностей, из-за этого залипают кнопки передвижения и перс прололжает бежать, так же это видно на указателе, видел уже у кого-то есть такая проблема, может кто знает как решить?
Эта проблема у многих, есть команда которую надо ввести в игре и работа камеры нормализуется и персонаж перестает бегать уже.

Я сделала так сначала ввела: /console rawMouseEnable 0 ,потом /console rawMouseEnable 1
и все заработало у меня.

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость