shrpnl 1
shrpnl
YusufŞimşek14 1
YusufŞimşek14
berzahx 2
berzahx
xranzei 1
xranzei
Agora Metin2 1
Agora Metin2
Bvural41 1
Bvural41
romegames 1
romegames
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Cevaplanmadı Cube Sorunu

  • Konuyu başlatan Konuyu başlatan BGLT
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 2
  • Görüntüleme Görüntüleme 70

BGLT

Level 1
Üye
Katılım
20 Ara 2025
Konular
13
Mesajlar
44
Çözüm
1
Online süresi
2d 22h
Reaksiyon Skoru
20
Altın Konu
0
TM Yaşı
5 Ay 24 Gün
Başarım Puanı
28
MmoLira
1,376
DevLira
0
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Cubeye koyduğum efsunlu item efsunsuz olarak geliyor.Bunun çözümü nedir.İyi forumlar.
 

En Çok Reaksiyon Alan Mesajlar

game srcde cube.cpp içinde düzenleme yapacaksın örnek uygulama

// 1. Önce eski itemin pointer'ını (pOldItem) bulduğunuzdan emin olun.
// 2. Yeni item oluşturulduğunda şu kodları ekleyin:

LPITEM pNewItem = ITEM_MANAGER::instance().CreateItem(recipe->vnum, recipe->count);

if (pNewItem)
{
// Efsunları aktar (Eski itemden yeniye)
pNewItem->SetAttributes(pOldItem->GetAttributes());

// Taşları aktar (Eski itemden yeniye)
for (int i = 0; i < ITEM_SOCKET_MAX_NUM; ++i)
{
pNewItem->SetSocket(i, pOldItem->GetSocket(i));
}

// Eğer varsa yansıtma veya kuşak emişi gibi özellikleri de buraya ekleyebilirsin.
pNewItem->AddToCharacter(ch);
}

Validasyon eklemeyide unutma mesela zırh-zırh silah-silah gibi ana itemi ayırt ettirmen gerekiyor
game srcde cube.cpp içinde düzenleme yapacaksın örnek uygulama

// 1. Önce eski itemin pointer'ını (pOldItem) bulduğunuzdan emin olun.
// 2. Yeni item oluşturulduğunda şu kodları ekleyin:

LPITEM pNewItem = ITEM_MANAGER::instance().CreateItem(recipe->vnum, recipe->count);

if (pNewItem)
{
// Efsunları aktar (Eski itemden yeniye)
pNewItem->SetAttributes(pOldItem->GetAttributes());

// Taşları aktar (Eski itemden yeniye)
for (int i = 0; i < ITEM_SOCKET_MAX_NUM; ++i)
{
pNewItem->SetSocket(i, pOldItem->GetSocket(i));
}

// Eğer varsa yansıtma veya kuşak emişi gibi özellikleri de buraya ekleyebilirsin.
pNewItem->AddToCharacter(ch);
}

Validasyon eklemeyide unutma mesela zırh-zırh silah-silah gibi ana itemi ayırt ettirmen gerekiyor
 
Cubeye koyduğum efsunlu item efsunsuz olarak geliyor.Bunun çözümü nedir.İyi forumlar.
Bu durum cube sistemiyle uğraşan çoğu kişinin başına geliyor, genelde de ilk başta fark edilmiyor.

Cube’a koyduğun item’in efsunsuz çıkmasının sebebi, sistemin o item’i dönüştürmek yerine yeniden üretmesi. Yani elindeki efsunlu item’i baz almıyor, sadece vnum’a bakıp tertemiz bir item basıyor. Bu yüzden sonuç efsunsuz geliyor.

Burada en sık karşılaşılan nedenler şunlar oluyor:

Cube tarifleri genelde iki mantıkla çalışır. Biri “upgrade” mantığıdır, yani mevcut item’i alır, üzerine işlem yapar ve efsunlarını korur. Diğeri ise “craft” mantığıdır, tamamen yeni bir item üretir. Senin kullandığın tarif büyük ihtimalle ikinci tür, bu yüzden efsunlar sıfırlanıyor.

Bir diğer nokta da source tarafı. Bazı files’lerde cube sonucu item oluşturulurken efsunlar bilerek temizlenir. Yani sistem baştan “efsunu koruma” düşünülerek yazılmamıştır. Bu durumda quest tarafında ne yaparsan yap sonuç değişmez.

Item proto tarafını da kontrol etmekte fayda var. Cube’dan çıkan item’in efsun almasına engel bir flag’i varsa ya da yanlış attr set’e sahipse, efsun kopyalansa bile oyunda görünmez.

Kısaca toparlarsam:

  • Bu bir hata değil, sistemin çalışma şekli
  • Cube, efsunlu item’i dönüştürmüyor, sıfırdan item basıyor
  • Bu yüzden efsunlar doğal olarak gidiyor
Efsunlu olarak devam etmesini istiyorsan, cube sisteminin source tarafında input item’in efsunlarını output item’e kopyalayacak şekilde düzenlenmesi gerekir. Source erişimin yoksa bu işi quest ile çözmek mümkün olmaz.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst