Çözüldü Race sorunsalı

  • Konuyu açan Konuyu açan Reached
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 3
  • Gösterim Gösterim 1K
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

Reached

Geliştirici
Geliştirici
Emekli Üye
Editör
Mesaj
810
Çözümler
28
Beğeni
743
Puan
839
Ticaret Puanı
0
@DeadLyEscaPe ile konuşurken filesinde olan bir sorundan bahsetti bana
Kod:
Genişlet Daralt Kopyala
Click: CQuestManager::Click(pid=10015, target_npc_name=Grizzlies - Buz Ankası) - NOT EXIST NPC RACE VNUM[34003]
Böyle bir hata alıyordu, ben de kod bloğuna baktım

C++:
Genişlet Daralt Kopyala
DWORD dwCurrentNPCRace = pkChrTarget->GetRaceNum();

if (pkChrTarget->IsNPC())
			{
				map<unsigned int, NPC>::iterator it = m_mapNPC.find(dwCurrentNPCRace);

				if (it == m_mapNPC.end())
				{
					sys_err("CQuestManager::Click(pid=%d, target_npc_name=%s) - NOT EXIST NPC RACE VNUM[%d]",
							pc, 
							pkChrTarget->GetName(), 
							dwCurrentNPCRace);
					return false;
				}



Burda dwCurrentNPCRace ile tıklandığında mobun vnumunu çekiyor ve map'e atayıp tıklanan mobu aratıyor map içinde. Eğer vnumu bulamazsa bu syserri yazdırıyor. Giyili pet sisteminde almış bu hatayı. Giyili pet sisteminde value1 değerindeki mob kodunu çağırıyor itemi giyince.

Ben de şöyle bir öneri sundum;

C++:
Genişlet Daralt Kopyala
LPITEM item;

if (item->GetType() == ITEM_NORMAL_PET)
{
    dwCurrentNPCRace = item->GetValue(1);
}
Burada item giyilebilir pet ise value1 değerini dwCurrentNPCRace e yazmasını yani mob vnumunu buradan çekmesini sağladım. Buildde hata almadık ama çalışmadı. Önerilerinizi bekliyorum.
 
Bahsi geçen vnum questnpc.txt de ekli mi ?
bu aklıma gelmemişti ekli değilmiş ekleyip deniyoruz

Bahsi geçen vnum questnpc.txt de ekli mi ?
evet syserr düşmedi, teşekkürler çözüm bu galiba ama bu source üzerinden yaptığım neden olmadı onu anlayamadım sonuçta vnumu map ile questnpcde aramak yerine otomatik olarak veriyorum aslında şöyle bir şey yapabilir diye düşündüm şu anda.
Bunu daha dinamik bi hale getirmek için m_mapNPC mapine insert ile mob kodunu ve adını yazdırıcam bu syserr düştüğü zaman ve sorun dinamik bir şekilde çözülmüş olucak galiba. Deneyip sonucu paylaşırım. Tekrardan teşekkür ederim
 
Fikriniz belki clientin bizzat kendisi için işe yarayabilir. Yani client tarafından herhangi bir sorun teşkil etmeyebilir ancak giyili pet sisteminin işlevselliği buna uygun mu yoksa aykırı mı orası da ayrı bir muamma. Dediğinizi yaptıktan sonra, pet sistemi ihtiyaç duyduğu kodlara kendi aradığı şekilde sorunsuzca ulaşabilirse bir sorun olmayacağını düşünüyorum. Aksi takdirde denemişsiniz zaten ve hata vermediği halde işe de yaramamış maalesef. Eğer bir sonuca ulaşırsanız Fix başlığı altında alternatif bir çözüm olarak paylaşabilirsiniz :)

Konuyu çözüldü olarak işaretleyip kapatıyorum, iyi çalışmalar.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst