Uzun zamandır aklımda olan bir şeydi SphereWiki'yi Türkçe bir döküman(devi) haline getirmek. Buna şu anda başlamaya karar verdim. Her gün bu başlık altında bir kısmını çevirmeye çalışacağım. Çeviremediğim yerleri kırmızıyla yazarım. Ingilizcem mükemmel değil. Kırmızı yerleri bana bildirirsiniz düzeltirim...

Çeviriye başlamam: 22:35



SAYILAR

Ilk düşüncem; Sphere scriptleriyle uğraşırken değişik yollarla sayıları kullanacaksınız. Öncelikle, sayılar script in önemli bir parçası olduğundan beri, serinin ilk dersi sayılardır. Bu dersin sonunda, Umarım genel olarak hexadecimal, decimal ve binary sayı sistemlerini anlarsınız,ve spherenin yolunda bunların her birini tanırsınız ve rastgele sayılar üreteceksiniz.


Ilk olarak, burada sadece sayı saymayacağımızı anlamalısınız. Bizim numara sistemimiz 10 karakterden oluşuyor(0, 1, 2, 3, 4, 5, 6, 7, 8 ve 9).Bu yüzden onuncu numaradaki 2. karakter için fazladan bir sütun eklemeliyiz, ve ilk sütunu sıfır için yeniden ayarlamalıyız(Sanırım Burası Yanlış Oldu... Aslında ben sayı sistemini atlayacaktım ama sırayı bozmak istemedim... Açıkçası bu sayı sistemini ben de bilmiyorum...). Bu yolla bizim sayı sistemimiz yolunda gider.


Decimal sistemde, onu realiz etmeden,
10'un gücüne Numaralarımızı yazmalıyız. (Yahu ne kadar kıtmış benim ingilizcem.) Örneğin, Eğer 17282(şimdi uydurdum) yi alırsak , ve onu ayırırsak bunu elde ederiz:


Power of ten 4 3 2 1 0
Ten To That Power 10000 1000 100 10 1
Rakam 1 7 2 8 2





Yahu... Ne kadar kıtmış benim ingilizcem... Ben bu bölümü atlamak istiyorum... benim geldiğim yerden sonrasını da siz yazın... ilk chapter ı bitirip döküman olarak ekleyelim...


saat:23:14







Chapter I i atlamaya karar verdim


23:30



BÖLÜM 2

SPHERETABLES.SCP

Spheretables.scp, sphere.ini den sonra okunan ilk dosyadır, ve dolayısıyla en önemlisidir. Hemen hemen önemli ayarlarımızın tamamı bu dosya ile belli olur. Şimdi, bu önemli dosyanın başlıklarından bahsedelim.
[RESOURCES]
Bu dosyayı açtığınızda ilk olarak kaynaklar(resources) listesini göreceksiniz. Bu liste [RESOURCE] tagıyla işaretlenmiştir. Bu liste şuna benzer:
[RESOURCES]
scripts/sphere_defs.scp
scripts/sphere_book.scp
scripts/sphere_backward_compatibility.scp
scripts/sphere_events_human.scp
scripts/sphere_events_npcs.scp
scripts/npcs/
...
Bu liste Sphere’ye hangi scriptleri tanıyacağını söyler. Bu listeyi dikkatlice değiştirmek zorundasınız, scriptler birçok DEFNAME , REGION ve diğer geniş çaplı ayarları içerirsphere başlarken çıkacak hatalardan sakının (her ne kadar bu hatalar server’ınızı göçertmeyecek olsa da). Örneğin, biz Bölüm 1 de buna benzeyen bir altın scripti gördük:

TYPE=t_gold


Şimdi, Sphere sphere_defs’deki script i kapsamadıkça, bu t_gold un tanınması için iyi bir şey olmaz, ve size bir hata verir. Çünkü t_gold sphere_defs.scp tanındığında henüz tanınmamıştır. Yani kaynakların sıralanış biçimi, oldukça önemlidir. Kaynakların sırasını terse çevirin bakalım, kaç hata alacaksınız=)
Item dosyaları template dosyalarından önce tanınmalıdır(daha üstünde yer almalıdır), ve en son character dosyaları gelmelidir. Diğer dosyalar bunlardan sonra gelebilir, ama bu özel dosyalar bu sırada yazılmalıdır. Canavar loot’ları itemler ve templatelerden oluşur, ve SPHERE çoktan bu dosyaları templatelerden önce tanımalıdır. Yoksa SPHERE hata verir ve bir takım hatalar ortaya çıkar.Gerçekten, Bunları düzenlemek zor değildir, ama bu programı yeniden başlatma işlemi ve ekranınızda sıralanan hatalar gerçekten siniz bozucu olabilirler.
Not: SPHERE kullanmak istiyorsanız, spheretables.scp dosyasının sen üstündeki tag [RESOURCES] olmalıdır, eğer böyle olmazsa diğer en üstteki diğer bir tag script lerden yararlanamaz ve yine o muhterem hatalarla karşı karşıya kalırsınız.







23:50


Chapter I i atlayarak II den devam etmeye karar verdim... Yarın buradan devam ederim... bu kısım 30 dk. da bitti...


Bu konu borakrc tarafından düzenlendi(2008-01-13 17:54, 16 yıl önce)
çevir bakalım :D gene hazıra konarlar ama napacaksın böle :D ingilizce ögrenmek yerine :D birinin yapmasını bekliolardı :) sen yaparım diosun
Silindi
Apprentice
0
Kolay gelsin.Benim ingilizcem olsa bende çevirirdim.Ancak ingilizce yok.Fakat bizde bilgilerimiz ile yazıp koyuyoruz.Tekrar kolay gelsin.
yahu benim ingilizcem az da olsa var. Sizin dökümanlardan daha düzenli olduğu için Türkçeleştirmeye karar verdim. Her gün bir kısmını bu başlığa yazarsam bir zaman sonra biter herhalde.
Master
59.2997
Şevkini kırmak istemem ama oradaki yazanları aynen çevirmen düşük bir ingilizce seviyesi ile çok zor. Ama kolay gelsin.
Silindi
Master
59.2997
@Borakrc

bizim dökümanlarımız sadece belli konuları kapsıyor.Fakat spherewiki de dosya içeriklerinden tut komutlara kadar herşey anlatılıyor.
@Michaell ben de onu diyorum. sizin tek satırda anlattığınız şeyi adam bir paragrafla anlatmış. Onları okuyup da anlamamak çok zor. Ben de okuyamayanlar okusun diye bi çalışma başlatmak istedim.

@Slothere ingilizcem kıt demek istememiştim aslında. sadece bilmediğim terimler var. yoksa genel olarak anlıyorum okuduğumu:D


not: akşam eve gidince devamını çeviririm...
Bende Chapter 3ü yapıyım bari haydi rastgele

Chapter III

NPC EVRİMİ

Birinci bölümü hatırlarsanız basit bir NPC scriptine baktık. Şuna Benziyordu:

[CHARDEF 0190]
DEFNAME=c_man
Name=Man
ICON=i_pet_MAN
CAN=MT_EQUIP|MT_WALK|MT_RUN|MT_USEHANDS
RESOURCES=i_flesh_head, i_flesh_torso, i_flesh_right_arm, i_flesh_left_arm
FOODTYPE=15 t_food, t_fruit
DESIRES=i_gold,e_notoriety
AVERSIONS=t_TRAP,t_eerie_stuff
SHELTER=r_house
BLOODCOLOR=0

TSPEECH=spk_human_prime
TSPEECH=spk_human_default
TEVENTS=e_Human_HearUnk
DESCRIPTION=Man
SUBSECTION=Miscellaneous
CATEGORY=Civilized

Gördüğünüz gibi bu yarım bir NPC scriptidir.Şimdide birtane tamamlanmış script koyalım:

CHARDEF 0490]
DEFNAME=C_H_ALCHEMIST
NAME=#NAMES_HUMANMALE the Alchemist
ID=C_MAN

DESIRES=i_gold,e_notoriety,t_magic
AVERSIONS=t_TRAP,t_eerie_stuff

TSPEECH=spk_human_prime
TSPEECH=jobalchemist
TSPEECH=spk_shopkeep
TSPEECH=spk_needs
TSPEECH=spk_rehello
TSPEECH=spk_human_default

TEVENTS=e_Human_HearUnk
TEVENTS=e_Human_ConvInit
TEVENTS=e_Human_Greet
TEVENTS=e_Human_Space
TEVENTS=e_Human_Needs
TEVENTS=e_Human_Refuse
TEVENTS=e_Human_Environ

ON=@Create
NPC=brain_vendor
COLOR=colors_skin
STR={36 50}
DEX={36 50}
INT={51 65}

ALCHEMY={55.0 78.0}
TasteID={55.0 78.0}
WRESTLING={15.0 38.0}
MAGICRESISTANCE={25.0 48.0}
TACTICS={15.0 38.0}
POISONING={35.0 55.0}

ITEMNEWBIE=random_male_hair
COLOR=colors_hair
ITEMNEWBIE=random_facial_hair
COLOR=match_hair

ON=@NPCRestock
ITEM=i_expcoin,3

ITEM=i_shirt_plain
COLOR=colors_all
ITEM=random_pants
COLOR=colors_all
ITEM=i_robe
COLOR=colors_red
ITEM=random_shoes
COLOR=colors_neutral
ITEM=random_coin_purse

SELL=VENDOR_S_ALCHEMIST
BUY=VENDOR_B_ALCHEMIST

CATEGORY=Civilized
SUBSECTION=Tradesmen
DESCRIPTION=Alchemist (male)

Buradaki yazıları sırasıyla şöyle özetliyebiliriz!:

[CHARDEF 0490] derken: Bu satırın söylemeye çalıştığı şey "Sphere! Bu başlıkla diğer başlık arasındaki herşey bir karakteri tanımlıyacaktır! Şimdi sormamız gereken soru "Acaba bu karakter ne olacaktır?" Şimdi 0490 hakkında hiç bir bilgimiz yoktur. Bu sadece Sphereın içindeki 0490 numaralı karakterdir. Bu 0490 aynı zamanda clienta hangi anim gösterceğinide söylemektedir. Not: Burdaki sayı yerine [Chardef x] şeklindede yapabiliriz.
Örneğin :[Chardef c_new_monster]
___________________________________________________________________________

