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

Pisanie skryptów, cz. 9


Rekomendowane odpowiedzi

Opublikowano

http://www.mpcforum.pl/topic/1274238-pisanie-skryptow-cz-8/ - Część 8
http://www.mpcforum.pl/topic/1273792-pisanie-skryptow-cz-7/ - Część 7
http://www.mpcforum.pl/topic/1273566-pisanie-skryptow-cz-6/ - Część 6
http://www.mpcforum.pl/topic/1232331-pisanie-skryptow-cz-5/ - Część 5
http://www.mpcforum.pl/topic/1231168-pisanie-skryptow-cz-4/ - Część 4
http://www.mpcforum.pl/topic/1230769-pisanie-skryptow-cz-3/ - Część 3
http://www.mpcforum.pl/topic/1230734-pisanie-skryptow-cz-2/ - Część 2
http://www.mpcforum.pl/topic/1230572-pisanie-skryptow-cz-1/ - Część 1

Czołem!

Dzisiaj zajmiemy się czymś dostępnym tylko dla VIPów, czyli castowaniem spelli przez pakiety. Tutorial będzie się jedynie ograniczał do castowania spelli, tych niemierzonych i mierzonych. Wymagana wiedza o VPrediction, czyli poprzednia część poradnika do przeczytania!

1. Kilka słów o pakietach.

No dobra, mam VIPa i jestem gotowy. Tylko po co mi to? Co mi da castowanie przez pakiety? Co to w ogóle robi?

Krótka odpowiedź: omija API gry.

Dłuższa odpowiedź: jak castujesz spell (bez BoLa) to najpierw funkcja castująca przechodzi przez API gry. To API wymusza m.in. face direction czy inne pierdoły. Funkcja CastSpell właśnie przechodzi przez to API. Natomiast wysyłanie pakietów bezpośrednio z poziomu skryptu jest po prostu szybsze, gdyż omija API gry, co pozwala między innymi na tzw. No Face Direction.

Oczywiście zastosowań pakietów jest znacznie więcej niż tylko castowanie spelli, ale w tej części omówimy tylko castowanie.

2. Castowanie w praktyce.

Castowanie spelli pakietami nie jest trudne. Oto, jak wygląda castowanie spelli niemierzonych:

Packet("S_CAST", {spellId, targetNetworkId}):send()

Oraz mierzonych:

Packet("S_CAST", {spellId, toX, toY, fromX, fromY}):send()

spellId - ID spella, czyli _Q, _W, _E, _R. AFAIK można też castować itemy w taki sposób.

targetNetworkId - nasz cel, będziemy używali do tego ts.target.networkID

toX, toY, fromX, fromY - koordynaty castowania, from oznacza skąd ma spell być wycastowany, to oznacza gdzie ma być wycastowany. Zazwyczaj będzimy chcieli podać to oraz from takie same, różne wartości przydają się np. w przypadku E Viktora. Nie dajcie się zwieść, toY oraz fromY tak naprawdę wskazują Z, nie Y.

 

Przykład castowania E Cassiopei:

function CastE()
     if SpellE.ready then
          Packet("S_CAST", {spellId = _E, targetNetworkId = ts.target.networkID}):send()
     end
end

Lub castowania Q Cassiopei z użyciem VPrediction:

SpellQ = {id = "Q", delay = 0.85, width = 130, speed = math.huge, range = 850, ready = false}

function CastQ()
     if SpellQ.ready then
          local CastPosition, HitChance, Position = VP:GetCircularCastPosition(ts.target, SpellQ.delay, SpellQ.width, SpellQ.range, SpellQ.speed, myHero, false)
          Packet("S_CAST", {spellId = _Q, toX = CastPosition.x, toY = CastPosition.z, fromX = CastPosition.x, fromY = CastPosition.z}):send()
     end
end

Albo castowanie np. W Irelii (czyli spella niewymagającego celu)

function CastW()
     if SpellW.ready then
          Packet("S_CAST", {spellId = _W}):send()
     end
end

Inne spelle są działają tak samo.

To wszystko na dzisiaj, piszcie, o czym mam zrobić kolejny poradnik.

Polecam też bardziej zaawansowane poradniki Marcoly'ego:
http://www.mpcforum.pl/topic/1226948-api-sidas-auto-carry/
http://www.mpcforum.pl/topic/1157768-zastosowanie-lag-free-circles-we-wlasnym-skrypcie/
http://www.mpcforum.pl/topic/1229945-buffy-advanced-callbacks-vip/
Credits:
Marcoly

Skończ proszę się kompromitować. Jesteś nikim.

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...