İşte SPHERE'de script yazarken karşılaşabileceğiniz korkutucu sayıların bir listesi.

Açıkçası, kimse bu sayıları hatırlamak veya ezberlemek istemeyecek. Eski sürümlerde, SPHERE ve TUS'tan önce (pre-.50 SPHERE) ve hatta Grayworld'ün sisteminde (pre-.41 TUS), hepimizin bu sayıları hatırlaması gerekiyordu. Az önce söylediğim tüm bu numaraları (az önce uydurduğum seri numarası hariç) ve birkaç düzine daha fazlasını ezbere biliyorum. Neyse ki bütün gün oturup sayıları hatırlamayı sevmeyenler için, SPHERE nesnelerin sayılar yerine isimlerle tanımlanabileceği bir sistem geliştirdi.
Aslında, şeyler hala sayılarla tanımlanıyor. Bunlar aslında isimle tanımlanan numaralardır.
Oyunda .add 0eed yazın ve enter tuşuna basın. Bir hedef çıkacak ve tek bir gold coin yaratacaksınız.
Şimdi .add i_gold yazın ve enter tuşuna basın. Aynı şekilde yine tek bir gold coin yaratacaksınız.
Şimdi hatırlaması daha kolay, 0eed veya i_gold ikisi de aynı şey. Ama bence i_gold'un açık ara kazandığını söyleyebilirim. Ama bu olay nasıl oluyor? Bir gold coin için senaryo tanımına bir göz atalım. Anlama konusunda endişelenmeyin. Komut dosyalarını bir sonraki bölümde tam olarak açıklayacağım!
Ayrıca bu komut dosyasını sphere_item_resources.scp dosyasında bulabilirsiniz.
[ITEMDEF 0eed]
//gold coin
DEFNAME=i_gold
TYPE=T_GOLD
VALUE=1
CATEGORY=Provisions - Miscellaneous
SUBSECTION=Coins
DESCRIPTION=Gold Coin
DUPELIST=0eee,0eefKomut dosyasının üst satırındaki 0eed'i not edin ve geri kalanını yok sayın. Bu 0eed, bu itemin gerçek item numarasıdır. Bir sonraki bölümde ürün numaralarını daha fazla ele alacağız.Ama asıl satırı görmek istiyoruz. DEFNAME=i_gold satırı. Komut dosyasının sunucuya "0eed itemimin buradan sonraki metin i_gold tarafından tanımlanmasını istiyorum" dediği yer burasıdır. Sunucu bu betiği okumadan önce i_gold başvurmaya çalıştıysanız. Bölüm 2'de betikleri yeniden sıralama hakkında daha fazla bilgi, sunucu bir hata verirdi, ancak şimdi bunun ne anlama geldiğini biliyor, böylece onu oyunda veya başka bir betikte kullanabilirsiniz.
Oluşturduğunuz itemlere her zaman iteme uyan bir DEFNAME vermelisiniz. Genellikle defname, ITEMDEF tanımlayıcısının kendisinde tanımlanır (yine, bu konuya daha sonra değineceğiz), ancak sayıları kullanmakta ısrar ederseniz, ona hatırlaması kolay bir ad verdiğinizden emin olun (bir viking kılıcı için golden_gulash değil). İsimleri hatırlamayı sayılardan daha kolay hale getirir.
DEFNAME tanımlamanın ikinci bir yolu, bir komut dosyasında [DEFNAME] kullanmaktır.
İşte bunun bir örneği:
[DEFNAME colors]
color_blue 02
color_red 021
color_green 041Başka herhangi bir dosyadan önce yüklenmesi gereken başka bir dosya olan spheredefs.scp'de buna benzer bir komut dosyası bulacaksınız.İşte bu komut dosyasının satır satır özeti:
Line 1:
Bu, komut dosyası türünün ve defname'nin (evet, renkler bu komut dosyasının defname'sidir) tanımlandığı yerdir. Bu, sunucuya bu ve bir sonraki tanımlayıcı arasında ne tür bir komut dosyası beklemesi gerektiğini söyler (tanımlayıcılar, köşeli parantez içinde yer alan satırlardır). Tüm tanımlayıcılar bu biçime sahiptir. İlk parametre betik türüdür. Bunlar çoktur ve onlara ulaştığımızda üzerlerinden geçeceğim. İkinci parametre ya bir kimlik numarası ya da bir defname'dir. Çoğu durumda, yazdığınız komut dosyalarında bir defname olacaktır. Bunun düşünebildiğim tek istisnası, client dosyalarına yeni bir iyem eklemek için bir program kullanmanız olabilir.
Lines 2-4:
Bunlar, bireysel DEFNAME parçalarınızı ayarlar. color_blue'nin 02'ye, color_red'nin 021'e ve color_green'nin 041'e eşit olduğunu söylüyor. Ad ve değer arasında herhangi bir sayıda boşluk olabilir. spheredefs.scp'de yer alan tanımlar, önceki bölümde üzerinden geçtiğimiz uzun korkutucu sayıları yazmanızı engellediği için karşılaşacağınız en kullanışlı tanımlar arasındadır. Bunlar, flaglar için adlar, item öznitelikleri için adlar, yerleşik MIDI veya MP3 müzik için adlar, bellek türleri için adlar ve diğer birçok şey gibi şeyleri söyler.
DEFNAME'ler bu kadar. Diğer komut dosyası türlerini ele aldığımız için bunlardan daha fazlasını daha sonra göreceksiniz.[/defname]

