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

    • If you’re juggling mixed payment methods and tricky setups, I’ve found that easing the pressure on the subscription side can make the whole flow smoother. I started using Subscription Revenue Growth for handling my own recurring payments, upgrades, and all that messy churn stuff, and it took a big weight off. Pairing something stable for subs with your gateway setup can keep cashflow from going off the rails.
    • L2Avalon launches February 20 High Five project (Salvation client) focused on classic world progression — not instance spam and not “twink” metas. What is L2Avalon? L2Avalon is built around real Lineage 2 gameplay: farming spots, open world conflict, raids, epics, economy and competition. No Kamael Reduced instanced content **Discord:** https://discord.gg/NbM2cXmAem 🌐 **Website:** https://l2avalon.net Balance & Economy Every class is tuned to be viable in PvE and PvP Off-meta classes get buffed instead of adding power-creep garbage Adena-based economy Farming matters: boosted Drop/Spoil for each stage of progression Rates & Settings Dynamic XP: 50x (Lv 1–40) → 1x (Lv 78+) Staged progression with new content unlocking weekly Adena / Drop / Spoil: 3x / 5x / 5x NPC Buffer: 2 hours (Premium: 3 hours) Box limit: 2+1 windows per PC MP potion: 1000 MP, 10s cooldown Free2Play System (earn Donate Coins by playing) You don’t have to donate to progress. Donate Coins drop in-game, so everything is achievable through playtime and activity. Where Donate Coins drop: Mobs Lv 76+, Raid Bosses Lv 70+, Epic Bosses Auto-farm (controlled) Limit: only 1 window can use auto-farm at the same time Daily time: 1 hour/day without Premium Extra tickets: purchasable with PC Bang points (earned by being online) Disabled zones: CC / IT / FOG / VARKA / KETRA Equipment Changes Reworked set bonuses Reworked SA system Enchanted set bonuses Enchanted shirt bonuses Fake Epic jewelry (weakened alternative) Skills (High Five mechanics) New skills added Old skills updated New enchant branches + updated existing ones Subclass skills Clan skills Daily Activities (solo-friendly) Events / Missions / Instances Stages Soon — stage schedule and weekly unlocks will be published February 20 — we start. **Discord:** https://discord.gg/NbM2cXmAem 🌐 **Website:** https://l2avalon.net
    • Hello MxC community, i want to buy client dev / patch maker services for the client of salvation. Im using L2jeternity multiprotocol (h5-salvation 140). I want a Patch full optimized for the h5 content. Everything that is not needed must be removed, as well as some textures like maps for example should be also adjusted to h5 content. If you know anyone that can take the job feel free to contact me here or in Discord. Only professional work.   Discord: ch4osroxas   Thank you very much!
    • Hi dude, i`m in the same way of nawaro, leaning how to edit interfaces, could u help me too?
  • 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..

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock