Модератор форума: staford11 |
Форум Хитрости Пиратских серверов Читы для WoW Использование Lua скриптов. |
Использование Lua скриптов. |
Столько скриптов крутых выложили, ребят может есть у кого автофейк киков.(не скриптовых инсант, а обычных)
upd Почему то spellstopcasting() не стопает каст, для проверки вбивал простую абилку, каст продолжается. Пошел другим путем через JumpOrAscendStart() при проверке обычной абилкой персонаж прыгает тем самым стопая каст, однако кик проходит. Скрипт реагирует уже на свершившееся действие, так как у интераптов гораздо меньше флайтайм чем у блайндов скатеров итд кик проходит. Код 10/29 04:12:02.177 SPELL_CAST_SUCCESS,0x000000000000091A,"Gmnil",0x10548,0x0000000000032829,"Milahz",0x511,44572,"Глубокая заморозка",0x10 10/29 04:12:02.267 SPELL_CAST_SUCCESS,0x0000000000032829,"Milahz",0x511,0x000000000000091A,"Gmnil",0x10548,32379,"Слово Тьмы: Смерть",0x20 10/29 04:12:02.267 SPELL_DAMAGE,0x0000000000032829,"Milahz",0x511,0x000000000000091A,"Gmnil",0x10548,32379,"Слово Тьмы: Смерть",0x20,1251,0,32,0,0,0,nil,nil,nil 10/29 04:12:02.267 SPELL_AURA_APPLIED,0x0000000000000000,nil,0x80000000,0x0000000000032829,"Milahz",0x511,32409,"Слово Тьмы: Смерть",0x20,DEBUFF 10/29 04:12:02.363 SPELL_AURA_APPLIED,0x000000000000091A,"Gmnil",0x10548,0x0000000000032829,"Milahz",0x511,44572,"Глубокая заморозка",0x10,DEBUFF 0.186 флайтайм дипа Код 10/29 04:12:58.605 SPELL_CAST_START,0x0000000000032829,"Milahz",0x511,0x0000000000000000,nil,0x80000000,48063,"Великое исцеление",0x2 10/29 04:13:01.003 SPELL_CAST_SUCCESS,0x000000000000091A,"Gmnil",0x10548,0x0000000000032829,"Milahz",0x511,2139,"Антимагия",0x40 10/29 04:13:01.017 SPELL_CAST_FAILED,0x0000000000032829,"Milahz",0x511,0x0000000000000000,nil,0x80000000,48063,"Великое исцеление",0x2,"Прервано" 10/29 04:13:01.017 SPELL_INTERRUPT,0x000000000000091A,"Gmnil",0x10548,0x0000000000032829,"Milahz",0x511,2139,"Антимагия",0x40,48063,"Великое исцеление",2 10/29 04:13:01.017 SPELL_AURA_APPLIED,0x000000000000091A,"Gmnil",0x10548,0x0000000000032829,"Milahz",0x511,55021,"Антимагия - немота",0x40,DEBUFF и всего лишь 0.014 флайтайм кика Так же попробовал через MoveForwardStart() и MoveForwardStop() - тоже самое. Несмотря на то что многие активно рекламируют автофейки, да и сам я видел ребят которые действительно скриптами фейкают(несколько секунд втыкая потом почему каст стопнулся) не представляю как эти скрипты могут работать. Правда тестировал ночью при пинге в 9мс на фане циркуля, может днем флайтайм увеличивается у киков. Быть может просто нужен spellstopcasting(), но у меня он почему то не работает. |
Прямо в этой же теме на 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 в коде - тем больше у него приоритет.
Сообщение # 310 написано 29.10.2014 в 22:08
|
Был бы благодарен если бы кто то поделился таким интересным кодом т.к перерыл много сылок так и не нашел нужного У меня такого кода нет. Я понимаю принцип работы и знаю как написать, но не заинтересован в этом (не в духе). Так что ожидай своего спасителя, который поделится готовым кодом
Сообщение # 315 написано 29.10.2014 в 22:28
|
Сообщение # 317 написано 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)
Сообщение # 323 написано 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. от + не откажусь (кому помог со скриптом) Кто знает как сделать чтобы швд не кидалось в фейки? Тестили с другом этот скрипт, на середине каста друг фейкает, но скрипт все равно кидает швд.
Сообщение # 324 написано 02.11.2014 в 13:06
|
что в игре есть такой класс как ДК!!!!!! Да-да, ведь именно у них есть тоже такой спелл "Лик смерти". у эвента COMBAT_LOG_EVENT_UNFILTERED девятым аргументом (arg9) идет ID спелла, используйте его вместо arg10, в скобки соответственно через запятую ID всех рангов лика
reverse engineering your soul... балуюсь C++, C#, SQL, LUA. Владыка 1C. Окончательно забил на emuDev
Сообщение # 326 написано 02.11.2014 в 20:47
|
Сообщение # 327 написано 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азложения" - далее ДНД заключается в том, что Вы оскверняете выбранную область, нанося оказавшимся в ней противникам урон (с глифом, еще и замедляете таргет). Хелп друзья.
Сообщение # 330 написано 07.11.2014 в 07:48
|
| |||