Türkiye'nin en yeni Ultima Online, Counter-Strike, LoL, Dota 2, E-spor oyunları ve daha birçok oyunla ilgili Türkçe oyun haber, bilgi, topluluk platformu. Türkiye'nin en yeni Ultima Online, Counter-Strike, LoL, Dota 2, E-spor oyunları ve daha birçok oyunla ilgili Türkçe oyun haber, bilgi, topluluk platformu.
  • ANASAYFA
  • FORUM
  • DOKÜMAN
  • DOWNLOAD
  • DISCORD
  • İLETİŞİM
   Üye ol    Giriş
    Doküman > Ultima Online > Sphere > Script Dersi - Newbie Guide

Script Dersi - Newbie Guide

  • Katatonia
  • January 27, 2006
  • 4 Yorumlar
  • 5.4K Görüntüleme
Sürekli çok alakasız ve gereksiz topicleri önlemek için bu tutorial ı yazıyorum.
Kademe kademe scripting in temellerini anlatıcam. Yaptıgım hataları bilgili arkadaşlarım düzeltirse sevinirim. Lütfen sphere scriptinge yeni başlamış arkadaşlar önce bu temel bilgileri öğrensinler.


1. AŞAMA

1. DEFNAME'LER
Her item'in verdatada bir id si vardır. Bu idler harf ve numaralardan oluşur. Bu numaraları hatırlamak çok zor oldugu için onların yerine Defname'ler kullanılır.

örnegin; Gold id'si 0eed'dir.
Oyuna girip .add 0eed yazdıgınızda gold coin çıkar. Fakat defname aracılıgıyla bu yöntemi daha kolaylaştırıp .add i_gold yazdıgınızda gold coin çıkmasını saglayacagız.

[ITEMDEF 0eed]
//gold coin
DEFNAME=i_gold
TYPE=T_GOLD
VALUE=1
CATEGORY=Provisions - Miscellaneous
SUBSECTION=Coins
DESCRIPTION=Gold Coin
DUPELIST=0eee,0eef

şimdi bir gold coin scripti içerisinde Defname'i i_gold olarak tanıtarak id yerine "i_gold" yazarak gold coin çıkarmanızı sagladık. Fakat unutmayınki bu isimleri yalnızca bir script basına kullanabilirsiniz. Eger iki farklı item'a defname olarak i_gold verseydik, sphere, scriptlerden birini tanımazdı.

2. ITEMDEF

[ITEMDEF 0eed]
//gold coin
DEFNAME=i_gold
TYPE=T_GOLD
VALUE=1

Şimdi bu basit scriptimizle hangi satırın ne anlama geldigini öğrenelim.

Satır 1: [ITEMDEF 0eed]
ITEMDEF'i bir item scripti yazacagimiz zaman kullanir yanınada esyamizin verdatada kayitli oldugu id'yi yazarız.

Satır 2: //gold coin
Bu satırı kullanıp kullanmamanız farketmez. satırın başında // sembolleri varsa o satırı script tanımaz ve // sembollerinden sonra istediginiz yazıyı scripti bozmadan yazabilirsiniz.

Satır 4: TYPE=T_GOLD
Sphere'in kullandıgı belirli type'lar vardır. Bu typeları kullanan itemlar özelliklerini bu typlara göre alırlar. Örnegin Eger bir esyanin type'ı T_FISH ise o esyayi bicakla kestiginiz zaman, cig baliga donusurler. Bu typelari zaman icerisinde scriptleri inceleyerek öğrenebilirsiniz.

Satır 5: Value
Esyanin fiyati bu satirda belirlenir.

3. CHARDEF

Chardef'ler animasyonlari scripte donusturmek icin kullanilir. (Char Body, Hayvanlar, Yaratiklar v.b.)

