Jump to content
  • 0

Inventroy slot problem (Vanganth)


Question

Posted

Hey any one knew this slot_bit_type ?             {back} not                                    slot.png.1831b46dc30822c33ddf7758950856e1.png

 

          here you got types slots i think this slot it's hairall but its same like hair slot So its hairall / back or hairex but this all slots don't working maybe some one knoe how this working?                                              

 

                                                                                                                             sor.png.b6bbaa222be5f733bb89d6db3ae15865.png

Recommended Posts

  • 0
Posted
17 hours ago, Nevermind25 said:

In my knowledge in both slots must be the same item, back slot does not exist for interlude, just hair/hairall and underwear. 

If you think, you cant put at the same time a hat and a noblesse tiara, or party mask 

I did it, so don't say you can't. Regards.

  • 0
Posted

File CharInfo.cpp CPacketFix::CharinfoBCfix, CPacketFix::CharInfoFix 

/* d */ Packet.WriteD(BaseClass);

		INT32 dhairId = va_arg(tag, INT32);
		INT32 headId = va_arg(tag, INT32);
		INT32 rhandId = va_arg(tag, INT32);
		INT32 lhandId = va_arg(tag, INT32);
		INT32 glovesId = va_arg(tag, INT32);
		INT32 chestId = va_arg(tag, INT32);
		INT32 legsId = va_arg(tag, INT32);
		INT32 feetId = va_arg(tag, INT32);
		INT32 backId = va_arg(tag, INT32);
		INT32 lrhandId = va_arg(tag, INT32);
		INT32 hairId = va_arg(tag, INT32);
		INT32 faceId = 0;	//interlude addon
		//removed visualarmor
/* d */ Packet.WriteD(dhairId);	//dhair
/* d */ Packet.WriteD(headId);	//head
/* d */ Packet.WriteD(rhandId);	//rhand
/* d */ Packet.WriteD(lhandId);	//lhand
/* d */ Packet.WriteD(glovesId);	//gloves
/* d */ Packet.WriteD(chestId);	//chest
/* d */ Packet.WriteD(legsId);	//legs
/* d */ Packet.WriteD(feetId);	//feet
/* d */ Packet.WriteD(backId);	//back
/* d */ Packet.WriteD(lrhandId);	//lrhand
/* d */ Packet.WriteD(hairId);	//hair
/* d */ Packet.WriteD(faceId); //Face slot

In the file Userinfo.cpp  seems to be the same code but with CPacketFix::UserInfoFix and CPacketFix::GMUserInfoFix

 

/* d */ Packet.WriteD(BaseClass);

		INT32 dhairId = va_arg(tag, INT32);
		INT32 headId = va_arg(tag, INT32);
		INT32 rhandId = va_arg(tag, INT32);
		INT32 lhandId = va_arg(tag, INT32);
		INT32 glovesId = va_arg(tag, INT32);
		INT32 chestId = va_arg(tag, INT32);
		INT32 legsId = va_arg(tag, INT32);
		INT32 feetId = va_arg(tag, INT32);
		INT32 backId = va_arg(tag, INT32);
		INT32 lrhandId = va_arg(tag, INT32);
		INT32 hairId = va_arg(tag, INT32);
		INT32 faceId = 0;	//interlude addon 
		//visualarmor removed
/* d */ Packet.WriteD(dhairId);	//dhair
/* d */ Packet.WriteD(headId);	//head
/* d */ Packet.WriteD(rhandId);	//rhand
/* d */ Packet.WriteD(lhandId);	//lhand
/* d */ Packet.WriteD(glovesId);	//gloves
/* d */ Packet.WriteD(chestId);	//chest
/* d */ Packet.WriteD(legsId);	//legs
/* d */ Packet.WriteD(feetId);	//feet
/* d */ Packet.WriteD(backId);	//back
/* d */ Packet.WriteD(lrhandId);	//lrhand
/* d */ Packet.WriteD(hairId);	//hair
/* d */ Packet.WriteD(faceId); //Face slot

 

