Jump to content
Araştır
  • Diğer seçenekler ...
Sonuçları bul ...
Sonuçları bul ...
KO Developers Platformuna Hoşgeldin!
Miranda

Quest sayma ve item exchange sorunsalı.

Önerilen Mesajlar

Herkese merhabalar. Çözülen sorunlarda birçok konu mevcut fakat sorunu çözülen arkadaşlar sadece teşekkürler diyip konudan uzaklaşmış. Sorunu çözülen arkadaşlar nasıl yapıldığına dair tek bir mesaj bırakmamış. Hayırlı günler..

GAMESERVER : QUESTV2SAVEEVENT.


void CUser::QuestV2SaveEvent(uint16 sQuestID)
{
_QUEST_HELPER * pQuestHelper = g_pMain->m_QuestHelperArray.GetData(sQuestID);

if (pQuestHelper == nullptr)
return;

SaveEvent(pQuestHelper->sEventDataIndex, pQuestHelper->bEventStatus);
}

void CUser::QuestV2SendNpcMsg(uint32 nQuestID, uint16 sNpcID)
{
Packet result(WIZ_QUEST, uint8(7));
result << nQuestID << sNpcID;
Send(&result);
}

void CUser::QuestV2ShowGiveItem(uint32 nUnk1, uint32 sUnk1,
uint32 nUnk2, uint32 sUnk2,
uint32 nUnk3, uint32 sUnk3,
uint32 nUnk4, uint32 sUnk4,
uint32 nUnk5, uint32 sUnk5)
{
Packet result(WIZ_QUEST, uint8(10));
result << nUnk1 << sUnk1
<< nUnk2 << sUnk2
<< nUnk3 << sUnk3
<< nUnk4 << sUnk4
<< nUnk5 << sUnk5;
Send(&result);
}

uint16 CUser::QuestV2SearchEligibleQuest(uint16 sNpcID)
{
Guard lock(g_pMain->m_questNpcLock);
QuestNpcList::iterator itr = g_pMain->m_QuestNpcList.find(sNpcID);

if (itr == g_pMain->m_QuestNpcList.end() || itr->second.empty())
return 0;

// Loop through all the QuestHelper instances attached to that NPC.
foreach (itr2, itr->second)
{
_QUEST_HELPER * pHelper = (*itr2);
if (pHelper->bLevel > GetLevel()
|| (pHelper->bLevel == GetLevel() && pHelper->nExp > m_iExp)
|| (pHelper->bClass != 5 && !JobGroupCheck(pHelper->bClass))
|| (pHelper->bNation != 3 && pHelper->bNation != GetNation())
|| (pHelper->sEventDataIndex == 0)
|| (pHelper->bEventStatus < 0 || CheckExistEvent(pHelper->sEventDataIndex, 2)) //gorev tamamlanmamis ise
|| !CheckExistEvent(pHelper->sEventDataIndex, pHelper->bEventStatus)) //gorev tamamlanma kontrolu
continue;

return 2;
}
return 0;
}

void CUser::QuestV2ShowMap(uint32 nQuestHelperID)
{
Packet result(WIZ_QUEST, uint8(11));
result << nQuestHelperID;
Send(&result);
}

uint8 CUser::CheckMonsterCount(uint8 bGroup)
{
_QUEST_MONSTER * pQuestMonster = g_pMain->m_QuestMonsterArray.GetData(m_sEventDataIndex);

if (pQuestMonster == nullptr || bGroup == 0 || bGroup >= QUEST_MOB_GROUPS)
return 0;

return m_bKillCounts[bGroup];

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı

tam problemını yazarsan yardımcı olabılırız. tam ne yapıyorsun ve ne olmuyor gıbı.

 

 


Kaira ya yeşil kutu kırdırmaya gidiyorum üzerimde kutular var tabiki 🙂 atıyorum Red treasure chest kırdıracağım. Exchange diyor fakat hiçbirtepki yok. Chaotic de aynı şekilde. gem kırdıracağım . gem'i koyuyorum dönüyor. stop'a basıyorum tepki yok. gelen giden item yok yani. Heryeri aradım taradım malesef bulamadım ben yine .
-- mesaja ek olarak --
Moira'ya pardon 🙂

 

 

İletiyi paylaş


Link to post
Sitelerde Paylaş

önce RED kutu kırdırdığın NPC nin LUA sını bul ve kaçıncı satırda bu işlemi yapıyor bak. örnek olarak ele alırsak SRC da ITEMEXCHANGE olarak girilmiştir. LUA da xitemexchange olarak yazar kime aitse lua artık..

tabiki doğal olarak kırmayacaktır, fakat ikiside doğru yazıldığından emin olduktan sonra
olayı yapan hangi fonksiyon ise onun üzerine yoğunlaşmalısın. bunun içinde DEBUG modda başlatıp item kırdırmaya gidip itemi kırmaya calısacaksın..
yanlış hatırlamıyorsam ITEMEXCHANGE ile alakalı sağlam bir SRC dan kendine göre uyarla yada problemi yine bu isim ile benzerlik gösteren diğer fonksiyonlarda da arayabilirsin

unutmadan şunuda ekleyeyim LUA da herhangi bir tablo ismi gösterilmiş ise ITEM_EXCHANGE tablosu gibi, orada itemler olmadığı içinde karşılığında item vermiyor olabilir
bu senin SRC ve DB yapına hakim olman ile orantılı aynı zamanda ne kadar bilirsen elindeki dosyayı problemi çözmen o kadar kolaylaşır geçmiş olsun..

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı

önce RED kutu kırdırdığın NPC nin LUA sını bul ve kaçıncı satırda bu işlemi yapıyor bak. örnek olarak ele alırsak SRC da ITEMEXCHANGE olarak girilmiştir. LUA da xitemexchange olarak yazar kime aitse lua artık..

tabiki doğal olarak kırmayacaktır, fakat ikiside doğru yazıldığından emin olduktan sonra
olayı yapan hangi fonksiyon ise onun üzerine yoğunlaşmalısın. bunun içinde DEBUG modda başlatıp item kırdırmaya gidip itemi kırmaya calısacaksın..
yanlış hatırlamıyorsam ITEMEXCHANGE ile alakalı sağlam bir SRC dan kendine göre uyarla yada problemi yine bu isim ile benzerlik gösteren diğer fonksiyonlarda da arayabilirsin

unutmadan şunuda ekleyeyim LUA da herhangi bir tablo ismi gösterilmiş ise ITEM_EXCHANGE tablosu gibi, orada itemler olmadığı içinde karşılığında item vermiyor olabilir
bu senin SRC ve DB yapına hakim olman ile orantılı aynı zamanda ne kadar bilirsen elindeki dosyayı problemi çözmen o kadar kolaylaşır geçmiş olsun..

 

 

 


Mavi ve yeşil kutu bunlar sanırsam..


-- ÀØÇôÁø ½ÅÀüÀÇ º¸¹° »óÀÚ ±³Ã¼ ½ÃÀÛ
-----------------------------------------------------------

local ItemA = 0;
local ItemB = 0;
local RUN_EXCHANGE ;
local savenum = 402 ;

if EVENT == 280 then
ItemA = HowmuchItem(UID, 379156000); -- 1µî±Ş
ItemB = HowmuchItem(UID, 379155000); -- 2µî±Ş
if ItemA == 0 and ItemB == 0 then -- »óÀÚ°¡ ¾øÀ»¶§
SelectMsg(UID, 2, savenum, 4032, NPC, 10, 241);
elseif ItemA > 0 and ItemB == 0 then-- 1µî±Ş º¸¹° »óÀÚ°¡ ÀÖÀ»¶§
EVENT = 282
elseif ItemB > 0 and ItemA == 0 then-- 2µî±Ş º¸¹° »óÀÚ°¡ ÀÖÀ»¶§
EVENT = 283
else-- 1µî±Ş, 2µî±Ş º¸¹° »óÀÚ°¡ ÀÖÀ»¶§
SelectMsg(UID, 2, savenum, 4035, NPC, 4007, 282, 4008, 283);
end
end

local Roll = 0;
local found;


burda yanlış olan birşey yoksa , item exchange tablosunda sıkıntı vardır diyorsunuz değil mi. oraya ve exchange.tbl ye elle ekleme yapma durumundayım ?
-- mesaja ek olarak --
daha sağlam bir lua dosyası ile değiştirdim sorun sanırım item exchange tablosunda. oraya elle tek tek ekleme yapacağım sonucu tekrardan yazarım.
-- mesaja ek olarak --
Burda item_exchange tablosunda görüldüğü üzere . Mavi kutu tabloda ekli. bir yanlışlık yoksa tabloda sorun nerede peki? src de mi


https://i.hizliresim.com/GmP51V.jpg

 

 

 

İletiyi paylaş


Link to post
Sitelerde Paylaş

×
×
  • Yeni Oluştur...