Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Buffy - Advanced Callbacks (VIP)


Rekomendowane odpowiedzi

Opublikowano

Witajcie.
Postanowiłem powoli wprowadzać chętnych w świat programowania skryptów BoL, ale nie mam na tyle czasu, aby napisać na ten temat jeden wielki poradnik. Będę wam wrzucał i opisywał najważniejsze callbacki etc. kiedy znajdę na to czas.

 
Advanced Callbacks.
OnGainBuff(unit, buff) -- uruchamia się kiedy ktoś otrzymuje buffa (nasz bohater, enemy, minion etc.).
OnUpdateBuff(unit, buff) -- uruchamia się przy zmianie buffa (np. ilość stacków [np. Nasus], czas trwania itd.).
OnLoseBuff(unit, buff) -- uruchamia się kiedy ktoś straci buffa.

 
Pole buff.
buff.name -- zwraca nazwę buffa.
buff.type -- zwraca typ buffa.
buff.stack -- zwraca stacki buffa.
buff.visible -- zwraca widoczność buffa dla nas (ikona).
buff.slot -- zwraca slot buffa (szybciej od unit:getBuff)
buff.duration -- zwraca czas trwania buffa.
buff.startT -- zwraca czas, w którym buff wystartował.
buff.endT -- zwraca czas, w którym buff się kończy.
buff.source -- zwraca jednostkę, która nadała buffa (np. blind Teemo na Garenie)
 
Typy buffów.
_G.BUFF_NONE = 0
_G.BUFF_GLOBAL = 1
_G.BUFF_BASIC = 2
_G.BUFF_DEBUFF = 3
_G.BUFF_STUN = 5
_G.BUFF_STEALTH = 6
_G.BUFF_SILENCE = 7
_G.BUFF_TAUNT = 8
_G.BUFF_SLOW = 10
_G.BUFF_ROOT = 11
_G.BUFF_DOT = 12
_G.BUFF_REGENERATION = 13
_G.BUFF_SPEED = 14
_G.BUFF_MAGIC_IMMUNE = 15
_G.BUFF_PHYSICAL_IMMUNE = 16
_G.BUFF_IMMUNE = 17
_G.BUFF_Vision_Reduce = 19
_G.BUFF_FEAR = 21
_G.BUFF_CHARM = 22
_G.BUFF_POISON = 23
_G.BUFF_SUPPRESS = 24
_G.BUFF_BLIND = 25
_G.BUFF_STATS_INCREASE = 26
_G.BUFF_STATS_DECREASE = 27
_G.BUFF_FLEE = 28
_G.BUFF_KNOCKUP = 29
_G.BUFF_KNOCKBACK = 30
_G.BUFF_DISARM = 31
 
Własne zwrotne.
Każda biblioteka lub skrypt może przypisać do funkcji wymienionych wyżej swoje własne (Advanced Callbacks).

AdvancedCallback:bind('OnGainBuff', function)
AdvancedCallback:bind('OnLoseBuff', function)
AdvancedCallback:bind('OnUpdateBuff', function)

Przykłady zastosowania.
Umiejętność pasywna Gravesa (sprawdzamy, czy nasz bohater posiada buffa o nazwie "gravespassivegrit", jeśli tak liczymy ticki [przyda nam się do zachowania stacków pasywki, np. wykonując AA pod koniec czasu] i zmieniamy PassiveActive na true [po zakończeniu na false]):

local PassiveActive = false
local PassiveTimer = 0

function OnGainBuff(unit, buff)
    if unit.name == myHero.name and unit.team == myHero.team then
		if buff and buff.name ~= nil then
			if buff.name == "gravespassivegrit" then
				PassiveActive = true
				PassiveTimer = GetTickCount()
			end
		end
	end
end

function OnLoseBuff(unit, buff)
    if unit.name == myHero.name and unit.team == myHero.team then
		if buff and buff.name ~= nil then
			if buff.name == "gravespassivegrit" then
				PassiveActive = false
				PassiveTimer = 0
			end
		end
	end
end

Leczenie efektów CC u Gangplanka (sprawdzamy, czy postać [w tym przypadku myHero] posiada jakiekolwiek buffy, których typy znajdziemy nieco wyżej):

function OnGainBuff(unit, buff)
	if unit.name == myHero.name and unit.team == myHero.team then
		if buff.type == BUFF_STUN or buff.type == BUFF_ROOT or buff.type == BUFF_SUPPRESS or buff.type == BUFF_SILENCE or buff.type == BUFF_BLIND or buff.type == BUFF_FEAR or buff.type == BUFF_CHARM then
			CastSpell(_W)
		end
	end
end

Myślę, że poradnik się przyda.
#deweloper

Opublikowano

Dobry poradnik, czekam na więcej ;)

Skrypty, na których wbijam elo:

 

Champs:

  • BeastyRiven
  • Honda's Syndra
  • Cass du Couteau
  • CassWhoop
  • Shadow Vayne

Utility:

  • Flash Juke Assistant
  • Where Did He Go
  • Activator
  • Perfect Ping
  • I hate your Wards

Inne:

  • SAC: Reborn
  • SOW

 

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...