Stats Change Code

All Helbreath Server Source Discussion here.
Post Reply
SlammeR
Loyal fan
Posts: 219
Joined: Fri Nov 04, 2005 1:52 am
Location: Brazil

Post by SlammeR »

Wtf is wrong on this code? -.-

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);

	
	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);
}

BOOL CGame::bChangeState(char cStateChange, char* cStr, char *cVit,char *cDex,char *cInt,char *cMag,char *cChar)
{
	if(cStateChange == DEF_STR)
	{
  *cStr += 1;
	}
	else if(cStateChange == DEF_VIT)
	{
  *cVit += 1;
//  if(m_pClientList[iClientH]->m_iStr - cVit < 10 || m_pClientList[iClientH]->cVit - cVit < DEF_CHARPOINTLIMIT )
//  	return 0;
	}
	else if(cStateChange == DEF_DEX)
	{
  *cDex += 1;
	}
	else if(cStateChange == DEF_INT)
	{
  *cInt += 1;
	}
	else if(cStateChange == DEF_MAG)
	{
  *cMag += 1;
	}
	else if(cStateChange == DEF_CHR)
	{
  *cChar += 1;
	}
	else
	{
  //Ŭ¶óÀÌ¾ðÆ®°¡ À߸øµÈ °ªÀ» º¸³» ¿Ô´Ù..
//  ::MessageBox(NULL, "Ŭ¶óÀ̾ðÆ® ¹ö±×? - í￾´ë￾¼ì￾´ì–¸íЏ 버그?","debug", MB_ICONEXCLAMATION | MB_YESNO);
  return 0;
	}

	return cStateChange;
}
OWNED!<br><img src='http://img50.imageshack.us/img50/1386/p ... 3vsqn2.gif' border='0' alt='user posted image' /><br><br><img src="http://hbtop50.com/button.php?u=hbuonline" alt="Helbreath Top 50 - Keepin' it real." border="0" /><br><a href='http://www.hbuonline.net' target='_blank'>Helbreath United</a>
James!
Member
Posts: 134
Joined: Sat Jan 01, 2005 12:09 am

Post by James! »

you server is max lvl 180+ ?

if lvl 180 + error is here :

Code: Select all

if(iOldStr +iOldVit +iOldDex +iOldInt +iOldMag +iOldChar != (179*3 + 70))
remplaze 179*3 for 249*3 if you server is max lvl 250 example
<img src='http://img.photobucket.com/albums/v482/ ... ingFan.jpg' border='0' alt='user posted image' /><br><a href='http://www.hbdreams.com.ar' target='_blank'><b>- Helbreath Dream Team -</a></b><br><a href='http://www.dreamforums.com.ar/top50' target='_blank'><b>- Dream Top 50 Owner Admin -</a></b><br>- <b>Contacto Por Mail</b> : <a href='mailto:james@dreamforums.com.ar'>james@dreamforums.com.ar</a>
SlammeR
Loyal fan
Posts: 219
Joined: Fri Nov 04, 2005 1:52 am
Location: Brazil

Post by SlammeR »

James! wrote: you server is max lvl 180+ ?

if lvl 180 + error is here :

Code: Select all

if(iOldStr +iOldVit +iOldDex +iOldInt +iOldMag +iOldChar != (179*3 + 70))
remplaze 179*3 for 249*3 if you server is max lvl 250 example
its 180... it dont work.. x/ help plz
OWNED!<br><img src='http://img50.imageshack.us/img50/1386/p ... 3vsqn2.gif' border='0' alt='user posted image' /><br><br><img src="http://hbtop50.com/button.php?u=hbuonline" alt="Helbreath Top 50 - Keepin' it real." border="0" /><br><a href='http://www.hbuonline.net' target='_blank'>Helbreath United</a>
Dax
&lt;3 bd long time
Posts: 785
Joined: Mon Apr 18, 2005 3:19 pm

Post by Dax »

Some hints on the problem would help. Thats just like me posting hbx 2.24b and saying "Why this not 3.72?".. Anyway more information please.
Reppin' 127.0.0.1!!!<br><br><img src='http://img502.imageshack.us/img502/1348/sig4daxbn2.jpg' border='0' alt='user posted image' /><br><br>I contend that we are both atheists. I just believe in one fewer god than you do. <br>When you understand why you dismiss all the other possible gods, you will <br>understand why I dismiss yours.<br>~ <b>Stephen Roberts</b>
SlammeR
Loyal fan
Posts: 219
Joined: Fri Nov 04, 2005 1:52 am
Location: Brazil

Post by SlammeR »

Dax wrote: Some hints on the problem would help. Thats just like me posting hbx 2.24b and saying "Why this not 3.72?".. Anyway more information please.
when you get one majestic point you can change your stats... When i press on Change Stats and decrease the points to one Specific Stat It dont work...
OWNED!<br><img src='http://img50.imageshack.us/img50/1386/p ... 3vsqn2.gif' border='0' alt='user posted image' /><br><br><img src="http://hbtop50.com/button.php?u=hbuonline" alt="Helbreath Top 50 - Keepin' it real." border="0" /><br><a href='http://www.hbuonline.net' target='_blank'>Helbreath United</a>
Post Reply