Lecția dota 2 lua scripting

Scopul acestei lecții este de a oferi o introducere în sistemul de scripting folosit în Dota 2 și câteva sfaturi și trucuri în dezvoltarea lor. Se presupune că sunteți familiarizați cu conceptele de bază ale OOP și Lua. De asemenea, este de dorit să utilizați Notepad ++ sau Sublime Text







Vom lucra în folderul dvs._addon / scripts / vscripts. Când atașamentul dvs. este încărcat cu motorul Dota 2, sunt executate două fișiere addon_init.lua și apoi addon_game_mode.lua. Conform regulilor, aceste fișiere nu sunt fișierele principale, ci pur și simplu fișierele necesare. Vom presupune că avem obiecte din proiectul nostru în addon_main.lua - acesta este fișierul principal.

addon_init.lua
Acest fișier este executat mai întâi și, de regulă, sunt numite funcții globale. Să presupunem că avem două fișiere suplimentare în addon-ul nostru: addon_main.lua (care conține descrieri de obiecte în add-on-ul dvs.) și util.lua (care conține unele utilități - funcții utile mici).

În cazul tău, addon_init.lua va arăta astfel:

addon_game_mode.lua

Acest fișier este executat după addon_init.lua și este responsabil pentru inițializarea addon-ului. Iată un exemplu:

Miezul suplimentului dvs.

Să aruncăm o privire la addon_main.lua - acesta este nucleul modului tău. Dacă lăsăm codul principal, vom vedea acest lucru:

Kernel extins

Adăugăm câteva funcții de bază cu ajutorul evenimentelor și comenzilor care pot fi apelate din interfața cu utilizatorul.

Evenimentele sunt construite în motorul de joc și pot fi numite atunci când se întâmplă ceva în joc. Există multe evenimente, de exemplu, cum ar fi dota_roshan_kill. dota_courier_lost și dota_player_gained_level. Cele mai multe evenimente au unele atribute suplimentare, cum ar fi în cazul dota_player_gained_level au playerid și la nivel. De asemenea, puteți personaliza propriile evenimente în scripturi / custom_events.txt.







Deci, cum folosești aceste evenimente? Există două componente principale pentru utilizarea scripturilor în modă - ascultător (ascultător) și manipulator (manipulant).
Ascultătorul stabilește evenimentul și de îndată ce se întâmplă acest lucru, funcția specificată în proprietățile Listener se execută imediat. Puteți specifica ascultătorul peste tot, dar de obicei acest lucru se face în funcția de inițializare. Bucată de setări pentru ascultători:

exemplu:
Să presupunem că vrem să oferim 1000 de aur eroilor care ajung la nivelul 6. Adăugați Listener la InitGameMode () după cum urmează:

Acum adăugăm un handler pentru acest eveniment ca o nouă funcție în obiectul CustomGameMode, în acest exemplu se arată astfel:

Comenzile sunt similare cu evenimentele - ele sunt, de asemenea, chemate să îndeplinească anumite funcții. Diferența constă în faptul că motorul de joc nu numește comenzi, ci doar le poți suna. Aceasta este cea mai bună modalitate de a interfața interfața dvs. de utilizator (Flash UI) și script-urile Lua.

Înregistrăm o astfel de comandă

Acum, când serverul primește Command1 X în consola sa, funcția Handler este apelată cu parametrul X (parametrul este un șir de șir).

Să presupunem că avem un buton în interfața noastră utilizator care permite jucătorului să obțină puncte de abilități. Din interfața noastră de utilizator, numim GiveAbilityPoints cu o indicație a câte puncte vrem să dăm. De exemplu, un apel de comandă ar putea arăta astfel: GiveAbilityPoints 3, oferind 3 puncte. Înregistrăm acest lucru aproximativ în felul următor:

Desigur, trebuie să adăugăm și un manipulator:

Sfaturi și trucuri

Imprimați masa din consola

Nu puteți vedea toate valorile din tabel. Puteți să o aduceți la consola utilizând această funcție. Doar apelați PrintTable (tabel).

Obținerea unui element din inventar

Unele funcții necesită elemente ca intrare, dar nu puteți obține numele articolelor din inventarul playerului. Dacă trebuie să faceți acest lucru, utilizați acest exemplu:







Articole similare

Trimiteți-le prietenilor: