Модератор форума: staford11 |
Форум Хитрости Пиратских серверов Читы для WoW Использование Lua скриптов. |
Использование Lua скриптов. |
если про катаклизм то тут не исключена проблема с тем что не все параметры (а конкретно target_name и target_guid) в основных эвентах передаются (например COMBAT_LOG_EVENT) клиенту, не знаю с чем связано, скорее всего изначально не реализовали на эмулях каты, ибо замечал такое также на молтене и год и два года назад. Собственно, если на этих параметрах базируются какие-либо скрипты то они работать не будут. Я поэтому и выкладывал варианты скриптов которые проверяют текущий таргет вместо параметров эвента.
reverse engineering your soul... балуюсь C++, C#, SQL, LUA. Владыка 1C. Окончательно забил на emuDev
|
ребята прочел ваше тему про кик варов и автоовер
пробывал на дк майндфриз работает , на варе кик работает только есть самом одеть 1р щит. овер тоже работает НО очень большие глюки.я из вашего диалога понял ,что надо зациклить чтобы не было лагов и не падал фпс, Просьба к вам, скиньте сюда или в личку , скрипты действительно рабочие без лагов на шилд баш и автоовер. ставить сам знаю как. Спасибо
Сообщение # 153 написано 22.08.2014 в 19:59
|
я так понимаю мне тут с скриптом на баш и овер не помогут?
ребята прочел ваше тему про кик варов и автоовер пробывал на дк майндфриз работает , на варе кик работает только есть самом одеть 1р щит. овер тоже работает НО очень большие глюки.я из вашего диалога понял ,что надо зациклить чтобы не было лагов и не падал фпс, Просьба к вам, скиньте сюда или в личку , скрипты действительно рабочие без лагов на шилд баш и автоовер. ставить сам знаю как. Спасибо |
PQR в руки и подгоняй скрипты из темы под 5.4.2. На сколько я знаю, хотя не интересовался, ещё нет добротного софта с анлоком луа под 5.4.* Добавлено (01.09.2014, 22:05) --------------------------------------------- spartak007001, в теме есть всё необходимое для самостоятельного написания скрипта. Нужно иметь неимоверное количество лени, чтобы тупо сидеть и ждать когда тебе всё сделают. |
Пытаюсь найти и переделать LUA Script для вара на рефлект, но ничего не работает.
Вот все что раньше выкладывались, кто бы мог их довести до ума? Только чтобы вместо строки /CastSpellName, было /RunMacro("reflect") чтобы он срабатывал в любой из стоек Код SpellBase = {"Сглаз", "Превращение", "Глубокая заморозка", "Лик смерти", "Молот правосудия"} SpellFrame = CreateFrame("Frame", "FrameSpell", UIParent); SpellFrame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED"); SpellFrame:SetScript("OnEvent", function(self, event, arg1, arg2, ...) if(event=="COMBAT_LOG_EVENT_UNFILTERED") then for s = 1,#SpellBase do local name = UnitName("player") if arg2 == "SPELL_CAST_SUCCESS" and name ~= arg4 and name == arg7 and arg10 == SpellBase[s] then local enabled = GetSpellCooldown("Отражение заклинания") if enabled == 0 then CastSpellByName("Отражение заклинания") print(arg1,arg2,...) end end end end end) Код function ScriptAddon:OnUpdate(elapsed) self.total = self.total + elapsed if self.total >= 0.05 then self.total = 0 local spell, rank, displayName, icon, startTime, endTime, isTradeSkill = UnitCastingInfo(self.unit) if endTime and endTime/1000 - GetTime() <= 0.2 then self:SetScript("OnUpdate", nil) TargetUnit(self.unit) CastSpellByName("Отражение заклинания") elseif self.endTime-0.2 <= GetTime() then self:SetScript("OnUpdate", nil) TargetUnit(self.unitName) CastSpellByName("Отражение заклинания") end end end P.S. Даже если писать просто /CastSpellName("Отражение заклинания") ничего не происходит |
Хочу чтобы, если кто-то применял Священный щит или что-нибудь подобное, мой вар переключался в защитную стойку и бил по цели Мощный удар щитом. Вот что есть ( переделал выше выложенный скрипт для Мощного удара) Я к примеру не понимаю зачем столько кода , особенно если не для рвр ... Код local Test = CreateFrame("Frame"); local OnEvent = function(self, event, unit, spell) if unit == "player" then return; end if UnitName(unit.."target") == UnitName("player") and spell == "Спел на который реагирует" or "спел на который реагирует" then if ( event == "UNIT_SPELLCAST_SUCCEEDED" ) then CastSpellByName("Спелл которым контрить собрался") end end end Test:SetScript("OnEvent", OnEvent) Test:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED") Ах да чуть не забыл , тс на столько глупый , что после использования скрипта пару раз подряд будет постепенное падение фпс и прийдется делать релоад\релог и тд Добавлено (08.09.2014, 09:15) --------------------------------------------- если про катаклизм то тут не исключена проблема с тем что не все параметры (а конкретно target_name и target_guid) в основных эвентах передаются (например COMBAT_LOG_EVENT) клиенту, не знаю с чем связано, скорее всего изначально не реализовали на эмулях каты, ибо замечал такое также на молтене и год и два года назад. Собственно, если на этих параметрах базируются какие-либо скрипты то они работать не будут. Я поэтому и выкладывал варианты скриптов которые проверяют текущий таргет вместо параметров эвента. Так этану кароче таким образом пытаются бороться с этим делом (на ате к примеру и флайтайм есть и не робит по типу if event = COMBAT_LOG_EVENT and arg2 = SPELL_CAST_SUCCESS then ... , приходится выкручиваться чучуть по другому) Добавлено (08.09.2014, 09:21) --------------------------------------------- Подскажите, какой будет скрипт для поддерживания дебафа на цели от Удара восходящего солнца? Там если если ци достаточно, то использовать Удар восходящего солнца если кд равно 0. Я пытался написать, но чет не получается.... Чота типа Код lalbleat:SetScript("OnUpdate", function(self, elapsed) if not UnitDebuff("название дебафа", "target") then CastSpellByName("абилка вешающая дебаф") -- можно сделать проверку дистанции и чек кд , но это самый простой вариант т.е нет дебафа = бьет ударом и вешает дебаф end end) |
Dreamqt, попробовал то что ты написал, почему то не работает.. я попробовал добавить проверки на кд и дистанцию, все равно не работает, вот что у меня было, в чем может ошибка?
lalbleat:SetScript("OnUpdate", function(self, elapsed) if not UnitDebuff("Смертельное ранение", "target") local enabled = GetSpellCooldown("Удар восходящего солнца") local inRange = IsSpellInRange("Удар восходящего солнца", "target") then RunMacroText(/cast Удар восходящего солнца) end end end end)
Сообщение # 160 написано 08.09.2014 в 12:37
|
local Test = CreateFrame("Frame"); local OnEvent = function(self, event, unit, spell) if unit == "player" then return; end if UnitName(unit.."target") == UnitName("player") and spell == "Спел на который реагирует" or "спел на который реагирует" then if ( event == "UNIT_SPELLCAST_SUCCEEDED" ) then CastSpellByName("Спелл которым контрить собрался") end end end Test:SetScript("OnEvent", OnEvent) Test:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED") Написал спелы,на которые должен пойти "антиконтроль",но почему то "антиконтроль" реагирует на абсолютно все касты,будь то хилка или щит или создание камня здоровья
Сообщение # 161 написано 08.09.2014 в 20:49
|
Dreamqt, попробовал то что ты написал, почему то не работает.. я попробовал добавить проверки на кд и дистанцию, все равно не работает, вот что у меня было, в чем может ошибка? lalbleat:SetScript("OnUpdate", function(self, elapsed) if not UnitDebuff("Смертельное ранение", "target") local enabled = GetSpellCooldown("Удар восходящего солнца") local inRange = IsSpellInRange("Удар восходящего солнца", "target") then RunMacroText(/cast Удар восходящего солнца) end end end end) А что это за куча end end end end , куда и зачем ты их лепишь? Последний end) закрывает функцию , пред последний закрывает твое условие , зачем еще 2 end? Не понимаю... Написал спелы,на которые должен пойти "антиконтроль",но почему то "антиконтроль" реагирует на абсолютно все касты,будь то хилка или щит или создание камня здоровья я хз как вы это юзаете ,работает все ... Вот к примеру : Код test2 = CreateFrame("Frame") local ev = function(self, event, ...) if (event == "COMBAT_LOG_EVENT_UNFILTERED") then local timestamp, type, sourceGUID, sourceName, sourceFlags, destGUID, destName = select(1, ...) if (type == "SPELL_CAST_SUCCESS") then local spellId, spellName = select(9, ...) if spellName == "Спелл" and destGUID == UnitGUID("player") then CastSpellByName("контрспелл") end end end end test2:SetScript("OnEvent", ev) test2:UnregisterEvent("COMBAT_LOG_EVENT_UNFILTERED") test2:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED") |
я хз как вы это юзаете ,работает все ... Вот к примеру : Код test2 = CreateFrame("Frame") local ev = function(self, event, ...) if (event == "COMBAT_LOG_EVENT_UNFILTERED") then local timestamp, type, sourceGUID, sourceName, sourceFlags, destGUID, destName = select(1, ...) if (type == "SPELL_CAST_SUCCESS") then local spellId, spellName = select(9, ...) if spellName == "Спелл" and destGUID == UnitGUID("player") then CastSpellByName("контрспелл") end end end end test2:SetScript("OnEvent", ev) test2:UnregisterEvent("COMBAT_LOG_EVENT_UNFILTERED") test2:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED") Возможно дело в сервере?! я играю на Circle 3.3.5 .И вышеупомянутый скрипт вообще там не работает. с предыдущим скриптом я пытался замутить авто швд,Отчасти работало,но срабатывала почему на все кастующиеся абилки |
Dreamqt, Спасибо за
Код local Test = CreateFrame("Frame"); local OnEvent = function(self, event, unit, spell) if unit == "player" then return; end if UnitName(unit.."target") == UnitName("player") and spell == "Спел на который реагирует" or "спел на который реагирует" then if ( event == "UNIT_SPELLCAST_SUCCEEDED" ) then CastSpellByName("Спелл которым контрить собрался") end end end Test:SetScript("OnEvent", OnEvent) Test:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED") Работает, но бьет только факту как после того как был каст. Но если к примеру я не атаковал эту цель, а каст уже был, то ничего не происходит. Можно ли добавить ещё проверку на наличие бафа?
Сообщение # 168 написано 09.09.2014 в 16:22
|
Всем привет тут такой вопросик: КОпирывал сркрипты на армсвара на дизарм на Баш не работают переписывал под русскую версию всё равно не работаю и макросы вроде всё правильно делую при запуске скрипта пишет:SDM could not find a skript named script_БАш
Мой скрипт: AutoKick = CreateFrame("Frame", "AutoKick", UIParent); AutoKick:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED"); AutoKick:SetScript("OnEvent", function(self, event, arg1, arg2, ...) if(event=="COMBAT_LOG_EVENT_UNFILTERED") then local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") if spell then if interrupt == false then local enabled = GetSpellCooldown("Удар щитом") if enabled == 0 then inRange = IsSpellInRange("Удар щитом", "target") if inRange==1 then if not UnitBuff("target", "Aura Mastery") then if not UnitBuff("target", "Divine Shield") then RunMacro("Баш") end end end end end end end end) Макрос: #showtooltip Удар щитом /equip Проклятье Трогга, секира зиморожденного короля /equip Осадный щит разгневанного гладиатора /cast Удар щитом Помогите пожайлуста не пойму в чём проблема Играю на Circle 335
Сообщение # 169 написано 10.09.2014 в 16:11
|
Друзья!!! Подскажите как называется программа с помошью которой писать такие скрипты?
И что должно писать в чате когда пишу /sdm ru название макроса..? И кто может сделать новичку Скрипт чтоб при проке Ледяная ярлость юзался Скилл: Удар чумы???? Добавлено (11.09.2014, 21:18) --------------------------------------------- Пишит^ SDM did Not recognize the command "Ru Bash" Макрос брал из 1го поста на дк с автокиком в каст на 0.6 Добавлено (11.09.2014, 21:39) --------------------------------------------- Напишите плз нубу макрос на авто кик и как его назвать и что в чат написать чтоб он зарабьотал на дк плз Добавлено (11.09.2014, 21:41) --------------------------------------------- Тока что писалмакрос он работал потом сделал макрос на кик на 0.6 а тот убрал и вообще некакие нестали работать Добавлено (11.09.2014, 21:51) Цитата function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local enabled = GetSpellCooldown("Заморозка разума") local inRange = IsSpellInRange("Заморозка разума", "target") if spell then if interrupt == false and enabled == 0 and inRange == 1 then RunMacroText("/cast Заморозка разума") end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) При создании макроса нажал New потом поменял на Script, ввел имя Bash сохранил. В чат написал /SDM ru Bash мне написало в Ответ: Цитата SDM did not recognize the command "ru Bash" Как уже только непробывал( помогите хотябы в Лс напишите что не так делаю + маленький тыкну):yes: Добавлено (11.09.2014, 21:56) |
Можешь дать скрипт который работает 100% на ювове просто этот реально реагирует на все Добавлено (12.09.2014, 14:58)
Сообщение # 171 написано 12.09.2014 в 14:58
|
Друзья!!! Подскажите как называется программа с помошью которой писать такие скрипты? И что должно писать в чате когда пишу /sdm ru название макроса..? И кто может сделать новичку Скрипт чтоб при проке Ледяная ярлость юзался Скилл: Удар чумы???? Добавлено (11.09.2014, 21:18) --------------------------------------------- Пишит^ SDM did Not recognize the command "Ru Bash" Макрос брал из 1го поста на дк с автокиком в каст на 0.6 Добавлено (11.09.2014, 21:39) --------------------------------------------- Напишите плз нубу макрос на авто кик и как его назвать и что в чат написать чтоб он зарабьотал на дк плз Добавлено (11.09.2014, 21:41) --------------------------------------------- Тока что писалмакрос он работал потом сделал макрос на кик на 0.6 а тот убрал и вообще некакие нестали работать Добавлено (11.09.2014, 21:51) --------------------------------------------- Попробывал Макрос function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local enabled = GetSpellCooldown("Заморозка разума") local inRange = IsSpellInRange("Заморозка разума", "target") if spell then if interrupt == false and enabled == 0 and inRange == 1 then RunMacroText("/cast Заморозка разума") end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) При создании макроса нажал New потом поменял на Script, ввел имя Bash сохранил. В чат написал /SDM ru Bash мне написало в Ответ: SDM did not recognize the command "ru Bash" Как уже только непробывал( помогите хотябы в Лс напишите что не так делаю + маленький тыкну):yes: Добавлено (11.09.2014, 21:56) --------------------------------------------- почему он пишит что команда не опознана? Мой основной Акк Кто поможет поставлю еще+++))
Сообщение # 172 написано 12.09.2014 в 16:22
|
Элем шаман
Цитата # Version: 20100104 /run vGCD=({GetSpellInfo("Малая волна исцеления")})[7]/1000; /run vLVB={GetSpellCooldown("Выброс лавы")}; if vLVB[1]==0 then vLVB=0 else vLVB=vLVB[2]+vLVB[1]-GetTime() end; /run if not UnitBuff("player", "Водный щит") then CastSpellByName("Водный щит") end; /run if UnitAffectingCombat("player")==1 and ({GetTotemInfo(4)})[2]=="" then CastSpellByName("Зов стихий") end; /run if GetSpellCooldown("Гроза")==0 and UnitPower("player")/UnitPowerMax("player")<0.40 and UnitAffectingCombat("player")==1 then CastSpellByName("Гроза") end; /run local i=1 while(i<=40)do local a={UnitDebuff("target",i)}; if a[1]=="Огненный шок" and a[8]=="player" and a[7]-GetTime()>2 then break else i=i+1 end end; if i>40 and GetSpellCooldown("Огненный шок")==0 then CastSpellByName("Огненный шок") end; /run if GetSpellCooldown("Выброс лавы")==0 then CastSpellByName("Выброс лавы") end; /run if vLVB>vGCD and ({GetTotemInfo(1)})[2]=="Тотем магмы VII" then if GetSpellCooldown("Кольцо огня")==0 then CastSpellByName("Кольцо огня") elseif GetSpellCooldown("Гроза")==0 then CastSpellByName("Гроза") end end; /run local t=({GetSpellInfo("Цепная молния")})[7]/1000; if vLVB>t and GetSpellCooldown("Цепная молния")==0 and UnitBuff("player", "Ясность мысли") then CastSpellByName("Цепная молния") end; /run if vLVB>vGCD and ({GetTotemInfo(1)})[2]=="" and ({GetTotemInfo(4)})[2]~="" then CastSpellByName("Тотем магмы") end; /run local t=({GetSpellInfo("Молния")})[7]/1000; if vLVB>t then CastSpellByName("Молния") end; /run local be=({GetTalentInfo(1,18)})[5]; local rev=({GetTalentInfo(1,6)})[5]; local fscd=8-be-5*rev; local fs=0; local i=1; while(i<=40)do local a={UnitDebuff("target",i)}; if a[1]=="Огненный шок" and a[8]=="player" then fs=a[7]-GetTime() break else i=i+1 end end; if vLVB>vGCD and fs>fscd and GetSpellCooldown("Ледяной шок")==0 then CastSpellByName("Ледяной шок") end; Добавлено (17.09.2014, 02:05)
Сообщение # 173 написано 17.09.2014 в 02:05
|
При создании макроса нажал New потом поменял на Script, ввел имя Bash сохранил. В чат написал /SDM ru Bash мне написало в Ответ: SDM did not recognize the command "ru Bash" Код /sdm run Bash потому что Ребята подскажите макрос , на сбив каста удар щитом с боевой стойки Тоесть автомотический еквип и сбив каста в 0.8 допустим (На т1) Полистай тему, много раз уже выкладывали из любой стойки автокик Только допиши Код if spell then if interrupt == false and enabled == 0 and inRange == 1 then local finish = endTime/1000 - GetTime() if finish <= 0.6 then а вообще где-то в теме готовый уже был |
Нашел скрипт на ваниш для роги (можно переделать под любые нужды) на одном англ.сайте. Проблема в том,что не юзается ваниш если летит Лик смерти или Глубокая заморозка (к примеру) Вообщем скрипт не срабатывает от заклинаний,которые произносятся мгновенно. Ваниш срабатывает только на заклинания которые кастятся. Может кто помочь с этим?И да еще при срабатывании скрипта на экране выскакивает окошко что данное действие доступно только интерфейсу близзард (сам скрипт в это время срабатывает) Перепробывал все анлокеры какие есть,скорее всего дело в самом скрипте. Конфликтуют какие то строчки,или типо того. Пробуйте,тестируйте local ScriptAddon = CreateFrame("Frame", "vanish1", nil) function ScriptAddon:OnEvent(event, ...) -- functions created in "object:method"-style have an implicit first parameter of "self", which points to object self[event](self, ...) -- route event parameters to ScriptAddon:event methods end ScriptAddon:SetScript("OnEvent", ScriptAddon.OnEvent) ScriptAddon:RegisterEvent("UNIT_SPELLCAST_START") function ScriptAddon:UNIT_SPELLCAST_START(unit) local spell, rank, displayName, icon, startTime, endTime, isTradeSkill = UnitCastingInfo(unit) if not spell then return end if displayName == "Сюда пишем спелл,который хотим словить ванишем,к примеру - Страх" then self:SetScript("OnUpdate", self.OnUpdate) self.unit = unit self.total = 0 self.endTime = endTime/1000 -- this is equal to GetTime() at which the cast will end self.unitName = UnitName(unit) end end function ScriptAddon:OnUpdate(elapsed) self.total = self.total + elapsed -- only call function every 50ms to improve performance if self.total >= 0.05 then self.total = 0 local spell, rank, displayName, icon, startTime, endTime, isTradeSkill = UnitCastingInfo(self.unit) if endTime and endTime/1000 - GetTime() <= 0.2 then -- stop using performance heavy onupdate function if no spellcast is currently going on self:SetScript("OnUpdate", nil) TargetUnit(self.unit) CastSpellByName("Сюда пишем к примеру Ваниш или спелл рефлект") elseif self.endTime-0.2 <= GetTime() then -- lost Unit (changed target e.g.), guessing cast timer self:SetScript("OnUpdate", nil) TargetUnit(self.unitName) CastSpellByName("Сюда пишем к примеру Ваниш или спелл рефлект") end end end Какой-то он длинный, и слишком много ненужного текста Добавлено (17.09.2014, 16:29) --------------------------------------------- Элем шаман # Version: 20100104 /run vGCD=({GetSpellInfo("Малая волна исцеления")})[7]/1000; /run vLVB={GetSpellCooldown("Выброс лавы")}; if vLVB[1]==0 then vLVB=0 else vLVB=vLVB[2]+vLVB[1]-GetTime() end; /run if not UnitBuff("player", "Водный щит") then CastSpellByName("Водный щит") end; /run if UnitAffectingCombat("player")==1 and ({GetTotemInfo(4)})[2]=="" then CastSpellByName("Зов стихий") end; /run if GetSpellCooldown("Гроза")==0 and UnitPower("player")/UnitPowerMax("player")<0.40 and UnitAffectingCombat("player")==1 then CastSpellByName("Гроза") end; /run local i=1 while(i<=40)do local a={UnitDebuff("target",i)}; if a[1]=="Огненный шок" and a[8]=="player" and a[7]-GetTime()>2 then break else i=i+1 end end; if i>40 and GetSpellCooldown("Огненный шок")==0 then CastSpellByName("Огненный шок") end; /run if GetSpellCooldown("Выброс лавы")==0 then CastSpellByName("Выброс лавы") end; /run if vLVB>vGCD and ({GetTotemInfo(1)})[2]=="Тотем магмы VII" then if GetSpellCooldown("Кольцо огня")==0 then CastSpellByName("Кольцо огня") elseif GetSpellCooldown("Гроза")==0 then CastSpellByName("Гроза") end end; /run local t=({GetSpellInfo("Цепная молния")})[7]/1000; if vLVB>t and GetSpellCooldown("Цепная молния")==0 and UnitBuff("player", "Ясность мысли") then CastSpellByName("Цепная молния") end; /run if vLVB>vGCD and ({GetTotemInfo(1)})[2]=="" and ({GetTotemInfo(4)})[2]~="" then CastSpellByName("Тотем магмы") end; /run local t=({GetSpellInfo("Молния")})[7]/1000; if vLVB>t then CastSpellByName("Молния") end; /run local be=({GetTalentInfo(1,18)})[5]; local rev=({GetTalentInfo(1,6)})[5]; local fscd=8-be-5*rev; local fs=0; local i=1; while(i<=40)do local a={UnitDebuff("target",i)}; if a[1]=="Огненный шок" and a[8]=="player" then fs=a[7]-GetTime() break else i=i+1 end end; if vLVB>vGCD and fs>fscd and GetSpellCooldown("Ледяной шок")==0 then CastSpellByName("Ледяной шок") end; Добавлено (17.09.2014, 02:05) --------------------------------------------- вся ротация в 1й кнопке) Набросок какой то, работать конечно же не будет |
didjeypvpdk, работает на Хорошо на бг можно бегать и прожимат ьтолько 1 и все
Добавлено (17.09.2014, 17:06)
Сообщение # 177 написано 17.09.2014 в 17:06
|
Сообщение # 178 написано 17.09.2014 в 21:04
|
else if UnitIsFriend("target", "player") then RunMacro ("Target") SpellStopCasting() CastSpellByName ("") else RunMacro ("Target") SpellStopCasting() CastSpellByName ("") Зачем этот текст? Добавлено (19.09.2014, 22:56)
Сообщение # 180 написано 19.09.2014 в 22:56
|
| |||