Advertisement
alexdubovyck

Красный\зелёный квадрат!

Aug 16th, 2017
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. Разработка аддонов WoW
  2. » Красный\зелёный квадрат!(Ищу мастеров аддоно-строения lua)
  3. Помогите написать элементарный lua addon, в котором, например
  4. если кд(getspellinfo или getspellcolldown) на способность1 == 0 то создаётся квадратик1 в нужном месте и горит красным, если больше 0, то горит зелёным. Это разрешенные луа функции(если что=0). и рядом ещё квадраты соседи.
  5.  
  6. Пример я уже видел где-то:
  7. http://cs622920.vk.me/v622920245/24503/QyJ4bKJ1od0.jpg
  8. Что-то такое. Имея код(который опытные мастера оставят в комментариях), я уже сам напишу, перепишу, дополню. Вставлю нужное количество квадратиков. И их условия без проблем поменяю.
  9.  
  10. Проблема, что я не силён в графической составляющей.
  11. За помощью обращался сюда и сюда:
  12. http://wowjp.net/forum/240-286571-1
  13. http://www.wowwiki.com/API_CreateFrame
  14. Фрейм-форма,одноцветная создаётся.(статическая) но не хочет авто-обновляться, если условие того требует.
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29. Могу предложить вам такой вариант:
  30. Закрыть спойлер
  31. Код
  32. local r = {}
  33. local g = {}
  34. local y
  35. local j = 1
  36. local spell = {}
  37. local art_spell = {}
  38. local SpellID = {53251,48378,48443,48441,50464, 22812}
  39. for i = 1,#SpellID do
  40. y = (i*(-20)) +20
  41. spell[i] = CreateFrame("Frame", nil, UIParent) -- ага создал фрейму
  42. spell[i]:SetPoint("TOPLEFT",0, y) -- задал место появления относительно WorldFrame
  43. spell[i]:SetWidth(15)
  44. spell[i]:SetHeight(15) -- задал ширину и высоту (ивенты думаю можно опустить пока)
  45. r[i] = 0
  46. g[i] = 0
  47.  
  48. art_spell[i] = spell[i]:CreateTexture("ARTWORK") -- задать текстурку
  49. art_spell[i]:SetAllPoints()
  50. art_spell[i]:SetTexture(255, 0, 0) -- задать цвет текстурки (в rgb разумеется)
  51. art_spell[i]:SetAlpha(1) -- задать уровень прозрачности
  52. end
  53.  
  54. local function BShield(self,elapsed)
  55. if GetSpellCooldown(SpellID[j]) > 0 then
  56. r[j] = 255
  57. g[j] = 0
  58. else
  59. r[j] = 0
  60. g[j] = 255
  61. end
  62. if j < #SpellID then
  63. j=j+1
  64. else
  65. j=1
  66. end
  67. art_spell[j]:SetTexture(r[j], g[j], 0)
  68. end
  69. CreateFrame("Frame", "BShieldFrame")
  70. BShieldFrame:SetScript("OnUpdate", BShield)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement