Страница 1 из 2
TWW (fix)
Добавлено: 12 окт 2024, 11:42
noname123
Получилось реанимировать бота под TWW, но из-за того что при сохранении сборки бот генерирует каждый раз свой код, то придётся вносить изменения после этого самостоятельно.
Если вкратце, то нужно будет сохранить свою сборку, в файле AddOns\BlackDPS\Main.lua заменить часть кода и записать свои ID спеллов из сборки чтобы бот мог бинды на них поставить и нажимать соответственно.
Теперь по порядку...
1. Создаём свою сборку(с заклинаниями), меняем в настройках бота "Режим работы через аддон BPDS" и сохраняем её. Это нужно чтобы обновился файл Main.lua с вашей составленной ротацией. После этого (если необходимо) можно сразу режим работы вернуть на TellMeWhen и сохранить ещё раз.
2. Открываем файл AddOns\BlackDPS\Main.lua и спускаемся в самый низ. Там вы найдёте строчку SpellSelector() в ней записана ваша сгенерированная ротация, всё что находится выше этой функции нужно выделить и заменить на подкорректированный код для TWW который можно скачать тут
https://cloud.mail.ru/public/GNYt/ChUGGuQnW (открываем файл в ссылке и копируем всё до SpellSelector() в свой Main.lua с заменой)
3. Найдите строчку с названием "local BindingSpells =" и двумя строчками ниже запишите свои ID спеллов через запятую которые присутствуют в вашей сборке.
Если есть в сборке макросы, то чуть ниже будет "local BindingMacroses = " и там по аналогии. В файле рядом с этими строчками есть небольшие подсказки.
4. Сохраняем файл и можно заходить в игру.
Выглядит на первый взгляд немного заморочено, но это не нужно будет делать в полном объёме каждый раз. Просто сохраните копию этого файла где вы уже вписали свои ID спеллов и т.д. и в дальнейшем при добавлении новых условий, после сохранения сборки вы будете просто заменять часть кода до SpellSelector() на свой и сразу пользоваться.
Re: TWW (fix)
Добавлено: 13 окт 2024, 16:10
eminsk
noname123 писал(а): ↑12 окт 2024, 11:42
Если вкратце, то нужно будет сохранить свою сборку, в файле AddOns\BlackDPS\Main.lua заменить часть кода и записать свои ID спеллов из сборки чтобы бот мог бинды на них поставить и нажимать соответственно.
Это для пиратки раз если будете использовать в актуале может прилететь бан просто.
Менять нужно снипах в настройке аддона TellMeWhen в папке клиента вов WTF для TWW как раз ...
Re: TWW (fix)
Добавлено: 31 окт 2024, 04:54
cerunn
когда заработает то на оффе.
Re: TWW (fix)
Добавлено: 01 ноя 2024, 11:07
eminsk
cerunn писал(а): ↑31 окт 2024, 04:54
когда заработает то на оффе.
Либо дождаться официальных фиксов а пока используй временный который был сделан выше в этой теме
Re: TWW (fix)
Добавлено: 02 ноя 2024, 08:39
cerunn
ну который только через блекдпс работает?чтоб через тмв работал я не понял как сделать.и когда я запускаю через блекдпс ошибка выскакивает после релога вроде все норм работает.
Re: TWW (fix)
Добавлено: 02 ноя 2024, 22:11
Xen1
Добавляем это в Пользовательский код (снизу) для совместимости с 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
Re: TWW (fix)
Добавлено: 03 ноя 2024, 10:14
splintmaster
Прогресс виден, но скилы не нажимает.
Re: TWW (fix)
Добавлено: 03 ноя 2024, 18:53
Xen1
Перепроверил. Свеже созданная сборка в фиксом для совместимости работает как и должна. Так что проблема не в API TWW.
Re: TWW (fix)
Добавлено: 03 ноя 2024, 19:02
splintmaster
Пишет название скила который нужно нажать но не нажимает его.
По настройкам все проверил, сбросил по умолчанию, переклацал разные варианты... не помогло.
Re: TWW (fix)
Добавлено: 03 ноя 2024, 19:37
Xen1
Возьми в фокус цель каторую пишет рядом со спелом и отпиши о результате, плиз.