[Src]->Slates Dialogbox

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

Post by diuuude »

Ok, here is a bigger part in the client source edition... You have to completely add the new windows. I tryed to do it as close as possible from the original 3.51 client and i hope it'll be working fine :).

This code does not include the auras, you should add the effects and flags by yourself, i'll maybe post it later but this is not the subject of this topic.

In order to have it working, you'll have to increase the range of some vars like m_stDialogBoxInfo. We used 61 with Snoopy instead of 41... You can use this code without editing these vars but if you want to add the other Dialogs i'll post you must change it !

Update :
- Cannot use Slates on Heldenian Maps


<span style='color:red'>Step One, Add the definitions
Open Game.h
</span>

Add this :

Code: Select all

	// Slates Related functions - Diuuude
	void bItemDrop_Slates();
	void DlgBoxClick_Slates(short msX, short msY);
	void DrawDialogBox_Slates(short msX, short msY, short msZ, char cLB);
	
	// Slates Related vars - Diuuude
	BOOL m_bUsingSlate;

<span style='color:red'>Step Two, Add the Net Messages IDs
Open NetMessages.h
</span>

Add this :

Code: Select all

	// Slates - Diuuude
	#define DEF_NOTIFY_SLATE_CREATESUCCESS    0x0BC1
	#define DEF_NOTIFY_SLATE_CREATEFAIL      0x0BC2
	#define DEF_NOTIFY_SLATE_INVINCIBLE      0x0BD8
	#define DEF_NOTIFY_SLATE_MANA        0x0BD9
	#define DEF_NOTIFY_SLATE_EXP        	0x0BE0
	#define DEF_NOTIFY_SLATE_STATUS      	0x0BE1
	#define DEF_NOTIFY_SLATECLEAR        99
	#define DEF_COMMONTYPE_REQ_CREATESLATE    0x0A61

<span style='color:red'>Step Three, Add the Texts
Open lan_eng.h
</span>

Add this :

Code: Select all

	// Slates - Diuuude
	#define DEF_MSG_NOTIFY_SLATE_CREATESUCCESS  	"The ancient prophecy slate is completed."
	#define DEF_MSG_NOTIFY_SLATE_CREATEFAIL    	"The slates are broken with a sharp clink."
	#define DEF_MSG_NOTIFY_SLATECLEAR      	"The effect of the prophecy-slate is disappeared."
	#define DEF_MSG_NOTIFY_SLATE_INVINCIBLE    	"You are invincible by divine protection of Kloness, the GOD OF JUSTICE."
	#define DEF_MSG_NOTIFY_SLATE_MANA      	"Your mana will be refilled by great Wizard."
	#define DEF_MSG_NOTIFY_SLATE_EXP      	"You've got the wisdom. Now, the amount of experience, wich you get from enermy, is icreased."
	#define DEF_MSG_NOTIFY_SLATE_ALREADYUSING    "You're already using another slate."
#define DEF_MSG_NOTIFY_SLATE_HELDENIAN  "You cannot use Slates during Heldenian."

<span style='color:red'>Step Four, Add all the other Slates Related Code
Open game.cpp
</span>


In CGame, Find this code:

Code: Select all

//»óÇÏ.....â°í ÀÚµ¿º¸°ü ÀÎÅÍÆäÀ̽º¿ë
	m_stDialogBoxInfo[39].sX = 0;
	m_stDialogBoxInfo[39].sY = 0;
	m_stDialogBoxInfo[39].sSizeX = 291; 
	m_stDialogBoxInfo[39].sSizeY = 413;
add this :

Code: Select all

	// Slates Dialog - Diuuude
	m_stDialogBoxInfo[40].sX = 100;
	m_stDialogBoxInfo[40].sY = 60;
	m_stDialogBoxInfo[40].sSizeX = 180; 
	m_stDialogBoxInfo[40].sSizeY = 182;
Add this case in function _bCheckDlgBoxClick :

Code: Select all

  	case 40:
    DlgBoxClick_Slates(msX, msY);
    break;
Add this case in function _bCheckDraggingItemRelease :

Code: Select all

  	case 40:
    bItemDrop_Slates();
    break;
Add This cse in function DrawDialogBoxs :

Code: Select all

  case 40:
  	DrawDialogBox_Slates(msX, msY, msZ, cLB); 
  	break;
Now Go to Function bSendCommand, in the first switch, find th case MSGID_COMMAND_COMMON. In the next switch, add :

Code: Select all

  // Create Slate Request - Diuuude
  case DEF_COMMONTYPE_REQ_CREATESLATE:
  	*cp = (char)m_stDialogBoxInfo[40].sV1;
  	cp++;
  	*cp = (char)m_stDialogBoxInfo[40].sV2;
  	cp++;
  	*cp = (char)m_stDialogBoxInfo[40].sV3;
  	cp++;
  	*cp = (char)m_stDialogBoxInfo[40].sV4;
  	cp++;
  	*cp = (char)m_stDialogBoxInfo[40].sV5;
  	cp++;
  	*cp = (char)m_stDialogBoxInfo[40].sV6;
  	cp++;

  	iRet = m_pGSock->iSendMsg(cMsg, 18);
  	break;
Find :

Code: Select all

m_bItemUsingStatus  = FALSE;
And add, right after it:

Code: Select all

	m_bUsingSlate = FALSE;

In function EnableDialogBox, add this case:

Code: Select all

	case 40:
  if (m_bIsDialogEnabled[40] == FALSE) {
  	m_stDialogBoxInfo[40].sView = 0;
  	m_stDialogBoxInfo[40].cMode	= cType;
  	m_stDialogBoxInfo[40].sV1   = -1;  
  	m_stDialogBoxInfo[40].sV2   = -1;
  	m_stDialogBoxInfo[40].sV3   = -1;
  	m_stDialogBoxInfo[40].sV4   = -1;
  	m_stDialogBoxInfo[40].cStr[0] = 0;
  	m_stDialogBoxInfo[40].cStr[1] = 0;
  	m_stDialogBoxInfo[40].cStr[4] = 0;

  	m_stDialogBoxInfo[40].sSizeX = 180;
  	m_stDialogBoxInfo[40].sSizeY = 183;

  	DisableDialogBox(17);
  	DisableDialogBox(20);
  	DisableDialogBox(23);
  	DisableDialogBox(26);
  }
  break;
In Function DisableDialogBox, add this case :

Code: Select all

	case 40:
  m_bIsItemDisabled[m_stDialogBoxInfo[40].sV1] = FALSE;
  m_bIsItemDisabled[m_stDialogBoxInfo[40].sV2] = FALSE;
  m_bIsItemDisabled[m_stDialogBoxInfo[40].sV3] = FALSE;
  m_bIsItemDisabled[m_stDialogBoxInfo[40].sV4] = FALSE;

  ZeroMemory(m_stDialogBoxInfo[40].cStr, sizeof(m_stDialogBoxInfo[40].cStr));
  ZeroMemory(m_stDialogBoxInfo[40].cStr2, sizeof(m_stDialogBoxInfo[40].cStr2));
  ZeroMemory(m_stDialogBoxInfo[40].cStr3, sizeof(m_stDialogBoxInfo[40].cStr3));
  ZeroMemory(m_stDialogBoxInfo[40].cStr4, sizeof(m_stDialogBoxInfo[40].cStr4));
  m_stDialogBoxInfo[40].sV1   = -1;  
  m_stDialogBoxInfo[40].sV2   = -1;
  m_stDialogBoxInfo[40].sV3   = -1;
  m_stDialogBoxInfo[40].sV4   = -1;
  break;
Add the following code in the NotifyMsgHandler Function :