Someone can help to fix this? 

  • 0
Posted

Take L2PHX and sniff CharInfo packet from L2OFF and L2J servers. You need equip problem item to char slots and you will find diffs in your sending info. In depending from result you will see where you get wrong ID by Inventory slot mask.

  • Upvote 1
  • 0
Posted

fix

#include "StdAfx.h"
#include "Packets.h"

int InventoryUpdateFix(PCHAR buf, int bufLen, CItem *pItem, WORD UpdateType, WORD ItemType, DWORD ObjectID, DWORD ItemID, DWORD Count, WORD ItemType2, WORD CustomType1, WORD IsEquiped, DWORD BodyPart, WORD EnchantLevel, WORD CustomType2)
{
	// Old FMT:			 "hhdddhhhdhh"
	const char *format = "hhdddhhhdhhdd"; //New IL Format
	DWORD AugmentationID = 0;
	DWORD Mana = 0;
//	DWORD itemId = 0;
//	DWORD SlotType = 0;
	if(pItem->IsValidItem())
	{
		AugmentationID = pItem->nAugmentationID;
		Mana = pItem->nManaLeft/60;

//		SlotType = pItem->pSID->nSlotType;
//		itemId = pItem->pSID->nItemID;
//		g_Log.Add(CLog::Error, "----InventoryUpdateFix----");
//		g_Log.Add(CLog::Error, "nItemId: [%d] nItemType[%d]",itemId,SlotType  );
//		g_Log.Add(CLog::Error, "UpdateType: [%d] ItemType2[%d] CustomType1[%d] BodyPart[%d] CustomType2[%d]",UpdateType,ItemType2,CustomType1,BodyPart,CustomType2  );
//		g_Log.Add(CLog::Error, "--------------------------");

+		if (BodyPart ==1)
+			BodyPart = 262144;

	}
	return Assemble(buf, bufLen, format, UpdateType, ItemType, ObjectID, ItemID, Count, ItemType2
		,CustomType1, IsEquiped, BodyPart, EnchantLevel, CustomType2, AugmentationID, Mana);
}

 

  • 0
Posted
7 hours ago, guytis said:

fix


#include "StdAfx.h"
#include "Packets.h"

int InventoryUpdateFix(PCHAR buf, int bufLen, CItem *pItem, WORD UpdateType, WORD ItemType, DWORD ObjectID, DWORD ItemID, DWORD Count, WORD ItemType2, WORD CustomType1, WORD IsEquiped, DWORD BodyPart, WORD EnchantLevel, WORD CustomType2)
{
	// Old FMT:			 "hhdddhhhdhh"
	const char *format = "hhdddhhhdhhdd"; //New IL Format
	DWORD AugmentationID = 0;
	DWORD Mana = 0;
//	DWORD itemId = 0;
//	DWORD SlotType = 0;
	if(pItem->IsValidItem())
	{
		AugmentationID = pItem->nAugmentationID;
		Mana = pItem->nManaLeft/60;

//		SlotType = pItem->pSID->nSlotType;
//		itemId = pItem->pSID->nItemID;
//		g_Log.Add(CLog::Error, "----InventoryUpdateFix----");
//		g_Log.Add(CLog::Error, "nItemId: [%d] nItemType[%d]",itemId,SlotType  );
//		g_Log.Add(CLog::Error, "UpdateType: [%d] ItemType2[%d] CustomType1[%d] BodyPart[%d] CustomType2[%d]",UpdateType,ItemType2,CustomType1,BodyPart,CustomType2  );
//		g_Log.Add(CLog::Error, "--------------------------");

+		if (BodyPart ==1)
+			BodyPart = 262144;

	}
	return Assemble(buf, bufLen, format, UpdateType, ItemType, ObjectID, ItemID, Count, ItemType2
		,CustomType1, IsEquiped, BodyPart, EnchantLevel, CustomType2, AugmentationID, Mana);
}

 

awesome, i would delayed a entire month xD

  • 0
Posted
6 hours ago, Nevermind25 said:

@guytis   en ItemList.cpp es lo mismo? Creo que sí, pero tú eres el sabio

 

yes yes

 

 

int ItemListFix(PCHAR buf, int bufLen, CItem *pItem, WORD ItemType, DWORD ObjectID, DWORD ItemID, DWORD Count, WORD ItemType2, WORD CustomType1, WORD IsEquiped, DWORD BodyPart, WORD EnchantLevel, WORD CustomType2)
{
	//Old FMT:			 "hdddhhhdhh"
	const char *format = "hdddhhhdhhdd"; //New IL Format
						 
	DWORD AugmentationID = 0;
	DWORD Mana = 0;
//	DWORD itemId = 0;
//	DWORD SlotType = 0;
	if(pItem->IsValidItem())
	{
		AugmentationID = pItem->nAugmentationID;
		Mana = pItem->nManaLeft / 60;

//		SlotType = pItem->pSID->nSlotType;
//		itemId = pItem->pSID->nItemID;
//		g_Log.Add(CLog::Error, "---------ItemListFix------");
//		g_Log.Add(CLog::Error, "nItemId: [%d] nItemType[%d]",itemId,SlotType  );
//		g_Log.Add(CLog::Error, "ItemType: [%d] ItemType2[%d] CustomType1[%d] BodyPart[%d] CustomType2[%d]",ItemType,ItemType2,CustomType1,BodyPart,CustomType2  );
//		g_Log.Add(CLog::Error, "---------------------------");

		if (BodyPart ==1)
			BodyPart = 262144;
	}
	return Assemble(buf, bufLen, format, ItemType, ObjectID, ItemID, Count, ItemType2
		,CustomType1, IsEquiped, BodyPart, EnchantLevel, CustomType2, AugmentationID, Mana);
}

 

  • Upvote 1
  • 0
Posted
On 9/28/2019 at 8:10 AM, guytis said:

 

yes yes

 

 


int ItemListFix(PCHAR buf, int bufLen, CItem *pItem, WORD ItemType, DWORD ObjectID, DWORD ItemID, DWORD Count, WORD ItemType2, WORD CustomType1, WORD IsEquiped, DWORD BodyPart, WORD EnchantLevel, WORD CustomType2)
{
	//Old FMT:			 "hdddhhhdhh"
	const char *format = "hdddhhhdhhdd"; //New IL Format
						 
	DWORD AugmentationID = 0;
	DWORD Mana = 0;
//	DWORD itemId = 0;
//	DWORD SlotType = 0;
	if(pItem->IsValidItem())
	{
		AugmentationID = pItem->nAugmentationID;
		Mana = pItem->nManaLeft / 60;

//		SlotType = pItem->pSID->nSlotType;
//		itemId = pItem->pSID->nItemID;
//		g_Log.Add(CLog::Error, "---------ItemListFix------");
//		g_Log.Add(CLog::Error, "nItemId: [%d] nItemType[%d]",itemId,SlotType  );
//		g_Log.Add(CLog::Error, "ItemType: [%d] ItemType2[%d] CustomType1[%d] BodyPart[%d] CustomType2[%d]",ItemType,ItemType2,CustomType1,BodyPart,CustomType2  );
//		g_Log.Add(CLog::Error, "---------------------------");

		if (BodyPart ==1)
			BodyPart = 262144;
	}
	return Assemble(buf, bufLen, format, ItemType, ObjectID, ItemID, Count, ItemType2
		,CustomType1, IsEquiped, BodyPart, EnchantLevel, CustomType2, AugmentationID, Mana);
}

 

 

you rly did a great job..thx man.

  • 0
Posted

