Can someone help me with this?
There is everything what i added:
char.cpp
Cod: Selectaţi tot
WORD CHARACTER::GetPart(BYTE bPartPos) const
{
assert(bPartPos < PART_MAX_NUM);
if(bPartPos == PART_MAIN && GetWear(WEAR_COSTUME_BODY) && GetQuestFlag("costume.change") == 1)
if(const LPITEM pArmor = GetWear(WEAR_BODY))
return (NULL != pArmor) ? pArmor->GetVnum() : GetOriginalPart(PART_MAIN);
return m_pointsInstant.parts[bPartPos];
}item.cpp
Cod: Selectaţi tot
case ITEM_ARMOR:
{
// 코스츔 body를 입고있다면 armor는 벗던 입던 상관 없이 비주얼에 영향을 주면 안 됨.
//if (0 != m_pOwner->GetWear(WEAR_COSTUME_BODY))
if (m_pOwner->GetWear(WEAR_COSTUME_BODY) != 0 && m_pOwner->GetQuestFlag("costume.change") != 1)
break;
if (GetSubType() == ARMOR_BODY || GetSubType() == ARMOR_HEAD || GetSubType() == ARMOR_FOOTS || GetSubType() == ARMOR_SHIELD)
{
if (bAdd)
{
if (GetProto()->bSubType == ARMOR_BODY)
#ifdef __CHANGELOOK_SYSTEM__
{
DWORD dwRes = GetTransmutation() != 0 ? GetTransmutation() : GetVnum();
m_pOwner->SetPart(PART_MAIN, dwRes);
}
#else
m_pOwner->SetPart(PART_MAIN, GetVnum());
#endif
}
else
{
if (GetProto()->bSubType == ARMOR_BODY)
m_pOwner->SetPart(PART_MAIN, m_pOwner->GetOriginalPart(PART_MAIN));
}
}
}
break;
// 코스츔 아이템 입었을 때 캐릭터 parts 정보 세팅. 기존 스타일대로 추가함..
case ITEM_COSTUME:
{
DWORD toSetValue = this->GetVnum();
EParts toSetPart = PART_MAX_NUM;
// 갑옷 코스츔
if (GetSubType() == COSTUME_BODY)
{
toSetPart = PART_MAIN;
if (false == bAdd)
{
const CItem* pArmor = m_pOwner->GetWear(WEAR_BODY);
toSetValue = (NULL != pArmor) ? pArmor->GetVnum() : m_pOwner->GetOriginalPart(PART_MAIN);
#ifdef __CHANGELOOK_SYSTEM__
if (pArmor)
toSetValue = pArmor->GetTransmutation() != 0 ? pArmor->GetTransmutation() : pArmor->GetVnum();
#endif
}
#ifdef __CHANGELOOK_SYSTEM__
else
toSetValue = GetTransmutation() != 0 ? GetTransmutation() : GetVnum();
#endif
}
Cod: Selectaţi tot
ACMD(do_costume_change);
{ "costume_change", do_costume_change, 0, POS_DEAD, GM_PLAYER },
cmd_general.cpp
Cod: Selectaţi tot
ACMD(do_costume_change)
{
EParts toSetPart = PART_MAX_NUM;
toSetPart = PART_MAIN;
if (ch->IsPolymorphed())
return;
if (!ch->GetWear(WEAR_COSTUME_BODY))
return;
int toSetValue = 0;
if (ch->GetQuestFlag("costume.change") < 1)
{
ch->SetQuestFlag("costume.change", 1);
const CItem* pArmor = ch->GetWear(WEAR_BODY);
toSetValue = (NULL != pArmor) ? pArmor->GetVnum() : ch->GetOriginalPart(PART_MAIN);
}
else
{
ch->SetQuestFlag("costume.change", 0);
const CItem* pArmor = ch->GetWear(WEAR_COSTUME_BODY);
toSetValue = (NULL != pArmor) ? pArmor->GetVnum() : ch->GetOriginalPart(PART_MAIN);
}
if (PART_MAX_NUM != toSetPart)
{
ch->SetPart((BYTE)toSetPart, toSetValue);
ch->UpdatePacket();
}
}


