Jump to content
For maintenance and updates, the community will be offline on 31 December 2022 ×

Official Transmutation / Change Look


Mali

Recommended Posts

  • Honorable Member

M2 Download Center

This is the hidden content, please
( Internal )

This is the hidden content, please

Client side is from 2018 official root.

Mount transmutation 2018 didn't exist in root, I made minor edits.

However, to use mount transmutation, you need to edit it according to your own mount system.

I created a new slot effect so that it doesn't interfere with other systems (highlight) etc.

You can use this sloteffect and the diffusecolor function elsewhere.

***Add this before adding this system:

Spoiler

 

 

  • Metin2 Dev 88
  • Eyes 1
  • Love 42
  • Love 3
  • Good 31
  • Think 1
  • Confused 2
  • Cry 2
  • Not Good 2
  • Angry 3
  • Dislove 1
Link to comment
Share on other sites

Whats wrong?

syserr:

0923 17:23:06846 :: 
networkModule.py(line:195) SetSelectCharacterPhase
system.py(line:131) __pack_import
system.py(line:110) _process_result
introSelect.py(line:20) <module>
system.py(line:131) __pack_import
system.py(line:110) _process_result
uiCharacter.py(line:18) <module>
system.py(line:131) __pack_import
system.py(line:110) _process_result
uiCharacterDetails.py(line:8) <module>
system.py(line:131) __pack_import

networkModule.SetSelectCharacterPhase - <type 'exceptions.IndentationError'>:unindent does not match any outer indentation level (interfaceModule.py, line 602)

0923 17:23:06846 :: ============================================================================================================
0923 17:23:06846 :: Abort!!!!

 

interfaceModule.py the textline 602:

	def RefreshInventory(self):
		self.wndTaskBar.RefreshQuickSlot()
		self.wndInventory.RefreshItemSlot()
		self.wndDragonSoul.RefreshItemSlot()
		if app.BL_TRANSMUTATION_SYSTEM:
			if player.GetChangeLookWindowOpen() == 1:
				self.wndChangeLook.RefreshChangeLookWindow()

    if app.BL_TRANSMUTATION_SYSTEM:
		## HilightSlot Change			
		def DeactivateSlot(self, slotindex, type):
			self.wndInventory.DeactivateSlot(slotindex, type)

		## HilightSlot Change		
		def ActivateSlot(self, slotindex, type):
			self.wndInventory.ActivateSlot(slotindex, type)
		
		def ChangeWindowOpen(self, type):
			if self.wndChangeLook:
				self.wndChangeLook.Open(type)

 

Link to comment
Share on other sites

  • Bronze
2 hours ago, Razer74 said:

Whats wrong?

syserr:

0923 17:23:06846 :: 
networkModule.py(line:195) SetSelectCharacterPhase
system.py(line:131) __pack_import
system.py(line:110) _process_result
introSelect.py(line:20) <module>
system.py(line:131) __pack_import
system.py(line:110) _process_result
uiCharacter.py(line:18) <module>
system.py(line:131) __pack_import
system.py(line:110) _process_result
uiCharacterDetails.py(line:8) <module>
system.py(line:131) __pack_import

networkModule.SetSelectCharacterPhase - <type 'exceptions.IndentationError'>:unindent does not match any outer indentation level (interfaceModule.py, line 602)

0923 17:23:06846 :: ============================================================================================================
0923 17:23:06846 :: Abort!!!!

 

interfaceModule.py the textline 602:

	def RefreshInventory(self):
		self.wndTaskBar.RefreshQuickSlot()
		self.wndInventory.RefreshItemSlot()
		self.wndDragonSoul.RefreshItemSlot()
		if app.BL_TRANSMUTATION_SYSTEM:
			if player.GetChangeLookWindowOpen() == 1:
				self.wndChangeLook.RefreshChangeLookWindow()

      if app.BL_TRANSMUTATION_SYSTEM:
          ## HilightSlot Change			
          def DeactivateSlot(self, slotindex, type):
              self.wndInventory.DeactivateSlot(slotindex, type)

          ## HilightSlot Change		
          def ActivateSlot(self, slotindex, type):
              self.wndInventory.ActivateSlot(slotindex, type)

          def ChangeWindowOpen(self, type):
              if self.wndChangeLook:
                  self.wndChangeLook.Open(type)

 

Do it like this:spacer.png

Edited by Metin2 Dev
Core X - External 2 Internal
  • Good 1
Link to comment
Share on other sites

No objects are placed in the slot with the right mouse button.

When I take the gun out of my hand, the gun is still in my hand.

https://metin2.download/picture/wpox1Q5TmKo3SfC7hdd7JIK5Le3h8Mqy/.png

there are problems in the system.

Also

Client/SRC/Packet.h

struct TPacketGCItemDelDeprecate   No Code

Server/SRC/Packet.h

struct TPacketGCItemDelDeprecate Yes Code

 

No problem for armor. This issue is only for the gun.

Edited by Metin2 Dev
Core X - External 2 Internal
Link to comment
Share on other sites

  • 4 weeks later...

spacer.png

 

Can you help me? I added everything without any problem. There is just such an error. MartySama File. I am using the COSTUME_WEAPON system.

CODE:

 

	case ITEM_WEAPON:
	{
#ifdef ENABLE_WEAPON_COSTUME_SYSTEM
		if (0 != m_pOwner->GetWear(WEAR_COSTUME_WEAPON))
			break;
#endif
		if (bAdd)
		{
#if defined(__BL_TRANSMUTATION__)
			if (m_wCell == INVENTORY_MAX_NUM + WEAR_WEAPON)
			{
				const WORD wVnum = static_cast<WORD>(GetVnum());
				const WORD wTransmutationVnum = static_cast<WORD>(GetTransmutationVnum());
				m_pOwner->SetPart(PART_WEAPON, wTransmutationVnum != 0 ? wTransmutationVnum : wVnum);
			}
#else
			if (m_wCell == INVENTORY_MAX_NUM + WEAR_WEAPON)
				m_pOwner->SetPart(PART_WEAPON, static_cast<WORD>(GetVnum()));
#endif
		}
		else
		{
			if (m_wCell == INVENTORY_MAX_NUM + WEAR_WEAPON)
				m_pOwner->SetPart(PART_WEAPON, m_pOwner->GetOriginalPart(PART_WEAPON));
		}
	}
	break;

 

Edited by Metin2 Dev
Core X - External 2 Internal
Link to comment
Share on other sites

  • Bronze
4 hours ago, EAkar said:

spacer.png

 

Can you help me? I added everything without any problem. There is just such an error. MartySama File. I am using the COSTUME_WEAPON system.

CODE:

 

	case ITEM_WEAPON:
	{
#ifdef ENABLE_WEAPON_COSTUME_SYSTEM
		if (0 != m_pOwner->GetWear(WEAR_COSTUME_WEAPON))
			break;
#endif
		if (bAdd)
		{
#if defined(__BL_TRANSMUTATION__)
			if (m_wCell == INVENTORY_MAX_NUM + WEAR_WEAPON)
			{
				const WORD wVnum = static_cast<WORD>(GetVnum());
				const WORD wTransmutationVnum = static_cast<WORD>(GetTransmutationVnum());
				m_pOwner->SetPart(PART_WEAPON, wTransmutationVnum != 0 ? wTransmutationVnum : wVnum);
			}
#else
			if (m_wCell == INVENTORY_MAX_NUM + WEAR_WEAPON)
				m_pOwner->SetPart(PART_WEAPON, static_cast<WORD>(GetVnum()));
#endif
		}
		else
		{
			if (m_wCell == INVENTORY_MAX_NUM + WEAR_WEAPON)
				m_pOwner->SetPart(PART_WEAPON, m_pOwner->GetOriginalPart(PART_WEAPON));
		}
	}
	break;

 

Its better when you make a gif/ Video

 

Do you have costume weapon equipped ? Did the weapon disappear ?

It is just about equipping a costume without a weapon ?

 

Edited by Metin2 Dev
Core X - External 2 Internal
Link to comment
Share on other sites

9 hours ago, V0lvox said:

Bir gif/Video yaptığınızda daha iyi

 

Kostüm silahınız var mı? Silah kayboldu mu?

Silahsız bir kostüm giymekle mi ilgili?

 

spacer.png

Edited by Metin2 Dev
Core X - External 2 Internal
Link to comment
Share on other sites

  • Bronze
14 hours ago, EAkar said:
	case ITEM_WEAPON:
	{
#ifdef ENABLE_WEAPON_COSTUME_SYSTEM
		if (0 != m_pOwner->GetWear(WEAR_COSTUME_WEAPON))
			break;
#endif
		if (bAdd)
		{
#if defined(__BL_TRANSMUTATION__)
			if (m_wCell == INVENTORY_MAX_NUM + WEAR_WEAPON)
			{
				const WORD wVnum = static_cast<WORD>(GetVnum());
				const WORD wTransmutationVnum = static_cast<WORD>(GetTransmutationVnum());
				m_pOwner->SetPart(PART_WEAPON, wTransmutationVnum != 0 ? wTransmutationVnum : wVnum);
			}
#else
			if (m_wCell == INVENTORY_MAX_NUM + WEAR_WEAPON)
				m_pOwner->SetPart(PART_WEAPON, static_cast<WORD>(GetVnum()));
#endif
		}
		else
		{
			if (m_wCell == INVENTORY_MAX_NUM + WEAR_WEAPON)
				m_pOwner->SetPart(PART_WEAPON, m_pOwner->GetOriginalPart(PART_WEAPON));
		}
	}
	break;

 

I do have it like this:
 

            if (bAdd) {
#ifdef __CHANGE_LOOK_SYSTEM__
                if (m_wCell == INVENTORY_MAX_NUM + WEAR_WEAPON)
                    m_pOwner->SetPart(PART_WEAPON, GetItemLook() > 0 ? GetItemLook() : GetVnum());
#else
                if (m_wCell == INVENTORY_MAX_NUM + WEAR_WEAPON)
                    m_pOwner->SetPart(PART_WEAPON, GetVnum());
#endif
            } else {
                if (m_wCell == INVENTORY_MAX_NUM + WEAR_WEAPON)
                    m_pOwner->SetPart(PART_WEAPON, 0);
            }

 

Link to comment
Share on other sites

53 minutes ago, V0lvox said:

I do have it like this:
 

            if (bAdd) {
#ifdef __CHANGE_LOOK_SYSTEM__
                if (m_wCell == INVENTORY_MAX_NUM + WEAR_WEAPON)
                    m_pOwner->SetPart(PART_WEAPON, GetItemLook() > 0 ? GetItemLook() : GetVnum());
#else
                if (m_wCell == INVENTORY_MAX_NUM + WEAR_WEAPON)
                    m_pOwner->SetPart(PART_WEAPON, GetVnum());
#endif
            } else {
                if (m_wCell == INVENTORY_MAX_NUM + WEAR_WEAPON)
                    m_pOwner->SetPart(PART_WEAPON, 0);
            }

 

The problem persists. The case is not related to ITEM_WEAPON. The problem is elsewhere. But I don't know where it is.

No problem with armor. There is only one problem with the gun.

@ MaliCan you help with this?

Thank You bro.

Link to comment
Share on other sites

On 10/19/2021 at 6:47 PM, Razer74 said:

Same problem but with costumes.

Now I tried it for the costume, I have the same problem.

It stays put on me when I put on the costume_body and take it off again.

We ask Mali61 for help on this issue. Hope it helps us. Or someone else.

Link to comment
Share on other sites

No Problem : (look image) -- Everything looks good.

spacer.png

 

I used a costume weapon on it. Everything is fine and there are no problems.

 

spacer.png

 

and the biggest problem!!!

When I remove the costume weapon, the original weapon appears. But the runic sword must appear.

 

spacer.png

 

 

		case ITEM_WEAPON:
		{
#ifdef ENABLE_WEAPON_COSTUME_SYSTEM
			if (0 != m_pOwner->GetWear(WEAR_COSTUME_WEAPON))
				break;
#endif
			if (bAdd) {
#if defined(__BL_TRANSMUTATION__)
				if (m_wCell == INVENTORY_MAX_NUM + WEAR_WEAPON)
					m_pOwner->SetPart(PART_WEAPON, GetTransmutationVnum() > 0 ? GetTransmutationVnum() : GetVnum());
#else
				if (m_wCell == INVENTORY_MAX_NUM + WEAR_WEAPON)
					m_pOwner->SetPart(PART_WEAPON, GetVnum());
#endif
			} else {
				if (m_wCell == INVENTORY_MAX_NUM + WEAR_WEAPON)
					m_pOwner->SetPart(PART_WEAPON, 0);
			}
		}
		break;

 

Edited by Metin2 Dev
Core X - External 2 Internal
Link to comment
Share on other sites

4 hours ago, EAkar said:

No hay problema: (mira la imagen) - Todo se ve bien.

spacer.png

 

Usé un arma de disfraz en él. Todo está bien y no hay problemas.

 

spacer.png

 

y el mayor problema !!!

Cuando me quito el arma del disfraz, aparece el arma original. Pero la espada rúnica debe aparecer.

 

spacer.png

 

 

 

send discord men...

Edited by Metin2 Dev
Core X - External 2 Internal
Link to comment
Share on other sites

On 10/28/2021 at 3:13 PM, Mali said:

weapon costume is not my system, just look at other codes for the solve problem.

I'm not mad at you trabzon 🙂

but you might have an idea what the problem is. Only you can help with this. The costume system may not be yours. But you can help. It still doesn't matter if you're not helping. After all, you shared this system with us. You are a really good person. Not everyone can do this. entrust it to Allah.

On 10/28/2021 at 11:38 AM, aberious said:

send discord men...

Metin2Shooping#3082

Link to comment
Share on other sites

  • 1 month later...

Ι have this sysser error: 
 

1203 21:41:18962 ::   File "uiInventory.py", line 880, in RefreshEquipSlotWindow

1203 21:41:18962 :: SystemError
1203 21:41:18962 :: : 
1203 21:41:18962 :: ..\Objects\longobject.c:1001: bad argument to internal function
1203 21:41:18962 :: 

Thats my line 880:

https://metin2.download/picture/8uH1oY5hu95rH0RISM3TwQcd3XZbJOc2/.png

 

Any ideas?

Edited by Metin2 Dev
Core X - External 2 Internal
Link to comment
Share on other sites

good System works fine i have 2 "small" bugs :

- I can no longer reset the change look.

- I can no longer change dressed EQ

https://metin2.download/picture/YZlHJxLue0xuHEA6VmPWbjQAKF41Hdv5/.gif

https://metin2.download/picture/NmXv0lOwE6SVBcXNwlAvio1Q0hGTS4Tk/.gif

 

without syserr´s

Edited by Metin2 Dev
Core X - External 2 Internal
Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...
On 12/3/2021 at 8:45 PM, Jimmermania said:

Ι have this sysser error: 
 

1203 21:41:18962 ::   File "uiInventory.py", line 880, in RefreshEquipSlotWindow

1203 21:41:18962 :: SystemError
1203 21:41:18962 :: : 
1203 21:41:18962 :: ..\Objects\longobject.c:1001: bad argument to internal function
1203 21:41:18962 :: 

Thats my line 880:

https://metin2.download/picture/8uH1oY5hu95rH0RISM3TwQcd3XZbJOc2/.png

 

Any ideas?

UP my error too

EDIT : FIX 

Edited by Metin2 Dev
Core X - External 2 Internal
Link to comment
Share on other sites



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / 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.