Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Release] MuEmu 99b + 512 items + cashshop?

Joined
Mar 13, 2008
Messages
758
Reaction score
1,002
Hi... i'm try to make a main to support 512 items..

At this moment i have this..

Recode section where set info to a item to support 512 items
Recode section where read item.bmd to support 512 items
Recode section where draw item in inventory to support 512 items
Recode PreviewCharList to support 512 items.
Recode GCItemMoveRecv to support 512 items..
Resize buffer where save data of texture.
Resize buffer where save data of items bmd format.

Wing elf texture fixed.
Bow and Crossbow position fixed
Bless,Soul and Life fixed.
Draw item info fixed and decompiled.
Drink Skill orbs and book fixed
Drink potions Fixed
Draw Potions in interface fixed.

Update: 30 / 06 / 2017

well... i have many fixs
fixed and decompiled: player movements
fixed and decompiled: MoveItem and draw item slot on inventory.
fixed and decompiled pstore price
fixed and decompiled shop price
fixed and decompiled create monster
fixed and decompiled GCItemChanged.
fixed error with interface that not send packet to gameserver to say "interface is closed" muemu doesnt have a timer how the original gameserver for close interface by time.
fixed and decompile SetItemGlow(100% decompiled but 95% working) have minimal bug.

Update: 04/ 07 / 2017



Fixed:Shield position on inventory.
Fixed:Zen amount on the floor
Fixed and decompiled: Draw item name and option on the floor
Fixed and decompiled: Draw item on the floor
Fixed and decompiled: item size on the floor
Fixed and decompile: All the functions that handle the glow and shining
Fixed Items Helper.
Fixed Skins 2º evolution
In side Gameserver:
Fixed Skill timer of buff skills(mana shield, defense, inner,etc).

Maybe now is working to 95% fine i dont sure..........
Client crash if the gameserver send a item that doesnt exist in the client
Update: 06/ 07 / 2017

Fixed some issues with glow.
Fixed all weapons of mobs and npc
Added Phantom Soldier(Elf buff helper)
Fixed Chaos Machine now can create all items..

Update: 17/ 07 / 2017
///////client side
Added cashshop system
Added data / interface / cashshop folder
The data / cashshop folder was added
The cashshop.txt file was added to configure the file
Added animation when clicking characters in the character selection.
We added the cashshop texts in the text.bmd to change it to your liking.
The text.bmd buffer is incremented to support more texts.
Fixed the error that it did not show texts in the chat
I noticed in the cashshop the error that overlapped the item in the texts.
He noticed that he did not show Zen well when he died
Messages were added when you did not have enough mucoins to buy cashshop
Messages were added when you did not have space in the inventory in the purchase of cashshop
Added message that the cashshop can only open in safe areas.


All texts can be modified from the text.bmd file
main crash when try create a guild fixed.


////////Server side
A check was added to verify the inventory space in the cashshop purchase
The CashShopProduct file was added to the / data / cashshop folder
The dataserver was modified to support the cashshop system




Was added in the memb_info table the field MuCoins






He repaired Zen when he died.
Was added in GameServerInfo - Common.dat to enable and disable cashshop
guild viewport fixed


Remember for the cashshop to work properly must configure the server side and the client side exactly the same


DO NOT FORGET!!!!
ADD IT!!
In the memb_info table the field MuCoins

Update: 19/ 07 / 2017


guild war fixed
guild war score fixed
guild info fixed
removed wings summoner from chaos machines
removed devil squre ticket Level 5 and level 6
removed blood castle 8
kalima mobs fixed
chaos castle fixed
devil square fixed
blood castle fixed
skill of mobs fixed
quest fixed
updated database clean

Update: 23/ 07 / 2017
fixed skill elf
fixed movements of elf with bow.
fixed GCEffectStateRecv
fixed load of items.
fixed crash with effect poison
fixed packet to close interface in gameserver.
CashShop system Updated
Update: 24/ 07 / 2017
skill summon elf fixed
set divine and thunder fixed
some client crash when open cashshop with Magic Gladiator fixed.
events kantru illusion temple and raklion deleted from gameserver.
helms of elf fixed..

Update: 26/ 07 / 2017
option repair fixed.
can move the wings in icarus fixed
storm crow set fixed
icons on chat system added(party,whisp,post,guild,normal)
Update: 27/ 07 / 2017
ice arrow fixed
some texts fixed
Update: 28/ 07 / 2017
Pets creation of dark lord fixed
Character creation dark wizard fixed
Some texts of items fixed
when you re login start in lorencia fixed


Chat system with icons disabled
Animaton in select character Disabled
Update: 30/ 07 / 2017
crash gs when create guild with name of 8 chars fixed
some texts of items fixed
bk combo fixed
Update: 31/ 07 / 2017
/guild and guild from interface when press the key "D" fixed
store buy fixed
store price fixed
war fixed
MuServer test

This MuTools just work with the item.bmd of this repack.

MuTools 99B By Pinkof

Can edit Text.BMD
can edit Item.BMD

Image of before..
Pinkof - [Release] MuEmu 99b + 512 items + cashshop? - RaGEZONE Forums

image of after...
Pinkof - [Release] MuEmu 99b + 512 items + cashshop? - RaGEZONE Forums

Elf buffer
Pinkof - [Release] MuEmu 99b + 512 items + cashshop? - RaGEZONE Forums



CASH SHOP UPDATED!!


NEW CHAT SYSTEM WITH ICONS !
Pinkof - [Release] MuEmu 99b + 512 items + cashshop? - RaGEZONE Forums
Well this project is finished. I just will update it if have some critical bug
 
Last edited:
Joined
Mar 13, 2008
Messages
758
Reaction score
1,002
somebody that want help me to test ? i need somebody that can compile a gs 99b with support 512 item to test it.
at this moment i'm trying use muemu source but i need recode many thing.. will be more fast with a original gameserver 99b.
 
Newbie Spellweaver
Joined
Feb 12, 2012
Messages
60
Reaction score
2
somebody that want help me to test ? i need somebody that can compile a gs 99b with support 512 item to test it.
at this moment i'm trying use muemu source but i need recode many thing.. will be more fast with a original gameserver 99b.

Bro, (Kiosani) had posted the GameServer 99.60t he managed to decompile it, I think he can help you in that part of 512 items
 
Joined
Mar 13, 2008
Messages
758
Reaction score
1,002
Well... i have 90% of items working fine..
I need fix darkhorse , dark raven , box of kundums and many others... and i need fix orb and book skill to can drink.
Is very hard finish it. But not impossible xD.
Soon i will upload gs dataserver and main to test all items.



Code:
int	 PlayerMovementManager(PLAYERSTRUCT * lpPlayer){   if ( lpPlayer->isSafeZone )  {    lpPlayer->unk0x372[2] = 0;  }  if(!lpPlayer->isSafeZone)  {      if ( lpPlayer->unk0x372[2] < 0x28u )    {      int Class = lpPlayer->PlayerClass & 7;      if ( Class == 3 || Class == 4 )	  {		 lpPlayer->unk0x372[2] = lpPlayer->unk0x372[2] + 1;	  }	  else if (pMapNumber == 7 )		{			if ( lpPlayer->SlotGloves != (WORD)-1 && lpPlayer->SlotGlovesLevel >= (WORD)5u )			{				lpPlayer->unk0x372[2] = lpPlayer->unk0x372[2] + 1;			}		}	 else if ( (pMapNumber < 24 || pMapNumber > 29)		&& lpPlayer->SlotBoots != -1		&& lpPlayer->SlotBootsLevel >= 5u )		{			lpPlayer->unk0x372[2] = lpPlayer->unk0x372[2] + 1;		}		else if ( pMapNumber >= 24 && pMapNumber <= 29 )		{			if ( lpPlayer->SlotGloves != (WORD)-1 && lpPlayer->SlotGlovesLevel >= (WORD)5u )			{			  lpPlayer->unk0x372[2] = lpPlayer->unk0x372[2] + 1;			  			}		}    }  }    if ( lpPlayer->TypeObject != 433 )  {	pSetNextAnimation(lpPlayer, 2);  }  else  {	  for(int i = 13;i<=20;i++)	  {		cBMD.sBMD[433].dSMD->sAnimation[i].SpeedAnimation_1 = 0.33f;		if ( (lpPlayer->ViewSkillState & 2) == 2 )		  cBMD.sBMD[433].dSMD->sAnimation[i].SpeedAnimation_1 = cBMD.sBMD[433].dSMD->sAnimation[i].SpeedAnimation_1 * 0.5; 	  }    	  for(int i = 22;i<=33;i++)	  {		cBMD.sBMD[433].dSMD->sAnimation[i].SpeedAnimation_1 = 0.34f;		if ( (lpPlayer->ViewSkillState & 2) == 2 )		  cBMD.sBMD[433].dSMD->sAnimation[i].SpeedAnimation_1 = cBMD.sBMD[433].dSMD->sAnimation[i].SpeedAnimation_1 * 0.5;	  } 	   cBMD.sBMD[433].dSMD->sAnimation[75].SpeedAnimation_1 = 0.33f;	   cBMD.sBMD[433].dSMD->sAnimation[73].SpeedAnimation_1 = 0.33f;	  if ( (lpPlayer->ViewSkillState & 2) == 2 )	  {		 cBMD.sBMD[433].dSMD->sAnimation[75].SpeedAnimation_1 =  cBMD.sBMD[433].dSMD->sAnimation[75].SpeedAnimation_1 * 0.5;		 cBMD.sBMD[433].dSMD->sAnimation[73].SpeedAnimation_1 =  cBMD.sBMD[433].dSMD->sAnimation[73].SpeedAnimation_1 * 0.5;	  }    if ( lpPlayer->SlotHelper == LOADITEM(13,4) && !lpPlayer->isSafeZone )  {    pSetNextAnimation(lpPlayer, 75);  }   else  if ( lpPlayer->isSafeZone && lpPlayer->SlotWeaponLeft == LOADITEM(13,5) )  {     pSetNextAnimation(lpPlayer, 73);  }  else if ( lpPlayer->SlotHelper ==  LOADITEM(13,2) && !lpPlayer->isSafeZone )  {    if ( lpPlayer->SlotWeaponRight == (WORD)-1 && lpPlayer->SlotWeaponLeft == (WORD)-1 )    {      pSetNextAnimation(lpPlayer, 32);    }  }  else if(lpPlayer->SlotHelper == LOADITEM(13,3) && lpPlayer->isSafeZone)  {	   if ( pMapNumber != 8 && pMapNumber != 10 )		{			if ( lpPlayer->SlotWeaponRight == (WORD)-1 && lpPlayer->SlotWeaponLeft == (WORD)-1 )			{				pSetNextAnimation(lpPlayer, 32);							}			else			{				pSetNextAnimation(lpPlayer, 33);			}		}	  }  else  {    int PosY = int(lpPlayer->PositionY * 0.0099999998);    int PosX = int(lpPlayer->PositionX * 0.0099999998);    sub_58FF50(PosX, PosY);        if ( !lpPlayer->isSafeZone && lpPlayer->SlotWings != (WORD)-1 )    {            if ( ((signed __int16)lpPlayer->SlotWeaponRight >=  LOADITEM(4,8) && (signed __int16)lpPlayer->SlotWeaponRight < LOADITEM(4,15))        || ((signed __int16)lpPlayer->SlotWeaponRight >= LOADITEM(4,16) && (signed __int16)lpPlayer->SlotWeaponRight < LOADITEM(4,17))        || ((signed __int16)lpPlayer->SlotWeaponRight >= LOADITEM(4,18) && (signed __int16)lpPlayer->SlotWeaponRight < LOADITEM(5,0)) )      {        pSetNextAnimation(lpPlayer, 31);      }      else      {        pSetNextAnimation(lpPlayer, 30);      }         }	else if ( !lpPlayer->isSafeZone && (pMapNumber == 7 || pMapNumber >= 24 && pMapNumber <= 29) )    {      if ( lpPlayer->unk0x372[2] < 0x28u )        pSetNextAnimation(lpPlayer, 21);      else        pSetNextAnimation(lpPlayer, 29);         }       else if (  lpPlayer->SlotWeaponRight == (WORD)-1 && lpPlayer->SlotWeaponLeft == (WORD)-1 ||				lpPlayer->isSafeZone && (pMapNumber < 11 || pMapNumber > 23) 			)    {      if ( lpPlayer->unk0x372[2] >= 0x28u )      {        pSetNextAnimation(lpPlayer, 22);              }	  else if ( (lpPlayer->PlayerClass & 7) != 2 )      {        pSetNextAnimation(lpPlayer, 13);      }	  else	  {		   pSetNextAnimation(lpPlayer, 14);	  }        }    else if ( lpPlayer->unk0x372[2] >= 0x28u )	{		if ( (signed __int16)lpPlayer->SlotWeaponRight  >= LOADITEM(0,0) && (signed __int16)lpPlayer->SlotWeaponRight  <  LOADITEM(3,0) )	    {			if ( *(BYTE *)(dword_7C09B40 + 76 * (signed __int16)lpPlayer->SlotWeaponRight  - 33486) )			{			if ( lpPlayer->SlotWeaponRight  ==  LOADITEM(0,21) || lpPlayer->SlotWeaponRight ==  LOADITEM(0,31) )				pSetNextAnimation(lpPlayer, 85);			else				pSetNextAnimation(lpPlayer, 16);			}			else			{			pSetNextAnimation(lpPlayer, 24);			}		  	  }	  else if ( (signed __int16) lpPlayer->SlotWeaponRight >= LOADITEM(5,0) && (signed __int16) lpPlayer->SlotWeaponRight < LOADITEM(6,0) )      {        		  if ( *(BYTE *)(dword_7C09B40 + 76 * (signed __int16)lpPlayer->SlotWeaponRight  - 33486) )		  {			pSetNextAnimation(lpPlayer, 18);		  }		  else		  {			pSetNextAnimation(lpPlayer, 15);		  }		  	  }	  else if(lpPlayer->SlotWeaponRight == LOADITEM(3,1) || lpPlayer->SlotWeaponRight == LOADITEM(4,2) )	  {			pSetNextAnimation(lpPlayer, 17);	  }	  else if(lpPlayer->SlotWeaponRight >= LOADITEM(3,0) && lpPlayer->SlotWeaponRight < LOADITEM(4,0))	  {			  pSetNextAnimation(lpPlayer, 18);	  }	  else if (lpPlayer->SlotWeaponLeft >=  LOADITEM(4,0))      {		  if (lpPlayer->SlotWeaponLeft <  LOADITEM(4,7) ||			  lpPlayer->SlotWeaponLeft ==  LOADITEM(4,17) ||			  lpPlayer->SlotWeaponLeft ==  LOADITEM(4,20)			  )		  {			    pSetNextAnimation(lpPlayer, 27);		  }		  else if(lpPlayer->SlotWeaponRight >=  LOADITEM(4,8) &&  lpPlayer->SlotWeaponRight <  LOADITEM(4,15))		  {			  pSetNextAnimation(lpPlayer, 28);		  }		   else if(lpPlayer->SlotWeaponRight >=  LOADITEM(4,16) &&  lpPlayer->SlotWeaponRight <  LOADITEM(4,17))		  {			  pSetNextAnimation(lpPlayer, 28);		  }		    else if(lpPlayer->SlotWeaponRight >=  LOADITEM(4,18) &&  lpPlayer->SlotWeaponRight <  LOADITEM(5,0))		  {			  pSetNextAnimation(lpPlayer, 28);		  }	  }	  else  if ( (lpPlayer->PlayerClass & 7) != 2 )      {        pSetNextAnimation(lpPlayer, 13);            }	  else	  {		   pSetNextAnimation(lpPlayer, 14);	  }	}	else if(lpPlayer->SlotWeaponRight >=  LOADITEM(0,0) &&  lpPlayer->SlotWeaponRight <  LOADITEM(3,0))	 {		 if(lpPlayer->SlotWeaponLeft >=  LOADITEM(0,0) &&  lpPlayer->SlotWeaponLeft <  LOADITEM(3,0))		 {		   pSetNextAnimation(lpPlayer, 15);		 }		 else		 {			 if ( *(BYTE *)(dword_7C09B40 + 76 * (signed __int16)lpPlayer->SlotWeaponRight  - 33486) )			  {				pSetNextAnimation(lpPlayer, 23);			  }			  else			  {				if ( lpPlayer->SlotWeaponRight  ==  LOADITEM(0,21) || lpPlayer->SlotWeaponRight ==  LOADITEM(0,31) )				{					pSetNextAnimation(lpPlayer, 86);				}				else				{					pSetNextAnimation(lpPlayer, 25);				}			  }		 }	 }	else if(lpPlayer->SlotWeaponRight >=  LOADITEM(5,0) &&  lpPlayer->SlotWeaponRight <  LOADITEM(6,0))	{			  if ( *(BYTE *)(dword_7C09B40 + 76 * (signed __int16)lpPlayer->SlotWeaponRight  - 33486) )			  {				pSetNextAnimation(lpPlayer, 23);			  }			  else			  {				pSetNextAnimation(lpPlayer, 26);			  }	}	else if(lpPlayer->SlotWeaponRight >=  LOADITEM(3,0) &&  lpPlayer->SlotWeaponRight <  LOADITEM(4,0))	{		pSetNextAnimation(lpPlayer, 26);	}	else if (lpPlayer->SlotWeaponLeft >=  LOADITEM(4,0))    {		if (lpPlayer->SlotWeaponLeft <  LOADITEM(4,7) ||			lpPlayer->SlotWeaponLeft ==  LOADITEM(4,17) ||			lpPlayer->SlotWeaponLeft ==  LOADITEM(4,20)			)		{			pSetNextAnimation(lpPlayer, 19);		}		else if(lpPlayer->SlotWeaponRight >=  LOADITEM(4,8) &&  lpPlayer->SlotWeaponRight <  LOADITEM(4,15))		{			pSetNextAnimation(lpPlayer, 20);		}		else if(lpPlayer->SlotWeaponRight >=  LOADITEM(4,16) &&  lpPlayer->SlotWeaponRight <  LOADITEM(4,17))		{			pSetNextAnimation(lpPlayer, 20);		}		else if(lpPlayer->SlotWeaponRight >=  LOADITEM(4,18) &&  lpPlayer->SlotWeaponRight <  LOADITEM(5,0))		{			pSetNextAnimation(lpPlayer, 20);		}	}	else	{			pSetNextAnimation(lpPlayer, 22);	}	}	}  if ( lpPlayer->TypeObject == 323 )  {	  sub_414480(124, (int)lpPlayer, 0);    return 0;  }  int Class = lpPlayer->PlayerClass & 7;  if (Class == 4 && lpPlayer->SlotHelper == LOADITEM(13,4) && !lpPlayer->isSafeZone )  {    sub_414480(rand() % 3 + 451, (int)lpPlayer, 0);    return 0;   }  if ( (DWORD)lpPlayer != pPlayerStruct )    goto LABEL_153;    if ( (rand() % 64) )  {    if ( (DWORD)lpPlayer == pPlayerStruct )      return 0;LABEL_153:        if ( (rand() % 16) )      return 0;  }  if ( lpPlayer->TypeObject != 433    || ((signed int)lpPlayer->Unk4 >= 209) && (signed int)lpPlayer->Unk4 <= 211 )  {        if ( lpPlayer->Unk4 >= 209 && lpPlayer->Unk4 <= 211 )      sub_414480(123, (int)lpPlayer, 0);       if ( cBMD.sBMD[lpPlayer->TypeObject].Unk0xAA != (WORD)-1 )    {      int v21 = 0;      if ( lpPlayer->Unk4 == 9 )        v21 = 5;            sub_414480(*(&cBMD.sBMD->Unk0xAA + (rand()%2) + 102 * lpPlayer->TypeObject) + v21 + 210, (int)lpPlayer, 0);    }  }  return 0;}
 
Junior Spellweaver
Joined
Sep 3, 2008
Messages
146
Reaction score
75
0x7D24814 --> InventoryStatus Variable (Save Using Status - Open or Close)

Can u share SetitemInfo function offset?

Good Job!
 
Joined
Mar 13, 2008
Messages
758
Reaction score
1,002
well today i have..
Dark horse and dark raven working fine.
Skills Working
Item 14 11 + Level working(Box of kundum heart of love etc..)
Cape dark lord working fine.
Now i need finish 3 things..
1- draw Item info(some like "Absorb damage x%, item price, etc) this will take many time.
2- Cant see potions in interface where are the keys q w e
3- Can drink orb of skills



0x7D24814 --> InventoryStatus Variable (Save Using Status - Open or Close)

Can u share SetitemInfo function offset?

Good Job!

here you have

SetHook((LPVOID)&SetitemInfo,(LPVOID)0x04F91E0,0xE9);
 
Skilled Illusionist
Joined
Jun 22, 2017
Messages
363
Reaction score
561
muemu :w00t:

UHhI56M - [Release] MuEmu 99b + 512 items + cashshop? - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Joined
Mar 13, 2008
Messages
758
Reaction score
1,002
Well.. i'm trying decompile function where draw the set info when put the mouse over the item at this moment i have 50% done.



Well.. i'm trying decompile function where draw the set info when put the mouse over the item at this moment i have 50% done.
 
Joined
Mar 13, 2008
Messages
758
Reaction score
1,002
well... i have many fixs
fix and decompiled: player movements
fix and decompiled: MoveItem and draw item slot on inventory.
fix and decompiled pstore price
fix and decompiled shop price
fix and decompiled create monster
fix and decompiled GCItemChanged.
fix error with interface that not send packet to gameserver to say "interface is closed" muemu doesnt have a timer how the original gameserver for close interface by time.

i will update it tomorrow with this fixs..
 
Back
Top