Модератор форума: staford11 |
Форум Хитрости Пиратских серверов Читы для WoW Использование Lua скриптов. |
Использование Lua скриптов. |
Сообщение # 2251 написано 17.04.2017 в 21:20
|
бк или ванила? 1) posX, posY = GetPlayerMapPosition("unit"), получить координаты,посмотреть координаты через t сек posx1,posy1(вешаем все это на onupdate) получить расстояние пройденное sqrt( (x-x1)^2+(y-y1)^2 ну и получить скорость не тестил 2) можно прочитать значение скорости из памяти найдя его в читенджине ,адрес скорости будет статический |
if macros["spellreflect"]
and cdRemains(23920) > 4 and not UnitBuffID("player", 23920) then ResetMacros() MacroStatusFrameUpdate() if not IsTwoHanderEquiped() then EquipTwoHander() end end if cdRemains(23920) == 0 and macros["spellreflect"] then local t = StringSplicer(GetCVar("SRtargs")) for i=0,#t do local SRTarget = t if SRTarget == "debug" and rage >= 10 then if not IsOneHandAndShieldEquiped() then EquipOneHandAndShield() end _castSpell(23920) end if UnitExists(SRTarget ) and UnitCanAttack("player", SRTarget ) ~= nil and UnitCastingInfo(SRTarget) and rage >= 10 then local castName,_,_,_,castStartTime,castEndTime,_,_,castNotInterruptable = UnitCastingInfo(SRTarget) local timeSinceStart = (GetTime() * 1000 - castStartTime) / 1000 local castTime = castEndTime - castStartTime local currentPercent = timeSinceStart / castTime * 100000 if currentPercent >= 70 then if not IsOneHandAndShieldEquiped() then EquipOneHandAndShield() end _castSpell(23920) end end end end меняет оружие, но не рефлектит,в чем проблема? и куда прописать отмену бш?
Сообщение # 2253 написано 18.04.2017 в 14:35
|
Попробуй CastSpellByID(id) или CastSpellByName("name") отмена бш if UnitBuff("player","Вихрь клинков") then CancelUnitBuff("player","Вихрь клинков") end вписываешь в свои блоки перед кастом рефлекта _castSpell(23920) или как то так а вообще насколько я помню, все переменные начинающиеся с нижнего подчеркивания, зарезервированы от использования, поэтому тут какая то чушь, попробуй убрать подчеркивания перед кастспелл |
if macros["fastcharge"]
and cdRemains(100) > 4 then ResetMacros() MacroStatusFrameUpdate() end if cdRemains(100) == 0 and macros["fastcharge"] then local t = StringSplicer(GetCVar("FCtargs")) for i=0,#t do local FCtargs= t if UnitExists(FCtargs) and UnitCanAttack("player", FCtargs) ~= nil then _castSpell(100, FCtargs) end end end что тут не так? почему не пашет?и что такое FCtargs |
1) posX, posY = GetPlayerMapPosition("unit"), получить координаты,посмотреть координаты через t сек posx1,posy1(вешаем все это на onupdate) получить расстояние пройденноеsqrt( (x-x1)^2+(y-y1)^2 ну и получить скорость не тестил это всего лишь кусок кода. другая часть, возможно, написана в аддоне, ну или в том же пкре, но управление сделано через макросы и cvar.
Сообщение # 2256 написано 19.04.2017 в 00:18
|
это всего лишь кусок кода. другая часть, возможно, написана в аддоне, ну или в том же пкре, но управление сделано через макросы и cvar. Добавлено (19.04.2017, 00:29) --------------------------------------------- а вот что во вкладке макрос Код if not MacroInit then MacroInit = true CreateFont("cpoworksPvP") cpoworksPvP:SetFont("Fonts\\calibrib.ttf",12,"OUTLINE") cpoworksPvP:SetJustifyH("LEFT") if cpoworksPvP:GetFont()~=nil then if StatusFrame==nil then StatusFrame=CreateFrame("Frame") StatusFrame:ClearAllPoints() StatusFrame:SetHeight(12) StatusFrame:SetWidth(300) StatusFrame:Show() StatusFrame.text=StatusFrame:CreateFontString( nil,"BACKGROUND","cpoworksPvP") StatusFrame.text:SetAllPoints() StatusFrame:SetPoint("TOP",ChatFrame1, 0,40) StatusFrame:SetScript("OnUpdate",StatusFrame_OnUpdate) StatusFrame:EnableMouse(true) StatusFrame:SetMovable(true) StatusFrame:RegisterForDrag("LeftButton") StatusFrame:SetScript("OnDragStart",StatusFrame.StartMoving) StatusFrame:SetScript("OnDragStop",StatusFrame.StopMovingOrSizing) StatusFrame.text:SetText("|cffFFBE69Macros: |cffb73737None".." "..BurstModeText()) end SLASH_STATUSFRAME1="/statusframe" SlashCmdList.STATUSFRAME=function() if StatusFrame:IsShown()then StatusFrame:Hide() else StatusFrame:Show() end end end function MacroStatusFrameUpdate() if StatusFrame==nil then return false end; local MacroEnabled=false; if macros["toggle"]then MacroEnabled=GetCVar("zugqa") end if not MacroEnabled then macroKeys={"spellreflect", "fastkick", "fastcharge", "fastintercept"} for i=1, #macroKeys do if macros[macroKeys[i]]then MacroEnabled = macroKeys [i]end end end local function X(E2NZK,WNWWe) return E2NZK:upper()..WNWWe:lower() end local MacroStatusTextString=(MacroEnabled)and "|cffFFBE69Macros: |cFF00FF00"..MacroEnabled:gsub("(%a)([%w_']*)",X)or"|cffFFBE69Macros: |cffb73737None" StatusFrame.text:SetText(MacroStatusTextString.." "..BurstModeText()) return true end macros = { ["spellreflect"]=false, ["toggle"]=false, ["fastkick"]=false, ["fastcharge"]=false, ["fastintercept"]=false, } function ResetMacros() macros["spellreflect"]=false macros["fastkick"]=false macros["fastcharge"]=false macros["fastintercept"]=false macros["toggle"]=false end if lastMacro == nil then lastMacro=0 end SLASH_SPELLREFLECT1="/SPELLREFLECT" SLASH_SPELLREFLECT2="/SR" function SlashCmdList.SPELLREFLECT(Msg) if not macros["spellreflect"]then ResetMacros() if not GetCVar("SRtargs") then RegisterCVar("SRtargs",nil) end if string.len(Msg)>0 then SetCVar("SRtargs",Msg) else SetCVar("SRtargs","mouseover, focus, target") end macros["spellreflect"]=true; lastMacro=GetTime() MacroStatusFrameUpdate() elseif (GetTime() - lastMacro) > 2 then macros["spellreflect"]=false MacroStatusFrameUpdate() end end SLASH_FASTKICK1="/FASTKICK" function SlashCmdList.FASTKICK(Msg) if not macros["fastkick"]then ResetMacros() if not GetCVar("FKtargs") then RegisterCVar("FKtargs",nil) end if string.len(Msg)>0 then SetCVar("FKtargs",Msg) else SetCVar("FKtargs","mouseover, focus, target") end macros["fastkick"]=true; lastMacro=GetTime() MacroStatusFrameUpdate() elseif (GetTime() - lastMacro) > 2 then macros["fastkick"]=false MacroStatusFrameUpdate() end end SLASH_FASTCHARGE1="/FASTCHARGE" function SlashCmdList.FASTCHARGE(Msg) if not macros["fastcharge"]then ResetMacros() if not GetCVar("FCtargs") then RegisterCVar("FCtargs",nil) end if string.len(Msg)>0 then SetCVar("FCtargs",Msg) else SetCVar("FCtargs","mouseover, focus, target") end macros["fastcharge"]=true; lastMacro=GetTime() MacroStatusFrameUpdate() elseif (GetTime() - lastMacro) > 2 then macros["fastcharge"]=false MacroStatusFrameUpdate() end end SLASH_FASTINTERCEPT1="/FASTINTERCEPT" function SlashCmdList.FASTINTERCEPT(Msg) if not macros["fastintercept"]then ResetMacros() if not GetCVar("FItargs") then RegisterCVar("FItargs",nil) end if string.len(Msg)>0 then SetCVar("FItargs",Msg) else SetCVar("FItargs","mouseover, focus, target") end macros["fastintercept"]=true; lastMacro=GetTime() MacroStatusFrameUpdate() elseif (GetTime() - lastMacro) > 2 then macros["fastintercept"]=false MacroStatusFrameUpdate() end end SLASH_SETUPMACROS1="/SETUPMACROS" function SlashCmdList.SETUPMACROS(Msg) print("Setting up Macros") if not GetMacroInfo("Spell Reflect") then CreateMacro("Spell Reflect", 1, "#showtooltip Spell Reflection \n/spellreflect target", 1) end if not GetMacroInfo("Fast Kick") then CreateMacro("Fast Kick", 1, "#showtooltip Pummel \n/fastkick target", 1) end if not GetMacroInfo("Fast Charge") then CreateMacro("Fast Charge", 1, "#showtooltip Charge \n/fastcharge target", 1) end if not GetMacroInfo("Fast Intercept") then CreateMacro("Fast Intercept", 1, "#showtooltip Intercept \n/fastintercept target", 1) end end end |
Сообщение # 2258 написано 19.04.2017 в 06:27
|
prn ()1) posX, posY = GetPlayerMapPosition("unit"), получить координаты,посмотреть координаты через t сек posx1,posy1(вешаем все это на onupdate) получить расстояние пройденноеsqrt( (x-x1)^2+(y-y1)^2 ну и получить скорость не тестил в каждой зоне своя координатная сетка, поэтому не вариант.
Сообщение # 2259 написано 19.04.2017 в 12:30
|
Сообщение # 2260 написано 19.04.2017 в 12:58
|
может кто написать скрипт на фаст чардж и интерцепт?для пкр
Добавлено (19.04.2017, 14:36) Код if cdRemains(61490) > 4 then if GetShapeshiftForm() ~= 1 then CastShapeshiftForm(1) end if macros["fastintercept"] then ResetMacros() MacroStatusFrameUpdate() end end if cdRemains(61490) == 0 and macros["fastintercept"] and rage >= 10 then local t = StringSplicer(GetCVar("FItargs")) for i=0,#t do local FItargs= t [i]if UnitExists(FItargs) and UnitCanAttack("player", FItargs) ~= nil then if GetShapeshiftForm() ~= 3 then CastShapeshiftForm(3) end _castSpell(61490, FItargs) end end end вроде полный код Добавлено (19.04.2017, 15:32) Код Message: [string " function pqrFunc0() if not FuncLoaded then..."]:443: CreateMacro() failed, already have 36 macros Time: 04/19/17 12:31:49 Count: 389 Stack: [C]: in function `CreateMacro' [string " function pqrFunc0() if not FuncLoaded then..."]:443: in function `?' Interface\FrameXML\ChatFrame.lua:4049: in function <Interface\FrameXML\ChatFrame.lua:3997> [C]: in function `ChatEdit_ParseText' Interface\FrameXML\ChatFrame.lua:3660: in function `ChatEdit_SendText' Interface\FrameXML\ChatFrame.lua:3698: in function `ChatEdit_OnEnterPressed' [string "*:OnEnterPressed"]:1: in function <[string "*:OnEnterPressed"]:1> Locals: (*temporary) = "Spell Reflect" (*temporary) = 1 (*temporary) = "#showtooltip Spell Reflection /spellreflect target" (*temporary) = 1
Сообщение # 2262 написано 19.04.2017 в 15:32
|
ну почему же не вариант,для скрипта факт стоит/бежит вполне подойдет,а если уж надо скорость, например можно вписать коэф dx dy для основных арен бг их там не так уж и много,других вариантов без чтения памяти незнаю это нужно писать скрипт, бегать с ним собирать данные, хранить где-то таблицу с этими данными. да ну не вариант.. да и плюс ко всему, таким образом можно получить скорость только плеера и группы/рейда. тогда уж по талантам и аурам проще будет вычислить скорость. Кто обьяснит зачем нужен pqr если все то же самое можно сделать внутри клиента? для winXP другого анлокера вроде и нету.
Сообщение # 2263 написано 19.04.2017 в 18:25
|
Здравствуйте, нужна помощь.
Есть скрипт на авара, на превосходство. Код function Destroy(self, elapsed) local enabled = GetSpellCooldown("Ïðåâîñõîäñòâî") local rage = UnitPower("player") local inRange = IsSpellInRange("Ïðåâîñõîäñòâî", "target") if UnitBuff("player","Âêóñ êðîâè") then if enabled == 0 and inRange == 1 and rage >= 15 then RunMacro("Ïðåâîñõîäñòâî") end end end CreateFrame("Frame", "DestroyFrame") DestroyFrame:SetScript("OnUpdate", Destroy) И еще, возможно ли сделать скрипт, что бы когда у противника меньше 20% ХП, Казнь кастовалась автоматически? Перечитал все 76 страниц форума, находил предположительно как это сделать, но не получалось. ПОмогите пожалуйстац
Сообщение # 2265 написано 21.04.2017 в 11:31
|
Подскажи на каком ты патче играешь, и чуть позже напишу тебе Хотя, пофиг. Сам вставишь нужные значения стоимости спелов Код local war = CreateFrame("Frame") war:SetScript("OnUpdate", function(_,e) if UnitExists("target") and UnitAffectingCombat("player") == 1 then local enabled = GetSpellCooldown("Казнь") local enabled2 = GetSpellCooldown("Превосходство") local usable2 = IsUsableSpell("Превосходство") local usable = IsUsableSpell("Казнь") local rage = UnitPower("player") local inRange = IsSpellInRange("Превосходство", "target") if enabled == 0 and usable and rage >= 15 and inRange then CastSpellByName("Казнь") end if enabled2 == 0 and usable2 and rage >= 15 and inRange then CastSpellByName("Превосходство") end end end) может надо кому, накатал недавно что-то вроде ротации со стенсденсом для армса, ката циркуль Код local war = CreateFrame("Frame") war:SetScript("OnUpdate", function(_,e) if UnitExists("target") and UnitAffectingCombat("player") == 1 and IsSpellInRange("Превосходство", "target") == 1 then local enabled = GetSpellCooldown("Казнь") local enabled2 = GetSpellCooldown("Превосходство") local enabled3 = GetSpellCooldown("Смертельный удар") local enabled4 = GetSpellCooldown("Удар колосса") local enabled5 = GetSpellCooldown("Мощный удар") local enabled6 = GetSpellCooldown("Удар героя") local enabled7 = GetSpellCooldown("Стойка берсерка") local enabled8 = GetSpellCooldown("Боевая стойка") local enabled9 = GetSpellCooldown("Кровопускание") local enabled10 = GetSpellCooldown("Ярость берсерка") local enabled11 = GetSpellCooldown("Боевой крик") local usable = IsUsableSpell("Казнь") local usable2 = IsUsableSpell("Превосходство") local usable3 = IsUsableSpell("Смертельный удар") local usable4 = IsUsableSpell("Удар колосса") local usable5 = IsUsableSpell("Мощный удар") local usable6 = IsUsableSpell("Удар героя") local usable7 = IsUsableSpell("Кровопускание") local stance = GetShapeshiftForm() local rage = UnitPower("player") if not UnitDebuff("target","Кровопускание",nil,"PLAYER") and enabled9 == 0 then if stance ~= 1 and enabled9 == 0 and enabled8 == 0 then CastSpellByName("Боевая стойка") end if stance == 1 then CastSpellByName("Кровопускание") end end if UnitBuff("player","Вкус крови") or usable2 and rage >= 5 and enabled2 == 0 then if stance ~= 1 and enabled8 == 0 then CastSpellByName("Боевая стойка") end CastSpellByName("Превосходство") end if enabled10 == 0 then CastSpellByName("Ярость берсерка") end if rage < 20 and enabled11 == 0 then CastSpellByName("Боевой крик") end if usable3 and enabled3 == 0 then if stance ~= 3 and enabled7 == 0 then CastSpellByName("Стойка берсерка") end CastSpellByName("Смертельный удар") end if enabled4 == 0 or UnitBuff("player","Внезапная смерть") and rage >= 20 then if stance ~= 3 and enabled7 == 0 then CastSpellByName("Стойка берсерка") end CastSpellByName("Удар колосса") end if usable4 and enabled4 == 0 then if stance ~= 3 and enabled7 == 0 then CastSpellByName("Стойка берсерка") end CastSpellByName("Удар колосса") end if rage > 80 or UnitBuff("player","Смертельное спокойствие") then if usable6 and enabled6 == 0 then if stance ~= 3 and enabled7 == 0 then CastSpellByName("Стойка берсерка") end CastSpellByName("Удар героя") end end if enabled == 0 and usable then if stance ~= 3 and enabled7 == 0 then CastSpellByName("Стойка берсерка") end if enabled == 0 then CastSpellByName("Казнь") end end if enabled4 ~= 0 and enabled3 ~= 0 and enabled5 == 0 and usable5 then if stance ~= 3 and enabled7 == 0 then CastSpellByName("Стойка берсерка") end if stance == 3 then CastSpellByName("Мощный удар") end end CastSpellByName("Боевая стойка") end end) |
ну почему же не вариант,для скрипта факт стоит/бежит вполне подойдет,а если уж надо скорость, например можно вписать коэф dx dy для основных арен бг их там не так уж и много,других вариантов без чтения памяти незнаю можно поподробнее на счет арен бг? В инстах, на бг и арене GetPlayerMapPosition("player") выдает нули. Хотелось бы узнать бежит ли перс или стоит на месте
Сообщение # 2267 написано 25.04.2017 в 15:50
|
Йо
Может кто написать скрипт на рефлект кровавого ужаса? Что-то вроде Если на цели бафф Кровавый ужас Проверка на доступность рефлекта КастСпелБайНейм Отражение заклинания Заранее спасибо И еще, инстантные спелы же поймать не возможно?(Ванишем/кошем/рефлектом/зеленкой и прочей фигней)
Сообщение # 2269 написано 26.04.2017 в 00:57
|
И еще, инстантные спелы же поймать не возможно?(Ванишем/кошем/рефлектом/зеленкой и прочей фигней) по идее все зависит от флайтайма на твоем сервере(и от твоего пинга) ивент UNIT_SPELLCAST_SUCCEDED вполне спокойно хендлит инстантные касты, так что успеет скрипт прожать что там надо зависит только от пинга и флайтайма отслеживаемой бяки Так что это вполне реально, только не всегда может корректно работать |
Нужна помощь, как всунуть условие, если активен талант?
http://wow.gamepedia.com/API_GetTalentInfoByID Returns information about a talent. talentID, name, texture, selected, available, spellID, unknown, row, column, known = GetTalentInfoByID(talentID, talentGroup[, isInspect, inspectedUnit]) GetTalentInfoByID(talentID, talentGroup[, isInspect, inspectedUnit]) - етой строчкой играю на легионе
Сообщение # 2273 написано 02.05.2017 в 20:38
|
Germination В спелбуке пасивки нету, как спел отдельно , тоже нету, он только есть в талантах. Нужно примерно для условие if talent is know then ... Где talent условие что талант активен/вибран Я не пойму, ты хочешь отслеживать прок этого таланта или что? Потому что талант будет активен ВСЕГДА пока у тебя активна ветка с ним, в таком случае твое условие более чем бесполезно, а вообще если ты подробнее опишешь что делает прок этого таланта, то тебе смогут помочь быстрее (я просто не играл на аддонах новее катаклизма) |
ребят, помогите. Нужен скрипт на каст по цели фокуса если нет на нём дебафа, если можно без выбора в таргет его, вот только что то не так тут, к примеру:
Код /run if (not UnitDebuff("focustarget", "Правосудие света", nil, "PLAYER")) and GetSpellCooldown("Правосудие света")==0 then RunMacroText("/cast Правосудие света") end и добавить бы проверку на расстояние типо UnitInRange("focustarget") типо так, знающие помогите
Сообщение # 2277 написано 05.05.2017 в 22:07
|
ребят, помогите. Нужен скрипт на каст по цели фокуса если нет на нём дебафа, если можно без выбора в таргет его, вот только что то не так тут, к примеру: Код /run if (not UnitDebuff("focustarget", "Правосудие света", nil, "PLAYER")) and GetSpellCooldown("Правосудие света")==0 then RunMacroText("/cast Правосудие света") end и добавить бы проверку на расстояние типо UnitInRange("focustarget") типо так, знающие помогите Чем такая конструкция не устраивает? Код if not UnitDebuff("focustarget", "Правосудие света", nil, "PLAYER") and GetSpellCooldown("Правосудие света") == 0 and IsSpellInRange("Правосудие света", "focustarget") == 1 then CastSpellByName("Правосудие света","focustarget") end UnitInRange("юнитид") валидно только для членов пати/рейда и тут не катит, поэтому обычной проверки на рендж спела должно хватить |
Punisher45, спасибо, помог. Вроде всё устраивает, от души.
Добавлено (05.05.2017, 22:56) --------------------------------------------- Код /run if (not UnitBuff("focus", "Частица Света", nil, "PLAYER")) then RunMacroText("/cast [target=focus]Частица света") end или лучше так как ты показал? Код /run if not UnitBuff("focus", "Частица Света", nil, "PLAYER") and GetSpellCooldown("Частица Света") == 0 and IsSpellInRange("Частица Света", "focus") == 1 then CastSpellByName("Частица Света","focus") end Если чо поправь, вдруг не так. Подразумевается использовать в рейде на бг, так же и тот скрипт что высше с правосудием |
Добавлено (05.05.2017, 22:56) --------------------------------------------- Код /run if (not UnitBuff("focus", "Частица Света", nil, "PLAYER")) then RunMacroText("/cast [target=focus]Частица света") end или лучше так как ты показал? Код /run if not UnitBuff("focus", "Частица Света", nil, "PLAYER") and GetSpellCooldown("Частица Света") == 0 and IsSpellInRange("Частица Света", "focus") == 1 then CastSpellByName("Частица Света","focus") end Если чо поправь, вдруг не так. Подразумевается использовать в рейде на бг, так же и тот скрипт что высше с правосудием Да как хочешь, и то и то будет работать Вот тебе еще 1 полезный скрипт для ассиста холипалом Код if IsUsableSpell("Молот гнева") and GetSpellCooldown("Молот гнева") == 0 and IsSpellInRange("Молот гнева", "focustarget") then CastSpellByName("Молот гнева","focustarget") end При желании можно его и на апдейт повесить Код local molot = CreateFrame("Frame") molot:SetScript("OnUpdate", function(_,e) if IsUsableSpell("Молот гнева") and GetSpellCooldown("Молот гнева") == 0 and UnitExists("focustarget") and UnitIsDead("focustarget") ~= 1 and IsSpellInRange("Молот гнева", "focustarget") then CastSpellByName("Молот гнева","focustarget") end end) |
| |||