[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
BLOODCOLOR=0

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

örnek scriptimize göre;

Satır 1: [CHARDEF 0190]
Erkek Body'sinin verdatadaki id'si 0X190 şeklindedir. O animasyonu script içinde kullanırken aradaki X silinir ve yukarıdaki şekilde yazılır.

Satır 2: Name=Man
Bu satıra yaratılacak olan yaratigin, insanin yada hayvanin ismi Name=İSİM şekline yazilir.

Satır 3: ICON=i_pet_man
buradaki "i_pet_man" char shrinklendigi zaman hangi şekli alacak onu gösterir. Oyuna girip herhangi bir yaratiga .shrink yazıp tıkladıgınızda hayvanın küçüldügünü ve i_pet_xxx şeklini aldıgını göreceksiniz.

Satır 4: CAN=
Bu satıra yaratıgımızın yapabilecekleri sıralanır. Bunlar;

MT_NONMOVER // Hareket edemezler
MT_GHOST // Hayaletler gibi kapilarin icinden gecebilir.
MT_SWIM // Denizde, suda hareket edebilir.
MT_WALK // Yürür
MT_FLY // Uçar. Agaclarin taslarin ustunden geçmesine yarar.
MT_FIRE_IMMUNE // Atesten etkilenmez
MT_EQUIP // Esyalari kullanabilir
MT_USEHANDS // Ellerini birseyler tasimak yada kapilari acmak icin kullanir
MT_MALE // Erkek
MT_FEMALE // Bayan
MT_RUN // Koşar

örneiğin CAN=MT_EQUIP|MT_WALK|MT_RUN|MT_USEHANDS şeklinde kullandıgımız zaman, bu yaratigimiz esyalari kullanabilir, yürür, koşar, ve kapıları açabilir.

Satır 5: RESOURCES=
burda yaratigimizin hangi maddelerden olustugu yazar. Bu satır itemlerdede kullanılabilir.

Satır 6: FOODTYPE=
bu satırda yaratıgımızın neyle beslendigi tanımlanır.

Satır 7: DESIRES=
Bu satırda yaratıgımızın tercihleri belirlenir. örnegin i_gold tanımlarsanız, yaratıga verdiginizde kabul eder.

Satır 8: BLOODCOLOR=
Bu satırda yaratıgımızın kan rengi belirlenir.

aşağıdaki kısımda TSPEACH'ler yaratigimizin konuşmalarını ve ona söylenen karşısında ne yapıcagını belirlemenizi saglarlar. TEVENTS'ler yaratigimizin hangi event'i kullanacagını belirler. (Eventlerin ne işe yaradıgını dökümanın devamında öğreneceksiniz.)

DESCRIPTION=Man
SUBSECTION=Miscellaneous
CATEGORY=Civilized
kısmı olsada olur, olmasada. bu kısım yaratiginizin kategorisini belirler. Axis tarzı gm programları kullanırsanız yaratıgınızı daha rahatlıkla kategorisinden seçerek oyunda ekleyebilirsiniz.

4. TEMPLATE

spheretemp_loot.scp içerisindeki templatelerle yaratıgınız öldügü zaman içinden çıkacak olan eşyaları belirlersiniz. Karışık görünmesine aldanmayın bu kısmı cok rahatlıkla anlayacaksınız.

[TEMPLATE 101505]
DEFNAME=backpack_poor
CATEGORY=Item Templates
SUBSECTION=Loot Templates
DESCRIPTION=Poor Backpack
CONTAINER=i_backpack
ITEM=random_food,{ 1 3 }
ITEM=random_bottle
ITEM=random_light
ITEM=random_male_tops
COLOR=colors_all
ITEM=random_male_pants
COLOR=colors_all
ITEM=POOR_GOLD_PILE

Herşeyden önce burda kullanılan id numaraları digerlerinden farklıdır. Burada sadece diger templatelerden farklı ve daha uzun (101505 gibi) rakamlar kullanmanız yeterli olacaktır. Defname aynı şekilde template'i eklerken bu rakam yerine oraya yazdıgınız kendi id'nizi kullanmanız için gereklidir.
Container, yaratıktan çıkacak olan eşyaların neyin içinde olmasını belirlediginiz satır. Bu satırda backpack, bag yada içinde eşya barındırabilecek herhangi bir item kullanmanız gerekiyor.
ITEM= satırında çıkmasını istediginiz esya ve yanında virgülden sonra gelen { } içerisindeki rakamlarda kaçla kaç arası çıkmasını istediginizi belirlemenizi saglar. Örneğin bu parantezler içerisine { 5 8 } yazarsanız bu esyadan 5 veya 8 arası sayıda çıkar. ITEM= i altalta kullanarak cıkacak olan farklı item sayısını arttırırsınız. Altına ekledigimiz COLOR= satırındada bu itemin ne renk çıkmasını istediginizi belirtirsiniz. Color'u kullanmazsaniz esya default renginde çıkar.

5. ÖRNEK

[ITEMDEF i_kirmizi_kilic]
ID=i_katana
TYPE=t_weapon_sword
NAME=kirmizi kilic

[email protected]
COLOR=colors_red // bu scriptte [email protected] triggerı altında itemimiz yaratıldıgında ne renk çıktıgını belirttiniz.

aynı yöntem yaratiklardada bu şekilde kullanılır.

2. AŞAMA

1. SPHERETABLES.SCP


Bu scriptimizde;

[RESOURCES]

C:spherescriptsdefs.scp
C:spherescriptsmagery.scp
C:spherescriptstrig.scp
...
...

kısmı sphere'e attıgınız scriptleri sphere'in sırasıyla tanıması için kullanılır. örnegin balıkların içinde oldugu script regionların belirlendigi scriptten önce gelmelidir ki, region o itemi tanısın ve script dogru şekilde çalışsın.

[OBSCENE]
admin
owner
seer
gm
counselor
Trustworthy
Estimable
Great
Glorious
Glorious
...
...

bu kısımda kullanıcıların alacakları ünvanlar belirtilir..

[STARTS]

kısmı altında, başlangıçta bir şehir seçildigi zaman o şehrin hangi kordinatlarında karakterin dogmasını istediginizi belirlersiniz.

[RUNES]
An
Bet
Corp
Des
Ex
Flam
...
...

Büyü sözleri belirlenir.

[Skill X]

bu kısım altındada serverınızda kullanılan skiller tek tek belirlenir ( [Skill 0] , [Skill 1] ) şeklinde. Alchemy'den örnek alırsak;

[Skill 0]
DEFNAME=Skill_Alchemy
KEY=Alchemy
TITLE=Alchemist
EFFECT=0.0,125.0
DELAY=4
ADV_RATE=0.1,0.1,0.1
VALUES=1,20,100
STAT_STR=0
STAT_DEX=0
STAT_INT=100
BONUS_STR=0
BONUS_DEX=0
BONUS_INT=100
BONUS_STATS=60

------------
Key satırında, skillin komutunu belirlersiniz. Örnegin .alchemy 1000 yaptıgınızda alchemy 100.0 olur ama o Key'in yanında yazan "Alch" olsaydı, .alch 1000 yaptıgınızda bu işlem gerçekleşirdi.

Title= burada bu yetenege sahip olan kişinin meslegi ne olarak adlandirilsin onu belirlersiniz. Örnegin alchemy yetenegi 100.0 olan bi kişinin Paperdoll'unde Grandmaster Alchemist yazar fakat bu satıra TITLE=XXX yazarsak o kişinin meslegi Grandmaster XXX olarak görünür.


DELAY= burada kaç saniyede bir bu skilli kullanabilecegi belirlenir.

ADV_RATE= burada skill'in gelme hızı ayarlanır. yukarıda gördügünüz scripte göre alchemy her potion yapışta artacaktır. Power Hour (PH) bu kısımdan meslek meslek ayarlanır.

BONUS_STR=0
BONUS_DEX=0
BONUS_INT=100
BONUS_STATS=60

bu kısımda bu skill'in statlarınızı ne şekilde arttırmasını istediginizi ayarlarsınız.

2. SPHERENEWB.SCP

bu kısımda hangi meslegin yeni karakter yaratildiginda hangi esyalarla dogmasini istediginizi belirlersiniz. Aynı zamanda cinsiyete göre de nelerle dogmasını seçersiniz.

[NEWBIE MALE_DEFAULT]
ITEMNEWBIE=i_shirt_plain
COLOR=colors_all
ITEMNEWBIE=random_pants
COLOR=colors_neutral
ITEMNEWBIE=random_shoes
COLOR=colors_neutral
ITEMNEWBIE=i_dagger
ITEMNEWBIE=i_candle
ITEMNEWBIE=i_book_sm
ITEMNEWBIE=i_gold,100

: bu erkek karakter yaratildiginda hangi esyalarla dogmasini belirtir.

[NEWBIE ALCHEMY]
ITEMNEWBIE=i_mortar_pestle
ITEMNEWBIE=i_BOTTLE_EMPTY,15
ITEMNEWBIE=i_reag_black_pearl,15
ITEMNEWBIE=i_reag_garlic,15
ITEMNEWBIE=i_reag_ginseng,15
ITEMNEWBIE=i_reag_spider_silk,15
ITEMNEWBIE=i_robe
COLOR=colors_red

Buda karakterini alchemy skilli seçerek yaratan kişinin hangi eşyalara sahip olacagını belirler.

3. AŞAMA

1. YARATIGIMIZI GELİŞTİRELİM


[CHARDEF C_H_ALCHEMIST]
DEFNAME=C_H_ALCHEMIST
NAME=#NAMES_HUMANMALE the Alchemist // #NAMES_HUMANMALE names.scp içerisinde kayıtlo olan erkek isimlerinden random bir tane seçmesini saglar.
ID=C_MAN

DESIRES=i_gold,e_notoriety,t_magic

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

[email protected]
NPC=brain_vendor // burada brain_vendor bu yaratigimizin bir vendor olacagını belirler
COLOR=colors_skin // colors_skin ten renklerinden random bir tane seçer
STR={36 50} // karakterin str si kaçla kaç arası olsun
DEX={36 50} // karakterin dex i kaçla kaç arası olsun
INT={51 65} // karakterin int i kaçla kaç arası olsun

ALCHEMY={55.0 78.0} // karakterin alchemy yetenegi
TACTICS={15.0 38.0} // karakterin tactics yetenegi
POISONING={35.0 55.0} // karakterin poisoning yetenegi

ITEMNEWBIE=random_male_hair // erkek saçları içerisinden random bir tane seçer. ITEMNEWBIE esyanin newbie olmasini istiyorsaniz kullanilir.
COLOR=colors_hair // sacin rengi
ITEMNEWBIE=random_facial_hair // biyik, sakal
COLOR=match_hair // saç rengiyle eşleştirmesi için match_hair kullanılır

[email protected]
ITEM=i_expcoin,3

ITEM=i_shirt_plain // karakterin giysileri
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 // spheretemp_vend.scp karakterin ne almasını belirlediginiz scriptin defname'i
BUY=VENDOR_B_ALCHEMIST // spheretemp_vend.scp karakterin ne satmasını belirlediginiz scriptin defname'i

CATEGORY=Civilized // kategoriler ...
SUBSECTION=Tradesmen
DESCRIPTION=Alchemist (male)


2. BAŞLICA KOMUTLAR


.nuke

.nukechar

.go

.nuke yazıp çıkan targetla iki kare arasında bir kutu oluşturacak şekilde tıkladıgınız zaman, o alandaki tüm esyalar silinir.

.nuke color 066d yazıp aynı işlemi yaptıgınızda o alandaki tüm eşyalar 066d rengine boyanır.

.nukechar kill yazıp aynı işlemi yaptıgınızda, o alandaki tüm karakterler ölür.

.go yazıp regionname veya kordinat yazdıgınızda belirttiginiz yere gidersiniz.
örnegin .go 1542,145,20 yazdıgınızda 1542 X,145 Y kordinatlarına ve 20 kare yüksekligine gidersiniz.

-----------------------------------------------------------------------------------------------
Scriptlere tanıtılan event triggerları:

@Dclick kişi bir eşyaya çift tıkladıgınızda yapılacaklar
@Step kişi bir esyanin ustunden geçtigi zaman yapılacaklar
@Equip kişi bir eşyayı giymek istedigi zaman yapılacaklar
@Unequip kişi giydigi eşyayı çıkarmak istedigi zaman yapılacaklar
@Timer belirlenen zaman bittiginde yapılacaklar.
@Targon_item kişi esyaya hedef aldıgında yapılacaklar
SRC.TARG = hedef alinan esya
@Targon_char kişi bir karaktere hedef aldıgında yapılacaklar.
SRC.TARG = hedef alınan karakter
@Targon_ground kişi zemini hedef aldıgı zaman yapılacaklar
SRC = kişi
@Click Player kişi bir şeye tıkladıgında ustunde gösterilecek olan mesaj.
@Damage eşya hasar gördügü zaman yapılacaklar
@Pickup_pack bir çantadan veya kutudan eşya alınca olacaklar.
@Pickup_ground kişi yerden eşyayı alınca yapılacaklar.

örnegin;

[email protected]
CONT.MESSAGE * XXX *
RETURN 1

burada eşya hasar gördügü anda eşyayı kullanan kişinin üzerinde * XXX * şeklinde bir mesaj görülür.

[email protected]
message @58 * XXX *
return 1

burada bir eşyaya tek tıklayınca eşyanın uzerinde beliren mesaj * XXX * olur.

Üye Ol veya Giriş Yap

Bu içeriğe yorum atmak istiyorsanız hemen üye olun veya giriş yapın.

Facebook ile Bağlan Twitch ile Bağlan

Yorumlar (4)

crossfor 2010-07-20 14:05

[b][i]Teşekkür ederim gayet açıklayıcı (=[/i][/b]

No Avatar
xxcekoxx 2009-05-13 10:26

[b]Süpersin sen ya :) derslerinin devamını bekliyoruz[/b]

No Avatar
CırCırNecip 2008-12-30 22:48

[b][purple]evt arkadaş baya uğraşmış çok yardımcı olmuş :) gerçi ben bunları biliyorum ama bilmeyen arkadaşlar için çöldeki şu kadar değerli :)[/purple][/b]

