| Модератор форума: staford11 |
| Форум Хитрости Пиратских серверов Читы для WoW Использование Lua скриптов. |
| Использование Lua скриптов. |
Прямо в этой же теме на 7 странице лежит
Код 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") Твой скрипт не дополнить для скатера и блайнда, в нем проверка на длину каста. UNIT_SPELLCAST_START - это начало каста по которому и происходит проверка длинны. Скатер, блайнд не имеют начало каста, у них есть только успешное применение SPELL_CAST_SUCCESS, седакт можешь вбить после шипа через or. |
Kelwin
Я писал с правильным регистром, просто на форуме так отписал. А можно как нибудь задавать приоритет определенных действий? На примере Код local plRange = IsSpellInRange("Рассеивание заклинаний", "player") local oneRange = IsSpellInRange("Рассеивание заклинаний", "party1") local pl = "player" local one = "party1" if plRange == 1 then if UnitDebuff(pl, "каст1"(приоритет 1)) or UnitDebuff(pl, "каст2"(приоритет 2)) then CastSpellByName("диспел", "player") end end if oneRange == 1 then if UnitDebuff(one, "каст1"(приоритет 10)) or UnitDebuff(one, "каст2"(приоритет 8)) then CastSpellByName("диспел", "party1") end end |
Код if UnitDebuff(pl, "каст1"(приоритет 1)) then CastSpellByName("диспел", "player") elseif UnitDebuff(pl, "каст2"(приоритет 2)) then CastSpellByName("диспел", "player") end С диспелом конечно неудачный пример, но тем не менее... Добавлено (29.10.2014, 21:39) Какой спелл ты кастовал? |
Код if (type == "SPELL_CAST_SUCCESS") then local spellId, spellName = select(9, ...) if spellName == "Коварный удар" and destGUID == UnitGUID("player") then SpellStopCasting() end end потом тоже самое через макрос Код if (type == "SPELL_CAST_SUCCESS") then local spellId, spellName = select(9, ...) if spellName == "Коварный удар" and destGUID == UnitGUID("player") then RunMacro("holy1") end end holy1 Код /run SpellStopCasting() /run CastSpellByName("Кольцо света") Простое нажатие работало, с проверкой на коварный удар нет, швд же отлично отдавалось коварный удар и холинову для наглядности использовал if UnitDebuff(pl, "каст1"(приоритет 1)) then CastSpellByName("диспел", "player") elseif UnitDebuff(pl, "каст2"(приоритет 2)) then CastSpellByName("диспел", "player") end Я имел ввиду, блин, ну на грубом примере объясню. Маг отдает нову мне и напарнику. В скрипте приоритет на нову по мне 10, а по напарнику 8, чтобы диспел сначала шел по мне, а потом напарнику. |
Простое нажатие работало, с проверкой на коварный удар нет, швд же отлично отдавалось Так бы сразу и писал. А то вводишь людей в заблуждение Займись отладкой самого скрипта. Возможно интеррапт тебе прилетает раньше, чем ты стопаешь каст при помощи SpellStopCasting(). Я имел ввиду, блин, ну на грубом примере объясню. Маг отдает нову мне и напарнику. В скрипте приоритет на нову по мне 10, а по напарнику 8, чтобы диспел сначала шел по мне, а потом напарнику. Такую фигню можно замутить, но ты запаришься реализовывать функцию приоритетов. Приоритеты ты и так расставляешь последовательностью проверок if. Чем выше равнозначный if в коде - тем больше у него приоритет.
Сообщение # 308 написано 29.10.2014 в 22:08
|
Был бы благодарен если бы кто то поделился таким интересным кодом т.к перерыл много сылок так и не нашел нужного У меня такого кода нет. Я понимаю принцип работы и знаю как написать, но не заинтересован в этом (не в духе). Так что ожидай своего спасителя, который поделится готовым кодом
Сообщение # 313 написано 29.10.2014 в 22:28
|
Сообщение # 315 написано 30.10.2014 в 16:14
|
Привет всем) помогите плс со скриптом на ваниш) Нашел у вас на форуме скрипт на ваниш но он срабатует даже когда кто-то другой юзает например "блайнд" или даже когда я сам жму "блайнд" у меня срабатует "ваниш"... Может кто-то сможешь исправить его что бы он правильно работал... а то я в етом не сильно шарю...буду очень благодарен))Вот собственно и он :
Код 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 == "Ослепление" or spellName == "Удар по почкам" or spellName == "Подлый трюк" or spellName == "Парализующий удар" or spellName == "Лик смерти" and destGUID == UnitGUID("targetenemy") then CastSpellByName("Исчезновение") end end end end test2:SetScript("OnEvent", ev) test2:UnregisterEvent("COMBAT_LOG_EVENT_UNFILTERED") test2:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED") |
Привет всем) помогите плс со скриптом на ваниш) Нашел у вас на форуме скрипт на ваниш но он срабатует даже когда кто-то другой юзает например "блайнд" или даже когда я сам жму "блайнд" у меня срабатует "ваниш"... Может кто-то сможешь исправить его что бы он правильно работал... а то я в етом не сильно шарю...буду очень благодарен))Вот собственно и он : На форуме есть другой скрипт) |
Эх... Могу кинуть тебе этот скрипт, только жаль, что в игре есть такой класс как ДК!!!!!! Да-да, ведь именно у них есть тоже такой спелл "Лик смерти". Скрипт, который я тебе могу скинуть, будет работать и на лока и на дк.. А это очень глупо. В таком случае, я думаю, что такой скрипт будет бессмысленным. Хотя, если ты любишь ПвП против локов, то включай его против локов в дуэльках:) Код 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("Ледяная глыба") end end end end end)
Сообщение # 321 написано 02.11.2014 в 11:55
|
local ScriptAddon = CreateFrame("Frame", "ScriptAddon", 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.00 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 Вот он скрипт на швд полиморфа:) А теперь вопрос к опытному скриптеру: Может подредактировать этот скрипт, чтобы он давал швд не только в полиморф, но и в седакт,блайнд,скаттер? Жду помощи:D P.S. от + не откажусь (кому помог со скриптом) Кто знает как сделать чтобы швд не кидалось в фейки? Тестили с другом этот скрипт, на середине каста друг фейкает, но скрипт все равно кидает швд.
Сообщение # 322 написано 02.11.2014 в 13:06
|
что в игре есть такой класс как ДК!!!!!! Да-да, ведь именно у них есть тоже такой спелл "Лик смерти". у эвента COMBAT_LOG_EVENT_UNFILTERED девятым аргументом (arg9) идет ID спелла, используйте его вместо arg10, в скобки соответственно через запятую ID всех рангов лика
reverse engineering your soul... балуюсь C++, C#, SQL, LUA. Владыка 1C. Окончательно забил на emuDev
Сообщение # 324 написано 02.11.2014 в 20:47
|
Сообщение # 325 написано 03.11.2014 в 14:32
|
Легко, в конец текста первого скрипта добавляем Код RunMacroText("/sdm run НазваниеДругогоНужногоСкриптаИзSDM") Их можно вообще хоть паравозом цеплять друг за другом, главное чтобы в итоге какой-либо скрипт не был вызван дважды и не зациклил код :S Отличный пример тут сконтрить спелл с эвентом который означает что каст успешно завершен, полагаю, безнадежная идея. А по условию вам в ЛС уже давал ответ. |
Всех приветствую.
Можно ли данный скрипт /script n=GetNumWhoResults(); i=1; while(i<n+1) do c=GetWhoInfo(i); SendChatMessage("текст","WHISPER",nil,c) i=i+1; end; доработать таким образом,что-бы каждую минуту создавался список /кто , с разными параметрами,к примеру /кто 10-14 /кто 15-19 /кто 20-24 и каждому этому списку автоматически отсылалось сообщение.И что-бы данная процедура повторялась по кругу через каждые 30 минут. |
Доброго времени суток господа, нужен скрипт для ДК на "Смерть и Разложение", который бы кидался автоматом прямо под ноги таргету. Есть скрипт на автосферы для монка. Суть его заключаеся в том, что монк кидает их прямо под ноги таргету, тем самым заставляя дымиться, воспламеняться, и подгорать его пу..., так о чем это я - думаю на основе этого срипта возможно сделать скрипт и для автоматического "кидания" Смерти и Разложения. Механика "Смерти и Hазложения" - далее ДНД заключается в том, что Вы оскверняете выбранную область, нанося оказавшимся в ней противникам урон (с глифом, еще и замедляете таргет). Хелп друзья.
Сообщение # 328 написано 07.11.2014 в 07:48
|
| |||







