Building 2.20 Client Up

All Helbreath Client Source Discussion here.
binarydata
DBfiller
Posts: 3816
Joined: Fri Oct 31, 2003 5:30 am
Location: San Diego CA, USA
Contact:

Post by binarydata »

from shetar
Shetar wrote: HBX renewed its forum.

How to make 2.20 client work with 3.51 HGServer:

The story
After 2.20 Siementech decided to change Status values (probably because of the lack of space concidering those new aura's etc, they needed space for bitshifting)

What did they change?
They changed all the status flags from short to int, which doubles the size.
Not only m_iStatus (m_sStatus) but also m_iPlayerStatus

How to do it yourself?
Well, here it gets a lil bit more difficult, I'll try to explain it.

-First of all, change the definitions in the Client's Game.h (from short to int)

-It might be smart to also change the m_sStatus's name into m_iStatus (only for experienced coders, this is not needed but eases the overview)

-Last but NOT the least lol:
In Client's Game.cpp find all the Status values, the easiest by using the Find In Files option in Visual C++. Some of those values are decoded after receivement from the HGServer.

Example:
  sp  = (short *)cp;
  m_sPlayerStatus = *sp;
  cp += 2;
change those values into int values.

Example:
  ip  = (int *)cp;
  m_iPlayerStatus = *ip;
  cp += 4;
This should do..!

PS:
-If I forgot / misplaced something, be sure to post it..!
-If you don't know how to do it, forget it.
from dude

Here is how to add the hero items for Males :

in game.cpp, function updatescreen_onloading, case 52

Code: Select all

MakeSprite( "MHRobe1", 5060 + 15*10, 12, TRUE); //Hero's Robe
MakeSprite( "MHRobe2", 5060 + 15*11, 12, TRUE); //Hero's Robe
MakeSprite( "MHPMail1", 5060 + 15*8, 12, TRUE); //Hero's Armor
MakeSprite( "MHPMail2", 5060 + 15*9, 12, TRUE); //Hero's Armor
MakeSprite( "MHHauberk1", 5300 + 15*3, 12, TRUE); //Hero's Hauberk
MakeSprite( "MHHauberk2", 5300 + 15*4, 12, TRUE); //Hero's Hauberk
in game.cpp, function updatescreen_onloading, case 56

Code: Select all

MakeSprite( "MHLeggings1", 5540 + 15*5, 12, TRUE); // Hero's Leggings
MakeSprite( "MHLeggings2", 5540 + 15*6, 12, TRUE); // Hero's Leggings
in game.cpp, function updatescreen_onloading, case 76

Code: Select all

MakeSprite( "MHHelm1", 9300 + 15*9, 12, TRUE); // Hero's Helm
MakeSprite( "MHHelm2", 9300 + 15*10, 12, TRUE); // Hero's Helm
MakeSprite( "MHCap1", 9300 + 15*11, 12, TRUE); // Hero's Cap
MakeSprite( "MHCap2", 9300 + 15*12, 12, TRUE); // Hero's Cap
<img src='http://img88.exs.cx/img88/2290/7666.jpg' border='0' alt='user posted image' />
diuuude
Outpost bitch
Posts: 592
Joined: Wed Dec 28, 2005 11:57 pm

Post by diuuude »

Ok, i'll add some more help for you guys :


<span style='color:red'>Loading Tiles / Objects in Client.</span>

In function UpdateScreen_OnLoading, in case 12, add :

Code: Select all

MakeTileSpr( "Tile462-473", 462, 12, TRUE);
MakeTileSpr( "Tile474-478", 474, 5, TRUE);
MakeTileSpr( "Tile479-488", 479, 10, TRUE);
MakeTileSpr( "Tile489-522", 489, 34, TRUE);
MakeTileSpr( "Tile523-530", 523, 8, TRUE);
MakeTileSpr( "Tile531-440", 531, 10, TRUE);
MakeTileSpr( "Tile541-545", 541, 5, TRUE);
MakeTileSpr( "objects5", 546, 9, TRUE);
MakeTileSpr( "objects6", 555, 4, TRUE);
MakeTileSpr( "objects7", 559, 7, TRUE);	

<span style='color:red'>Now Loading the new monsters :</span>

In function UpdateScreen_OnLoading, in case 48, add :

Code: Select all

MakeSprite( "Barlog", 1220 + 7*8*60, 40, TRUE);// Barlog (Type: 70) 
MakeSprite( "Centaurus", 1220 + 7*8*61, 40, TRUE);// Centaurus (Type: 71) 
MakeSprite( "ClawTurtle", 1220 + 7*8*62, 40, TRUE);// Claw-Turtle (Type: 72) 
MakeSprite( "FireWyvern", 1220 + 7*8*63, 40, TRUE);// Fire-Wyvern (Type: 73) 
MakeSprite( "GiantCrayfish", 1220 + 7*8*64, 40, TRUE);// Giant-Crayfish (Type: 74) 
MakeSprite( "GiantLizard", 1220 + 7*8*65, 40, TRUE);// Giant-Lizard (Type: 75) 
MakeSprite( "GiantPlant", 1220 + 7*8*66, 40, TRUE);// Giant-Plant (Type: 76) 
MakeSprite( "MasterMageOrc", 1220 + 7*8*67, 40, TRUE);// MasterMage-Orc (Type: 77) 
MakeSprite( "Minotaurs", 1220 + 7*8*68, 40, TRUE);// Minotaurs (Type: 78) 
MakeSprite( "Nizie", 1220 + 7*8*69, 40, TRUE);// Nizie (Type: 79) 
MakeSprite( "Tentocle", 1220 + 7*8*70, 40, TRUE);// Tentocle (Type: 80) 
MakeSprite( "yspro", 1220 + 7*8*71, 40, TRUE);// Abaddon (Type: 81) 
MakeSprite( "Sorceress", 1220 + 7*8*72, 40, TRUE);// Sorceress (Type: 82)
MakeSprite( "TPKnight", 1220 + 7*8*73, 40, TRUE);// TPKnight (Type: 83)
MakeSprite( "ElfMaster", 1220 + 7*8*74, 40, TRUE);// ElfMaster (Type: 84)
MakeSprite( "DarkKnight", 1220 + 7*8*75, 40, TRUE);// DarkKnight (Type: 85)
MakeSprite( "HBTank", 1220 + 7*8*76, 40, TRUE);// HeavyBattleTank (Type: 86)
MakeSprite( "CBTurret", 1220 + 7*8*77, 40, TRUE);// CBTurret (Type: 87)
MakeSprite( "Babarian", 1220 + 7*8*78, 40, TRUE);// Babarian (Type: 88)
MakeSprite( "ACannon", 1220 + 7*8*79, 40, TRUE);// ACannon (Type: 89)
MakeSprite( "Gail", 1220 + 7*8*80, 8, TRUE); // Gail (Type: 90)
MakeSprite( "Gate", 1220 + 7*8*81, 24, TRUE);// Heldenian Gate (Type: 91)

<span style='color:red'>Display the new Monsters Names :</span>

Still in game.cpp, in function GetNpcName, right after

Code: Select all

case 69: strcpy(pName, NPC_NAME_DEVLIN); break;
Add these lines :

Code: Select all

case 70: strcpy(pName, NPC_NAME_BARLOG); break;
case 71: strcpy(pName, NPC_NAME_CENTAURUS); break;
case 72: strcpy(pName, NPC_NAME_CLAWTURTLE); break;
case 73: strcpy(pName, NPC_NAME_FIREWYVERN); break;
case 74: strcpy(pName, NPC_NAME_GIANTCRAYFISH); break;
case 75: strcpy(pName, NPC_NAME_GIANTLIZARD); break;
case 76: strcpy(pName, NPC_NAME_GIANTPLANT); break;
case 77: strcpy(pName, NPC_NAME_MASTERMAGEORC); break;
case 78: strcpy(pName, NPC_NAME_MINOTAURS); break;
case 79: strcpy(pName, NPC_NAME_NIZIE); break;
case 80: strcpy(pName, NPC_NAME_TENTOCLE); break;
case 81: strcpy(pName, NPC_NAME_ABADDON); break;
case 82: strcpy(pName, NPC_NAME_SORCERESS); break;
case 83: strcpy(pName, NPC_NAME_TPKNIGHT); break;
case 84: strcpy(pName, NPC_NAME_ELFMASTER); break;
case 85: strcpy(pName, NPC_NAME_DARKKNIGHT); break;
case 86: strcpy(pName, NPC_NAME_HBTANK); break;
case 87: strcpy(pName, NPC_NAME_CBTURRET); break;
case 88: strcpy(pName, NPC_NAME_BARBARIAN); break;
case 89: strcpy(pName, NPC_NAME_ACANNON); break;
case 90: strcpy(pName, NPC_NAME_GAIL); break;
case 91: strcpy(pName, NPC_NAME_GATE); break;
<span style='color:red'>Add the NPC Names in language file :</span>

in file lan_eng.h, add these lines:

Code: Select all

#define	NPC_NAME_BARLOG    "Barlog"
#define	NPC_NAME_CENTAURUS  	"Centaurus"
#define	NPC_NAME_CLAWTURTLE  	"Claw Tutle"
#define	NPC_NAME_FIREWYVERN  	"Fire Wyvern"
#define	NPC_NAME_GIANTCRAYFISH  "Giant Cray Fish"
#define	NPC_NAME_GIANTLIZARD  "Giant Lizard"
#define	NPC_NAME_GIANTPLANT  	"Giant Plant"
#define	NPC_NAME_MASTERMAGEORC  "Master Mage Orc"
#define	NPC_NAME_MINOTAURS  	"Minotaurus"
#define	NPC_NAME_NIZIE    "Nizie"
#define	NPC_NAME_TENTOCLE  	"Tentocle"
#define	NPC_NAME_ABADDON  	"Abaddon"
#define	NPC_NAME_SORCERESS  	"Sorceress"
#define	NPC_NAME_TPKNIGHT  	"Ancient Temple Knight"
#define	NPC_NAME_ELFMASTER  	"Elf Master"
#define	NPC_NAME_DARKKNIGHT  	"Dark Shadow Knight"
#define	NPC_NAME_HBTANK    "Heavy Battle Tank"
#define	NPC_NAME_CBTURRET  	"Crossbow Turret"
#define	NPC_NAME_BARBARIAN  	"Barbarian"
#define	NPC_NAME_ACANNON  	"Ancient Giant Cannon"
#define	NPC_NAME_GAIL    "Gail"
#define	NPC_NAME_GATE    "Gate"

I hope it'll help ya guys, i'll try to post some more codes soon but as i'm not alone to code i can't release the codes that i didn't make alone. Maybe i'll show you how to put up the level up dialogbox and change the cityhall menu...

If anyone else can share some codes with others, feel free to post ;-) i don't think i'll release all my work !
<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 !
Shetar
Member
Posts: 148
Joined: Sun Nov 30, 2003 12:57 am

Post by Shetar »

I'm too lazy to post everything here, but the HBII client has fixes like level up system, aura flags and couple more of them.. That'll help out some more for sure!
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 »

Shetar wrote: I'm too lazy to post everything here, but the HBII client has fixes like level up system, aura flags and couple more of them.. That'll help out some more for sure!
I don't think any noob will be able to find your aura codes or any other fix you made in the HB2 sources... They are gloating cuz they have HB2 sources but they're not able to compile it. LOL.

Even if they had it working, how and why will they use it ?!?!? They don't have the config files for your HG and they can't create some from scratch. Just post some code that can help them to understand how work the client sources if you have some time to waste ;)
<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 !
Shetar
Member
Posts: 148
Joined: Sun Nov 30, 2003 12:57 am

Post by Shetar »

The files are useless without config files, and making them takes Alot of time, I fcking had to rebuild them 3 times :angry:

:( Alriteee! But gimme some time, it's not that I'm someone with nothing to do all day <_<
Helbreath II Project Manager & All round Developer. <br><i>(Don't worry, we're not dead)</i>
Pener
Member
Posts: 110
Joined: Fri Feb 27, 2004 3:57 pm
Location: Czech Republic

Post by Pener »

Shetar wrote: The files are useless without config files, and making them takes Alot of time, I fcking had to rebuild them 3 times :angry:
yea its useless without configs ... :D


im working on mine 2.20(3.51)client, but i still cant make it works wif 3.51files ^^.... can some1 tell me how to do it ?:P all times its says "Connection Lost" :angry: nothing more ...
<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' />
diuuude
Outpost bitch
Posts: 592
Joined: Wed Dec 28, 2005 11:57 pm

Post by diuuude »

bah... as everyone will tell you : don't try to code if you even don't know what C++ is...


I posted some codes for peoples that already have a client that connects 3.51 server, if you're not able to have it working fine, you'll never be able to code a 3.51 clone.

Do you think you can code druncian city's water effect ?
Do you think you can code abaddon's effects ?
Do you think you can add all the 3.51 dialogs ? (levelup, multitrade, apocalypse, heldenian, item upgrade, majestic stats change, ancient slates...)
Do you think you can add all the spell effects and auras ?

And you're gloating cuz you think you're on a way to code you're own client and add crafting + tutelar angels in it... lol, you don't even know how the angels works, and i'm sure you never used crafting on any server.

As far as you weren't able to add stuff like Apoc in your HG (that is offered to you by snoopy), you won't be able to code a decent 3.51 client. See... you can't have it connect an HG...
<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 !
juggalo2
Spamtastic
Posts: 1144
Joined: Sun Jul 17, 2005 5:28 pm

Post by juggalo2 »

holy shit you just got burned lol diude calm down it be ok
<img src='http://lifeplaysu420.com/unknow/nightsign.png' border='0' alt='user posted image' /><br>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>Wanna make money for surfing the net sing up at <br><a href='http://www.cashfiesta.com/php/join.php? ... yprivitera' target='_blank'>cash fiesta</a><br>its all free hey why ntot make money while fucking around on the computer<br><br><br>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Drajwer
&lt;3 bd long time
Posts: 841
Joined: Fri Dec 10, 2004 3:24 pm

Post by Drajwer »

Aura codes pls
<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)
Aragorn
Regular
Posts: 81
Joined: Fri Mar 03, 2006 12:02 pm