No Avatar
xenox 2008-08-12 14:09

of of of sen neymişsin yaa çok saol :D ellerin dert körmesin süper olmuş

Sadece kayıtlı kullanıcılar yeni yorum yapabilir.
Beğeni Takipçi Üye Takipçi
Benzer Sayfalar
  • Script Dersi - Var Komutu

    May 03, 2006

  • Script Dersi - For Döngüsü 2

    May 01, 2007

  • Script Dersi - Events

    July 09, 2007

  • Script Dersi - Algoritma

    July 09, 2007

  • Script Dersi - Tag Fonksiyonu

    July 10, 2007



  • Son Forumlar
  • Sayfalar
  • TNS
    The North Shield ( TNS ) - Golden Age 2020

    Sunucular 3 days önce

  • Deathwave
    Arcadia UO

    Ultima Online 4 days önce

  • Computer_Man
    Takım arkadaşları aranıyor

    Sunucular 1 weeks önce

  • yusuf_4502
    ip ban kaLdırma

    Ultima Online 3 weeks önce

  • Mercuryuo
    Mercury UO - Açılış

    Sunucular 3 weeks önce

  • EleganceUO
    Elegance UO

    Sunucular 3 weeks önce

  • Neganpvp
    Negan UO PVP @2021

    Sunucular 4 weeks önce

  • Mercuryuo
    Mercury UO

    Sunucular 4 weeks önce

  • Bütün bir yıl çok çalıştılar, çok fazla mücadele ettiler ve artık sona geldiler.

    ESL One Cologne 2017

    June 30, 2017

  • Activision yetkililerinin yaptığı açıklamaya göre Cod:MW Remastered, Infinite Warfare’den ayrı bir oyun olarak satılmaya başlanacak.

    Call of Duty Modern Warfare Remastered açıklandı!

    June 24, 2017

  • Artık gelenekselleşen Steam mevsim indirimlerinin en sevileninin zamanı geldi kapımıza dayandı.

    Steam Yaz İndirimi 2017 Rehberi

    June 22, 2017

  • Ultima Online için unoffical DLC

    Ultima LandFall

    June 18, 2017

  • Simple Radar - Kullanışlı ve Basit Radar

    June 03, 2017

  • CS:GO FPS Arttırma ile ilgili detaylı bilgilendirici faydalı döküman

    CS:GO FPS Arttırma ile İlgili Herşey

    May 28, 2017

  • Easy Vibrance enhancer v1.3.0.1

    May 09, 2017

  • Vibrance GUI

    March 31, 2017

Menü

ANASAYFA
FORUM
DOKÜMAN
DOWNLOAD
İLETİŞİM
Ideamedia
© 2004 - 2021 Ultima-Strike. Her hakkı saklıdır.