GrandMA2 Lua Plugin Geliştirmeye Giriş: Temel Kavramlar

GrandMA2 konsolunda Lua tabanlı plugin geliştirmenin temellerini, sözdizimini ve ilk eklentinizi nasıl yazacağınızı öğrenin.

GrandMA2'de Plugin Nedir?

GrandMA2, sahne aydınlatma kontrolünü genişletmek isteyenler için güçlü bir Lua scripting motoru sunar. Pluginler sayesinde tekrarlayan görevleri otomatikleştirebilir, özel arayüzler oluşturabilir ve konsolun varsayılan davranışını ihtiyaçlarınıza göre şekillendirebilirsiniz. Küçük bir makro yetersiz kaldığında plugin yazmak, profesyonel bir operatörün başvuracağı ilk çözümdür.

Lua Diline Hızlı Bakış

GrandMA2'nin kullandığı Lua 5.1, hafif ve öğrenmesi kolay bir betik dilidir. Eğer daha önce hiç programlama yapmadıysanız bile birkaç temel kavramı kavradıktan sonra işlevsel pluginler yazabilirsiniz.

  • Değişkenler: local fixtureCount = 12 şeklinde tanımlanır
  • Koşullar: if, elseif, else, end bloklarıyla yazılır
  • Döngüler: for i = 1, 10 do ... end yapısı kullanılır
  • Fonksiyonlar: function AdımAt() ... end şeklinde tanımlanır

İlk Plugin: Temel Yapı

GrandMA2'de her plugin bir giriş fonksiyonu içermek zorundadır. Konsol, plugin çalıştırıldığında bu fonksiyonu otomatik olarak çağırır. En basit plugin şu şekilde görünür:

local function Main(display_handle, argument) Echo('Merhaba, MA Dünyası!') return 0 end return Main

Burada Echo() fonksiyonu, GrandMA2'nin komut satırına çıktı gönderir. display_handle parametresi ise plugin'in görüntüleme bağlamını taşır ve gelişmiş arayüzler için kullanılır.

GrandMA2 API Fonksiyonları

GrandMA2, Lua ortamına konsolun iç yapısına erişmenizi sağlayan özel fonksiyonlar sunar. En sık kullanılanları şunlardır:

  • gma.cmd() — Konsola bir komut satırı komutu gönderir
  • gma.echo() — Komut satırına mesaj yazar
  • gma.user.getString() — Kullanıcıdan metin girişi alır
  • gma.user.getNumber() — Kullanıcıdan sayısal değer alır
  • gma.sleep() — Belirtilen süre kadar (saniye) bekler
İpucu: gma.cmd() fonksiyonu, konsolun komut satırına yazabileceğiniz her şeyi çalıştırabilir. Örneğin gma.cmd('Go+ Executor 1') yazarak bir executoru tetikleyebilirsiniz.

Plugin'i Konsola Yükleme

Yazdığınız plugin dosyasını .lua uzantısıyla kaydetmeniz gerekir. Dosyanın konumu şu dizin olmalıdır:

GrandMA2/gma2_V_X.X.X/plugins/

Dosyayı yerleştirdikten sonra plugin'i konsoldan yüklemek için şu adımları izleyin:

  1. Konsolda Menu > Plugins ekranını açın
  2. Listelenen plugin'inizi seçin
  3. Load butonuna basın
  4. Plugin'i çalıştırmak için Run butonunu kullanın veya bir executora atayın

Pratik Bir Örnek: Fixture Sıfırlama

Aşağıdaki örnek, belirli bir fixture grubunu seçip değerlerini sıfırlayan basit bir plugin yapısını göstermektedir:

local function Main(display_handle, argument) local grupNo = gma.user.getNumber('Hangi grup sıfırlansın?', 1, 1, 100) gma.cmd('SelFix Group ' .. grupNo) gma.cmd('At Home') gma.echo('Grup ' .. grupNo .. ' sıfırlandı.') return 0 end return Main

Bu örnekte .. operatörü Lua'da iki metni birleştirmek için kullanılır. gma.user.getNumber() ile kullanıcıdan alınan değer doğrudan komuta eklenir; böylece her seferinde farklı bir grup üzerinde işlem yapılabilir.

Hata Ayıklama İpuçları

  • Plugin çalışmıyorsa gma.echo() ile ara değerleri ekrana yazdırın
  • Sözdizimi hatalarını görmek için konsoldaki System Monitor penceresini açık tutun
  • Karmaşık komutları önce komut satırında test edin, sonra plugin'e ekleyin