DIALOG
Diyaloglar, kullanıcı arayüzünün daha gelişmiş bir biçimidir ve düzenleri tamamen özelleştirilebilir.
Syntax
Bir diyalog tanımı, üç farklı script bloğundan oluşur; bir düzen, diyalogda kullanılan metin dizelerinin listesi ve istemciden düğme yanıtlarını işleyen bir düğme bölümüdür.
Layout
Diyalogun layout bölümü, diyalogun istemcilere nasıl görüneceğini tanımlar.
csharp
[DIALOG defname]
x, y
scriptdefname Diyalogun tanım adı.x, y Diyalogun ekranda görüntüleneceği koordinatlar.
script Diyalogun düzen scripti.
Script metni, bir işlev veya tetikleyici scripti gibi yürütülen tam bir script olabilir ve istenirse farklı istemcilere farklı düzenler göstermek için koşullu ifadeler içerebilir. Varsayılan nesne, diyalog çağrıldığında kullanılan karakter veya eşyadır ve SRC, diyalogu görüntüleyen istemcidir. Diyalog "RETURN 1" ile bitiyorsa, Sphere diyalogun görüntülenmesini iptal eder.
Normal bir scriptte erişebileceğiniz standart işlevler, özellikler ve referansların yanı sıra, diyalog üzerine öğeler yerleştiren işlevler de bulunmaktadır.
Aşağıdaki tablo, kullanılabilecek tüm öğeleri listeler:
button x y gump_down gump_up is_pressable page id Sayfaya bir düğme yerleştirir.
buttontileart x y gump_down gump_up is_pressable page id tile_id tile_hue tile_x tile_Y Sayfaya bir düğme yerleştirir, üstünde bir nesne resmi yer alır.
checkbox x y gump_check gump_uncheck initial_state id Sayfaya bir onay kutusu yerleştirir.
checkertrans x y width height Diyalogda şeffaf bir alan ekler.
croppedtext x y width height colour text_index Sayfaya belirli sınırlara saran bir metin yerleştirir.
dcroppedtext x y width height colour text Sayfaya belirli sınırlara saran bir metin yerleştirir. Dinamik koordinatları kabul eder.
dorigin x y Dinamik olarak konumlandırılan öğeler için başlangıç koordinatlarını ayarlar.
dhtmlgump x y width height has_background has_scrollbar text Sayfaya bazı HTML metinleri yerleştirir. Dinamik koordinatları kabul eder.
dtext x y colour text Sayfaya metin yerleştirir. Dinamik koordinatları kabul eder.
dtextentry x y width height colour id text İstemcinin metin girişi yapabileceği bir metin girişi alanı yerleştirir.
dtextentrylimited x y width height colour id limit text İstemcinin sınırlı miktarda metin girişi yapabileceği bir metin girişi alanı yerleştirir.
group id Radyo düğmeleri gruplamak için yeni bir grup kimliği tanımlar.
gumppic x y gump hue Sayfaya bir gump yerleştirir.
gumppictiled x y width height gump Sayfanın bir alanına gump kaplaması yapar.
htmlgump x y width height text_index has_background has_scrollbar Sayfaya bazı HTML metinleri yerleştirir.
noclose Diyalogun sağ tıklama ile kapatılmasını engeller.
nodispose Diyalogun "Diyalogları Kapat" makrosu ile kapatılmasını engeller.
nomove Diyalogun ekranda hareket ettirilmesini engeller.
page num Diyalogun sayfa numarasını tanımlamaya başlar. (Sayfa 0 içeriği tüm sayfalarda gösterilir)
radio x y gump_check gump_uncheck initial_state id Sayfaya bir radyo düğmesi yerleştirir.
resizepic x y gump width height Sayfaya çok parçalı bir gump yerleştirir, genellikle diyalog arka planları için kullanılır.
text x y colour text_index Sayfaya metin yerleştirir.
textentry x y width height colour id text_index İstemcinin metin girişi yapabileceği bir metin girişi alanı yerleştirir.
textentrylimited x y width height colour id text_index limit İstemcinin sınırlı miktarda metin girişi yapabileceği bir metin girişi alanı yerleştirir.
tilepic x y item_id Sayfaya bir eşya resmi yerleştirir.
tilepichue x y item_id hue Sayfaya renklendirilmiş bir eşya resmi yerleştirir.
tooltip cliloc_id @args Sayfaya bir araç ipucu yerleştirir (birden fazla argüman @ ile ayrılır).
xmfhtmlgump x y width height clilod_id has_background has_scrollbar Sayfaya bazı yerelleştirilmiş HTML metinleri yerleştirir.
xmfhtmlgumpcolor x y width height cliloc_id has_background has_scrollbar colour Belirtilen renkle sayfaya bazı yerelleştirilmiş HTML metinleri yerleştirir.
xmfhtmltok x y width height has_background has_scrollbar colour cliloc_id @args@ Sayfaya bazı yerelleştirilmiş HTML metinleri yerleştirir, cliloc'a argümanlarla (birden fazla argüman @ ile ayrılır).
Text
Diyalogun metin bölümü, diyalogun düzeninde kullanılan farklı metin dizelerini listeler. Metin temsil eden diyalog öğeleri kullanıldığında (örneğin, text veya htmlgump), istemcinin o diyalog öğesinde hangi metni görüntüleyeceğini bilmesi için TEXT bloğuna bir indeks belirtilir. Bu diyalog bölümü isteğe bağlıdır ve eğer diyaloğunda metin öğesi yoksa veya dtext veya dhtmlgump gibi daha yeni diyalog metin öğeleri kullanılıyorsa atlanabilir çünkü bu öğelerin metin dizeleri düzen içinde belirtilir ve Sphere otomatik olarak TEXT bloğunu doldurur.
csharp
[DIALOG defname TEXT]
string1
string2
string3b] Buttons Bu bölüm, istemci bir düğmeye bastığında tetiklenen düğme tetikleyicilerini içerir. Bir düğme basımı iki şekilde işlenebilir; her iki sözdizimi de aşağıda gösterilmiştir:
graphql
[DIALOG defname BUTTON]
ON=button_id
script
ON=button_id_start button_id_end
Scriptİlk "ON=button_id", eşleşen ID'ye sahip düğmenin basımını işler; ikincisi ise button_id_start ile button_id_end arasındaki tüm düğme basımlarını işler.Not: İstemci diyalogu sağ tıklayarak iptal ederse, düğme 0 için tetikleyici ateşlenecektir.
Düğme tetikleyicileri içinde normal işlevlerde mevcut olmayan bazı argümanlar bulunmaktadır. Aşağıdaki tablo, diyalog düğmesi tetikleyicilerine geçirilen her argümanı açıklar:
ARGCHK Seçilen onay kutuları/radyo düğmeleri sayısını döndürür.
ARGCHK[id] Belirtilen ID'ye sahip onay kutusu/radyo düğmesinin basılı olup olmadığını döndürür.
ARGCHKID İlk seçilen onay kutusunun/radyo düğmesinin ID'si, eğer hiçbiri seçilmediyse -1 döner.
ARGN1 Basılan düğmenin ID'si.
ARGTXT Gönderilen metin alanlarının sayısını döndürür.
ARGTXT[id] Belirtilen ID'ye sahip metin alanı için gönderilen metni döndürür.
scss
// Basit seyahat diyalogu varsayılan script paketinden.
[DIALOG d_TravelTown]
0, 0
resizepic 0 0 3600 215 200
page 0
text 40 17 0 0
text 40 37 1152 1
text 40 57 1152 2
text 40 77 1152 3
text 40 97 1152 4
text 40 117 1152 5
text 40 137 1152 6
text 40 157 0 7
button 20 40 1209 1210 1 0 1
button 20 60 1209 1210 1 0 2
button 20[/id][/id]
