![]() |
|
P1 Dragon is not working. - Printable Version +- LCKB (https://lckb.dev/forum) +-- Forum: ** OLD LCKB DATABASE ** (https://lckb.dev/forum/forumdisplay.php?fid=109) +--- Forum: Guides & Help Section (https://lckb.dev/forum/forumdisplay.php?fid=193) +---- Forum: Help & Support (https://lckb.dev/forum/forumdisplay.php?fid=157) +----- Forum: Ep4 Support (https://lckb.dev/forum/forumdisplay.php?fid=128) +----- Thread: P1 Dragon is not working. (/showthread.php?tid=1115) |
- Hanji - 04-06-2021 So when I deliver quest I get a dragon, but is a normal item, no stats or anything, when I relog it disappear. Quest is ok, and Item is ok, horse is good, also. /monthly_2021_04/image.png.de0e5598ce542b4288f68797a8b39218.png" /> - rondo157 - 04-06-2021 What source? doFuncQuest.cpp line 1653 if (ch->m_inventory.addItem(item) == false) { // АОБЁЕдё® ІЛВчј ёш №ЮА» ¶§ // Quest Error Log GAMELOG << init("QUEST ERROR", ch) << pQuestProto->m_index << delim << (int)MSG_QUEST_ERR_PRIZE_FULL << end; // Жк ѕЖАМЕЫАП °жїм ІЛ Вчёй µе·УЅГЕ°Бц ѕК°н ЗЗё®ё¦ ґЩЅГ Бэѕо іЦ°н ДБЖјґє if( item->IsPet() ) { int egg_index = 0; switch( item->m_itemProto->getItemIndex() ) { case PET_HORSE_ITEM_INDEX: egg_index = PET_HORSE_EGG_INDEX; break; case PET_DRAGON_ITEM_INDEX: egg_index = PET_DRAGON_EGG_INDEX; break; case PET_BLUE_HORSE_ITEM_INDEX: egg_index = PET_BLUE_HORSE_EGG_INDEX; break; case PET_PINK_DRAGON_ITEM_INDEX: egg_index = PET_PINK_DRAGON_EGG_INDEX; break; case PET_UNKOWN_HORSE_ITEM_INDEX: egg_index = PET_UNKOWN_HORSE_EGG_INDEX; break; case PET_UNKOWN_DRAGON_ITEM_INDEX: egg_index = PET_UNKOWN_DRAGON_EGG_INDEX; break; default : continue; } same file line 1735 if ( pQuest->IsPetQuest() ) { if( gserver->isRunHelper() ) { CNetMsg::SP rmsg(new CNetMsg); switch( item->m_itemProto->getItemIndex() ) { case PET_HORSE_ITEM_INDEX: HelperPetCreateReqMsg(rmsg, ch->m_index, (PET_TYPE_HORSE | PET_GRADE_CHILD) ); break; case PET_DRAGON_ITEM_INDEX: HelperPetCreateReqMsg(rmsg, ch->m_index, (PET_TYPE_DRAGON | PET_GRADE_CHILD) ); break; case PET_BLUE_HORSE_ITEM_INDEX: HelperPetCreateReqMsg(rmsg, ch->m_index, (PET_TYPE_BLUE_HORSE | PET_GRADE_CHILD) ); break; case PET_PINK_DRAGON_ITEM_INDEX: HelperPetCreateReqMsg(rmsg, ch->m_index, (PET_TYPE_PINK_DRAGON | PET_GRADE_CHILD) ); break; case PET_UNKOWN_HORSE_ITEM_INDEX: HelperPetCreateReqMsg(rmsg, ch->m_index, (PET_TYPE_UNKOWN_HORSE | PET_GRADE_CHILD) ); break; case PET_UNKOWN_DRAGON_ITEM_INDEX: HelperPetCreateReqMsg(rmsg, ch->m_index, (PET_TYPE_UNKOWN_DRAGON | PET_GRADE_CHILD) ); break; default : continue; } SEND_Q(rmsg, gserver->m_helper); } else { switch( item->m_itemProto->getItemIndex() ) { case PET_HORSE_ITEM_INDEX: ch->GiveItem(PET_HORSE_EGG_INDEX, 0,0, 1, true); break; case PET_DRAGON_ITEM_INDEX: ch->GiveItem(PET_DRAGON_EGG_INDEX, 0,0, 1, true); break; case PET_BLUE_HORSE_ITEM_INDEX: ch->GiveItem(PET_BLUE_HORSE_EGG_INDEX, 0,0, 1, true); break; case PET_PINK_DRAGON_ITEM_INDEX: ch->GiveItem(PET_PINK_DRAGON_EGG_INDEX, 0,0, 1, true); break; case PET_UNKOWN_HORSE_ITEM_INDEX: ch->GiveItem(PET_UNKOWN_HORSE_EGG_INDEX, 0,0, 1, true); break; case PET_UNKOWN_DRAGON_ITEM_INDEX: ch->GiveItem(PET_UNKOWN_DRAGON_EGG_INDEX, 0,0, 1, true); break; default : continue; } if( item ) { ch->m_inventory.deleteItemByDBIndex(item->getDBIndex(), 1); } CNetMsg::SP rmsg(new CNetMsg); FailMsg(rmsg, MSG_FAIL_SYSTEM_ERROR); SEND_Q(rmsg, ch->m_desc); return; } } } break; pc.cpp line 4966 CPet* petNext = m_petList; CPet* pet; while ((pet = petNext)) { petNext = pet->m_nextPet; if (pet->m_index == petIndex) { int itemdbindex = 0; const char* petTypeName; switch (pet->GetPetType()) { /* #define PET_HORSE_ITEM_INDEX 871 // ё» ѕЖАМЕЫ АОµ¦Ѕє #define PET_DRAGON_ITEM_INDEX 872 // їл ѕЖАМЕЫ АОµ¦Ѕє #define PET_BLUE_HORSE_ITEM_INDEX 1710 // ё» ѕЖАМЕЫ АОµ¦Ѕє #define PET_PINK_DRAGON_ITEM_INDEX 1711 // їл ѕЖАМЕЫ АОµ¦Ѕє #define PET_UNKOWN_HORSE_ITEM_INDEX 1713 // ё» ѕЖАМЕЫ АОµ¦Ѕє #define PET_UNKOWN_DRAGON_ITEM_INDEX 1712 // їл ѕЖАМЕЫ АОµ¦Ѕє */ case PET_TYPE_HORSE: itemdbindex = PET_HORSE_ITEM_INDEX; petTypeName = "HORSE"; break; case PET_TYPE_BLUE_HORSE: itemdbindex = PET_BLUE_HORSE_ITEM_INDEX; petTypeName = "BLUE_HORSE"; break; case PET_TYPE_UNKOWN_HORSE: itemdbindex = PET_UNKOWN_HORSE_ITEM_INDEX; petTypeName = "UNKOWN_HORSE"; break; case PET_TYPE_DRAGON: itemdbindex = PET_DRAGON_ITEM_INDEX; petTypeName = "DRAGON"; break; case PET_TYPE_PINK_DRAGON: itemdbindex = PET_PINK_DRAGON_ITEM_INDEX; petTypeName = "PINK_DRAGON"; break; case PET_TYPE_UNKOWN_DRAGON: itemdbindex = PET_UNKOWN_DRAGON_ITEM_INDEX; petTypeName = "UNKOWN_DRAGON"; break; } CItem* item = NULL; // јТИЇµЗѕо АЦґВ ЖкАє јїїЎј Б¦°Е if (pet->IsSummon()) { pet->Disappear(); item = this->m_wearInventory.getWearItem(WEARING_PET); } // Её°н АЦАёёй і»ё®±в else if (pet->IsMount()) { pet->Mount(false); item = this->m_wearInventory.getWearItem(WEARING_PET); } else { item = this->m_inventory.FindByDBIndex(itemdbindex, petIndex); } if (item) { // Жк АеВш ЗШБ¦ if (pet->IsWearing()) { this->m_wearInventory.RemoveItem(item->getWearPos()); } else { this->m_inventory.decreaseItemCount(item, 1); } } // TODO : petlog GAMELOG << init("PET DELETE", m_name, m_desc->m_idname) << "TYPE" << delim << petTypeName << delim << "GRADE" << delim << pet->GetPetGrade() << delim << "LEVEL" << delim << pet->m_level << delim << "EXP" << delim << pet->m_exp << end; // Жк ё®ЅєЖ®їЎј »иБ¦ REMOVE_FROM_BILIST(pet, m_petList, m_prevPet, m_nextPet); DelAttackList(pet); delete pet; break; } } } ProcHelperMsg,cpp line 4167 if (pc) { int itemdbindex = 0; const char* petTypeName; switch (typeGrade & PET_TYPE_MASK) { case PET_TYPE_HORSE: itemdbindex = PET_HORSE_ITEM_INDEX; petTypeName = "HORSE"; break; case PET_TYPE_BLUE_HORSE: itemdbindex = PET_BLUE_HORSE_ITEM_INDEX; petTypeName = "BLUE_HORSE"; break; case PET_TYPE_UNKOWN_HORSE: itemdbindex = PET_UNKOWN_HORSE_ITEM_INDEX; petTypeName = "UNKOWN_HORSE"; break; case PET_TYPE_DRAGON: itemdbindex = PET_DRAGON_ITEM_INDEX; petTypeName = "DRAGON"; break; case PET_TYPE_PINK_DRAGON: itemdbindex = PET_PINK_DRAGON_ITEM_INDEX; petTypeName = "PINK_DRAGON"; break; case PET_TYPE_UNKOWN_DRAGON: itemdbindex = PET_UNKOWN_DRAGON_ITEM_INDEX; petTypeName = "UNKOWN_DRAGON"; break; default: return ; } gl - Hanji - 04-06-2021 4 hours ago, rondo157 said: What source? doFuncQuest.cpp line 1653 if (ch->m_inventory.addItem(item) == false) { // АОБЁЕдё® ІЛВчј ёш №ЮА» ¶§ // Quest Error Log GAMELOG << init("QUEST ERROR", ch) << pQuestProto->m_index << delim << (int)MSG_QUEST_ERR_PRIZE_FULL << end; // Жк ѕЖАМЕЫАП °жїм ІЛ Вчёй µе·УЅГЕ°Бц ѕК°н ЗЗё®ё¦ ґЩЅГ Бэѕо іЦ°н ДБЖјґє if( item->IsPet() ) { int egg_index = 0; switch( item->m_itemProto->getItemIndex() ) { case PET_HORSE_ITEM_INDEX: egg_index = PET_HORSE_EGG_INDEX; break; case PET_DRAGON_ITEM_INDEX: egg_index = PET_DRAGON_EGG_INDEX; break; case PET_BLUE_HORSE_ITEM_INDEX: egg_index = PET_BLUE_HORSE_EGG_INDEX; break; case PET_PINK_DRAGON_ITEM_INDEX: egg_index = PET_PINK_DRAGON_EGG_INDEX; break; case PET_UNKOWN_HORSE_ITEM_INDEX: egg_index = PET_UNKOWN_HORSE_EGG_INDEX; break; case PET_UNKOWN_DRAGON_ITEM_INDEX: egg_index = PET_UNKOWN_DRAGON_EGG_INDEX; break; default : continue; } same file line 1735 if ( pQuest->IsPetQuest() ) { if( gserver->isRunHelper() ) { CNetMsg::SP rmsg(new CNetMsg); switch( item->m_itemProto->getItemIndex() ) { case PET_HORSE_ITEM_INDEX: HelperPetCreateReqMsg(rmsg, ch->m_index, (PET_TYPE_HORSE | PET_GRADE_CHILD) ); break; case PET_DRAGON_ITEM_INDEX: HelperPetCreateReqMsg(rmsg, ch->m_index, (PET_TYPE_DRAGON | PET_GRADE_CHILD) ); break; case PET_BLUE_HORSE_ITEM_INDEX: HelperPetCreateReqMsg(rmsg, ch->m_index, (PET_TYPE_BLUE_HORSE | PET_GRADE_CHILD) ); break; case PET_PINK_DRAGON_ITEM_INDEX: HelperPetCreateReqMsg(rmsg, ch->m_index, (PET_TYPE_PINK_DRAGON | PET_GRADE_CHILD) ); break; case PET_UNKOWN_HORSE_ITEM_INDEX: HelperPetCreateReqMsg(rmsg, ch->m_index, (PET_TYPE_UNKOWN_HORSE | PET_GRADE_CHILD) ); break; case PET_UNKOWN_DRAGON_ITEM_INDEX: HelperPetCreateReqMsg(rmsg, ch->m_index, (PET_TYPE_UNKOWN_DRAGON | PET_GRADE_CHILD) ); break; default : continue; } SEND_Q(rmsg, gserver->m_helper); } else { switch( item->m_itemProto->getItemIndex() ) { case PET_HORSE_ITEM_INDEX: ch->GiveItem(PET_HORSE_EGG_INDEX, 0,0, 1, true); break; case PET_DRAGON_ITEM_INDEX: ch->GiveItem(PET_DRAGON_EGG_INDEX, 0,0, 1, true); break; case PET_BLUE_HORSE_ITEM_INDEX: ch->GiveItem(PET_BLUE_HORSE_EGG_INDEX, 0,0, 1, true); break; case PET_PINK_DRAGON_ITEM_INDEX: ch->GiveItem(PET_PINK_DRAGON_EGG_INDEX, 0,0, 1, true); break; case PET_UNKOWN_HORSE_ITEM_INDEX: ch->GiveItem(PET_UNKOWN_HORSE_EGG_INDEX, 0,0, 1, true); break; case PET_UNKOWN_DRAGON_ITEM_INDEX: ch->GiveItem(PET_UNKOWN_DRAGON_EGG_INDEX, 0,0, 1, true); break; default : continue; } if( item ) { ch->m_inventory.deleteItemByDBIndex(item->getDBIndex(), 1); } CNetMsg::SP rmsg(new CNetMsg); FailMsg(rmsg, MSG_FAIL_SYSTEM_ERROR); SEND_Q(rmsg, ch->m_desc); return; } } } break; pc.cpp line 4966 CPet* petNext = m_petList; CPet* pet; while ((pet = petNext)) { petNext = pet->m_nextPet; if (pet->m_index == petIndex) { int itemdbindex = 0; const char* petTypeName; switch (pet->GetPetType()) { /* #define PET_HORSE_ITEM_INDEX 871 // ё» ѕЖАМЕЫ АОµ¦Ѕє #define PET_DRAGON_ITEM_INDEX 872 // їл ѕЖАМЕЫ АОµ¦Ѕє #define PET_BLUE_HORSE_ITEM_INDEX 1710 // ё» ѕЖАМЕЫ АОµ¦Ѕє #define PET_PINK_DRAGON_ITEM_INDEX 1711 // їл ѕЖАМЕЫ АОµ¦Ѕє #define PET_UNKOWN_HORSE_ITEM_INDEX 1713 // ё» ѕЖАМЕЫ АОµ¦Ѕє #define PET_UNKOWN_DRAGON_ITEM_INDEX 1712 // їл ѕЖАМЕЫ АОµ¦Ѕє */ case PET_TYPE_HORSE: itemdbindex = PET_HORSE_ITEM_INDEX; petTypeName = "HORSE"; break; case PET_TYPE_BLUE_HORSE: itemdbindex = PET_BLUE_HORSE_ITEM_INDEX; petTypeName = "BLUE_HORSE"; break; case PET_TYPE_UNKOWN_HORSE: itemdbindex = PET_UNKOWN_HORSE_ITEM_INDEX; petTypeName = "UNKOWN_HORSE"; break; case PET_TYPE_DRAGON: itemdbindex = PET_DRAGON_ITEM_INDEX; petTypeName = "DRAGON"; break; case PET_TYPE_PINK_DRAGON: itemdbindex = PET_PINK_DRAGON_ITEM_INDEX; petTypeName = "PINK_DRAGON"; break; case PET_TYPE_UNKOWN_DRAGON: itemdbindex = PET_UNKOWN_DRAGON_ITEM_INDEX; petTypeName = "UNKOWN_DRAGON"; break; } CItem* item = NULL; // јТИЇµЗѕо АЦґВ ЖкАє јїїЎј Б¦°Е if (pet->IsSummon()) { pet->Disappear(); item = this->m_wearInventory.getWearItem(WEARING_PET); } // Её°н АЦАёёй і»ё®±в else if (pet->IsMount()) { pet->Mount(false); item = this->m_wearInventory.getWearItem(WEARING_PET); } else { item = this->m_inventory.FindByDBIndex(itemdbindex, petIndex); } if (item) { // Жк АеВш ЗШБ¦ if (pet->IsWearing()) { this->m_wearInventory.RemoveItem(item->getWearPos()); } else { this->m_inventory.decreaseItemCount(item, 1); } } // TODO : petlog GAMELOG << init("PET DELETE", m_name, m_desc->m_idname) << "TYPE" << delim << petTypeName << delim << "GRADE" << delim << pet->GetPetGrade() << delim << "LEVEL" << delim << pet->m_level << delim << "EXP" << delim << pet->m_exp << end; // Жк ё®ЅєЖ®їЎј »иБ¦ REMOVE_FROM_BILIST(pet, m_petList, m_prevPet, m_nextPet); DelAttackList(pet); delete pet; break; } } } ProcHelperMsg,cpp line 4167 if (pc) { int itemdbindex = 0; const char* petTypeName; switch (typeGrade & PET_TYPE_MASK) { case PET_TYPE_HORSE: itemdbindex = PET_HORSE_ITEM_INDEX; petTypeName = "HORSE"; break; case PET_TYPE_BLUE_HORSE: itemdbindex = PET_BLUE_HORSE_ITEM_INDEX; petTypeName = "BLUE_HORSE"; break; case PET_TYPE_UNKOWN_HORSE: itemdbindex = PET_UNKOWN_HORSE_ITEM_INDEX; petTypeName = "UNKOWN_HORSE"; break; case PET_TYPE_DRAGON: itemdbindex = PET_DRAGON_ITEM_INDEX; petTypeName = "DRAGON"; break; case PET_TYPE_PINK_DRAGON: itemdbindex = PET_PINK_DRAGON_ITEM_INDEX; petTypeName = "PINK_DRAGON"; break; case PET_TYPE_UNKOWN_DRAGON: itemdbindex = PET_UNKOWN_DRAGON_ITEM_INDEX; petTypeName = "UNKOWN_DRAGON"; break; default: return ; } gl I'm using June files, and it didn't work, thank you! |