Sphere — Orijinal Level ve Experience Sistemi
UO-Developer.com — sphere.ini, ExperienceMode ve level dialogMerhabalar — Sphere'nin kendi orijinal level sistemini anlatmak istiyorum; umarım sizlere birazcık olsa da yardım edebilirim.
Konu: Experience / Level ayarları + dialog | Seviye: Orta
İlgili: Sphere Level Ayarları | Türkçe Sphere.ini | Sphere 56b'ye Giriş
İçindekiler
- sphere.ini — Experience ve Level
- ExperienceMode bayrakları
- LevelMode ve LevelNextAt
- Komutlar — .level ve .exp
- Dialog scripti
- Kurulum adımları
1. sphere.ini — Experience ve Level
Öncelikle sphere.ini ayarlarını gözden geçirin. Experience and Level system bölümü:
///////
//////// Experience and Level system
/////////////////
// Experience system settings:
// 0001 gain experience in combat
//Skill kasarken
// 0002 gain experience in crafts
//Craft kasarken
// 0004 allow experience to go down
//Oldugunuz zaman exp kaybi
// 0008 limit experience decrease by a range witheen a current level
//Experience sinirlanmasi
// 0010 auto-init EXP/LEVEL for NPCs if not set in @Create
//Otomatik her yaratigi cikardiginiz exp ve level ayarlanmasi
// 0020 allow trigger @ExpChange
// 0040 allow trigger @ExpLevelChange
//gerekli trigger
ExperienceSystem=1
ExperienceMode=01|010|020|040
ExperienceKoefPVM=100
ExperienceKoefPVP=100
LevelSystem=1
LevelMode=1
LevelNextAt=50002. ExperienceMode Bayrakları
- 0001 — Savaşta experience kazanma — combat
- 0002 — Craft skill kasarken experience
- 0004 — Experience düşebilir — ölünce exp kaybı
- 0008 — Mevcut level aralığında exp düşüşünü sınırla
- 0010 — NPC Create'te exp/level otomatik — yaratık scriptinde Level= / Exp= ile özelleştirme
- 0020 — ExpChange tetikleyicisine izin ver
- 0040 — ExpLevelChange tetikleyicisine izin ver
Örnekte 01|010|020|040 kullanılmış; birçok shard 0001|0010|0020|0040 formatını tercih eder — sunucunuzda exp gelmiyorsa bayrak yazımını kontrol edin.
ExperienceKoefPVM — PvM exp çarpanı | ExperienceKoefPVP — PvP exp çarpanı — 100 = varsayılan; yükseltince daha hızlı level.
3. LevelSystem Ayarları
- LevelSystem=1 — Level sistemini aktif eder
- LevelMode=1 — Level başına gereken exp artan mod — her level daha fazla exp ister
- LevelMode=0 — Sabit aralık — her level için aynı exp miktarı — LevelNextAt
- LevelNextAt=5000 — Bir sonraki level için temel exp eşiği
sphere.ini değişikliğinden sonra sunucuyu yeniden başlatın.
4. Komutlar — .level ve .exp
Sphere'nin kendi orijinal level sistemi aktifken .level ve .exp komutları normalde çalışır. Oyuncu level ve experience değerlerini bu komutlarla okuyup ayarlayabilirsiniz — GM testleri için kullanışlıdır.
5. Dialog Scripti
sphere.ini ayarlarını yaptıktan sonra dialog kısmına geçelim. Aşağıdaki kodu bir script dosyasına ekleyin — örnek sphere_dialog.scp veya özel level_system.scp:
[defname xpsystem]
levelmode = 1
levelat = 5000
// Levelimizi sorgulamak icin gerekli fonksiyon
[FUNCTION LEVEL]
IF <SRC.ACCOUNT.PLEVEL> < 2
sdialog d_experience_system
endif
[function EXPNEEDED]
if !<def0.levelmode>
local.nextlevelat = <def.levelat> - (<exp> - (<level> * <def.levelat>))
else
local.tmp = 0
FOR 0 <level>
local.tmp += ((<local._for> + 1) * <def.levelat>)
endfor
local.nextlevelat = <local.tmp> - <exp>
endif
return <local.nextlevelat>
// Experience Dialogumuz
[dialog d_experience_system]
0,0
NOMOVE
NOCLOSE
PAGE 0
resizepic 30 0 9270 440 55
resizepic 40 10 3000 420 35
dhtmlgump 45 25 200 20 0 0 <DEF.BFONT_SIZE3><DEF.BR><def.bfont_red>Level: <def.bfont_blue><eval <level>><def.br>
dhtmlgump 105 25 200 20 0 0 <DEF.BFONT_SIZE3><DEF.BR><def.bfont_red>Gereken Exp: <def.bfont_blue><eval <expneeded>><def.br>
dhtmlgump 230 25 200 20 0 0 <DEF.BFONT_SIZE3><DEF.BR><def.bfont_red>Sahip Oldugunuz Exp: <def.bfont_blue><eval <exp>><def.br>
dhtmlgump 400 25 25 20 0 0 <DEF.BFONT_SIzE3><DEF.BR><DEF.BFONT_RED>Kapat<def.br>
button 430 25 037 038 1 0 1
[dialog d_experience_system button]
on 1
dialogclose d_experience_systemOyuncu oyunda .level yazdığında — account PLevel 2'den küçükse — dialog açılır ve şunları gösterir:
- Mevcut level
- Bir sonraki level için gereken exp — EXPNEEDED fonksiyonu
- Sahip olunan toplam exp
defname xpsystem içindeki levelmode ve levelat değerleri sphere.ini ile uyumlu olmalıdır.
6. Kurulum Adımları
- sphere.ini — ExperienceSystem=1, LevelSystem=1 ayarla
- ExperienceMode bayraklarını seç — combat, trigger vb.
- LevelMode ve LevelNextAt değerlerini belirle
- Dialog scriptini scripts klasörüne kaydet
- Sunucuyu yeniden başlat
- Oyunda .level komutu ile dialogu test et
- NPC keserek veya .exp ile exp kazanımını doğrula
7. Sık Yapılan Hatalar
- ExperienceSystem=0 — exp hiç gelmez
- Yanlış ExperienceMode — combat bayrağı kapalıysa mob kesince exp yok
- levelat uyumsuz — defname ile sphere.ini LevelNextAt farklı — dialog yanlış exp gösterir
- LEVEL fonksiyonu PLevel — yalnızca normal oyuncular dialog görür — GM account PLevel 2+ ise açılmaz
8. Kontrol Listesi
- sphere.ini Experience / Level bölümü düzenlendi
- ExperienceKoefPVM / PVP ayarlandı
- xpsystem defname + LEVEL + EXPNEEDED + dialog eklendi
- Sunucu restart
- .level dialog testi
- Exp kazanımı testi

