Tutelary Angels System

Codes submitted by developers and people of outpost. Come here to get codes for your client sources.
Post Reply
diuuude
Outpost bitch
Posts: 592
Joined: Wed Dec 28, 2005 11:57 pm

Post by diuuude »

Here is the code you'll have to add in your client sources in order to have the Tutelary Angels System working.

Gail's PTA request DialogBox not included, you'll have to code it by yourself (easy).

<a href='index.php?showtopic=6633' target='_blank'>Server side part HERE !</a>

<span style='color:red'>IN GAME.CPP</span>
<span style='color:blue'>UpdateScreen_OnLoading --> case 12</span>

add :

Code: Select all

m_pSprite[DEF_SPRID_ITEMPACK_PIVOTPOINT+22] = new class CSprite(m_hPakFile, &m_DDraw, "item-pack", 19, FALSE);
add :

Code: Select all

m_pSprite[DEF_SPRID_ITEMGROUND_PIVOTPOINT+22] = new class CSprite(m_hPakFile, &m_DDraw, "item-ground", 19, FALSE);
add :

Code: Select all

  	MakeSprite( "TutelarAngel1", DEF_SPRID_TUTELARYANGELS_PIVOTPOINT + 50*0, 48, FALSE);//(STR)
  	MakeSprite( "TutelarAngel2", DEF_SPRID_TUTELARYANGELS_PIVOTPOINT + 50*1, 48, FALSE);//(DEX)
  	MakeSprite( "TutelarAngel3", DEF_SPRID_TUTELARYANGELS_PIVOTPOINT + 50*2, 48, FALSE);//(INT)
  	MakeSprite( "TutelarAngel4", DEF_SPRID_TUTELARYANGELS_PIVOTPOINT + 50*3, 48, FALSE);//(MAG)

<span style='color:red'>All the following codes goes right after the check for the berserk flag, in the DrawObject_On........ functions.</span>

<span style='color:blue'>In function DrawObject_OnAttack</span>

add :

Code: Select all

DrawAngel((_tmp_cDir - 1), sX+20, sY-20, _tmp_cFrame%8, dwTime);
<span style='color:blue'>In function DrawObject_OnAttackMove</span>

add :

Code: Select all

DrawAngel(8+(_tmp_cDir - 1), sX+dx+20, sY+dy-20, _tmp_cFrame%8, dwTime);
<span style='color:blue'>In function DrawObject_OnMagic</span>

add :

Code: Select all

DrawAngel(32+(_tmp_cDir - 1), sX+20, sY-20, _tmp_cFrame%16, dwTime);
<span style='color:blue'>In function DrawObject_OnGetItem</span>

add :

Code: Select all

DrawAngel(40+(_tmp_cDir - 1), sX+20, sY-20, _tmp_cFrame%4, dwTime);
<span style='color:blue'>In function DrawObject_OnDamage (2 berserk checks in this function, you have to add this code twice)</span>

add :

Code: Select all

DrawAngel(16+(_tmp_cDir - 1), sX+20, sY-20, cFrame%4, dwTime);
<span style='color:blue'>In function DrawObject_OnDying</span>

add :

Code: Select all

DrawAngel(24+(_tmp_cDir - 1), sX+20, sY-20, cFrame%8, dwTime);
<span style='color:blue'>In function DrawObject_OnMove</span>

add :

Code: Select all

DrawAngel(40+(_tmp_cDir - 1), sX+dx+20, sY+dy-20, _tmp_cFrame%4, dwTime);
<span style='color:blue'>In function DrawObject_OnDamageMove</span>

add :

Code: Select all

DrawAngel(16+(_tmp_cDir - 1), sX+dx+20, sY+dy-20, cFrame%4, dwTime);
<span style='color:blue'>In function DrawObject_OnStop</span>

add :

Code: Select all