Code: Select all

	// Slates Messages - Diuuude
	case DEF_NOTIFY_SLATE_CREATESUCCESS:
  AddEventList( DEF_MSG_NOTIFY_SLATE_CREATESUCCESS, 10 );
  break;
	case DEF_NOTIFY_SLATE_CREATEFAIL:
  AddEventList( DEF_MSG_NOTIFY_SLATE_CREATEFAIL, 10 );
  break;
	case DEF_NOTIFY_SLATECLEAR:
  AddEventList( DEF_MSG_NOTIFY_SLATECLEAR, 10 );
  m_bUsingSlate = FALSE;
  break;
	case DEF_NOTIFY_SLATE_INVINCIBLE:
  AddEventList( DEF_MSG_NOTIFY_SLATE_INVINCIBLE, 10 );
  m_bUsingSlate = TRUE;
  break;
	case DEF_NOTIFY_SLATE_MANA:
  AddEventList( DEF_MSG_NOTIFY_SLATE_MANA, 10 );
  m_bUsingSlate = TRUE;
  break;
	case DEF_NOTIFY_SLATE_EXP:
  AddEventList( DEF_MSG_NOTIFY_SLATE_EXP, 10 );
  m_bUsingSlate = TRUE;
  break;
Now we have to add a dble click action on inventory screen for the slate parts. In Function DlbBoxDoubleClick_Inventory, find :

Code: Select all

    	switch (m_pItemList[cItemID]->m_sSpriteFrame) {
    	case 55:
      if (m_cSkillMastery[12] == 0) {
      	AddEventList(BDLBBOX_DOUBLE_CLICK_INVENTORY9, 10);
      }
      else {
      	EnableDialogBox(26, 1, NULL, NULL, NULL);
      	AddEventList(BDLBBOX_DOUBLE_CLICK_INVENTORY10, 10);
      }
      break;

    	case 113:
      if (m_cSkillMastery[13] == 0) {
      	AddEventList(BDLBBOX_DOUBLE_CLICK_INVENTORY11, 10);
      }
      else {
      	EnableDialogBox(26, 3, NULL, NULL, NULL);
      	AddEventList(BDLBBOX_DOUBLE_CLICK_INVENTORY12, 10);
      }
      break;
    	}
And replace it with :

Code: Select all

    	switch (m_pItemList[cItemID]->m_sSpriteFrame) {
    	case 55:
      if (m_cSkillMastery[12] == 0) {
      	AddEventList(BDLBBOX_DOUBLE_CLICK_INVENTORY9, 10);
      }
      else {
      	EnableDialogBox(26, 1, NULL, NULL, NULL);
      	AddEventList(BDLBBOX_DOUBLE_CLICK_INVENTORY10, 10);
      }
      break;

    	case 113:
      if (m_cSkillMastery[13] == 0) {
      	AddEventList(BDLBBOX_DOUBLE_CLICK_INVENTORY11, 10);
      }
      else {
      	EnableDialogBox(26, 3, NULL, NULL, NULL);
      	AddEventList(BDLBBOX_DOUBLE_CLICK_INVENTORY12, 10);
      }
      break;
    	case 151:
    	case 152:
    	case 153:
    	case 154:
      	EnableDialogBox(40, 1, NULL, NULL, NULL);
      break;
    	}
<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 !
diuuude
Outpost bitch
Posts: 592
Joined: Wed Dec 28, 2005 11:57 pm

Post by diuuude »

<span style='color:red'>Step Four (...)</span>

Add this Function :

Code: Select all

// Slates DialogBox - Diuuude
void CGame::DrawDialogBox_Slates(short msX, short msY, short msZ, char cLB)
{
 int iAdjX, iAdjY;
 short sX, sY;
 DWORD dwTime = m_dwCurTime;

	iAdjX = 5;
	iAdjY = 8;
	
	switch (m_stDialogBoxInfo[40].cMode) {
	case 1:
  sX = m_stDialogBoxInfo[40].sX;
  sY = m_stDialogBoxInfo[40].sY;
  iAdjX = -1;
  iAdjY = -7;

  DrawNewDialogBox(DEF_SPRID_INTERFACE_ND_INVENTORY, sX, sY, 4);

  if (m_stDialogBoxInfo[40].sV1 != -1){
  	DrawNewDialogBox(DEF_SPRID_INTERFACE_ND_INVENTORY, sX+20, sY+12, 5);
  }
  if (m_stDialogBoxInfo[40].sV2 != -1){
  	DrawNewDialogBox(DEF_SPRID_INTERFACE_ND_INVENTORY, sX+20, sY+87, 6);
  }
  if (m_stDialogBoxInfo[40].sV3 != -1){
  	DrawNewDialogBox(DEF_SPRID_INTERFACE_ND_INVENTORY, sX+85, sY+32, 7);
  }
  if (m_stDialogBoxInfo[40].sV4 != -1){
  	DrawNewDialogBox(DEF_SPRID_INTERFACE_ND_INVENTORY, sX+70, sY+97, 8);
  }

  if ((m_stDialogBoxInfo[40].sV1 != -1) && (m_stDialogBoxInfo[40].sV2 != -1) && (m_stDialogBoxInfo[40].sV3 != -1) && (m_stDialogBoxInfo[40].sV4 != -1)){
  	if ((msX >= sX + 120) && (msX <= sX + 180) && (msY >= sY + 150) && (msY <= sY + 165)) 
    PutString_SprFont(sX + 120, sY + 150, "Casting", 6,6,20);
  	else PutString_SprFont(sX + 120, sY + 150, "Casting", 0, 0, 7);
  }
  
  break;

	// Slates Dialog - Diuuude
	case 2:
  PlaySound('E', 16, 0);
  if (m_stDialogBoxInfo[40].cStr[0] != 0) {
  	sX = m_stDialogBoxInfo[40].sX + iAdjX + (m_stDialogBoxInfo[40].cStr[0] - (rand() % (m_stDialogBoxInfo[40].cStr[0]*2)));
  	sY = m_stDialogBoxInfo[40].sY + iAdjY + (m_stDialogBoxInfo[40].cStr[0] - (rand() % (m_stDialogBoxInfo[40].cStr[0]*2)));
  }
  else {
  	sX = m_stDialogBoxInfo[40].sX;
  	sY = m_stDialogBoxInfo[40].sY;
  }
  m_pSprite[DEF_SPRID_INTERFACE_ND_INVENTORY]->PutSpriteFast(sX, sY, 4, dwTime);
  m_pSprite[DEF_SPRID_INTERFACE_ND_INVENTORY]->PutSpriteFast(sX+22, sY+14, 3, dwTime);

  PutString_SprFont(sX + iAdjX + 170, sY + iAdjY + 170, "KURURURURURURURURU!!!", 20,6,6);
  
  if ((dwTime - m_stDialogBoxInfo[40].dwT1) > 1000) {
  	m_stDialogBoxInfo[40].dwT1 = dwTime;
  	m_stDialogBoxInfo[40].cStr[0]++;   //  Ä«¿îÆ®  
  }

  if (m_stDialogBoxInfo[40].cStr[0] >= 5) {
  	bSendCommand(MSGID_COMMAND_COMMON, DEF_COMMONTYPE_REQ_CREATESLATE, NULL, m_stDialogBoxInfo[40].sV1, m_stDialogBoxInfo[40].sV2, m_stDialogBoxInfo[40].sV3, NULL, m_stDialogBoxInfo[40].sV4);
  	DisableDialogBox(40);
  }
  break;
	}
}
Add this Function :

Code: Select all

