Hey com

Hab das Schulterband system soweit eingefügt und das fängt an beim client zu zicken.
Ich hoffe ihr habt da eine idee.
Das ist der fehler.
habe in GameLIb/ActorInstanceData.cpp
PHP Code:
void CActorInstance::SetAcce(DWORD eAcce, float fSpecular)
{
m_eAcce = eAcce;
CRaceData * pRaceData;
if (!CRaceManager::Instance().GetRaceDataPointer(m_eRace, &pRaceData))
return;
CRaceData::SAcce* pkAcce = pRaceData->FindAcce(eAcce);
if (pkAcce)
{
if (!pkAcce->m_stModelFileName.empty())
{
CGraphicThing * pkAcceThing = (CGraphicThing *)CResourceManager::Instance().GetResourcePointer(pkAcce->m_stModelFileName.c_str());
RegisterModelThing(CRaceData::PART_ACCE, pkAcceThing);
SetModelInstance(CRaceData::PART_ACCE, CRaceData::PART_ACCE, 0, CRaceData::PART_MAIN);
}
const std::vector<CRaceData::SSkin>& c_rkVct_kSkin = pkAcce->m_kVct_kSkin;
std::vector<CRaceData::SSkin>::const_iterator i;
for (i = c_rkVct_kSkin.begin(); i != c_rkVct_kSkin.end(); ++i)
{
const CRaceData::SSkin& c_rkSkinItem = *i;
CResource * pkRes = CResourceManager::Instance().GetResourcePointer(c_rkSkinItem.m_stDstFileName.c_str());
if (pkRes)
{
if (fSpecular > 0.0f)
{
SMaterialData kMaterialData;
kMaterialData.pImage = static_cast<CGraphicImage*>(pkRes);
kMaterialData.isSpecularEnable = TRUE;
kMaterialData.fSpecularPower = fSpecular;
kMaterialData.bSphereMapIndex = 0;
SetMaterialData(CRaceData::PART_ACCE, c_rkSkinItem.m_stSrcFileName.c_str(), kMaterialData);
}
else
{
SetMaterialImagePointer(CRaceData::PART_ACCE, c_rkSkinItem.m_stSrcFileName.c_str(), static_cast<CGraphicImage*>(pkRes));
}
}
}
}
}
unter diese Funktion gesetzt:
PHP Code:
void CActorInstance::SetHair(DWORD eHair)
und in Userinterface/InstanceBase.cpp:
PHP Code:
void CInstanceBase::SetAcce(DWORD eAcce)
{
if (IsPC() == false)
return;
__ClearAcceRefineEffect();
long lAbsChance = 0;
float fSpecularPower = 0.0f;
int iItemIndex = CPythonPlayer::Instance().GetItemIndex(TItemPos(INVENTORY, c_Costume_Slot_Acce));
if (iItemIndex > 0)
{
CItemManager::Instance().SelectItemData(iItemIndex);
CItemData * pItemData = CItemManager::Instance().GetSelectedItemDataPointer();
if (pItemData->GetType() == CItemData::ITEM_TYPE_COSTUME && pItemData->GetSubType() == CItemData::COSTUME_ACCE)
{
fSpecularPower = pItemData->GetSpecularPowerf();
lAbsChance = CPythonPlayer::Instance().GetItemMetinSocket(TItemPos(INVENTORY, c_Costume_Slot_Acce), 1);
if (lAbsChance >= 19)
{
m_acceEffect = EFFECT_REFINED+EFFECT_ACCE_SPECIAL;
__EffectContainer_AttachEffect(m_acceEffect);
}
}
}
m_awPart[CRaceData::PART_ACCE] = eAcce;
m_GraphicThingInstance.SetAcce(eAcce);
if (lAbsChance >= 19)
{
m_GraphicThingInstance.SetAcce(eAcce, fSpecularPower);
}
else
{
m_GraphicThingInstance.SetAcce(eAcce);
}
}
unter diese Funktion gesetzt:
PHP Code:
void CInstanceBase::SetArmor(DWORD dwArmor)
In der ActorInstanceData ist es vom code her "fast" das selbe wie ActorInstance::SetHair.
deshalb verstehe ich es nicht wieso der beim Acce fehler ausgibt und bei den Haaren nicht.
etc.
wurde im header ActorInstance deklariert.
Ich hoffe jemand kann helfen.
Mfg
#Solved
ActorInstance.h
PHP Code:
void SetAcce(DWORD eAcce)
zu
PHP Code:
void SetAcce(DWORD eAcce, float fSpecular
hat den overloaded member gelöst.
float fSpecular in InstanceBase.cpp in den funktionen mit Set(eAcce) hinzufügen.