works for me and dont forget the button invis you soudl know where it is and make sure you have mj points with the char you try make sure at lested 3 mj
Code: Select all
void CGame::StateChangeHandler(int iClientH, char * pData, DWORD dwMsgSize)
{
char * cp, cStateChange1, cStateChange2, cStateChange3;
char cStr, cVit, cDex, cInt, cMag, cChar;
char cStateTxt[512];
int iOldStr, iOldVit, iOldDex, iOldInt, iOldMag, iOldChar;
int iTotalSetting = 0;
if (m_pClientList[iClientH] == NULL) return;
if (m_pClientList[iClientH]->m_bIsInitComplete == FALSE) return;
if (m_pClientList[iClientH]->m_iGizonItemUpgradeLeft <= 0) return;
cStr = cVit = cDex = cInt = cMag = cChar = 0;
cp = (char *)(pData + DEF_INDEX2_MSGTYPE + 2);
cStateChange1 = *cp;
cp++;
cStateChange2 = *cp;
cp++;
cStateChange3 = *cp;
cp++;
iOldStr = m_pClientList[iClientH]->m_iStr;
iOldVit = m_pClientList[iClientH]->m_iVit;
iOldDex = m_pClientList[iClientH]->m_iDex;
iOldInt = m_pClientList[iClientH]->m_iInt;
iOldMag = m_pClientList[iClientH]->m_iMag;
iOldChar = m_pClientList[iClientH]->m_iCharisma;
wsprintf(G_cTxt, "(*) Char(%s) Str(%d) Vit(%d) Dex(%d) Int(%d) Mag(%d) Chr(%d) ", m_pClientList[iClientH]->m_cCharName, m_pClientList[iClientH]->m_iStr, m_pClientList[iClientH]->m_iVit, m_pClientList[iClientH]->m_iDex, m_pClientList[iClientH]->m_iInt, m_pClientList[iClientH]->m_iMag, m_pClientList[iClientH]->m_iCharisma);
PutLogList(G_cTxt);
// wsprintf(G_cTxt, "(*) ");
// PutLogList(G_cTxt);
// wsprintf(G_cTxt, "(*) Char(%s) Str(%d) Vit(%d) Dex(%d) Int(%d) Mag(%d) Chr(%d) ", m_pClientList[iClientH]->m_cCharName, m_pClientList[iClientH]->m_iStr, m_pClientList[iClientH]->m_iVit, m_pClientList[iClientH]->m_iDex, m_pClientList[iClientH]->m_iInt, m_pClientList[iClientH]->m_iMag, m_pClientList[iClientH]->m_iCharisma, );
// PutLogList(G_cTxt);
if(!bChangeState(cStateChange1,&cStr,&cVit,&cDex,&cInt,&cMag,&cChar))
{
//Ŭ¶óÀ̾ðÆ®¿¡¼ °ªÀ» À߸ø º¸³»¿ÂµÃ...
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_STATECHANGE_FAILED, NULL, NULL, NULL, NULL);
return;
}
if(!bChangeState(cStateChange2,&cStr,&cVit,&cDex,&cInt,&cMag,&cChar))
{
//Ŭ¶óÀ̾ðÆ®¿¡¼ °ªÀ» À߸ø º¸³»¿ÂµÃ...
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_STATECHANGE_FAILED, NULL, NULL, NULL, NULL);
return;
}
if(!bChangeState(cStateChange3,&cStr,&cVit,&cDex,&cInt,&cMag,&cChar))
{
//Ŭ¶óÀ̾ðÆ®¿¡¼ °ªÀ» À߸ø º¸³»¿ÂµÃ...
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_STATECHANGE_FAILED, NULL, NULL, NULL, NULL);
return;
}
//±æµå ¸¶½ºÅøé cChar¸¦ ¸ø ³»¸°´Ù..
if(m_pClientList[iClientH]->m_iGuildRank == 0 )
{
if(m_pClientList[iClientH]->m_iCharisma - cChar < 20)
{
//Ŭ¶óÀ̾ðÆ®¿¡¼ °ªÀ» À߸ø º¸³»¿ÂµÃ...
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_STATECHANGE_FAILED, NULL, NULL, NULL, NULL);
return;
}
}
//Ư¼ºÄ¡ °ªÀÌ ·¹º§°ú ¸ÂÃö ¾Ê´Ù¸é ³»¸±¼ö ¾ø´Ù..
if(iOldStr +iOldVit +iOldDex +iOldInt +iOldMag +iOldChar != (179*3 + 70))
{
//ÇØÅ·ÀÌ´Ù... Ŭ¶óÀ̾ðÆ®¿¡¼ ¸øº¸³»°Ô µÇ¾î ÀÖ´Ù ±Ùµ¥ ¿Ô´Ù¸é ÇØÅ·...
return;
}
if(cStr < 0 || cVit < 0 || cDex < 0 || cInt < 0 || cMag < 0 || cChar < 0
|| cStr + cVit + cDex + cInt + cMag + cChar != 3)
{
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_STATECHANGE_FAILED, NULL, NULL, NULL, NULL);
return;
}
// Ư¼ºÄ¡°ªÀÌ 10ÀÌÇ÷Π¸ø³»·à °£´Ù... æÇÑÀ» ³ÑÀ»¼öµµ ¾ø´Ù...
if ((m_pClientList[iClientH]->m_iStr - cStr > DEF_CHARPOINTLIMIT)
|| (m_pClientList[iClientH]->m_iStr - cStr < 10))
{
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_STATECHANGE_FAILED, NULL, NULL, NULL, NULL);
return;
}
if ((m_pClientList[iClientH]->m_iDex - cDex > DEF_CHARPOINTLIMIT)
|| (m_pClientList[iClientH]->m_iDex - cDex < 10))
{
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_STATECHANGE_FAILED, NULL, NULL, NULL, NULL);
return;
}
if ((m_pClientList[iClientH]->m_iInt - cInt > DEF_CHARPOINTLIMIT)
|| (m_pClientList[iClientH]->m_iInt - cInt < 10))
{
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_STATECHANGE_FAILED, NULL, NULL, NULL, NULL);
return;
}
if ((m_pClientList[iClientH]->m_iVit - cVit > DEF_CHARPOINTLIMIT)
|| (m_pClientList[iClientH]->m_iVit - cVit < 10))
{
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_STATECHANGE_FAILED, NULL, NULL, NULL, NULL);
return;
}
if ((m_pClientList[iClientH]->m_iMag - cMag > DEF_CHARPOINTLIMIT)
|| (m_pClientList[iClientH]->m_iMag - cMag < 10))
{
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_STATECHANGE_FAILED, NULL, NULL, NULL, NULL);
return;
}
if ((m_pClientList[iClientH]->m_iCharisma - cChar > DEF_CHARPOINTLIMIT)
|| (m_pClientList[iClientH]->m_iCharisma - cChar < 10))
{
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_STATECHANGE_FAILED, NULL, NULL, NULL, NULL);
return;
}
if (m_pClientList[iClientH]->m_iLU_Pool < 3) m_pClientList[iClientH]->m_iLU_Pool = 3;
// ¿À·ù°¡ ¾øÀ¸¸é °ªÀ» ÇÒ´çÇÑ´Ù.
//m_pClientList[iClientH]->m_iLU_Pool += 3;
m_pClientList[iClientH]->m_iGizonItemUpgradeLeft--;
m_pClientList[iClientH]->m_iStr -= cStr;
m_pClientList[iClientH]->m_iVit -= cVit;
m_pClientList[iClientH]->m_iDex -= cDex;
m_pClientList[iClientH]->m_iInt -= cInt;
//2003-04-22Àà ¸¶¹ýÀ» ȏæ ½ÃŲ´Ù.... ÀÎÆ®°¡ ³»·Ã°¡°à ³ª¼ µ¹¾Æ°¡¾ß ÇÑ´Ù...
if(cInt > 0)
bCheckMagicInt(iClientH);
m_pClientList[iClientH]->m_iMag -= cMag;
m_pClientList[iClientH]->m_iCharisma -= cChar;
ZeroMemory(cStateTxt,sizeof(cStateTxt));
wsprintf(cStateTxt, "STR(%d->%d)VIT(%d->%d)DEX(%d->%d)INT(%d->%d)MAG(%d->%d)CHARISMA(%d->%d)",
iOldStr, m_pClientList[iClientH]->m_iStr,
iOldVit, m_pClientList[iClientH]->m_iVit,
iOldDex, m_pClientList[iClientH]->m_iDex,
iOldInt, m_pClientList[iClientH]->m_iInt,
iOldMag, m_pClientList[iClientH]->m_iMag,
iOldChar,m_pClientList[iClientH]->m_iCharisma
);
//_bCustomLog(DEF_ITEMLOG_CUSTOM,iClientH,NULL,cStateTxt);
//2003-04-22Àà ½ºÅ³À» ³»·Ã°¡°Ô ÇÑ´Ù...
//bCheckSkillState(iClientH);
//¼º°ø..!!!
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_STATECHANGE_SUCCESS, NULL, NULL, NULL, NULL);
}