Jump to content

shuraken007

Player
  • Content count

    503
  • Joined

  • Last visited

Everything posted by shuraken007

  1. Да не хотел никого попрекать, так уж сложилось. Но после этой точки бэкап базы наверное точно догниёт спокойно в уголке. Быть может и не стоит тревожить тихий сон усопших. p.s. И тебе привет.
  2. Но валькирия конечно-же туда входить не будет?
  3. Тоже раньше пытался найти, увы нашёл только второе издание. Впрочем достаточно книги Роберту Иерузалимски про lua, поглядеть на второе издание world of warcraft programming, ну и самому разбирать другие аддоны, смотреть как Blizzard аддоны устроены. Есть полуархивный сайт с Ace либами. Через какое-то время всё вкуривается.
  4. Навязали вам европейские ценности с этими рейтами, не успеете оглянуться как ни одного x1 не останется.
  5. +1, я бы на твоём месте переехал в другой город
  6. shuraken007

    Вайн здесь.

    да уже год почти как не пью
  7. shuraken007

    Вайн здесь.

    Если пить в одиночку из двух стаканов, то можно и чокнуться. В эмуляторе с адонами удобно возиться было.
  8. shuraken007

    Вайн здесь.

    Неистово плюсую.
  9. shuraken007

    Старый Т2. пре-1.9

    кажется все эти модельки и так есть в игре, надо просто подобрать нужные
  10. shuraken007

    Reckoning Day

    Привет из прошлого. Меня вот раздражал непомерно длинный аттак бар, я себе до минимума резал если интересно глянь http://dropmefiles.com/kNvxA
  11. shuraken007

    What addon is he using?

    itemrack?
  12. Да... можно было зайти с утра, и получить за 10 минут настроение на весь день.
  13. shuraken007

    Tooltip Art

    spent 40 mins, try it http://dropmefiles.com/gbCjy
  14. shuraken007

    Tooltip Art

    TOOLTIP_DEFAULT_COLOR = { r = 1, g = 1, b = 1 }; TOOLTIP_DEFAULT_BACKGROUND_COLOR = { r = 0.09, g = 0.09, b = 0.19 }; this is default values, as example you may make red border TOOLTIP_DEFAULT_COLOR = { r = 1, g = 0, b = 0 };
  15. shuraken007

    Tooltip Art

    /script GameTooltip:SetBackdrop({tile = true, tileSize = 16, edgeSize = 16, insets = { left = 3, right = 3, top = 3, bottom = 3 }, bgFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Background", edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Border"}) small Backdrop: tileSize = 16, edgeSize = 16, insets = { left = 3, right = 3, top = 3, bottom = 3 } normal Backdrop: tileSize = 32, edgeSize = 32, insets = { left = 8, right = 8, top = 8, bottom = 8 } GoldBackdrop: bgFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Background", edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Border" TooltipBackdrop: bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border"
  16. shuraken007

    SCT_Reckoning

    Write message from combat log when somebody crits you. Addon try to catch message "You gain 1 extra attack through Reckoning.", but server don't send this messages.
  17. попробуй #showtooltip имя_спелла /run ..... не пользовался особо этой опцией, не знаю что получится
  18. чат - это аддон, при желании можно код глянуть, ChatFrame.lua (в mpq архиве interface) у всех окошек под чаты одна общая функция обработки ивентов: ChatFrame_OnEvent соответственно можешь сделать хук ChatFrame_OnEvent_Old = ChatFrame_OnEvent function ChatFrame_OnEvent_New(event) if event == "CHAT_MSG_WHISPER" then --[[ arg1 - Message received arg2 - Author arg6 - status --]] if noSpam(arg1, arg2, arg6) then return end end ChatFrame_OnEvent_Old(event) end чтобы активировать: ChatFrame_OnEvent = ChatFrame_OnEvent_New чтобы вернуть как было: ChatFrame_OnEvent = GMR.ChatFrame_OnEvent_Old судя по всему язык тут не возвращается, когда в личку спамят, не знаю что там в статусе возвращается - потести ссылка на ивенты:http://wowwiki.wikia.com/wiki/Events/Communication?oldid=384660
  19. Между макросами/аддонами довольно условная грань, любой аддон можно впихнуть в макрос и обратное тоже верно. (разумеется если хватит вписать в ограничение по кол-ву символов) язык: http://dropmefiles.com/KLImC справка по доступному функционалу http://wowwiki.wikia.com/wiki/World_of_Warcraft_API?oldid=335546 http://wowwiki.wikia.com/wiki/Widget_API?oldid=278403 http://wowwiki.wikia.com/wiki/Lua_functions?oldid=333711 http://wowwiki.wikia.com/wiki/Events_A-Z_(full_list)?oldid=201679 высший пилотаж http://old.wowace.com/Ace2
  20. ну, можно написать что-нить в этом духе, нужен супермакро чтобы это всё туды запихать, а то буковок много local bh = 0 local mult_heal = 1 local mana_last_rang = 660 local heal = {(39+48)/2, (76+91)/2, (159+188)/2, (310+357)/2, (491+554)/2, (698+781)/2, (945+1054)/2, (1246+1389)/2, (1519+1771)/2} local hp = UnitHealthMax("player") - UnitHealth("player") local mana = UnitMana("player") TargetUnit("player") if UnitHealth("player")/UnitHealthMax("player") <= 0.3 then if mana >= mana_last_rang then cast("Holy Light") else cast("Lay on Hands") end else for i = 1, getn(heal) do local cur_heal = mult_heal*heal[i]+2.5/3.5*bh if hp < cur_heal or i == getn(heal) then cast("Holy Light(Rank "..i..")") end end end соответственно bh - это бонус хил, если поставить аддон BonusScanner, можно автоматически рассчитывать bh = BonusScanner:GetBonus("HEAL") можно ещё учитывать прожатые триньки, типа зг, с вб, квестовая у аргентумов if(buffed("Ages", "player")) then bh = bh + 350 end buff, id = buffed("Unstable", "player") if(buff == "buff") then _ ,num = UnitBuff("player", id) bh = bh + 34*num end buff, id = buffed("Ascendance", "player") if(buff == "buff") then _ ,num = UnitBuff("player", id) bh = bh + 75*(6-num) end mult_heal - это коэффициент, действующий на базовый хил (в талах например можно взять +15%, и вписать 1.15 вместо 1) mana_last_rang - это сколько стоит ласт ранг холи лайта, 9-й ранг стоит 660 Так что итоговый макрос без бонус сканера: /script local bh = 0 local mult_heal = 1 local mana_last_rang = 660 local heal = {(39+48)/2, (76+91)/2, (159+188)/2, (310+357)/2, (491+554)/2, (698+781)/2, (945+1054)/2, (1246+1389)/2, (1519+1771)/2} local hp = UnitHealthMax("player") - UnitHealth("player") local mana = UnitMana("player") TargetUnit("player") if UnitHealth("player")/UnitHealthMax("player") <= 0.3 then if mana >= mana_last_rang then cast("Holy Light") else cast("Lay on Hands") end else for i = 1, getn(heal) do local cur_heal = mult_heal*heal[i]+2.5/3.5*bh if hp < cur_heal or i == getn(heal) then cast("Holy Light(Rank "..i..")") end end end А с бонус хилом, врублённым BonusScanner - ом /script local mult_heal = 1 local mana_last_rang = 660 local bh = BonusScanner:GetBonus("HEAL") local buff,num,id if(buffed("Ages", "player")) then bh = bh + 350 end buff, id = buffed("Unstable", "player") if(buff == "buff") then _ ,num = UnitBuff("player", id) bh = bh + 34*num end buff, id = buffed("Ascendance", "player") if(buff == "buff") then _ ,num = UnitBuff("player", id) bh = bh + 75*(6-num) end local heal = {(39+48)/2, (76+91)/2, (159+188)/2, (310+357)/2, (491+554)/2, (698+781)/2, (945+1054)/2, (1246+1389)/2, (1519+1771)/2} local hp = UnitHealthMax("player") - UnitHealth("player") local mana = UnitMana("player") TargetUnit("player") if UnitHealth("player")/UnitHealthMax("player") <= 0.3 then if mana >= mana_last_rang then cast("Holy Light") else cast("Lay on Hands") end else for i = 1, getn(heal) do local cur_heal = mult_heal*heal[i]+2.5/3.5*bh if hp < cur_heal or i == getn(heal) then cast("Holy Light(Rank "..i..")") end end end лох кидается только если хп меньше 30% и маны не хватает я не проверял корректность с бх, есть шанс косяка
  21. у меня отклонения небольшие от формулы были, ну там на 10-15-20-30 единиц, да я помню про разные коэф. для одноручей/двуручей
  22. shuraken007

    Is Ret Paladin Good In PvE?

    Basically you will have 60% from dd class. You may eat everything that use range dd and melee dd. Have stack of dark runes and mana potions. Steal all crit items from warriors(you need many crit to have nonstop vengeance, top gear+top buff = 50+% crit). Make other buffs like tribut run, blasted lands and other, crit flower from felwood. Case warrior will have good items and all that buffs - he will aggro mobs\boss and die soon(any good dd), yes of course holy damage make more trit, but you have buble, selfheal. You may upgrade from 60% raid damage to 90%, if you save buffs and other raid members are lazy, you will be able to do top5-top3 in best case(as example in molten core). It's too hard, better to have real dd class. But it's possible if you will spend anoth time for raid preparing. http://radikal.ru/users/Shuraken007#alb=Shen_Retric
  23. shuraken007

    Paladin Macros

    one of mine macro for shockburst: all steps are tested - if the aren't this spell cooldown(as example you were stunned) - next iteration won't execute 1. Load addon Weapon Quick Swap 2. Create supermacro macro to use trinket, or any other burst. 3. Look at main call: ShurakenPack.ShockBurst("Lok'amir il Romathis", "Therazane's Touch", "Command", "Trink") first two weapons to equip for use, third - part of "Seal of "..name to use Judgement after end of script, last - supermacro macro to use trinket, or any other burst(items/potion) Macro steps: -save current weapon, try to equip weapon until it won't have success -use "Divine Favor" until it won't have cd(same for all other) -use Supermacro with parameter name ("Trink" at this example) until both trinket slots won't have cd (after use of one trink second will have cd if it was usable, so this is check that macro was used) -use Holy Shock -use Judjement -use Hammer of Wrath if hp < 20% -equip previous weap until it won't be equipped -use Seal from func params -turn on 2 sec Antispam timer to not switch weapons again also 20 sec reset timer is enable (it would go to step 0 after 20 secs) original code: Оффтоп if ShurakenPack then ShurakenPack.ShockBurst("Lok'amir il Romathis", "Therazane's Touch", "Command", "Trink") else ShurakenPack = {} function ShurakenPack.FindInBook(spell) local i = 1 local SPELLNUM = nil while true do local spellName, spellRank = GetSpellName(i, BOOKTYPE_SPELL) if not spellName then break end if string.find(spellName .. '(Rank ' .. spellRank .. ')', spell) then SPELLNUM = i end i = i + 1 end return SPELLNUM end ShurakenPack.Timers={} function ShurakenPack.NewTimer(shuraken_pack_timer, shuraken_pack_time) ShurakenPack.Timers[shuraken_pack_timer] = {[1]=GetTime(), [2]=shuraken_pack_time} end function ShurakenPack.GetTimer(shuraken_pack_timer) local return_value if not ShurakenPack.Timers[shuraken_pack_timer] then return_value = nil else return_value = ShurakenPack.Timers[shuraken_pack_timer][2] - (GetTime() - ShurakenPack.Timers[shuraken_pack_timer][1]) if return_value<0 then return_value = nil tremove(ShurakenPack.Timers[shuraken_pack_timer]) tremove(ShurakenPack.Timers[shuraken_pack_timer]) ShurakenPack.Timers[shuraken_pack_timer] = nil end end return return_value end function ShurakenPack.ShockBurst(spd_main, spd_off, Seal, trinket_maxro_name) if not ShurakenPack.GetTimer("AntiSpam") then if not spd_main then spd_main = "Lok'amir il Romathis" end if not spd_off then spd_off="Therazane's Touch" end local start, duration, enable, start1, duratiorn1, enable1 if not ShurakenPack.GetTimer("Reset") then shen_counter_push = 0 end ShurakenPack.NewTimer("Reset", 20) if shen_counter_push == 0 then _,_,ShurakenPack.name_main = string.find(GetInventoryItemLink("player", 16) or "","%[(.+)%]") if not ShurakenPack.name_main then ShurakenPack.name_main = "" end _,_,ShurakenPack.name_off = string.find(GetInventoryItemLink("player", 17) or "","%[(.+)%]") if not ShurakenPack.name_off then ShurakenPack.name_off = "" end if not ShurakenPack.fg then ShurakenPack.was_main=ShurakenPack.name_main ShurakenPack.was_off=ShurakenPack.name_off ShurakenPack.fg = 0 end if ShurakenPack.name_main==spd_main and ShurakenPack.name_off==spd_off then shen_counter_push = 1 ShurakenPack.fg = nil else WeaponSwap(ShurakenPack.name_main, ShurakenPack.name_off, spd_main, spd_off) end end if(shen_counter_push == 1) then start, duration = GetSpellCooldown(ShurakenPack.FindInBook("Divine Favor"), BOOKTYPE_SPELL) if (duration ~= 0) then shen_counter_push=shen_counter_push+1 else CastSpellByName("Divine Favor") end end if (shen_counter_push==2) then start, duration, enable = GetInventoryItemCooldown("player", 13) start1, duration1, enable1 = GetInventoryItemCooldown("player", 14) if(((duration==0) and (enable==1)) or ((duration1==0) and (enable1==1))) then RunSuperMacro(trinket_maxro_name) else shen_counter_push=shen_counter_push+1 end end if (shen_counter_push==3) then start, duration = GetSpellCooldown(ShurakenPack.FindInBook("Holy Shock"), BOOKTYPE_SPELL) if (duration == 30) then shen_counter_push=shen_counter_push+1 else CastSpellByName("Holy Shock") end end if (shen_counter_push==4) then start, duration = GetSpellCooldown(ShurakenPack.FindInBook("Judgement"), BOOKTYPE_SPELL) if (duration == 8 or duration == 10) then shen_counter_push=5 else CastSpellByName("Judgement") end end if shen_counter_push==5 then if UnitHealth("target")/UnitHealthMax("target")*100 < 20 then start, duration = GetSpellCooldown(ShurakenPack.FindInBook("Hammer of Wrath"), BOOKTYPE_SPELL) if (duration == 6) then shen_counter_push=6 else CastSpellByName("Hammer of Wrath(Rank 3)") end else shen_counter_push=6 end end if(shen_counter_push==6) then _,_,ShurakenPack.name_main = string.find(GetInventoryItemLink("player", 16) or "","%[(.+)%]") if not ShurakenPack.name_main then ShurakenPack.name_main = "" end _,_,ShurakenPack.name_off = string.find(GetInventoryItemLink("player", 17) or "","%[(.+)%]") if not ShurakenPack.name_off then ShurakenPack.name_off = "" end if ShurakenPack.name_main==ShurakenPack.was_main and ShurakenPack.name_off==ShurakenPack.was_off then shen_counter_push = 7 else WeaponSwap(ShurakenPack.name_main, ShurakenPack.name_off, ShurakenPack.was_main, ShurakenPack.was_off) end end if (shen_counter_push==7) then if(buffed(Seal, "player")) then shen_counter_push=0 ShurakenPack.NewTimer("AntiSpam", 2) else CastSpellByName("Seal of "..Seal) end end end end end using regex replacing convert to macro form http://prntscr.com/djtyp0 /script if ShurakenPack then ShurakenPack.ShockBurst("Lok'amir il Romathis", "Therazane's Touch", "Command", "Trink") else ShurakenPack = {} function ShurakenPack.FindInBook(spell) local i = 1 local SPELLNUM = nil while true do local spellName, spellRank = GetSpellName(i, BOOKTYPE_SPELL) if not spellName then break end if string.find(spellName .. '(Rank ' .. spellRank .. ')', spell) then SPELLNUM = i end i = i + 1 end return SPELLNUM end ShurakenPack.Timers={} function ShurakenPack.NewTimer(shuraken_pack_timer, shuraken_pack_time) ShurakenPack.Timers[shuraken_pack_timer] = {[1]=GetTime(), [2]=shuraken_pack_time} end function ShurakenPack.GetTimer(shuraken_pack_timer) local return_value if not ShurakenPack.Timers[shuraken_pack_timer] then return_value = nil else return_value = ShurakenPack.Timers[shuraken_pack_timer][2] - (GetTime() - ShurakenPack.Timers[shuraken_pack_timer][1]) if return_value<0 then return_value = nil tremove(ShurakenPack.Timers[shuraken_pack_timer]) tremove(ShurakenPack.Timers[shuraken_pack_timer]) ShurakenPack.Timers[shuraken_pack_timer] = nil end end return return_value end function ShurakenPack.ShockBurst(spd_main, spd_off, Seal, trinket_maxro_name) if not ShurakenPack.GetTimer("AntiSpam") then if not spd_main then spd_main = "Lok'amir il Romathis" end if not spd_off then spd_off="Therazane's Touch" end local start, duration, enable, start1, duratiorn1, enable1 if not ShurakenPack.GetTimer("Reset") then shen_counter_push = 0 end ShurakenPack.NewTimer("Reset", 20) if shen_counter_push == 0 then _,_,ShurakenPack.name_main = string.find(GetInventoryItemLink("player", 16) or "","%[(.+)%]") if not ShurakenPack.name_main then ShurakenPack.name_main = "" end _,_,ShurakenPack.name_off = string.find(GetInventoryItemLink("player", 17) or "","%[(.+)%]") if not ShurakenPack.name_off then ShurakenPack.name_off = "" end if not ShurakenPack.fg then ShurakenPack.was_main=ShurakenPack.name_main ShurakenPack.was_off=ShurakenPack.name_off ShurakenPack.fg = 0 end if ShurakenPack.name_main==spd_main and ShurakenPack.name_off==spd_off then shen_counter_push = 1 ShurakenPack.fg = nil else WeaponSwap(ShurakenPack.name_main, ShurakenPack.name_off, spd_main, spd_off) end end if(shen_counter_push == 1) then start, duration = GetSpellCooldown(ShurakenPack.FindInBook("Divine Favor"), BOOKTYPE_SPELL) if (duration ~= 0) then shen_counter_push=shen_counter_push+1 else CastSpellByName("Divine Favor") end end if (shen_counter_push==2) then start, duration, enable = GetInventoryItemCooldown("player", 13) start1, duration1, enable1 = GetInventoryItemCooldown("player", 14) if(((duration==0) and (enable==1)) or ((duration1==0) and (enable1==1))) then RunSuperMacro(trinket_maxro_name) else shen_counter_push=shen_counter_push+1 end end if (shen_counter_push==3) then start, duration = GetSpellCooldown(ShurakenPack.FindInBook("Holy Shock"), BOOKTYPE_SPELL) if (duration == 30) then shen_counter_push=shen_counter_push+1 else CastSpellByName("Holy Shock") end end if (shen_counter_push==4) then start, duration = GetSpellCooldown(ShurakenPack.FindInBook("Judgement"), BOOKTYPE_SPELL) if (duration == 8 or duration == 10) then shen_counter_push=5 else CastSpellByName("Judgement") end end if shen_counter_push==5 then if UnitHealth("target")/UnitHealthMax("target")*100 < 20 then start, duration = GetSpellCooldown(ShurakenPack.FindInBook("Hammer of Wrath"), BOOKTYPE_SPELL) if (duration == 6) then shen_counter_push=6 else CastSpellByName("Hammer of Wrath(Rank 3)") end else shen_counter_push=6 end end if(shen_counter_push==6) then _,_,ShurakenPack.name_main = string.find(GetInventoryItemLink("player", 16) or "","%[(.+)%]") if not ShurakenPack.name_main then ShurakenPack.name_main = "" end _,_,ShurakenPack.name_off = string.find(GetInventoryItemLink("player", 17) or "","%[(.+)%]") if not ShurakenPack.name_off then ShurakenPack.name_off = "" end if ShurakenPack.name_main==ShurakenPack.was_main and ShurakenPack.name_off==ShurakenPack.was_off then shen_counter_push = 7 else WeaponSwap(ShurakenPack.name_main, ShurakenPack.name_off, ShurakenPack.was_main, ShurakenPack.was_off) end end if (shen_counter_push==7) then if(buffed(Seal, "player")) then shen_counter_push=0 ShurakenPack.NewTimer("AntiSpam", 2) else CastSpellByName("Seal of "..Seal) end end end end end only 4301 symbols I store this script in file, want to think that it will work in macroform. Yeah I know how to make it easier, but wroted it far time ago with small knowledge.
  24. А ты сравни эту формулу с реальными значениями.
  25. нифига это не просто - влетать под зарядом на ботинках з инвиз потом в вражеского сидящего флагоносца
×