Post by Aragorn »

Drajwer wrote: Aura codes pls
shoot me pls <_<
The fear of making permanent commitments can change the mutual love of husband and wife into two loves of self-two loves existing side by side, until they end in separation.
binarydata
DBfiller
Posts: 3816
Joined: Fri Oct 31, 2003 5:30 am
Location: San Diego CA, USA
Contact:

Post by binarydata »

compatible with 3.51 login sprites (not done)
just main menu

Put this stuff in UpdateScreen_OnMainMenu()

Code: Select all

	pMI->AddRect(385,176,547,198);
  pMI->AddRect(385,215,547,236);
  pMI->AddRect(385,254,547,275);

Code: Select all

	case 1:
  m_pSprite[DEF_SPRID_INTERFACE_ND_MAINMENU]->PutSpriteFast(385 , 176, 1, dwTime);
  break;
	case 2:
  m_pSprite[DEF_SPRID_INTERFACE_ND_MAINMENU]->PutSpriteFast(385, 215, 2, dwTime);
  break;

	case 3:
  m_pSprite[DEF_SPRID_INTERFACE_ND_MAINMENU]->PutSpriteFast(385, 254, 3, dwTime);
  break;

Code: Select all

	if ((msX >= 385) && (msY >= 176) && (msX <= 547) && (msY <= 198)) m_cCurFocus = 1;
	if ((msX >= 385) && (msY >= 215) && (msX <= 547) && (msY <= 236)) m_cCurFocus = 2;
	if ((msX >= 385) && (msY >= 254) && (msX <= 547) && (msY <= 275)) m_cCurFocus = 3;
you should be able to see where to replace the old code with this code
<img src='http://img88.exs.cx/img88/2290/7666.jpg' border='0' alt='user posted image' />
archmage
just visiting
Posts: 6
Joined: Wed Mar 15, 2006 9:44 am

Post by archmage »

i know c++ and im dare to say im very good at it
i wanna join the team for building up 2.20 sources to 3.51
pm me if ur interested in me joining the team
binarydata
DBfiller
Posts: 3816
Joined: Fri Oct 31, 2003 5:30 am
Location: San Diego CA, USA
Contact:

Post by binarydata »

XD
trying to change the status shit

<img src='http://img88.exs.cx/img88/2290/7666.jpg' border='0' alt='user posted image' />
Shetar
Member
Posts: 148
Joined: Sun Nov 30, 2003 12:57 am

Post by Shetar »

rofl, that's definitely trying.

You know what? I'll edit everything in this topic into the 2.20 client source and when I'm done I'll post the source up here, saves people some time..
Helbreath II Project Manager & All round Developer. <br><i>(Don't worry, we're not dead)</i>
snoopy81
Loyal fan
Posts: 338
Joined: Mon Jul 12, 2004 7:13 pm

Post by snoopy81 »

The client with diude is really improving every day.

We still miss some features, and the test phase should unreaveal bugs or missing things, but currentlly, we miss very few things...

The biggest chalenge currently is that if we have druncncity bubbles, we miss the "swinging".
_\_ _<br> / , \__/ . \ Admin of Equilibrium Project<br> II\ \___ . O<br> III \_/ \ _ / <a href='http://www.equiprojet.com' target='_blank'>http://www.equiprojet.com</a><br> II I¯I
Post Reply