DrawAngel(40+(_tmp_cDir - 1), sX+20, sY-20, _tmp_cFrame%4, dwTime);
<span style='color:blue'>In function DrawObject_OnRun</span>

add :

Code: Select all

DrawAngel(40+(_tmp_cDir - 1), sX+dx+20, sY+dy-20, _tmp_cFrame%4, dwTime);

<span style='color:blue'>In function bDlgPress_Character --> if ((m_sPlayerType >= 1) && (m_sPlayerType <= 3))</span>

Find :

Code: Select all

if (cEquipPoiStatus[DEF_EQUIPPOS_RFINGER] != -1) {
  	sSprH      = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_RFINGER]]->m_sSprite;
  	sFrame     = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_RFINGER]]->m_sSpriteFrame;
  	if( m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->_bCheckCollison(sX + 32, sY + 193, sFrame, msX, msY ) )
  	{
    m_stMCursor.cSelectedObjectType	= DEF_SELECTEDOBJTYPE_ITEM;
    m_stMCursor.sSelectedObjectID   = m_sItemEquipmentStatus[DEF_EQUIPPOS_RFINGER];
    m_stMCursor.sDistX = 0;
    m_stMCursor.sDistY = 0;
    return TRUE;
  	}
  }
Right before, add :

Code: Select all

if (cEquipPoiStatus[DEF_EQUIPPOS_LFINGER] != -1) {
  	sSprH      = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_LFINGER]]->m_sSprite;
  	sFrame     = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_LFINGER]]->m_sSpriteFrame;
  	if( m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->_bCheckCollison(sX + 90, sY + 175, sFrame, msX, msY ) )
  	{
    m_stMCursor.cSelectedObjectType	= DEF_SELECTEDOBJTYPE_ITEM;
    m_stMCursor.sSelectedObjectID   = m_sItemEquipmentStatus[DEF_EQUIPPOS_LFINGER];
    m_stMCursor.sDistX = 0;
    m_stMCursor.sDistY = 0;
    return TRUE;
  	}
  }

<span style='color:blue'>In function bDlgPress_Character --> if ((m_sPlayerType >= 4) && (m_sPlayerType <= 6))</span>

Find :

Code: Select all

if (cEquipPoiStatus[DEF_EQUIPPOS_RFINGER] != -1) {
  	sSprH  = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_RFINGER]]->m_sSprite;
  	sFrame = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_RFINGER]]->m_sSpriteFrame;
  	if( m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH +40]->_bCheckCollison(sX + 32, sY + 193, sFrame, msX, msY ) )
  	{
    m_stMCursor.cSelectedObjectType	= DEF_SELECTEDOBJTYPE_ITEM;
    m_stMCursor.sSelectedObjectID   = m_sItemEquipmentStatus[DEF_EQUIPPOS_RFINGER];
    m_stMCursor.sDistX = 0;
    m_stMCursor.sDistY = 0;
    return TRUE;
  	}
  }
Right before, add :

Code: Select all

if (cEquipPoiStatus[DEF_EQUIPPOS_LFINGER] != -1) {
  	sSprH  = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_LFINGER]]->m_sSprite;
  	sFrame = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_LFINGER]]->m_sSpriteFrame;
  	if( m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH +40]->_bCheckCollison(sX + 90, sY + 175, sFrame, msX, msY ) )
  	{
    m_stMCursor.cSelectedObjectType	= DEF_SELECTEDOBJTYPE_ITEM;
    m_stMCursor.sSelectedObjectID   = m_sItemEquipmentStatus[DEF_EQUIPPOS_LFINGER];
    m_stMCursor.sDistX = 0;
    m_stMCursor.sDistY = 0;
    return TRUE;
  	}
  }
<span style='color:blue'>In function NotifyMsgHandler --> case DEF_NOTIFY_SPECIALABILITYSTATUS</span>

Find :

Code: Select all

  else if (sV1 == 4) {
  	AddEventList(NOTIFY_MSG_HANDLER31, 10);//"
  	m_iSpecialAbilityType = 0;
  }
  break;