// Slates DialogBox Clicks - Diuuude
void CGame::DlgBoxClick_Slates(short msX, short msY)
{
 int iAdjX, iAdjY;
 short sX, sY;
	
	sX = m_stDialogBoxInfo[40].sX;
	sY = m_stDialogBoxInfo[40].sY;

	iAdjX = 5;
	iAdjY = 8;
	

	switch (m_stDialogBoxInfo[40].cMode) {
	// Slates DialogBox - Diuuude
	case 1:
  if ((m_stDialogBoxInfo[40].sV1 != -1) && (m_stDialogBoxInfo[40].sV2 != -1) && (m_stDialogBoxInfo[40].sV3 != -1) && (m_stDialogBoxInfo[40].sV4 != -1)){
  	if ((msX >= sX + 120) && (msX <= sX + 180) && (msY >= sY + 150) && (msY <= sY + 165)){
    m_stDialogBoxInfo[40].cMode = 2;
    PlaySound('E', 14, 5);
  	}
  }
  break;

	}
}
Add this Function :

Code: Select all

// Slates Item Drag&Drop - Diuuude
void CGame::bItemDrop_Slates()
{	
 char cItemID;

	if (m_cCommand < 0) return;

	cItemID = (char)m_stMCursor.sSelectedObjectID;
	if (m_pItemList[cItemID] == NULL) return;

	if (m_bIsItemDisabled[cItemID] == TRUE) return;

	if ( m_bIsDialogEnabled[17] == TRUE ) {
  AddEventList(BITEMDROP_SKILLDIALOG1, 10);
  return;
	}

	if ( (m_bIsDialogEnabled[20] == TRUE) && 
   ((m_stDialogBoxInfo[20].cMode == 1) || (m_stDialogBoxInfo[20].cMode == 2)) ) {
  AddEventList(BITEMDROP_SKILLDIALOG1, 10);
  return;
	}

	if (m_bIsDialogEnabled[23] == TRUE) {
  AddEventList(BITEMDROP_SKILLDIALOG1, 10);
  return;
	}

	switch (m_stDialogBoxInfo[40].cMode) {
	case 1:
  if ((m_pItemList[cItemID]->m_cItemType == DEF_ITEMTYPE_USE_SKILL_ENABLEDIALOGBOX) && (m_pItemList[cItemID]->m_sSpriteFrame >= 151) && (m_pItemList[cItemID]->m_sSpriteFrame <= 154)) {
  	char cItemIDText[20];
  	switch(m_pItemList[cItemID]->m_sSpriteFrame){
    case 151:
    	if (m_stDialogBoxInfo[40].sV1 == -1){
      m_bIsItemDisabled[cItemID] = TRUE;
      m_stDialogBoxInfo[40].sV1 = cItemID;
      wsprintf(cItemIDText, "Item ID : %d", cItemID);
      AddEventList(cItemIDText, 10);
    	}
    	break;
    case 152:
    	if (m_stDialogBoxInfo[40].sV2 == -1){
      m_bIsItemDisabled[cItemID] = TRUE;
      m_stDialogBoxInfo[40].sV2 = cItemID;
      wsprintf(cItemIDText, "Item ID : %d", cItemID);
      AddEventList(cItemIDText, 10);
    	}
    	break;
    case 153:
    	if (m_stDialogBoxInfo[40].sV3 == -1){
      m_bIsItemDisabled[cItemID] = TRUE;
      m_stDialogBoxInfo[40].sV3 = cItemID;
      wsprintf(cItemIDText, "Item ID : %d", cItemID);
      AddEventList(cItemIDText, 10);
    	}
    	break;
    case 154:
    	if (m_stDialogBoxInfo[40].sV4 == -1){
      m_bIsItemDisabled[cItemID] = TRUE;
      m_stDialogBoxInfo[40].sV4 = cItemID;
      wsprintf(cItemIDText, "Item ID : %d", cItemID);
      AddEventList(cItemIDText, 10);
    	}
    	break;
  	}
  }
  break;

	default:
  break;
	}
}
Now the new checks in function bCheckItemOperationEnabled

Code: Select all

	// Notify : Already Using Another Slate - Alastor
	if ((m_pItemList[cItemID]->m_sSpriteFrame == 155) && (m_bUsingSlate == TRUE)){
  AddEventList(DEF_MSG_NOTIFY_SLATE_ALREADYUSING, 10);
  return FALSE;
	}

	if ((m_pItemList[cItemID]->m_sSpriteFrame == 155) && (m_pCharList[m_cCurFocus-1]->m_cMapName == "HRampart")){
  // Notify : You cannot use Slates during Heldenian
  AddEventList(DEF_MSG_NOTIFY_SLATE_HELDENIAN, 10);
  return FALSE;
	}

	if ((m_pItemList[cItemID]->m_sSpriteFrame == 155) && (m_pCharList[m_cCurFocus-1]->m_cMapName == "BtField")){
  // Notify : You cannot use Slates during Heldenian
  AddEventList(DEF_MSG_NOTIFY_SLATE_HELDENIAN, 10);
  return FALSE;

	if ((m_pItemList[cItemID]->m_sSpriteFrame == 155) && (m_pCharList[m_cCurFocus-1]->m_cMapName == GodH)){
  // Notify : You cannot use Slates during Heldenian
  AddEventList(DEF_MSG_NOTIFY_SLATE_HELDENIAN, 10);
  return FALSE;
	}
<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 !
Drajwer
&lt;3 bd long time
Posts: 841
Joined: Fri Dec 10, 2004 3:24 pm

Post by Drajwer »

good work !

im gonna check this code asap. thanks alot.

edit:

it doesnt work :( got any screens?
<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)
diuuude
Outpost bitch
Posts: 592
Joined: Wed Dec 28, 2005 11:57 pm

Post by diuuude »

ok... i forgot to add the actions for the dble clicks on slate pieces... that why it didn't work, it did nothing when you clicked on the pieces of stone.

Look at the last part of the first post, i added the code part that was missing. I also added the checks for heldenian maps and related langage texts.
<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 !
Drazz
Regular
Posts: 52
Joined: Mon Dec 08, 2003 4:10 pm
Contact:

Post by Drazz »

If you want to move Ancient Slate window, add this case in function iCheckDlgBoxFocus:

Before:

Code: Select all

    case 67:
    case 68:
    case 69:
    	m_stMCursor.cSelectedObjectType	= DEF_SELECTEDOBJTYPE_DLGBOX;
    	m_stMCursor.sSelectedObjectID   = cDlgID;
    	break;
Add this

Code: Select all

 case 40:
Good work diuude ;)
<img src='http://drazzt.iespana.es/Drazzt/logo2.jpg' border='0' alt='user posted image' />
Treax2
Loyal fan
Posts: 281
Joined: Fri Mar 04, 2005 5:05 pm
Location: Estonia
Contact:

Post by Treax2 »

lol i dont get it :) what i did wrong

Code: Select all

--------------------Configuration: HClient - Win32 Release--------------------
Compiling...
Game.cpp
Linking...
Game.obj : error LNK2001: unresolved external symbol "public: void __thiscall CGame::DlgBoxClick_Slates(short,short)" (?DlgBoxClick_Slates@CGame@@QAEXFF@Z)
Game.obj : error LNK2001: unresolved external symbol "public: void __thiscall CGame::bItemDrop_Slates(void)" (?bItemDrop_Slates@CGame@@QAEXXZ)
Game.obj : error LNK2001: unresolved external symbol "public: void __thiscall CGame::DrawDialogBox_Slates(short,short,short,char)" (?DrawDialogBox_Slates@CGame@@QAEXFFFD@Z)
Release/TestClient.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.

TestClient.exe - 4 error(s), 0 warning(s)
locobans
Outpost Junkie
Posts: 2264
Joined: Tue Jul 13, 2004 3:51 am
Location: Behind You
Contact:

Post by locobans »

Seems that to me...you missing some functions in game.h :unsure:
QUOTE (ADDKiD @ Dec 1 2006, 4:01 PM) <br>You guys make me laugh alot, half the shit I say, is bullshit...<br><br><img src='http://img485.imageshack.us/img485/492/banssig1ng.gif' border='0' alt='user posted image' /><br><br><b>I see no changes at all, wake up in the morning and ask myself...<br>Is life worth living? Should I blast myself?</b><br><br><b><a href='http://2paclegacy.com' target='_blank'>2PacLegacy.com</a></b>
Shetar
Member
Posts: 148
Joined: Sun Nov 30, 2003 12:57 am

Post by Shetar »

My released client source contains the slate auras.
Helbreath II Project Manager & All round Developer. <br><i>(Don't worry, we're not dead)</i>
diuuude
Outpost bitch
Posts: 592
Joined: Wed Dec 28, 2005 11:57 pm

Post by diuuude »

Are you gonna add the snippets i added in the unadvised client sources ? That's why i posted it and i hope it won't be useless for you...


I'd like to know if it works with your auras... Tell e if you use it ;-). If not i'm not gonna post anymore codes
<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 !
Treax2
Loyal fan
Posts: 281
Joined: Fri Mar 04, 2005 5:05 pm
Location: Estonia
Contact:

Post by Treax2 »

Omg yeah i use unadvised client ... xD then ok if its already puted to in ... Diuuude can u realease gizon Upgrade Code too plz ... then its very nice Client already :)
diuuude
Outpost bitch
Posts: 592
Joined: Wed Dec 28, 2005 11:57 pm

Post by diuuude »

It's already in client sources...

It's not used by default, so you just have to define DEF_GIZON in sources. Look for "#define DEF_GIZON", it must be quoted somewhere and unquote it. It should work now ;-).
<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 !
Tafka12
&lt;3 bd long time
Posts: 772
Joined: Wed Dec 28, 2005 6:32 pm

Post by Tafka12 »

I don't even know what slates are :P
<img src='http://www.hot.ee/carvanho/taavi.png' border='0' alt='user posted image' /><br><br><img src='http://www.hot.ee/carvanho/Elvine.png' border='0' alt='user posted image' /><br><img src='http://www.hot.ee/carvanho/LieroX.png' border='0' alt='user posted image' /><br><img src='http://www.hot.ee/carvanho/Football.png' border='0' alt='user posted image' />
diuuude
Outpost bitch
Posts: 592
Joined: Wed Dec 28, 2005 11:57 pm

Post by diuuude »

When you kill monsters you can find 4 different pieces of stone, called ancient piece of stone (RD, RU, LD, LU). When you have the 4 different pieces of stone, you can try to put them together in one piece. If you fail, pieces of stone will go, but if you manage to create an ancient slate, you will have a new item that will replace the 4 parts. It's called "Ancient Slate".


It can be 4 different colors, each one have a different effect :
- Blue
- Green
- Red
- Yellow

It don't remember well what effect goes with what color but here are the different effects :
- Invincible
- Mana reffiled faster
- Zerk cast
- Bigger Exp

Effect lasts 10 mins... and you have an aura under your char like if you're using Xelima / Merien effect but aura isn't the same.


Understood ?
<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 !
kahn
Loyal fan
Posts: 203
Joined: Thu Oct 07, 2004 1:20 am

Post by kahn »

blue = mp slate
Red = HP zlate
Green = Exp
yello= Zerk


and im pretty sure it unlimited mana for 10 min
diuuude
Outpost bitch
Posts: 592
Joined: Wed Dec 28, 2005 11:57 pm

Post by diuuude »

I dunno... i never used it, i just coded it into the client ^^


The text says (for mp slate) : Your mana will be refilled by great Wizard

I used the original 3.51 client texts... Maybe it means that you have unlim mana... i really dunno :-/
<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 !
Post Reply