- #1
Konu Sahibi
: serkankacan
[REHBER & QUERY] vSRO Durability (Dayanıklılık) Reset & Repair Scroll Sistemi
Slot 13'teki Eşyanın Statlarına Dokunmadan Dayanıklılığını (Data) Maksimuma Eşitleme
Slot 13'teki Eşyanın Statlarına Dokunmadan Dayanıklılığını (Data) Maksimuma Eşitleme
Merhaba değerli forum sakinleri,
Sunucunuzda dayanıklılığı (Durability) sıfırlanmış, yıpranmış veya tamir edilmesi gereken eşyalar için özel bir **Durability Reset Scroll** tasarlamak isteyebilirsiniz.
İnternette dolaşan eski paylaşımlarda
MagParamNum = 0, MagParam1 = NULL şeklinde kodlar bulunmaktadır; BU KODLARI KESİNLİKLE KULLANMAYINIZ! Çünkü o kodlar durability düzeltmez; eşyanın üzerindeki STR, INT, HP, MP, Critical gibi **tüm blue statlarını tamamen siler ve itemi çöp eder!**Silkroad veritabanında eşyanın mevcut dayanıklılığı `_Items` tablosundaki Data sütununda tutulur. Aşağıda eşyanın hiçbir statına dokunmadan sadece dayanıklılığını maksimum değere eşitleyen ve senkronizasyon için oyuncuyu güvenle DC eden hatasız prosedürü paylaşıyoruz.
Önemli Uyarı' Alıntı:DİKKAT (Kullanım Kuralı):
- Oyuncu tamir etmek istediği eşyayı çantasının **ilk yuvasına (Slot 13)** koymalıdır.
- Scroll basıldığında sunucu belleğindeki eşya verisinin veritabanıyla çakışmaması için oyuncu anında oyundan düşürülür (DC edilir). Tekrar girdiğinde eşyası %100 tamir edilmiş olur.
- İşlem öncesinde SRO_VT_LOG ve SRO_VT_SHARD yedeğinizi almayı unutmayınız.
Hatasız & Güvenli _AddLogItem Kodu
SRO_VT_LOG veritabanını açın, **Programmability -> Stored Procedures -> _AddLogItem** prosedürüne sağ tıklayıp **Modify** deyin.
AS bloğunun uygun bir yerine aşağıdaki kodu ekleyin:
İçeriği görüntülemek için Giriş yapın veya Kayıt olun.
Neden Bu Yöntem Doğru?
- Stat Güvenliği:
MagParamsütunlarına dokunulmadığı için silah veya zırhın üzerindeki hiçbir Blue, White veya Advanced Elixir özelliği kaybolmaz. - Dinamik Dayanıklılık: Eşyanın orijinal maksimum dayanıklılığı
_RefObjItemtablosundan çekilerek yazılır; böylece ister kalkan ister silah olsun her eşya kendi orijinal kapasitesine göre tamir edilir. - Bellek Koruması (Sec_Primary = 1): Karakter anında oyundan düşürülerek GameServer'ın bozuk dayanıklılık verisini veritabanının üzerine tekrar yazması (Rollback bugu) kesin olarak engellenir.
Nasıl Test Edilir?
- SQL kodunu `_AddLogItem` prosedürüne kaydedin (F5 / Execute).
- Dayanıklılığı azalmış veya kırılmış bir eşyayı envanterin **en sol üst köşesine (1. Slot - Sistemdeki Slot 13)** yerleştirin.
78343numaralı parşömene sağ tıklayarak basın.- Karakteriniz oyundan düşecektir (Disconnect).
- Oyuna tekrar girdiğinizde eşyanın dayanıklılığının hiçbir stat kaybı olmadan %100 tamir olduğunu göreceksiniz.
Sorularınızı ve takıldığınız yerleri bu konu altından iletebilirsiniz. Herkese keyifli geliştirmeler!
Moderatör tarafında düzenlendi:

