- Katılım
- 29 Haz 2019
- Konular
- 482
- Mesajlar
- 2,156
- Reaksiyon Skoru
- 1,087
- Altın Konu
- 0
- Başarım Puanı
- 212
- TM Yaşı
- 6 Yıl 9 Ay 27 Gün
- MmoLira
- 2,582
- DevLira
- 33
Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!
Teşekkürler.
- Katılım
- 30 Ocak 2020
- Konular
- 50
- Mesajlar
- 812
- Online süresi
- 26g 54000s
- Reaksiyon Skoru
- 735
- Altın Konu
- 1
- Başarım Puanı
- 184
- TM Yaşı
- 6 Yıl 2 Ay 21 Gün
- MmoLira
- 8,731
- DevLira
- 123
Rica ederim.
- Katılım
- 6 Haz 2018
- Konular
- 16
- Mesajlar
- 469
- Online süresi
- 83s
- Reaksiyon Skoru
- 115
- Altın Konu
- 0
- Başarım Puanı
- 76
- TM Yaşı
- 7 Yıl 10 Ay 19 Gün
- MmoLira
- 442
- DevLira
- 3
teşekkürlerMerhaba TurkMMO
Tahminimce bu zamana kadar çok az kişinin başına gelmiş bir coredownerın fixini paylaşacağım, fixi yapan Gurgarath adlı arkadaşımız 10 yılı aşkın süredir ilk defa başına geldiğini söylüyor, nadir dememin sebebi budur.
Nedir Bu CoreDowner ?
Çok sevgili Ymir yazılımcılarının özensiz kodlamalarının sebep verdiği sıkıntılardan biri olan sorunun kaynağı bir quest fonksiyonu olan get_leader_vid(). Bu fonksiyonu kullanan bir questi oyuna eklediğiniz zaman eğer oyun içinde karakter bir grupta olmadığı halde bu fonksiyonu tetiklerse oyunun core vermesine sebep oluyor, anlıyacağınız çok sevgili Ymir bir kontrol koymayı akıl edememiş.Küçük bir dipnot eğer questin içine kontrol eklerseniz ( if not party.is_party() gibi ) buda sorunu engeller fakat ben src taraflı fixin daha etkili olacağı kanaatindeyim.
Nasıl Fixleriz ?
questlua_npc.cpp açılır ve npc_get_leader_vid fonksiyonu bulunur ;
Normalde bu şekilde olması gerekir ;
C++:{ CQuestManager& q = CQuestManager::instance(); LPCHARACTER npc = q.GetCurrentNPCCharacterPtr(); LPPARTY party = npc->GetParty(); LPCHARACTER leader = party->GetLeader(); if (leader) lua_pushnumber(L, leader->GetVID()); else lua_pushnumber(L, 0); return 1; }
Bir kontrol ekleyip bu şekilde değiştiriyoruz ;
C++:{ CQuestManager& q = CQuestManager::instance(); LPCHARACTER npc = q.GetCurrentNPCCharacterPtr(); LPPARTY party = npc->GetParty(); if (!party) { sys_err("npc_get_leader_vid: Function triggered without party"); return 1; //CoreDowner Fix } LPCHARACTER leader = party->GetLeader(); if (leader) lua_pushnumber(L, leader->GetVID()); else lua_pushnumber(L, 0); return 1; }
Metin2Dev Gurgarath'dan Alıntıdır.
- Katılım
- 30 Ocak 2020
- Konular
- 50
- Mesajlar
- 812
- Online süresi
- 26g 54000s
- Reaksiyon Skoru
- 735
- Altın Konu
- 1
- Başarım Puanı
- 184
- TM Yaşı
- 6 Yıl 2 Ay 21 Gün
- MmoLira
- 8,731
- DevLira
- 123
Rica ederim.
- Katılım
- 16 Eki 2009
- Konular
- 82
- Mesajlar
- 2,278
- Online süresi
- 22g 69766s
- Reaksiyon Skoru
- 824
- Altın Konu
- 16
- Başarım Puanı
- 239
- Yaş
- 36
- TM Yaşı
- 16 Yıl 6 Ay 9 Gün
- MmoLira
- 4,603
- DevLira
- 12
Merhaba TurkMMO
Tahminimce bu zamana kadar çok az kişinin başına gelmiş bir coredownerın fixini paylaşacağım, fixi yapan Gurgarath adlı arkadaşımız 10 yılı aşkın süredir ilk defa başına geldiğini söylüyor, nadir dememin sebebi budur.
Nedir Bu CoreDowner ?
Çok sevgili Ymir yazılımcılarının özensiz kodlamalarının sebep verdiği sıkıntılardan biri olan sorunun kaynağı bir quest fonksiyonu olan get_leader_vid(). Bu fonksiyonu kullanan bir questi oyuna eklediğiniz zaman eğer oyun içinde karakter bir grupta olmadığı halde bu fonksiyonu tetiklerse oyunun core vermesine sebep oluyor, anlıyacağınız çok sevgili Ymir bir kontrol koymayı akıl edememiş.Küçük bir dipnot eğer questin içine kontrol eklerseniz ( if not party.is_party() gibi ) buda sorunu engeller fakat ben src taraflı fixin daha etkili olacağı kanaatindeyim.
Nasıl Fixleriz ?
questlua_npc.cpp açılır ve npc_get_leader_vid fonksiyonu bulunur ;
Normalde bu şekilde olması gerekir ;
C++:{ CQuestManager& q = CQuestManager::instance(); LPCHARACTER npc = q.GetCurrentNPCCharacterPtr(); LPPARTY party = npc->GetParty(); LPCHARACTER leader = party->GetLeader(); if (leader) lua_pushnumber(L, leader->GetVID()); else lua_pushnumber(L, 0); return 1; }
Bir kontrol ekleyip bu şekilde değiştiriyoruz ;
C++:{ CQuestManager& q = CQuestManager::instance(); LPCHARACTER npc = q.GetCurrentNPCCharacterPtr(); LPPARTY party = npc->GetParty(); if (!party) { sys_err("npc_get_leader_vid: Function triggered without party"); return 1; //CoreDowner Fix } LPCHARACTER leader = party->GetLeader(); if (leader) lua_pushnumber(L, leader->GetVID()); else lua_pushnumber(L, 0); return 1; }
Metin2Dev Gurgarath'dan Alıntıdır.
Paylaşım için teşekkürler.
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 0
- Görüntüleme
- 149
- Cevaplar
- 2
- Görüntüleme
- 121
- Cevaplar
- 2
- Görüntüleme
- 330
- Cevaplar
- 9
- Görüntüleme
- 533