DEFNAME=C_H_ALCHEMIST: Bu scriptin defnameidir. Bunun gibi şeyleri tüm scriptlerde göreceğiz. Bu satırın konulma nedeni "0490" numarasını yazmak akılda kalıcı olmadığı için "c_h_alchemist" yazarak bunun daha rahat akılda tutulmasını sağlamak. Bu satırda (c)=character(karakter), (h)=human(insan) ve alchemistde alchemisti temsil ediyor. Defnamelerinizi mantıklı yaparsanız daha rahat bu karakteri hatırlamanızı sağlayacaktır. Eğer bir scripte "c_robed_man" defnameini verirsek bu giysili adamın ne olduğu hakkında hiç bir akılda kalıcı unsur kalmaz.

___________________________________________________________________________

NAME=#NAMES_HUMANMALE the Alchemist: Bu Sphere'ın kolaylaştırmalarından biridir. İkinci bölümde bahsedilen sphere_name.scp i hatırlarsanız bu scripte yazan humanmale adlarını rastgele bu karakterin adı olarak atıyacağıdır. Bu adı aynı şekilde ikiye de ayırabiliriz. Burda mantıken ilk yazan Karakterin adı ikinciside ünvanıdır. Bu ünvanı adıyla birlikte yazacağımıza aynı şekilde alttaki bir satıra "Title=The Alchemist" yazarsak bu adı Ad ve Ünvan olarak ikiye ayırmış olacağız. Yani Şu şekilde gözükecek:

NAME=#NAMES_HUMANMALE
TITLE=the Alchemist 

___________________________________________________________________________

ID=C_MAN: Burda SPHERE a karakterin neye benzeyeceğini söylüyoruz.

Sphere'ın yeni versiyonu c_man id li 0490. karakterimize otomatik olarak c_man le birlikte gelen rastgele şeyleri yeni yaptığımız karaktere uygulayacaktır. Tabiki eğer biz farklı birşey yazmazsak. Yeni, daha belirli karakterimiz Sphereda kayıtlı olan daha az belirli karakterimizin özelliklerini benimsiyecektir.

Script de DESIRES ve AVERSIONS görebiliyorsunuz.(desires: istedikleri, aversions=istemedikleri) Peki neden biz zaten c_man önceki karakterdeki şeyleri almışken birdaha bunları veriyoruz. Şimdi bütün Aversions lar tüm karakterler için aynıdır fakat Bir alchemistin DESIRESları normal insanların DESIRESlarından farklı olabilir. Bu yüzden Sphere'a diyoruzki "Sphere normal c_man'in istediklerini bizim belirttiğimiz yeni isteklerle değiştir."

____________________________________________________________________________

TSPEECH= Bu satırı sphereın içindeki speech dosyasının içindeki konuşmalar diye çevirebiliriz. Bu scpritte verilen speechler c:sphere/speech in altında önceden belirtilmiş şeylerdir.

Şimdi basit bir speech scriptine bakalım.

[SPEECH spk_human_test]
ON=merhaba
SAY Aleykum Selam!


Şimdi scriptimize "TSPEECH=spk_human_test" yazısını koyarsak yaptığımız NPC bizim bu NPC nin yanında her merhaba yazdığımızda bu NPC nin bize Aleykum Selam! şeklinde cevap vereceği anlamına geliyo. Eğer biz bu "merhaba"'nın başına (*) koyarsak, merhaba sözcüğünü içeren her sözümüzde bu npcnin Bize Aleykum Selam şeklinde cevap vereceğini anlatır. Yani "Merhaba Ak Sakallı Alchemist" yazarsak bu NPC nin yanına gidip NPC bize Aleykum Selam şeklinde cevap verecektir. Çünkü Bizim söylediğimiz cümle "merhaba" sözcüğünü içermektedir.

Speech daha karmaşık bir şekilde anlatılması gerekmektedir o yüzden daha sonra speeche tekrar değineceğiz.

___________________________________________________________________________

TEVENTS= Bundan birinci bölümde yüzeysel şekilde bahsetmiştik. Bu satır karakterimizin bizim verdiğimiz eventleri yapmasını sağlayacaktır.BU scripte göreceğiniz gibi bu NPC bir sürü event içermektedir. Bu eventler NPC nin ne söyleyeceğini, neleri duyacağını, ve bilmediği bir kelime söylendiğinde ("Huh?") şeklinde cevap vereceğini söylüyor. Eventleri kapsamlı olarak 8. Bölümde anlatıcaz. İlk önce basit eşya script yapmasını öğrendikten sonra eventlere geçiceğiz.

___________________________________________________________________________

ON=@Create: Aslında yalan söyledim çünkü @create de bir eventtir. Ama bu özel bir eventtir.Basitce bu trigger dan sonra kullanacağımız herşey NPC yaratıldığında olacak şeyleri kapsıyo. Bu scriptte triggerın altında yazanları az çok anlayabileceğiniz kanaatindeyim o yüzden onları geçiyorum. Şimdilik bilmeniz gereken şey @create triggerının altında yazdığımız herşey oyun içinde değiştirebileceğimiz şeylerdir. (NPC nin statları, skilleri,rengi ve tagları) Tabiki tagları chardefin altındada belirtebiliriz. Bu aynı chardef deki tüm NPC lere aynı tagı vermenin en iyi şeklidir(Ama galiba siz TAG ne demek bilmiyorsunuz. Çünkü Daha Bahsetmedim :) )

___________________________________________________________________________

ALCHEMY={55.0 77.0} Bu satır tamamen bir aldatmadır. Çünkü SPHERE ondalık sayıları okuyamaz. Bu ondalık sayılar sadece sizin oyun içindeki skills menüsündeki yazılışlarıdır. Sphere ondalık sayıları okuyamadığı için bizim bunları "(.)" sız yazmamız gerekmektedir. Yani "55.0" yerine "550" yazmamız gerekmektedir.

Oyun içinde [.set alchemy 55] yazdığımızda skillimiz 5.5 olacaktır fakat eğer 550 yazarsak skillimiz 55.0 olacaktır.

___________________________________________________________________________

NPC=brain_vendor

TÜm NPC lerin belirli bir akılları vardır.Mesela bu alchemistin braini(beyni) "brain_vendor" olarak atanmış. Bunun anlamı bu NPC nin "buy", "sell" şeklindeki konuşmalara alışveriş penceresini açıcağıdır. Burda diğer beyin tiplerini görebiliyoruz:

[defname brains]
BRAIN_NONE 0 // oyuncular için (beyinsiz demek) :)
BRAIN_ANIMAL 1 // Hayvanlar: ortada gez, sadece saldırıldığında saldır
BRAIN_HUMAN 2 // İnsan: ortada gez ve konuş
BRAIN_HEALER 3 // Healer: Ölüleri dirilt
BRAIN_GUARD 4 // Guard: Crim ve PK ları öldür
BRAIN_BANKER 5 // Banker: Yanında bank yazınca açsın
BRAIN_VENDOR 6 // Vendor: "buy" ve "sell" e tepki veriyo alışveriş menüsünü açıyo
BRAIN_BEGGAR 7 // Dilenci: İnsanları iğrenç sorular sorarak takip et
BRAIN_ANIMAL_TRAINER 8 // Trainer: Hayvanları durdurur(stable yazıyodu valla)
BRAIN_THIEF 9 // Thief: Hiç bi anlamı yok
BRAIN_MONSTER 10 // Evil: Gördüğü oyunculara saldırır
BRAIN_BESERK 11 // Crazy: Gördüğü herşeye saldırır
BRAIN_UNDEAD 12 // Undead: Evil le aynıdır sadece belirtmek için undead olduğunu
BRAIN_DRAGON 13 // Dragon: Ateş kusuyo (tavşana verip görebilirsiniz)
BRAIN_VENDOR_OFFDUTY 14 // Hiçbir fikrim yok
BRAIN_TOWNCRIER 2 // brain_human la aynı şey
brain_beserk brain_berserk //brain_berserk le aynı şey

___________________________________________________________________

ITEMNEWBIE= Bu NPC nin çantasındaki itemı newbie olarak barındırmasını sağlar


ON=@NPCRestock Buraya koyacağınız şeyler NPC öldüğünde çantasından ne çıkacağıdır. Çoğu scriptte bu template olarak geçer.

___________________________________________________________________

SELL=VENDOR_S_ALCHEMIST
BUY=VENDOR_B_ALCHEMIST
Burda vendorun ne satacağını belirliyoruz. Peki bu listeler nereden geliyor? Tabiki bunlar templateler. BU templateleri "spheretemp_vend.scp"in içinde bulabilirsiniz.

Vendorların sattığı itemların fiyatları bu "buy" ve "sell" satırlarında bulunmaz. Fiyatlar eşyaların kendi scriptlerinde "Value=..." şeklinde mevcuttur. Eğer bir itemda value yazılmadıysa, fiyat itemın yapıldığı itemların fiyatlarıdır. Yani 8 tane iron ingotdan yapılan bir eşyada itemın fiyatı direk 8*(iron ingotların fiyatı) olarak girer. Normalde eşyalar aldığınız yarı fiyatı olarak satılır.

Burdaki bilginizle yeni yaratıklar yaratabilirsiniz. Ama şimdilik yeni birşeyler yapamazlar. Sadece bu bilginizle NPC nin rengini değiştirir, daha güçlü veya zayıf yapabilirsiniz.


Hadi buda benden olsun 1saat 15dk fln sürdü fazla diil heralde diğerlerinide yapmaya çalışırım
Master
59.2997
borakrc : @Michaell ben de onu diyorum. sizin tek satırda anlattığınız şeyi adam bir paragrafla anlatmış. Onları okuyup da anlamamak çok zor. Ben de okuyamayanlar okusun diye bi çalışma başlatmak istedim.

@Slothere ingilizcem kıt demek istememiştim aslında. sadece bilmediğim terimler var. yoksa genel olarak anlıyorum okuduğumu:D


not: akşam eve gidince devamını çeviririm...

Zaten kıt demek istememiştim ama neyse =)
Bunlari buraya yazicaginiza niye BURAYA yazmiyorsunuz?
Düşünmemişlerdir ama genede emege saygımız war dır :yes
Slothere biliyorum öyle demek istemediğini=)... Mübalağa sanatı:P

Ben CHAPTER II ye devam ediyorum...

@Akillis onun neresine yazacağımı bulamadım... zaten öyle bir yer olduğunu da bilmiyordum... Her Chapter bitirişimde oraya geçiririm... Burada arkadaşlar da bazen yardım ediyorlar. Daha hızlı oluyor... Mahsuru varsa lütfen o sitede yazabileceğim bir yer gösterin... Açıkçası orada yetkili olmak da isterim...

@Basic arkadaşıma da gerçekten çok teşekkürler chapter III için... Chapter III de kaldığın yere ben Chapter II bitince devam ederim=)... Bu arada Chapter I den hiçbir şey bilmediğim için onu çeviremiyorum(çünkü anlamıyorum... her terime tek tek bakmam gerekince de 1 saatte 1 paragraf oluyor... denedim...) Dökümanlara da direk Chapter II den başlayarak yazarım...(Hani bunu dökümanlar kısmına da ekliyecez ya... o olay... tabi tüm siteyi geçirince ekliyecez...=)(en azından ben böyle umuyorum...


CHAPTER II


== [OBSCENE] ==

Sıradaki kısımların ne oldukları isimlerinden zaten belli(Aslında bu dökümanı Ingilizce bilmediğini farzederek hazırlıyorum ve bunların ne olduklarını isimlerinden anlayamayacağınıza eminim...), [OBSCENE]. Bu kısım yasak kelimeleri içerir. Eğer bir player bu listedeki bir isimle char açmaya çalışırsa, client bu isimle char açamayacağını ve başka bir isim seçmesini ister. Eğer birisinin hoşlanmayacağı kelimeler yada birisine söverken kullanacağı kelimeler varsa, bu liste o kelimeleri yazacağınız yerdir. Server'ınızda sansürün olmamasını istiyorsanız bu listenin boş bırakılması gerekir.


== [NOTOTITLES] ==

Bu liste player'ların karmalarına göre ne tür metinler alacaklarını belirler. Bu bölümü kurcalamayın. Eğer bir satırı silerseniz, server'ınız ÇALIŞMAZ. Silmeyin, sadece değiştirin.

== [PLEVEL X] ==

Bu kısım plevel lere göre kullanılabilecek komutları belirler. Bu listede yer almayan bir komut otomatik olarak plevel4 ve üstüne verilir. Bu komutlar kendinden tanımlı komutlardır(Chapter VI ya bakınız). Emulatörün içinde yer alırlar ve hardcoded dirler.Gördüğünüz gibi, burada functionların ve komutların bir listesi yer almaktadır.

Not: Tüm function larınızı bu kısımda belirtmek zorunda değilsiniz, diğer scriptlerde de [PLEVEL 5] gibi bir kısım yaratarak o script içerisinde de komutları belirtebilirsiniz.



==[RUNES]==

Bu liste sizin büyü yaparken söylediğiniz sözleri içerir. Isteğe göre bunları değiştirebilirsiniz. Gerçekten çok eğlenceli;)



SPHERE.INI

Sphere.ini dosyası, SPHERE nin tüm iç ayarlarını içerir. Burası sizin shard ınızın en önemli ayarlarını içerir ve SPHERE Emulatörü sphere.ini dosyası ile birlikte başlar.


Bu kısımda, kendi sphere.ini dosyamı buraya koyarak bu dosyayla ilgili daha ayrıntılı bilgiler vereceğim.


//****************************************************************************
// SPHERE by : Menasoft 1997-2003
// www.sphereserver.com
// All SPHERE script files and formats are copyright Menasoft & Partners.
// This file may be freely edited for personal use, but may not be distributed
// in whole or in part, in any format without express written permission from
// Menasoft & Partners. All donations and contributions
// become the property of Menasoft & Partners.(Bilmem kim tarafından üretilmiştir tüm hakları saklıdır deneme amaçlıdır falan fıstık:P)
//****************************************************************************

///////////////////////////////////////////////////////////////
//////// General Information
///////////////////////////////////////////////////////////////

[SPHERE]
// Shard ınızın adı
ServName=WarAngel's Test Centre
// Server'ınızın ip si... Bu her zaman 127.0.0.1 olmalıdır
ServIP=127.0.0.1
// Server ınızın portu. Genellikle 2593 dür.
ServPort=2593

// Server sahibinin mail adresi
[email protected]
// Server ınızın sitesi
URL=www.myshard.com
// GMT + kaç olsun server saatiniz? Türkiyeninki +2 ve +1 arasında değişiyor.(Yaz/kış uygulaması)
TimeZone=-5 Eastern Time (US & Canada). Change this to fit your timezone

// Resmi Staff dili(Türkçe elbette=)
Lang=English
// Sistem Win2000, XP, NT lerden hangisini kullanıyor?
NTService=0

// MySql ayarları.
//MYSQL=0 Burayı MYSQL=1 yaparak Veritabanını aktif edebilirsiniz
//MySqlHost=localhost Burası her zaman localhost olmalıdır.(Tabi veritabanı kendi makinanızdaysa)(Daha önce forum kuranlar burayı çok iyi anlayacaktır eminim.)
//MySqlUser=Database kullanıcı adı
//MySqlPassword=Database şifresi
//MySqlDatabase=Database adı.(Buraları da sormayın artık:D)


Bu günlük bu kadar yeter... Yarın devam ederim...(Tek sorun sınavlar... 15 tatilin sonunda tamamı bitecek ama... Vallaha...)
@borakrc Önemli Değil:) Sana iş bırakmıyım devam ediyim III'e

BÖLÜM III (Devamı)
__________________________________________________________________________
Eşya Scripting
Super Duper Fire Wand


[ITEMDEF i_wand_super]
NAME=Super Duper Wand of Fire and Brimstone
ID=i_wand_1
TYPE=t_wand
RESOURCES=i_wand,10 i_scroll_flamestrike


ON=@Create
ATTR=attr_magic
MOREX=s_flamestrike
MOREY=50.0
MORE2=10

Bu sefer bir script le başladık. Güzel bir script hiç bi yerde bulamıyacağınız bir script

[ITEMDEF i_wand_super]
Bunun ne demek olduğunu anlamışsınızdır. "chardef"'in eşyalar için olanı bu aynı işlevi görüyolar. Şimdi defname'i i_wand_ super olan bir eşya yapıcaz.


NAME=
Bu ... bu.... nedemek ti ya hatırlatırsınız bi ara name'in ne demek olduğunu


ID=i_wand_1
burda yine karakter yapar gibi eşyanın neye benzeyeceğini ayarlıyoruz.

TYPE=t_wand
NPC lerdeki brain le yakın olarak söyliyebileceğimiz "type". Bu eşyanın işlevini belirtir. "t_telepad" yaparsak mesela bunu teleporterların özelliğini taşıycak. Tabiki bir sürü type var. Bunları gördükçe anlıyacaksınız.

MOREX =bu wandın hangi büyüyü atacağı
MOREY = kaç skille bu wandin çalışacağı
MORE2 = wandın kaç kere kullanılabileceği


Her itemın morelarının işlevi farklıdır. Şimdi konu gelmişken bir eşyada kullanılabilecek tüm değişkenleri yazalım:

MORE1 (or MORE)
MORE2
MOREP
COLOR
TYPE
CREATE
LAYER
ATTR
LINK
CONT
TOPOBJ
LINK
Görüceğimiz gibi bu değişkenler eşyalarla daha çok şey yapmamızı sağlıyacaktır. Bu değişkenleri kullanmayı diğer bölümlerde göstericez.

Bu özelliklerin bir tanesi olan(MOREP). MOREP'in anlamı (x,y,z,m) dir. Bunu açarsak ayrı ayrı MOREX=1 MOREY=2 MOREZ=3 MOREM=4 yazıcağımıza MOREP=1,2,3,4 yazarak bunları tek satırda pratik olarak yazabiliyoruz. Yani bu şekilde:


MOREP=1,2,3,4


Bunun anlamı aynen şudur:


MOREX=1
MOREY=2
MOREZ=3
MOREM=4

Bu bizim C++ programming dediğimiz şeydir.Basitce anlamı bu datanın miktarında bazı sınırlamalar olacaktır.çok kötü çevirdim burayı (orginal:basically meaning there are going to be restrictions on the amount of data you can store in each of these variables.) MOREX ve MOREY 0FFFF ye kadar olan numaraları içerebilir. MOREZ -128 den 127ye kadar olan numaralı içerebilir. MOREM ise 0 dan 255e kadar sayıları içerebilir.

Unutmayınki MOREP le birlikte MOREX MOREY MOREM MOREZ'i kullanırsanız çakışma yaşanabilir.Mesela:

MOREP=10,42,51,53
MOREX=78
MOREY=89
MOREM=56
yaparsanız

MOREP 78,89,51,56 eşit olur.

Sphereın bize verdiği diğer değişkenlerde bize açık olmasada MORE1L, MORE1H, MORE2L, ve MORE2H. Ama bunlar Aynı MOREP'de olduğu gibi MORE1 ve MORE2 nin uzantıları olarak tanımlıyabiliriz. Aynı şekilde MORE1 le birlikte onun uzantılarını birlikte kullanmamız sorun yaşatabilir:

MORE1=0FFFFFFFF
MORE1L=01234
MORE1H=0F0

Bunun gibi(HATALI YUKARDAKİ)

Bu sayıların nerden geldiğini merak ediyosanız meraklanmayın. Çünkü MORE1H ve MORE1L vs. yi hiç kullanmak zorunda kalmıyacaksınız.

Daha sonra ATTR kullanımıda anlatıcaz. ATTR kullanarak bazı eşyalara yeni özellikler verebilirsiniz.(haraket ettirilemez, magical, newbie veya invis gibi). (Bir sonraki bölümde ATTRler)

Şimdiye kadar @create triggerından sonra eşyaya verilen özellikleri. Eşyanın moreplerini ayarlayarak Nasıl çalışacağını sphere a belirttik. Yani bu scriptten anlıyacağımız bu eşyayı yarattıktan sonra iki kere tıklarsak faremiz target şeklini alıcak ve bastığımız varlığa Kal Vas Flam büyüsünü atıcak.

_______________________________________________________________

@Create Triggerını Anlama

Neden herşeyi itemdef in altına yazmadığımızı merak ettiyseniz çünkü herşey oraya yazılmaz sadece id, name gibi genel özellikleri oraya yazabiliriz. Kişisel özelliklerini on=@create in altına yazıyoruz.
Itemdefin altına yazabileceğiniz bazı şeylerde WEIGHT, VALUE, RESOURCES ve elbette DEFNAME. Tabiki daha fazlası var ama herşey sırayla öyle değil mi?
_______________________________________________________________

Güzel Komutlar

Bir alandaki bir çok NPC yi öldürmek veya Birçok eşyayı silmek, birçok şeyin rengini değiştirmek istiyosanız nuke funcitonunu kullanacaksınız.

".nuke" yazalım oyundayken ve bir kare olarak düşünelim ilk başda karenin bir köşesini daha sonra da diğer köşesini seçiyoruz ve o karenin içindeki herşeye yazdığımız şey uygulanmış oluyor. Mesela ".nuke" yazarsak sadece eşyalar silinir.

Şimdide ".nuke color 02" yazalım ve tekrar bir kare seçelim. Bu seferde Seçtiğimiz karenin içindeki eşyalar mavi olacaktır.

".nuke dupe" buda yine karenin içindeki tüm eşyaları dupeler.

.nukechar da aynı şekilde çalışır nuke yerine nukechar yazarsak seçtiğimiz karedeki varlıkları hedef alırız eşyalara dokunmayız.

".nukechar kill" yazarsak ve bir kare seçersek bu karenin içindeki tüm varlıklar ölecektir.

Ve birde serverdaki spawnları yaptığınızı düşünelim. Ve daha sonra vendor scriptlerinde bir değişiklik yaptığınızı var sayalım. Tüm worldü gezip tüm spawnları aktif etmek zor olduğu için kullanabileceğimiz bir şey var. Şimdi mesela britaindeki vendorlara uygulayacağımızı düşünelim bunu yapacağımız şey şu:

.go britain =Britaine gidiyoruz ve daha sonra .region.restock=Bu alandaki(britain) Tüm spawnlar yeniden aktif olsun.

Ve Ne görelim Britaindeki tüm Vendorlar yeniden çıktı

Şunu unutmayınki: ".region.restock all" yazdığınız anda serverınız donar.

Çeviri 32,33 dk sürmüştür.
Uyuya kalmışım eve gelince. Şimdi uyandım. Az daha yazamıyordum bu gün=)



///////////////////////////////////////////////////////////////
//////// File Locations
///////////////////////////////////////////////////////////////
// spheretables.scp miz hangi klasördeyse orayı yazıyoruz.
ScpFiles=scripts/

// sphereworld.scp ve spherechars.scp miz neredeyse orayı yazıyoruz
WorldSave=save/

// sphereaccu.scp ve sphereacct.scp miz neredeyse orayı yazıyoruz
AcctFiles=accounts/

// UO yu nereye yüklediyseniz... SPHERE'nin map0.mul, statics0.mul a ihtiyacı var,
// staidx0.mul, multi.mul, multi.idx, hues.mul, tiledata.mul a da ihtiyacı var.
// Zorunlu dosyalar: verdata.mul, mapX.mul/staticsX.mul/staidxX.mul for higher
// Harita destekleri (Malas, etc).
//
// Eğer bu ayarlanmazsa, SPHERE tüm windows u tarar ve o dosyaları bulur.
//MulFiles=mul/

// LOG dosyalarınız nereye kaydedilsin?(MSN deki değil:D)
Log=logs/

///////////////////////////////////////////////////////////////
//////// World Save Information
///////////////////////////////////////////////////////////////
// Kaç dakika arayla save alınsın
SavePeriod=20

// Kaç level önceki saveler korunsun? Her level için 7 save alınır.
// Bu yüzden, 10 level için, 10*7 = 70 save eder.
BackupLevels=10


//yahu nasıl çevirmişim burayı.. sonradan okuyunca koptum vallahi.. 56b ile gelen level sistemi ile karıştırdım galiba..

//Saveler kaçıncı seviyeye kadar korunsun? Her seviye 7 saveyi kapsar.
//Yani, 70 savenin korunmasını istiyorsanız koruma seviyeniz 70/7=10 olmalı.
Backuplevels=10

// Açıksa arka plan aşağıya doğru kayar. Ama oyunu engellemez
// Kapalıysa şöyle bir uyarı alırsınız"World save has been initiated". Bu durumda daha hızlı save alınır, ama oyunu aralıklarla durdurur
SaveBackground=0

///////////////////////////////////////////////////////////////
//////// Account Management
///////////////////////////////////////////////////////////////
//Serverınızın account sistemleri
// 0=Closed, // Kapalı. Daha fazla player istemiyoruz.
// 2=Free, // FREE işte. Girişte olmayan acc adı girilirse acc açılıyor.
// 3=GuestAuto, // Bir guest oluyorsunuz ve otomatik olarak mail'inize şifre gönderiliyor.
// 4=GuestTrial, // Account'lar admin tarafından aktif edilene kadar guest olarak kalırlar
// 6=Unspecified, // Belirlenmemiş
AccApp=0

// Store password, MD5 ile olursa her şeyi bozar. MD5 güvenli bir şifreleme yöntemidir.
Md5Passwords=0

// Adminin varsayılan ip'si.(Acaba 1 diye ip mi olur? Yoksa ben kazma mıyım?)
LocalIPAdmin=1

// Bir account'da bulunabilecek en fazla char sayısı
MaxCharsPerAccount=5

// Bir char'ın silinebilmesi için geçmesi gereken min. süre.
MinCharDeleteTime=3*24*60

// Bulunabilecek max. guest account.
GuestsMax=0

///////////////////////////////////////////////////////////////
//////// Client Management
///////////////////////////////////////////////////////////////
// Hangi client versiyonunu kullanıyorsunuz?
//Eğer bu satırı tanıtırsanız(başına // koymazsanız) client versiyonu buraya yazdığınız versiyon ile uyuşmayan oyuncular oyuna giremezler.
//ClientVersion=2.0.3

// Bunu 0 yaparsanız şifrelenmiş client'lerin girişini engellersiniz. Default client şifrelenmiştir.
UseCrypt=1

// Bunu 1 yaparak şifrelenmemiş client leri oyuna kabul edersiniz.UO Rice ve UOGateway gibi programlarla client i şifrelenmemiş yapabilirsiniz.
UseNoCrypt=0

// Server'a aynı anda en fazla kaç kişi bağlanabilsin
ClientMax=256

// Bir ip den en fazla kaç accountbağlanabilsin?
ClientMaxIP=16

// Max. en fazla server a bağlanmış account sayısı(oyunda olmayan)
ConnectingMax=32

// Max. en fazla aynı ip den server'a bağlanmış acc sayısı(oyuna olmayan)(char yaratma server seçme ekranında falan işte...)
ConnectingMax=8

// Client kapatıldıktan kaç saniye sonra oyundan düşsünler?
ClientLinger=15

// 10 saniyede kaç kare yürünebilsin(Emin değilim.).
WalkBuffer=75

// Walk limiting code: regen speed (%)(Burayı da çevirecem yanlış olacak... Buyrun siz çevirin:O Sorumluluk almıyorum:D)
WalkRegen=25





Yarın buradan devam...

Yeniden merhaba. Dün kaldığım yerden devam ediyorum.

// Bu plevel yada daha üstü login olduğunda sadece komutlar çıkar.
CommandLog=0 //0 tüm komutların işleyeceği anlamına geliyor.

// Oyundaki komutların önüne gelecek işaret(.go britain deki . yı kastediyor)
CommandPrefix=.

// HTTP server kullanılsın mı?
UseHttp=1

// Ana client kullanılsın mı?
UseGodPort=0 Burası ana client ile birlikte kullanmanız içindir(56b olmasaydı daha güzel çevirebilirdim... Eminim...)

// Tüm hesapları ayrıntılı bir şekilde yedekler. En az seviye 1(T2A) koruma ister.
//AutoResDisp=0 0=otomatik seçilir, 1=T2A, 2=LBR, 3=AoS, 4=SE, 5=ML

// Otomatik ayarlar yeni account'ların ayrıntı biçimlerini belirler.
//AutoPrivFlags=010

///////////////////////////////////////////////////////////////
//////// Game Mechanics
///////////////////////////////////////////////////////////////
// Binaların içine(çatı altına) at ile girilsin mi?
MountHeight=0

// Archer'lar en az ne kadar yakına atabilirler? (0 = Archery olmaz)
ArcheryMinDist=2

// Archer'lar ne kadar uzağa atabilsinler?
ArcheryMaxDist=15

// Speed scale factor for weapons Formula is now DELAY = SPEEDSCALEFACTOR /((DEX + 100) * SPEED)(Bir şey anladıysam en adiyim)(Sanırım weapon ların genel olarak hız delay ı diyor)
SpeedScaleFactor=15000

// Staminanız yarıdan azken max weight kaça düşsün?
// (200 = no effect)
StaminaLossAtWeight=150

// Kuzey yönüne doğru topuklarken ne kadar staminanız gitsin?(max ağırlıkta) (0 = no effect)
RunningPenalty=50

// Insanlar server'a girdiğinde girdiklerini ve çıktıklarını gösterilsin mi?
ArriveDepartMsg=1

// Ev ve gemi anahtarları otomatik olarak newbie olsun mu?
AutoNewbieKeys=1

// Bankadaki max. item sayısı kaç olsun?
BankMaxItems=1000

// Bankanın max. ağırlığı.
BankMaxWeight=1000

// Eğer burası 1 olursa, vendorlar paraları çantadan alır. 0 olursa, bankadan da alabilir.(Nerden biliyorlarsa bizim bankamızı)
PayFromPackOnly=0

// Hava olayları olsun mu?(0=olsun)
NoWeather=1

// Zindanlardaki(dungeon diye geçiyor genelde) ışık seviyesi ne olsun
DungeonLight=27 //0 aydınlık, 30 karanlık

// Açıkhavadaki ışık seviyesi ne olsun?
LightDay=0

// Geceleyin ışık seviyesi ne olsun?
LightNight=25

// Yünlerin regen(ne demekse?) olma zamanı (dakikada)
WoolGrowthTime=30

// Player'lar yazının %75 ini yada daha büyük bir kısmını büyük harfle yazdığında(Kısacası bağırdığında:)) yazı engellensin mi?
SuppressCapitals=0

// Dövüş anında extra işaretler? (ilk ayar:0, 0.55i ile uyumlu)
// COMBAT_NODIRCHANGE 00001 // Player savaşırken dönmez (0.51a'daki gibi)



yemeğe gidiyorum... gelince editlerim...

cumaya gidiorum gibi oldu ama nese:D




o kadar yazdım elektrikler gitti ya olamaz:kufurbaz

ben sphere.ini yi atlıyorum. onu yapamayan [email protected] u eklesin yardım ederim.

devam ediyorum...


Bu konu borakrc tarafından düzenlendi(2008-01-30 16:41, 16 yıl önce)
Bir word dosyasında yazarsan otomatik kaydeder sorun da olmaz, senin içinde kolay olur bence. Sadece BBCode'ları eklerken elinle yazman gerekir. Bu arada ingilizcesi iyi olan arkadaşların böyle önemli dökümanları çevirmesi çok güzel, ellerinize sağlık. Aslında İngilizcem var ama bu dökümanları çevirecek kadar değil...

Bu arada bir hatırlatma; powers of ten - "10'un kuvvetleri" şeklinde çevrilebilir.

Üye Ol veya Giriş Yap

Bu forum başlığına mesaj atmak istiyorsanız hemen üye olun veya giriş yapın.