Jump to content

Question

Posted

Hello guys this is what i want 

1)Create a custom armor but put only a specific scroll to enchant it (no normal,blessed) lets say only crystal

 

In order to do that the best way is to:

 

1)Create new grade Like "E" and add crystall Scrolls (d,c,b,a,s+e) and would be enchantable only with Crystal

 

2)Just edit the source on enchant.java to make crystall scrolls only enchantable for specific armors ids?

 

p.s: i dont want other scrolls enchant this armor

8 answers to this question

Recommended Posts

  • 0
Posted (edited)

If you don't know to do it, then create new scroll as grade NONE. Set your armor enchant type @ xml for your armor as NONE. Don't forgot to change the Crystal scroll grade to NONE as well. Profit.

 

ONE line code. You only have to register new grade and obviously change the xml/sql grade.

Edited by SweeTs
  • 0
Posted

Go to RequestEnchantItem.java or whatever the file name called  and in the point that

it says

sychronize(item)

 

add a check 

 

int[] with ids of your armors

 

and then a for that goes into ids 

and do check  if (item.getItemId() == <your for item id>) return; 

thats all.. bye bye sexy

  • 0
Posted

Whatever you like. "New grade", else a simple check for id - faster way, there is no need to create new items.

  • 0
Posted

In order to do it from RequestEnchantItem.java 

i should edit the 

			case L2Item.CRYSTAL_S:
				crystalId = 1462;
				switch (scroll.getItemId())
				{
					case 960:      
					case 962:     
					case 6578:      
						if (itemType2 == L2Item.TYPE2_SHIELD_ARMOR || itemType2 == L2Item.TYPE2_ACCESSORY)
						{
							enchantItem = true;
						}
						break;
				}
				break;

i cant find the way which RequestEnchantItem 

Connect S grade scrolls with S items thats the only point who i have found until now ..

if someone can help some farther please reply on this topic,thanks 

  • 0
Posted

In order to do it from RequestEnchantItem.java 

i should edit the 

			case L2Item.CRYSTAL_S:
				crystalId = 1462;
				switch (scroll.getItemId())
				{
					case 960:      
					case 962:     
					case 6578:      
						if (itemType2 == L2Item.TYPE2_SHIELD_ARMOR || itemType2 == L2Item.TYPE2_ACCESSORY)
						{
							enchantItem = true;
						}
						break;
				}
				break;

i cant find the way which RequestEnchantItem 

Connect S grade scrolls with S items thats the only point who i have found until now ..

if someone can help some farther please reply on this topic,thanks 

Listen because i am at work and i cant really help you with teamviewer, i hope you know at least basic java.. you know 

 

if then else :DDDD

 

so there are 2files that handle enchant.. 1 is the request and the other is for the enchantrate (at least in l2j) ... search mostly in requestEnchant for the line that

refer to the current item you enchant.. you will also see things like   !item.isShadow() || !item.isHeroItem()   

e.t.c somewhere there it sychronize the item (just to avoid multiple instances problem) and after that inside this sychronization you add your check about ID..  

on the other hand if inside your code it switch the enchant scroll u can also add a check somewhere there about id .. with switch or int array ( int[] x) 

just give it a try ... 

  • 0
Posted (edited)

if you are using frozen find these lines

		if ((maxEnchantLevel != 0 && item.getEnchantLevel() >= maxEnchantLevel) || (item.getEnchantLevel()) < minEnchantLevel)
		{
			activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
			return;
		}

and below add this

		if(crystalScroll && !item.getItemId() == 999)
		{
			activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
			return;
		}

change the ids and thats it

Edited by te0x
Guest
This topic is now closed to further replies.


×
×
  • Create New...