Replace it with :

Code: Select all

  else if (sV1 == 4) {
  	AddEventList(NOTIFY_MSG_HANDLER31, 10);//"
  	m_iSpecialAbilityType = 0;
  }
  else if (sV1 == 5) {
  	PlaySound('E', 34, 0);
  }
  break;
<span style='color:blue'>In function DlgBoxDoubleClick_Character --> if ((m_sPlayerType >= 1) && (m_sPlayerType <= 3))</span>

Find :

Code: Select all

  if (cEquipPoiStatus[DEF_EQUIPPOS_RFINGER] != -1) {
  	sSprH      = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_RFINGER]]->m_sSprite;
  	sFrame     = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_RFINGER]]->m_sSpriteFrame;
  	if( m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->_bCheckCollison(sX + 32, sY + 193, sFrame, msX, msY ) )
    cItemID = cEquipPoiStatus[DEF_EQUIPPOS_RFINGER];
  }
Right before, add:

Code: Select all

  if (cEquipPoiStatus[DEF_EQUIPPOS_LFINGER] != -1) {
  	sSprH      = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_LFINGER]]->m_sSprite;
  	sFrame     = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_LFINGER]]->m_sSpriteFrame;
  	if( m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->_bCheckCollison(sX + 90, sY + 175, sFrame, msX, msY ) )
    cItemID = cEquipPoiStatus[DEF_EQUIPPOS_LFINGER];
  }
<span style='color:blue'>In function DlgBoxDoubleClick_Character --> if ((m_sPlayerType >= 4) && (m_sPlayerType <= 6))</span>

Find :

Code: Select all

  if (cEquipPoiStatus[DEF_EQUIPPOS_RFINGER] != -1) {
  	sSprH      = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_RFINGER]]->m_sSprite;
  	sFrame     = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_RFINGER]]->m_sSpriteFrame;
  	if( m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->_bCheckCollison(sX + 32, sY + 193, sFrame, msX, msY ) )
    cItemID = cEquipPoiStatus[DEF_EQUIPPOS_RFINGER];
  }
Right before, add:

Code: Select all

  if (cEquipPoiStatus[DEF_EQUIPPOS_LFINGER] != -1) {
  	sSprH      = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_LFINGER]]->m_sSprite;
  	sFrame     = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_LFINGER]]->m_sSpriteFrame;
  	if( m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->_bCheckCollison(sX + 90, sY + 175, sFrame, msX, msY ) )
    cItemID = cEquipPoiStatus[DEF_EQUIPPOS_LFINGER];
  }
<span style='color:blue'>In function DrawDialogbox_Character --> if ((m_sPlayerType >= 1) && (m_sPlayerType <= 3))</span>

Find :

Code: Select all

  if (cEquipPoiStatus[DEF_EQUIPPOS_RFINGER] != -1) {
  	sSprH      = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_RFINGER]]->m_sSprite;
  	sFrame     = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_RFINGER]]->m_sSpriteFrame;
  	cItemColor = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_RFINGER]]->m_cItemColor;

  	if (m_bIsItemDisabled[ cEquipPoiStatus[DEF_EQUIPPOS_RFINGER] ] == FALSE) {
    if (cItemColor == 0)
      m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->PutSpriteFast(sX + 32, sY + 193, sFrame, m_dwCurTime);
    else m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->PutSpriteRGB(sX + 32, sY + 193, sFrame, m_wR[cItemColor] -m_wR[0], m_wG[cItemColor] -m_wG[0], m_wB[cItemColor] -m_wB[0], m_dwCurTime);
  	}
  	else {
    if (cItemColor == 0)
      m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->PutTransSprite2(sX + 32, sY + 193, sFrame, m_dwCurTime);
    else m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->PutTransSpriteRGB(sX + 32, sY + 193, sFrame, m_wR[cItemColor] -m_wR[0], m_wG[cItemColor] -m_wG[0], m_wB[cItemColor] -m_wB[0], m_dwCurTime);
  	}
  	if( m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->_bCheckCollison(sX + 32, sY + 193, sFrame, msX, msY ) )
    cCollison = DEF_EQUIPPOS_RFINGER;
  }
Right before, add:

Code: Select all

  if (cEquipPoiStatus[DEF_EQUIPPOS_LFINGER] != -1) {
  	sSprH      = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_LFINGER]]->m_sSprite;
  	sFrame     = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_LFINGER]]->m_sSpriteFrame;
  	cItemColor = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_LFINGER]]->m_cItemColor;
  	
  	if (m_bIsItemDisabled[ cEquipPoiStatus[DEF_EQUIPPOS_LFINGER] ] == FALSE) {
    if (cItemColor == 0)
      m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->PutSpriteFast(sX + 90, sY + 175, sFrame, m_dwCurTime);
    else m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->PutSpriteRGB(sX + 90, sY + 175, sFrame, m_wR[cItemColor] -m_wR[0], m_wG[cItemColor] -m_wG[0], m_wB[cItemColor] -m_wB[0], m_dwCurTime);
  	}
  	else {
    if (cItemColor == 0)
      m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->PutTransSprite2(sX + 90, sY + 175, sFrame, m_dwCurTime);
    else m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->PutTransSpriteRGB(sX + 90, sY + 175, sFrame, m_wR[cItemColor] -m_wR[0], m_wG[cItemColor] -m_wG[0], m_wB[cItemColor] -m_wB[0], m_dwCurTime);
  	}
  	if( m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->_bCheckCollison(sX + 90, sY + 175, sFrame, msX, msY ) )
    cCollison = DEF_EQUIPPOS_LFINGER;
  }
Few lines below, in if( cCollison != -1 ), add :

Code: Select all

else if( cCollison == DEF_EQUIPPOS_LFINGER )
    m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->PutTransSprite(sX + 90, sY + 175, sFrame, m_dwCurTime);
<span style='color:blue'>In function DrawDialogbox_Character --> if ((m_sPlayerType >= 4) && (m_sPlayerType <= 6))</span>

Find :

Code: Select all

  if (cEquipPoiStatus[DEF_EQUIPPOS_RFINGER] != -1) {
  	sSprH      = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_RFINGER]]->m_sSprite;
  	sFrame     = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_RFINGER]]->m_sSpriteFrame;
  	cItemColor = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_RFINGER]]->m_cItemColor;

  	if (m_bIsItemDisabled[ cEquipPoiStatus[DEF_EQUIPPOS_RFINGER] ] == FALSE) {
    if (cItemColor == 0)
      m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->PutSpriteFast(sX + 32, sY + 193, sFrame, m_dwCurTime);
    else m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->PutSpriteRGB(sX + 32, sY + 193, sFrame, m_wR[cItemColor] -m_wR[0], m_wG[cItemColor] -m_wG[0], m_wB[cItemColor] -m_wB[0], m_dwCurTime);
  	}
  	else {
    if (cItemColor == 0)
      m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->PutTransSprite2(sX + 32, sY + 193, sFrame, m_dwCurTime);
    else m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->PutTransSpriteRGB(sX + 32, sY + 193, sFrame, m_wR[cItemColor] -m_wR[0], m_wG[cItemColor] -m_wG[0], m_wB[cItemColor] -m_wB[0], m_dwCurTime);
  	}
  	if( m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->_bCheckCollison(sX + 32, sY + 193, sFrame, msX, msY ) )
    cCollison = DEF_EQUIPPOS_RFINGER;
  }
Right before, add:

Code: Select all

  if (cEquipPoiStatus[DEF_EQUIPPOS_LFINGER] != -1) {
  	sSprH      = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_LFINGER]]->m_sSprite;
  	sFrame     = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_LFINGER]]->m_sSpriteFrame;
  	cItemColor = m_pItemList[cEquipPoiStatus[DEF_EQUIPPOS_LFINGER]]->m_cItemColor;
  	
  	if (m_bIsItemDisabled[ cEquipPoiStatus[DEF_EQUIPPOS_LFINGER] ] == FALSE) {
    if (cItemColor == 0)
      m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->PutSpriteFast(sX + 90, sY + 175, sFrame, m_dwCurTime);
    else m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->PutSpriteRGB(sX + 90, sY + 175, sFrame, m_wR[cItemColor] -m_wR[0], m_wG[cItemColor] -m_wG[0], m_wB[cItemColor] -m_wB[0], m_dwCurTime);
  	}
  	else {
    if (cItemColor == 0)
      m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->PutTransSprite2(sX + 90, sY + 175, sFrame, m_dwCurTime);
    else m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->PutTransSpriteRGB(sX + 90, sY + 175, sFrame, m_wR[cItemColor] -m_wR[0], m_wG[cItemColor] -m_wG[0], m_wB[cItemColor] -m_wB[0], m_dwCurTime);
  	}
  	if( m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->_bCheckCollison(sX + 90, sY + 175, sFrame, msX, msY ) )
    cCollison = DEF_EQUIPPOS_LFINGER;
  }
Few lines below, in if( cCollison != -1 ), add :

Code: Select all

else if( cCollison == DEF_EQUIPPOS_LFINGER )
    m_pSprite[DEF_SPRID_ITEMEQUIP_PIVOTPOINT + sSprH]->PutTransSprite(sX + 90, sY + 175, sFrame, m_dwCurTime);
<span style='color:red'>Add this func in Game.cpp and declare it in Game.h</span>

Code: Select all

/*********************************************************************************************************************
**  void DrawAngel(int iSprite, short sX, short sY, char cFrame, DWORD dwTime)              **
**  description  	: Draws the angel next to your character              	**
**********************************************************************************************************************/
void CGame::DrawAngel(int iSprite, short sX, short sY, char cFrame, DWORD dwTime)
{

	if  ((_tmp_iStatus & 0x1000) != 0)	m_pSprite[DEF_SPRID_TUTELARYANGELS_PIVOTPOINT+iSprite]->PutSpriteFast(sX, sY, cFrame, dwTime);  	//AngelicPendant(STR)
	else if ((_tmp_iStatus & 0x2000) != 0)	m_pSprite[DEF_SPRID_TUTELARYANGELS_PIVOTPOINT+(50*1)+iSprite]->PutSpriteFast(sX, sY, cFrame, dwTime);	//AngelicPendant(DEX)
	else if ((_tmp_iStatus & 0x4000) != 0)	m_pSprite[DEF_SPRID_TUTELARYANGELS_PIVOTPOINT+(50*2)+iSprite]->PutSpriteFast(sX, sY-20, cFrame, dwTime);//AngelicPendant(INT)
	else if ((_tmp_iStatus & 0x8000) != 0)	m_pSprite[DEF_SPRID_TUTELARYANGELS_PIVOTPOINT+(50*3)+iSprite]->PutSpriteFast(sX, sY-20, cFrame, dwTime);//AngelicPendant(MAG)

}
<span style='color:red'>in SpriteID.h</span>

add :

Code: Select all

#define DEF_SPRID_TUTELARYANGELS_PIVOTPOINT	10800

You're done... Now you should have angels working on your server ;) !!
<a href='http://www.technohell.net' target='_blank'><b><span style='color:red'>>>> Helbreath Ressources Website Here <<<</span></b></a><br>C++ Sources, Tools, Server Files, Help on Forum, C++ Snippets, Toplist... Updated often, come visit us !
Calibula
Regular
Posts: 87
Joined: Sun Jul 11, 2004 9:17 am

Post by Calibula »

Very Nice! Thanks :D
Shadoelement
Regular
Posts: 32
Joined: Mon Mar 15, 2004 8:26 pm

Post by Shadoelement »

Awesome work! No problems at all adding it.
Drajwer
&lt;3 bd long time
Posts: 841
Joined: Fri Dec 10, 2004 3:24 pm

Post by Drajwer »

Thanks B)

PS. it isnt showing on character info dialog or i make mistake?
<img src='http://img440.imageshack.us/img440/2627/15pt.jpg' border='0' alt='user posted image' /><br><br>HBPolska characters:<br><br>Hellios 150+ Aresden Hero Mage<br>TheBill 120 Aresden plrider<br>Kill_Me 100 Full-Hero plrider<br>Rockeater 110+ Aresden Plate Mage<br><br><a href='http://www.helbreath.org' target='_blank'>http://www.helbreath.org</a> come and play (250 ppl online)
Pener
Member
Posts: 110
Joined: Fri Feb 27, 2004 3:57 pm
Location: Czech Republic

Post by Pener »

Drajwer wrote:PS. it isnt showing on character info dialog or i make mistake?
u mean this ?:P


Image
<img src='http://i19.photobucket.com/albums/b153/s00pr/Pener.jpg' border='0' alt='user posted image' /><br><img src='http://i19.photobucket.com/albums/b153/ ... anner3.jpg' border='0' alt='user posted image' />
Drajwer
&lt;3 bd long time
Posts: 841
Joined: Fri Dec 10, 2004 3:24 pm

Post by Drajwer »

ya :(
<img src='http://img440.imageshack.us/img440/2627/15pt.jpg' border='0' alt='user posted image' /><br><br>HBPolska characters:<br><br>Hellios 150+ Aresden Hero Mage<br>TheBill 120 Aresden plrider<br>Kill_Me 100 Full-Hero plrider<br>Rockeater 110+ Aresden Plate Mage<br><br><a href='http://www.helbreath.org' target='_blank'>http://www.helbreath.org</a> come and play (250 ppl online)
romax
Member
Posts: 149
Joined: Sat Nov 01, 2003 10:42 am

Post by romax »

GW! than :) <3 <3 <3
<img src='http://img357.imageshack.us/img357/505/eyecopy7ng.gif' border='0' alt='user posted image' />
Dshaked
&lt;3 bd long time
Posts: 747
Joined: Tue Oct 11, 2005 6:40 pm

Post by Dshaked »

Now I can call myself only for noob, cause i added these things to hg and client, and I cant see angels lol, it didint gived any error :D
Old Helbreath Nemesis Player<br><img src='http://img232.imageshack.us/img232/9784/dshakedqc5.jpg' border='0' alt='user posted image' /><br><img src='http://img232.imageshack.us/img232/6475 ... barqj0.jpg' border='0' alt='user posted image' /><br><a href='index.php?showtopic=7107&hl=' target='_blank'>MainServer Hexing Tutorial</a><br><a href='index.php?showtopic=7663&hl=x-mas' target='_blank'>My Files</a>
diuuude
Outpost bitch
Posts: 592
Joined: Wed Dec 28, 2005 11:57 pm

Post by diuuude »

Dshaked wrote: Now I can call myself only for noob, cause i added these things to hg and client, and I cant see angels lol, it didint gived any error :D
what about you go read some C++ books and then you come back and try again ?
<a href='http://www.technohell.net' target='_blank'><b><span style='color:red'>>>> Helbreath Ressources Website Here <<<</span></b></a><br>C++ Sources, Tools, Server Files, Help on Forum, C++ Snippets, Toplist... Updated often, come visit us !
Dshaked
&lt;3 bd long time
Posts: 747
Joined: Tue Oct 11, 2005 6:40 pm

Post by Dshaked »

Yeah I did it, and now i can see it in bag, but I cant see angels, it means i coded hg for shit? or client :)?
Old Helbreath Nemesis Player<br><img src='http://img232.imageshack.us/img232/9784/dshakedqc5.jpg' border='0' alt='user posted image' /><br><img src='http://img232.imageshack.us/img232/6475 ... barqj0.jpg' border='0' alt='user posted image' /><br><a href='index.php?showtopic=7107&hl=' target='_blank'>MainServer Hexing Tutorial</a><br><a href='index.php?showtopic=7663&hl=x-mas' target='_blank'>My Files</a>
Jensen
Loyal fan
Posts: 300
Joined: Tue Aug 02, 2005 7:40 am
Location: Illinois, USA
Contact:

Post by Jensen »

you need both the hg and client done in order for them to show up equiped.

if you want to just test to see if it works on the client w/o doing the hg yet just edit the
void CGame::DrawAngel(int iSprite, short sX, short sY, char cFrame, DWORD dwTime)
function and take one of the displays out of the if/else structure so that it always draws

(funny to see cats and bunnys with angels)
-><-
Dshaked
&lt;3 bd long time
Posts: 747
Joined: Tue Oct 11, 2005 6:40 pm

Post by Dshaked »

function and take one of the displays out of the if/else structure so that it always draws
whats you mean about this?
The other things im already did :D
I dont see angel fly beside of me : <, but I can see pandents in my bag.
Sorry, Im so noob about this :P

Do the hg show angels? or client? tell plz, then I know what I need fix ^^

But if someone want send here 3.51 client source with angels, its easier way help me ^^
Old Helbreath Nemesis Player<br><img src='http://img232.imageshack.us/img232/9784/dshakedqc5.jpg' border='0' alt='user posted image' /><br><img src='http://img232.imageshack.us/img232/6475 ... barqj0.jpg' border='0' alt='user posted image' /><br><a href='index.php?showtopic=7107&hl=' target='_blank'>MainServer Hexing Tutorial</a><br><a href='index.php?showtopic=7663&hl=x-mas' target='_blank'>My Files</a>
Jensen
Loyal fan
Posts: 300
Joined: Tue Aug 02, 2005 7:40 am
Location: Illinois, USA
Contact:

Post by Jensen »

dshaked,

you need to have it done on both the server and client side for them to show up as per normal usage

takeing the display function DrawAngel and re-writing it so that it always displays the angel regardless of if the player has it on or not is just a way to test that the angel displays in the client

but it sounds like you havnt done the server half yet, so go do that before you complain that it doesnt show up
-><-
diuuude
Outpost bitch
Posts: 592
Joined: Wed Dec 28, 2005 11:57 pm

Post by diuuude »

Here is how it works :

You or anybody else equip an PTA

Server set a specific flag on the char who equiped PTA

When server send character's informations to the client (place, how he looks like...) it send the angel flag or not.

Client receive the informations and then display or not the angel near to the character, depending on its angel flag.
<a href='http://www.technohell.net' target='_blank'><b><span style='color:red'>>>> Helbreath Ressources Website Here <<<</span></b></a><br>C++ Sources, Tools, Server Files, Help on Forum, C++ Snippets, Toplist... Updated often, come visit us !
Dshaked
&lt;3 bd long time
Posts: 747
Joined: Tue Oct 11, 2005 6:40 pm

Post by Dshaked »

Works thx diuuude and guys, I only readded the codes.
Old Helbreath Nemesis Player<br><img src='http://img232.imageshack.us/img232/9784/dshakedqc5.jpg' border='0' alt='user posted image' /><br><img src='http://img232.imageshack.us/img232/6475 ... barqj0.jpg' border='0' alt='user posted image' /><br><a href='index.php?showtopic=7107&hl=' target='_blank'>MainServer Hexing Tutorial</a><br><a href='index.php?showtopic=7663&hl=x-mas' target='_blank'>My Files</a>
Post Reply