here still have a error, some items in c6 are hairall and must use the two slots (circlets, hats) and some other uses 1 slot and it suposes that you can equip for example a rabbit ear an a eye patch, this fix is good, if i find the way to make the other i'll paste here the code

  • 0
Posted

When adding the fix, what would be the method that should be used in the type of itemdata, because I tested and is using underwear type, but that would not be correct. Because this item is next to the necklace.

  • 0
Posted
15 hours ago, xPeNaChO said:

When adding the fix, what would be the method that should be used in the type of itemdata, because I tested and is using underwear type, but that would not be correct. Because this item is next to the necklace.

anyway, the fix is good

 

the correct position is this. 

 

[hair] [helmet] [hair2] [underwear] [necklace]

================== 

[hairall] [helmet] [hairall] [underwear] [necklace]

 

Some interlude has the {back} slot? in this case the back is used like c4 

  • 0
Posted

A sua adaptação foi super boa, mas ainda não passou de uma gambiarra .. precisa ser feita, mas algumas coisas fica oculta após ser gerada algum erro no código .. 

 

mass parabéns caminho tá certo :thumbs-up:

Guest
This topic is now closed to further replies.



  • Posts

    • Download Lobby u need island for lobby Download Crow Island  
    • Website: https://l2elixir.org/ Discord: https://discord.gg/5ydPHvhbxs    
    • L2-LORENA x100 MID RATE   Interlude Nostalgia Meets Modern Gameplay   OFFICIAL OPENING:  April 4 (Saturday)  19:00 UTC+1 ⸻  MAIN INFORMATION  Adena: x5  Drop: x10  Spoil: x10  Raid Boss: x10  Seal Stones: x2  Quests: x10 ⸻  FEATURES  GM Shop up to B-Grade  Full Buffer  Premium System (x2 bonuses)  AutoFarm – FREE for everyone ⸻  SERVER CONCEPT  Classic Interlude nostalgia  Enhanced with modern interface & mechanics  Balanced PvP & PvE gameplay  Active development & custom features ⸻  WHY JOIN L2-LORENA?  No Pay-to-Win  Smooth gameplay & stable server  Competitive PvP environment  Friendly & active community ⸻  JOIN US NOW L2-LORENA 100X <<< LINK Discord: https://discord.gg/TYZ88Tgx4b  Facebook: https://www.facebook.com/share/18kwbkaYZY/?mibextid=wwXIfr   L2-LORENA Link << Discord: https://discord.gg/TYZ88Tgx4b  Facebook: https://www.facebook.com/share/18kwbkaYZY/?mibextid=wwXIfr
    • https://web.archive.org/web/20260306183214/https://maxcheaters.com/topic/241828-l2j-l2damage/page/3/ https://l2topzone.com/forum/l2-server-support-problems/9/l2damage-stopped/30514 Also we will try to push longer seasons ever ! (1135-100)/9 = 115 online
    • ONE SIDE – AND EVERYTHING BREAKS ▪ Looks like a simple case: Florida DL, back side, barcode – “clean and minimal”. ▪ In reality, these are exactly the tasks that fail most often. – data provided as plain text – request only for the back side – focus on the barcode (PDF417) ▪ And here’s the key point: ▪ A barcode is not just a “picture on the back”. It’s compressed logic of the entire document. ▪ If it doesn’t match the front, format, and data structure – the system flags it instantly. ▪ Many create a “similar-looking” code. But systems don’t read “similar” – they read by specification. ▪ In cases like this, it’s not about design. It’s about correct data assembly and how it behaves inside the format. ▪ Today only – 15% off for verification cases. ▪ Want it to pass, not just look right? Describe your case – we’ll show where even clean files break. › TG: @mustang_service ( https:// t.me/ mustang_service ) › Channel: Mustang Service ( https:// t.me/ +JPpJCETg-xM1NjNl ) #editing #photoshop #documents #verification #case
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..