P1 Dragon is not working.
#2

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



Messages In This Thread
[No subject] - by Hanji - 04-06-2021, 04:45 AM
[No subject] - by rondo157 - 04-06-2021, 04:37 PM
[No subject] - by Hanji - 04-06-2021, 08:54 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)