Jump to content
  • 0

[Help] About a pvp reward


Question

Posted

Hello guys i saw that topic

 

http://maxcheaters.com/forum/index.php?topic=48159.0

 

 

and i have some question about that i hope someone to help me :P...

 

Can i add as a feature reward an enchant by chance? For example 1 kill = 5% chance to make a random enchant on weapon/armor/jew? (to not give scroll but enchant.)

 

And if yes is it easy something like that?

 

 

EDIT: Sry for my bad english :P

2 answers to this question

Recommended Posts

  • 0
Posted

i just coded it, but did not test

 

### Eclipse Workspace Patch 1.0
#P L2J_Server
Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java	(revision 4838)
+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java	(working copy)
@@ -5675,9 +5675,73 @@
			// Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter
			sendPacket(new UserInfo(this));
			sendPacket(new ExBrExtraUserInfo(this));
+			
+			chanceEnchantReward();
		}
	}

+	private final void chanceEnchantReward()
+	{
+		final int chance = 5; // 5% of chance to get an item enchanted
+		
+		final int producedChance = Rnd.get(100) + 1;
+		if(producedChance <= chance)
+		{	
+			FastList<L2ItemInstance> enchantableItems = new FastList<L2ItemInstance>();
+			PcInventory inv = getInventory();
+			for(L2ItemInstance itm : inv.getItems())
+				if(itm.isArmor() || itm.isWeapon())
+					enchantableItems.add(itm);
+		
+			L2ItemInstance enchantedItem = null;
+			boolean enchanted = false;
+			do
+			{
+				enchantedItem = enchantableItems.remove(Rnd.get(enchantableItems.size()));
+				if(enchantedItem.isWeapon())
+				{
+					if(((L2Weapon)enchantedItem.getItem()).isCrystallizable()
+							&& enchantedItem.getEnchantLevel() < Config.ENCHANT_MAX_WEAPON)
+					{
+						synchronized(inv)
+						{
+							enchantedItem.setEnchantLevel(enchantedItem.getEnchantLevel() + 1);
+							enchanted = true;
+						}
+					}
+				}
+				else if(enchantedItem.isArmor())
+				{
+					L2Armor armorItem = (L2Armor)enchantedItem.getItem();
+					if(armorItem.isCrystallizable())
+					{
+						if((armorItem.getType1() == L2Item.TYPE1_WEAPON_RING_EARRING_NECKLACE
+								&& enchantedItem.getEnchantLevel() < Config.ENCHANT_MAX_JEWELRY)
+								|| (armorItem.getType1() == L2Item.TYPE1_SHIELD_ARMOR
+								&& enchantedItem.getEnchantLevel() < Config.ENCHANT_MAX_ARMOR))
+						{
+							synchronized(inv)
+							{
+								enchantedItem.setEnchantLevel(enchantedItem.getEnchantLevel() + 1);
+								enchanted = true;
+							}
+						}
+					}	
+				}
+				
+				if(enchanted)
+				{
+					broadcastUserInfo();
+					sendPacket(new ItemList(this, false));
+					SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_SUCCESSFULLY_ENCHANTED);
+					sm.addItemName(enchantedItem);
+					sendPacket(sm);
+				}
+			}
+			while(!enchanted);
+		}
+	}
+	
	/**
	 * Increase pk count, karma and send the info to the player
	 *

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...