- Mesaj
- 73
- Çözümler
- 2
- Beğeni
- 15
- Puan
- 444
- Ticaret Puanı
- 0
Sistemi ekledim ancak oyuna giriş yaparken karakter ekranına girmeden oyun kapanıyordu. Debug mod ile denediğimde ise şu hatayı verdi :
dwPos'u arattığımda ise şu kodlar çıkıyor karşıma :
Yardım edebilir misiniz?
dwPos'u arattığımda ise şu kodlar çıkıyor karşıma :
ItemData.cpp:
#ifdef ENABLE_ACCE_SYSTEM
void CItemData::SetItemScale(const std::string strJob, const std::string strSex, const std::string strScaleX, const std::string strScaleY, const std::string strScaleZ, const std::string strPositionX, const std::string strPositionY, const std::string strPositionZ)
{
DWORD dwPos;
if (strJob == "JOB_WARRIOR")
dwPos = NRaceData::JOB_WARRIOR;
else if (strJob == "JOB_ASSASSIN")
dwPos = NRaceData::JOB_ASSASSIN;
else if (strJob == "JOB_SURA")
dwPos = NRaceData::JOB_SURA;
else if (strJob == "JOB_SHAMAN")
dwPos = NRaceData::JOB_SHAMAN;
else
dwPos = NRaceData::JOB_WOLFMAN;
dwPos += 1;
if (strSex == "F")
dwPos += 5;
m_ScaleTable.tInfo[dwPos].fScaleX = float(atof(strScaleX.c_str()) / 100.0f);
m_ScaleTable.tInfo[dwPos].fScaleY = float(atof(strScaleY.c_str()) / 100.0f);
m_ScaleTable.tInfo[dwPos].fScaleZ = float(atof(strScaleZ.c_str()) / 100.0f);
m_ScaleTable.tInfo[dwPos].fPositionX = float(atof(strPositionX.c_str()) * 100.0f);
m_ScaleTable.tInfo[dwPos].fPositionY = float(atof(strPositionY.c_str()) * 100.0f);
m_ScaleTable.tInfo[dwPos].fPositionZ = float(atof(strPositionZ.c_str()) * 100.0f);
}
bool CItemData::GetItemScale(DWORD dwPos, float & fScaleX, float & fScaleY, float & fScaleZ, float & fPositionX, float & fPositionY, float & fPositionZ)
{
fScaleX = m_ScaleTable.tInfo[dwPos].fScaleX;
fScaleY = m_ScaleTable.tInfo[dwPos].fScaleY;
fScaleZ = m_ScaleTable.tInfo[dwPos].fScaleZ;
fPositionX = m_ScaleTable.tInfo[dwPos].fPositionX;
fPositionY = m_ScaleTable.tInfo[dwPos].fPositionY;
fPositionZ = m_ScaleTable.tInfo[dwPos].fPositionZ;
return true;
}
#endif
InstanceBase.cpp:
#ifdef ENABLE_ACCE_SYSTEM
void CInstanceBase::SetAcce(DWORD dwAcce)
{
if (!IsPC())
return;
if (IsPoly())
return;
dwAcce += 85000;
ClearAcceEffect();
float fSpecular = 65.0f;
if (dwAcce > 86000)
{
dwAcce -= 1000;
fSpecular += 35;
m_dwAcceEffect = EFFECT_REFINED + EFFECT_ACCE;
__EffectContainer_AttachEffect(m_dwAcceEffect);
}
fSpecular /= 100.0f;
m_awPart[CRaceData::PART_ACCE] = dwAcce;
CItemData * pItemData;
if (!CItemManager::Instance().GetItemDataPointer(dwAcce, &pItemData))
return;
m_GraphicThingInstance.AttachAcce(pItemData, fSpecular);
#ifdef ENABLE_OBJ_SCALLING
DWORD dwRace = GetRace(), dwPos = RaceToJob(dwRace), dwSex = RaceToSex(dwRace);
dwPos += 1;
if (dwSex == 0)
dwPos += 5;
float fScaleX, fScaleY, fScaleZ, fPositionX, fPositionY, fPositionZ;
if (pItemData->GetItemScale(dwPos, fScaleX, fScaleY, fScaleZ, fPositionX, fPositionY, fPositionZ))
{
m_GraphicThingInstance.SetScale(fScaleX, fScaleY, fScaleZ, true);
if (m_kHorse.IsMounting())
fPositionZ += 10.0f;
m_GraphicThingInstance.SetScalePosition(fPositionX, fPositionY, fPositionZ);
}
#endif
}