bool CFruit::UseFruitResetPoint(LPOBJ lpObj,int type,int amountrf) // OK
{
PMSG_FRUIT_RESULT_SEND pMsg;
pMsg.header.set(0x2C,sizeof(pMsg));
if(lpObj->Level < 10)
{
pMsg.result = 5;
DataSend(lpObj->Index,(BYTE*)&pMsg,pMsg.header.size);
return 0;
}
if(type == 4 && lpObj->Class != CLASS_DL)
{
pMsg.result = 5;
DataSend(lpObj->Index,(BYTE*)&pMsg,pMsg.header.size);
return 0;
}
for(int n=0;n < INVENTORY_WEAR_SIZE;n++)
{
if(lpObj->Inventory[n].IsItem() != 0)
{
pMsg.result = 16;
DataSend(lpObj->Index,(BYTE*)&pMsg,pMsg.header.size);
return 0;
}
}
int* stat;
switch(type)
{
case 0:
stat = &lpObj->Strength;
break;
case 1:
stat = &lpObj->Dexterity;
break;
case 2:
stat = &lpObj->Vitality;
break;
case 3:
stat = &lpObj->Energy;
break;
case 4:
stat = &lpObj->Leadership;
break;
default:
pMsg.result = 38;
DataSend(lpObj->Index,(BYTE*)&pMsg,pMsg.header.size);
return 0;
}
if((*stat) <= gDefaultClassInfo.GetCharacterDefaultStat(lpObj->Class,type))
{
pMsg.result = 38;
DataSend(lpObj->Index,(BYTE*)&pMsg,pMsg.header.size);
return 0;
}
amountrf = (100);
//[original code]((((*stat)-amount)<gDefaultClassInfo.GetCharacterDefaultStat(lpObj->Class,type))?((*stat)-gDefaultClassInfo.GetCharacterDefaultStat(lpObj->Class,type)):amount);
if((*stat) <= gDefaultClassInfo.GetCharacterDefaultStat(lpObj->Class,type))
{
pMsg.result = 38;
DataSend(lpObj->Index,(BYTE*)&pMsg,pMsg.header.size);
return 0;
}
(*stat) -= amountrf;
if((*stat) <= gDefaultClassInfo.GetCharacterDefaultStat(lpObj->Class,type))
{
pMsg.result = 38;
DataSend(lpObj->Index,(BYTE*)&pMsg,pMsg.header.size);
return 0;
}
lpObj->LevelUpPoint += amountrf;
pMsg.result = 6;
pMsg.value = amountrf;
pMsg.type = ((type<4)?(3-type):type);
#if(GAMESERVER_EXTRA==1)
pMsg.ViewValue = amountrf;
pMsg.ViewPoint = lpObj->LevelUpPoint;
pMsg.ViewStrength = lpObj->Strength;
pMsg.ViewDexterity = lpObj->Dexterity;
pMsg.ViewVitality = lpObj->Vitality;
pMsg.ViewEnergy = lpObj->Energy;
pMsg.ViewLeadership = lpObj->Leadership;
#endif
DataSend(lpObj->Index,(BYTE*)&pMsg,pMsg.header.size);
gObjectManager.CharacterCalcAttribute(lpObj->Index);
return 1;
}