Skill Kodlamak
Her şeyden önce, tüm varsayılan davranışları iptal etmemiz gerekiyor. Bu nasıl yapılır? Basit, "SKF_SCRIPTED" (Bu bayrağı Beceriye ekleyin). Bu flag, Sphere'in tüm sabit kodlanmış davranışlarını iptal eder ve tetikleyicilerimiz üzerindeki işi bize bırakır. Sadece buna ve becerilerin nasıl oynandığına dair bu açıklamaya ihtiyacınız var:
[SKILL 55]
DEFNAME=SKILL_APPRAISE
FLAGS=SKF_SCRIPTED
KEY=ItemID
TITLE=Merchant
PROMPT_MSG=What do you wish to appraise and identify?
DELAY=1.0
ADV_RATE=2.5,50.0,200.0
STAT_STR=0
STAT_INT=85
STAT_DEX=0
BONUS_STR=0
BONUS_DEX=0
BONUS_INT=100
BONUS_STATS=25
ON=@Select
// Bir oyuncu menüde beceriyi seçtiğinde ateşlenir.
// RETURN 1 - Becerinin kullanılmasını önleyin
// RETURN 0/2 - Becerinin kullanılmasına izin ver
ON=@Start
// Beceri başladığında ateşlenir.
// RETURN 1 = Beceriyi kullanmayı önleme
// RETURN 0/2 = Becerinin kullanılmasına izin verin
// ACTION = -1 = Fail (@Fail).
// ACTDIFF = Başarılı olmak için gereken beceri (0-100). Beceride başarısız olmak için negatif bir değere ayarlayın.
ON=@Success
// Beceri başarıyla tamamlandığında ateşlenir
// RETURN 1 = Abort the skill***** (Beceriyi iptal et)
// RETURN 0/2 = Oyuncunun beceri kazanmasına izin vererek devam edin
ON=@Fail
// Bir karakter beceride başarısız olduğunda ateşlenir
// RETURN 1 = Beceri kazanımını önleme
// RETURN 0/2 = Beceri kazanımına izin ver
ON=@Abort
// Bir karakter beceriyi iptal ettiğinde (örneğin savaş moduna geçtiğinde) ateşlenir
ON=@Gain
// Bir karakter beceri kazanma şansına sahip olduğunda ateşlenir
// ARGN2 = Beceri kazanma şansı (0-1000, yazılabilir)
// ARGN3 = Karakterin ulaşabileceği maksimum beceri seviyesi (yazılabilir)
// RETURN 1 = Beceri kazanımını engelle
// RETURN 0/2 = Beceri kazanımı hesaplamasının devam etmesine izin ver
ON=@UseQuick
// Beceri USEQUICK işlevi ile kullanıldığında ateşlenir
// ARGN2 = Beceri zorluğu (0-100, yazılabilir)
// ARGN3 = Denemenin başarılı olup olmadığı (yazılabilir)
// RETURN 1 = Beceri kazanımı olmadan beceri denemesinde başarısız olma
// RETURN 0 = Beceri kazanımı olmadan beceri denemesini başarma
// RETURN 2 = Beceri kazanımı ile devam edin (başarısız veya başarılı olarak ayarlamak için ARGN3 kullanın) FIGHTING SKILLS Şimdi bir Dövüş Becerisi oluşturacağız. Başarıyı, hızı vb. elde etmek için yapılan çalışmaların tümü sabit kodlandığı için bu daha kolaydır. Yani, buradaki hile "SKF_FIGHT", o bayrağı yeteneğinize ekleyin ve elde ettiniz! Şimdi, gereken tek ince ayar silahta, bu yüzden yeteneğimin adı AxeFighting ise, silahım şöyle görünmeli:
[ITEMDEF 0df0]
DEFNAME=i_staff_black
TYPE=T_WEAPON_MACE_STAFF
FLIP=1
DAM=12,14
SPEED=37
SKILL=AxeFighting //<-- Burada Beceri Adınızı ayarlarsınız.
REQSTR=35
TWOHANDS=Y
WEIGHT=4 CRAFTING SKILLS Bu durumda, hesaplamalar ve formüller sabit kodlanmıştır. Bu yüzden, bu bölümde yeni bir beceri bayrağı kullanacağız, adı: SKF_CRAFT. Bu bayrağı ekledikten sonra ne yapacağınızı hayal edebilirsiniz. Evet, SKILLMAKE öğesini değiştirin, bu yüzden eski beceriyi yenisiyle değiştireceğiz. Diyelim ki bu becerinin adı Herbalist, şöyle görünmesi gerekiyor:
[ITEMDEF 04554]
DEFNAME=i_GOLDEN_PLATEMAIL_ARMS
NAME=Golden Platemail Arms
ID=i_platemail_arms
ARMOR=30
REQSTR=40
WEIGHT=5
RESOURCES=18 i_ingot_gold
SKILLMAKE=Herbalist 64.5
CATEGORY=Provisions - Armor - Colored
SUBSECTION=Golden
DESCRIPTION=Platemail Arms MAGICIAN SKILLS Bu, flag SKF_MAGIC kullanıyor. Ve buradaki mantık SPELL bölümüne gitmek ve SKILLREQ'i değiştirmek. Ama bu bir öğretici ve bir örnek eklemeliyim, beceriye "MagicalMan" adını verdim, büyü şöyle görünmeli:
[Spell 2]
DEFNAME=s_create_food
NAME=Create Food
SOUND=snd_SPELL_CREATE_FOOD
RUNES=IMY
CAST_TIME=1.0
RESOURCES=i_reag_garlic,i_reag_ginseng,i_reag_mandrake_root
RUNE_ITEM=i_rune_CREATE_FOOD
SCROLL_ITEM=i_scroll_CREATE_FOOD
FLAGS=SPELLFLAG_TARG_XYZ
EFFECT_ID=0
EFFECT=0
DURATION=0.0
MANAUSE=4
SKILLREQ=MagicalMan 10.0
INTERRUPT=100.0,100.0
