Türkiye'nin en eski ve aktif online oyun platformu, Ultima Online, Counter-Strike ve diğer online oyunlar hakkında Türkçe haber, bilgi ve forum sunuyor. Türkiye'nin en eski ve aktif online oyun platformu, Ultima Online, Counter-Strike ve diğer online oyunlar hakkında Türkçe haber, bilgi ve forum sunuyor.
  • ANASAYFA
  • ULTIMA ONLINE
    • Ultima Online Oyuncu Rehberi

      Ultima Online Oyuncu Rehberi

      Oyunu hakkında tanıcı bilgiler ve ipuçları

    • Ultima Online Server List

      Ultima Online Server List

      Önemli özellikleri ve online oyuncu sayıları

    • Ultima Online Script

      Ultima Online Script

      Sphere, RunUO, Razor scriptleri

    • Ultima Online Forum

      Ultima Online Forum

      UO hakkında görüş alışverişi

  • FORUM
  • DOKÜMAN
  • İNDİR
  • DISCORD 25
   Üye ol    Giriş
183
  1. Doküman
  2. Ultima Online
  3. Sphere
  4. Script Dersi - Newbie Guide
Katatonia

Script Dersi - Newbie Guide

  • Katatonia
  • Soulwax
  • 2006-01-27 21:30
  • 4 Yorumlar
  • 6186 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

ON=@Create
COLOR=colors_red // bu scriptte on=@create 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

ON=@Create
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

ON=@NPCRestock
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;

ON=@Damage
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.

ON=@Click
message @58 * XXX *
return 1

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

Değerlendirmeler

10 (10)

3 Kullanıcı

Üye Ol veya Giriş Yap

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

Discord ile Bağlan
Twitch ile Bağlan
Steam ile Bağlan
Google ile Bağlan
Yorumlar (4)
crossfor
crossfor 2010-07-20 14:05

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

xxcekoxx Avatar
xxcekoxx 2009-05-13 10:26

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

NightCrawler Avatar
NightCrawler 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]

xenox 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.


Ultima-Strike Discord
Benzer Sayfalar
  • Script Dersi - Var Komutu

    2006-05-03 10:00

  • Script Dersi - If sorgusu

    2007-07-09 01:40

  • Script Dersi - Tag Kullanımı

    2007-11-21 23:56

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

    2007-05-01 18:54

  • Script Dersi - Sendpacket

    2006-05-13 20:08



  • Son Forumlar
  • Sayfalar
  • Nefrelius
    Alcor UO Reborn

    Sunucular 3 gün önce

  • System_Error
    Client Patlaması

    Ultima Online 5 gün önce

  • georgm15
    CS2 turnuvaları tartışmalı başladı.

    Counter-Strike 2 1 hafta önce

  • georgm15
    Counter-Strike 1.6 İndir - Tek Link Hızlı-

    Counter-Strike 1 hafta önce

  • Robellious
    Üyeliği 15 yıl ve üzerinde olanlar.

    Ultima Online 1 hafta önce

  • Cihangir algın
    Razor Kullanımı

    RunUo Scripting 3 hafta önce

  • Lucretius
    Rampage Pvp

    Sunucular 3 hafta önce

  • Lucretius
    Nephilim Pvp

    Sunucular 3 hafta önce

  • redi4817
    NightUO

    Sunucular 3 hafta önce

  • Cengiz MERDİT
    Sphere 56T Nightly Sürümü

    Ultima Online 1 ay önce

  • aygun
    Esgaroth UO

    Sunucular 1 ay önce

  • deonist
    Alysa Pvp ( Aktif ! )

    Sunucular 1 ay önce

  • mthN
    Nebula Uo gerçekleri

    Ultima Online 2 ay önce

  • buffa
    Kullanılması Gereken Rate Ayarları

    Counter-Strike 2 ay önce

  • Lucretius
    Aktif Satılık Server !

    Sunucular 2 ay önce

  • Skill seçimlerinizi planlamak artık çok daha kolay

    Ultima Online Karakter Yapılandırma Aracı Bölümü Açıldı!

    2024-10-31 22:47

  • Ultima Online topluluğu, ClassicUO'nun sadece web client olarak kullanılabileceğinin açıklanmasının ardından tepkili.

    Resmi UO, Oyuncuları İkiye Böldü: Web Client Yeterli mi?

    2024-10-14 17:45

  • Ultima Online, ClassicUO ile resmi işbirliği yapıyor! Performans iyileştirmeleri, geniş oyun penceresi ve daha fazlası geliyor.

    Ultima Online, ClassicUO ile Resmi İşbirliğine Gidiyor

    2024-09-26 14:21

  • Centred#

    2024-07-08 22:50

  • CentrED+ 7.9

    2024-07-08 22:34

  • Distance(uzaklık) Sorgusu Hakkında

    2024-06-19 22:05

  • UoFiddler

    2024-06-01 02:19

  • UoFiddler ile Map Kopyalama

    2024-05-31 21:17

Menü
  • ANASAYFA
  • FORUM
  • DOKÜMAN
  • İNDİR
  • İLETİŞİM
  • Bağlantılar
  • CS 1.6 indir
  • CS 1.6 Türkçe
  • CS 1.6 Bot
  • CS 1.6 CFG
  • CS 1.6 Rate Ayarları
  • UO Server
  • Ghost Mouse indir
  • FPS Nedir?
  • Ultima Online PVP Server
  • Makroman
  • UO Karakter Yapılandırma
    © 2004 - 2025 Ultima-Strike. Her hakkı saklıdır.