Changeset 920

User picture

Author: nefer

(2012/02/10 11:51) 3 months ago

[CORE][DP]
- Hotfix pick up exception.
- Fixed NPE for findArrowForBow.
- Fixed player can't delevel during skill enchant (Like L2OFF)

Affected files

Updated trunk/datapack/data/scripts/quests/654_JourneyToSettlement/lvl.htm Download diff

919920
1
<html><body>Nameless Spirit:<br>
1
<html><body>Nameless Spirit:<br>
2
Квест доступен персонажам, достигшим 74 уровень.<br>
2
Quest for characters level 74 and above.<br>
3
</body></html>
3
</body></html>

Updated trunk/datapack/data/scripts/quests/654_JourneyToSettlement/no.htm Download diff

919920
1
<html><body>Nameless Spirit:<br>
1
<html><body>Nameless Spirit:<br>
2
Квест доступен после выполнения квеста <font color=LEVEL>Last Imperial Prince</font>.<br>
2
Quest <font color=\"LEVEL\">Last Imperial Prince</font> is not accomplished or the condition is not suitable.
3
</body></html>
3
</body></html>

Updated trunk/datapack/data/scripts/quests/654_JourneyToSettlement/ok.htm Download diff

919920
1
<html><body>Nameless Spirit:<br>
1
<html><body>Nameless Spirit:<br>
2
Отлично, иди в <font color=LEVEL>Wall Of Agros</font> и охоться на <font color=LEVEL>Canyon Antelope, Canyon Antelope Slave</font>.<br>
2
Well, the fact is... <font color="LEVEL">It is necessary to write down the spells to erase the seal. For instance, it is a parchment</font>.<br>
3
Как добудишь кожу — сразу возвращайся ко мне!
3
Please go to Wall of Argos, and take a small amount of skin of the antelope. It only has to hunt <font color="LEVEL">Canyon Antelope</font> and <font color="LEVEL">Canyon Antelope Slave</font>. These skins are dressed, it becomes the substitute of the parchment.<br> 
4
Oh, that reminds it!<br>
5
<font color="LEVEL">Only the leader of the multi-party command channel</font> has to use the scroll to erase the seal. Someone of companions have a scroll. Therefore, it is not at all members that take the skin of Antelope. Did you understand?
4
</body></html>
6
</body></html>

Updated trunk/datapack/data/scripts/quests/654_JourneyToSettlement/oleni.htm Download diff

919920
1
<html><body>Nameless Spirit:<br>
1
<html><body>Nameless Spirit:<br>
2
Отлично, иди в <font color=LEVEL>Wall Of Agros</font> и охоться на <font color=LEVEL>Canyon Antelope, Canyon Antelope Slave</font>.<br>
2
Well, the fact is... <font color="LEVEL">It is necessary to write down the spells to erase the seal. For instance, it is a parchment</font>.<br>
3
Как добудишь кожу — сразу возвращайся ко мне!
3
Please go to Wall of Argos, and take a small amount of skin of the antelope. It only has to hunt <font color="LEVEL">Canyon Antelope</font> and <font color="LEVEL">Canyon Antelope Slave</font>. These skins are dressed, it becomes the substitute of the parchment.<br> 
4
Oh, that reminds it!<br>
5
<font color="LEVEL">Only the leader of the multi-party command channel</font> has to use the scroll to erase the seal. Someone of companions have a scroll. Therefore, it is not at all members that take the skin of Antelope. Did you understand?
4
</body></html>
6
</body></html>

Updated trunk/datapack/data/scripts/quests/654_JourneyToSettlement/prines.htm Download diff

919920
1
<html><body>Nameless Spirit:<br>
1
<html><body>Nameless Spirit:<br>
2
Спасибо ^_^<br>
2
Then... well-made. The spell will be written in this.<br>
3
Как я и обещал, получайте свою награду.
3
...<font color="LEVEL">Light brushes off the dark, and begins to shine on the concealed gate. The blocked barrier will be put out, and the way to the fact be opened</font>...<br>
4
Completed it. Then, please visit <font color="LEVEL">Frintezza Teleporter</font> near the imperial tomb entrance with your companion. It should be able to meet Frintezza if it does so...<br>
5
(A minimum of four parties may enter; five parties at most can enter. These parties must be organized through a command channel and the command channel leader must possess Frintezza's Magic Force Field Removal Scroll.)
4
</body></html>
6
</body></html>

Updated trunk/datapack/data/scripts/quests/654_JourneyToSettlement/privetstvie.htm Download diff

919920
1
<html><body>Nameless Spirit:<br>
1
<html><body>Nameless Spirit:<br>
2
Привет путник.<br>
2
Welcome. After that, It asked Wigoth after that and the seal was investigated. It seems to be still correct in that song. The seal that Frintezza made from this can be erased. The chance to approach him came.<br>
3
Не мог бы ты помочь мне?
3
And, Could you help put Frintezza to bed? As I told to you before, he cannot be completely defeated by power of us now. However, I think that it can obstruct the thing that he recovers power. In repeating it...<br>
4
<br>
4
<a action="bypass -h Quest 654_JourneytoaSettlement problema.htm">Yes, I help you.</a>
5
<a action="bypass -h Quest 654_JourneyToSettlement problema.htm">"А?что случилось?"</a>
6
</body></html>
5
</body></html>

Updated trunk/datapack/data/scripts/quests/654_JourneyToSettlement/problema.htm Download diff

919920
1
<html><body>Nameless Spirit:<br>
1
<html><body>Nameless Spirit:<br>
2
Моим двойником было вызвано великое зло, которое защищено специальным полем, через которое нельзя пройти!<br>
2
Well, Thank you.<br>
3
Но есть один способ пройти поле, для этого нужен <font color=LEVEL>Frintezza's Magic Force Field Removal Scroll</font><br>
3
Then, I should prepare it so that you and your companion may release the seal. Why the companion?, will you fight against him alone surely? At least, you should gather the companion more than <font color="LEVEL">4 parties</font>. Do not make light of Frintezza that obtains the power of the demon. And, It cannot invade more than <font color="LEVEL">5 parties</font>. Because the place where he is is very small. Therefore, there are no means other than going by <font color="LEVEL">4 or 5 parties</font>.<br> 
4
Я могу помочь тебе с ним, но если ты одолжишь мне услугу, мне нужно <font color=LEVEL>Antelope Skin</font><br>
4
The scroll that writes a spell to erase the seal temporarily is necessary so that you and your companion may invade. Of course, It is not difficult to make the scroll. Because which you clarified the password before. However...<br>
5
<a action="bypass -h Quest 654_JourneyToSettlement ok.htm">"Где мне достать эту ерунду?"</a>
5
<a action="bypass -h Quest 654_JourneytoaSettlement ok.htm">However...?</a>
6
</body></html>
6
</body></html>

Updated trunk/datapack/data/scripts/quests/654_JourneyToSettlement/vernulsa.htm Download diff

919920
1
<html><body>Nameless Spirit:<br>
1
<html><body>Nameless Spirit:<br>
2
Ух, я уже заждался.<br>
2
Thank you. Then, dress the skin. Pulled out the hair, scrape, thin and smooth. Can write down the spell, please.<br>
3
Раздобыл кожу?
3
<a action="bypass -h Quest 654_JourneytoaSettlement prines.htm">Dress the skin.</a>
4
<br>
5
<a action="bypass -h Quest 654_JourneyToSettlement prines.htm">"А то."</a>
6
</body></html>
4
</body></html>

Updated trunk/gameserver/head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance.java Download diff

919920
5650
				sendPacket(ActionFailed.STATIC_PACKET);
5650
				sendPacket(ActionFailed.STATIC_PACKET);
5651
				return;
5651
				return;
5652
			}
5652
			}
5653
5654
			if (!target.getDropProtection().tryPickUp(this))
5653
			if (!target.getDropProtection().tryPickUp(this))
5655
			{
5654
			{
5656
				sendPacket(ActionFailed.STATIC_PACKET);
5655
				sendPacket(ActionFailed.STATIC_PACKET);
...
...
5658
				smsg.addItemName(target.getItemId());
5657
				smsg.addItemName(target.getItemId());
5659
				sendPacket(smsg);
5658
				sendPacket(smsg);
5660
				return;
5659
				return;
5661
			}
5660
			}			
5662
			
5663
			if((isInParty() && getParty().getLootDistribution() == L2Party.ITEM_LOOTER || !isInParty()) && !_inventory.validateCapacity(target))
5661
			if((isInParty() && getParty().getLootDistribution() == L2Party.ITEM_LOOTER || !isInParty()) && !_inventory.validateCapacity(target))
5664
			{
5662
			{
5665
				sendPacket(ActionFailed.STATIC_PACKET);
5663
				sendPacket(ActionFailed.STATIC_PACKET);
5666
				sendPacket(new SystemMessage(SystemMessageId.SLOTS_FULL));
5664
				sendPacket(new SystemMessage(SystemMessageId.SLOTS_FULL));
5667
				return;
5665
				return;
5668
			}
5666
			}
5669
5670
			if(isInvul() && !isGM())
5667
			if(isInvul() && !isGM())
5671
			{
5668
			{
5672
				sendPacket(ActionFailed.STATIC_PACKET);
5669
				sendPacket(ActionFailed.STATIC_PACKET);
...
...
5676
				smsg = null;
5673
				smsg = null;
5677
				return;
5674
				return;
5678
			}
5675
			}
5679
5680
			if(target.getOwnerId() != 0 && target.getOwnerId() != getObjectId() && !isInLooterParty(target.getOwnerId()))
5676
			if(target.getOwnerId() != 0 && target.getOwnerId() != getObjectId() && !isInLooterParty(target.getOwnerId()))
5681
			{
5677
			{
5682
				sendPacket(ActionFailed.STATIC_PACKET);
5678
				sendPacket(ActionFailed.STATIC_PACKET);
...
...
5703
					sendPacket(smsg);
5699
					sendPacket(smsg);
5704
					smsg = null;
5700
					smsg = null;
5705
				}
5701
				}
5706
5707
				return;
5702
				return;
5708
			}
5703
			}
5709
5704
...
...
5765
			{
5760
			{
5766
				addItem("Pickup", target, null, true);
5761
				addItem("Pickup", target, null, true);
5767
5762
5768
			    //Auto-Equip arrows if player has a bow and player picks up arrows. 
5763
			    //Like L2OFF Auto-Equip arrows if player has a bow and player picks up arrows. 
5769
				final L2EtcItem etcItem = (L2EtcItem) target.getItem();
5764
				if(target.getItem() != null && target.getItem().getItemType() == L2EtcItemType.ARROW)
5770
				if (etcItem != null) 
5765
					 checkAndEquipArrows();				     
5771
		 	    {
5772
					final L2EtcItemType itemType = etcItem.getItemType();
5773
					if (itemType == L2EtcItemType.ARROW)
5774
					{
5775
						checkAndEquipArrows();
5776
					}
5777
		 	    }
5778
			}
5766
			}
5779
		}
5767
		}
5780
		target = null;
5768
		target = null;

Updated trunk/gameserver/head-src/com/l2jfrozen/gameserver/model/base/Experience.java Download diff

919920
28
{
28
{
29
	private static FastMap<Integer, Long> experience = new FastMap<Integer, Long>();
29
	private static FastMap<Integer, Long> experience = new FastMap<Integer, Long>();
30
30
31
	public final static long LEVEL[] = { -1L, // level 0 (unreachable)
32
        0L, 68L, 363L, 1168L, 2884L, 6038L, 11287L, 19423L, 31378L, 48229L, // level 10
33
        71201L, 101676L, 141192L, 191452L, 254327L, 331864L, 426284L, 539995L, 675590L, 835854L, // level 20
34
        1023775L, 1242536L, 1495531L, 1786365L, 2118860L, 2497059L, 2925229L, 3407873L, 3949727L, 4555766L, // level 30
35
        5231213L, 5981539L, 6812472L, 7729999L, 8740372L, 9850111L, 11066012L, 12395149L, 13844879L, 15422851L, // level 40
36
        17137002L, 18995573L, 21007103L, 23180442L, 25524751L, 28049509L, 30764519L, 33679907L, 36806133L, 40153995L, // level 50
37
        45524865L, 51262204L, 57383682L, 63907585L, 70852742L, 80700339L, 91162131L, 102265326L, 114038008L, 126509030L, // level 60
38
        146307211L, 167243291L, 189363788L, 212716741L, 237351413L, 271973532L, 308441375L, 346825235L, 387197529L, 429632402L, // level 70
39
        474205751L, 532692055L, 606319094L, 696376867L, 804219972L, 931275828L, 1151275834L, 1511275834L, 2099275834L, 4200000000L, // level 80
40
        6299994999L };
41
	
31
	public static void setExp(int level, long expr)
42
	public static void setExp(int level, long expr)
32
	{
43
	{
33
		experience.put(level, expr);
44
		experience.put(level, expr);

Updated trunk/gameserver/head-src/com/l2jfrozen/gameserver/model/Inventory.java Download diff

919920
1521
	 */
1521
	 */
1522
	public L2ItemInstance findArrowForBow(L2Item bow)
1522
	public L2ItemInstance findArrowForBow(L2Item bow)
1523
	{
1523
	{
1524
		if(bow == null)
1525
		   return null;
1526
		
1524
		int arrowsId = 0;
1527
		int arrowsId = 0;
1525
1528
1526
		switch(bow.getCrystalType())
1529
		switch(bow.getCrystalType())
...
...
1545
				arrowsId = 1345;
1548
				arrowsId = 1345;
1546
				break; // Shining arrow
1549
				break; // Shining arrow
1547
		}
1550
		}
1548
1549
		// Get the L2ItemInstance corresponding to the item identifier and return it
1551
		// Get the L2ItemInstance corresponding to the item identifier and return it
1550
		return getItemByItemId(arrowsId);
1552
		return getItemByItemId(arrowsId);
1551
	}
1553
	}

Updated trunk/gameserver/head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestExEnchantSkill.java Download diff

919920
30
import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
30
import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
31
import com.l2jfrozen.gameserver.model.actor.instance.L2NpcInstance;
31
import com.l2jfrozen.gameserver.model.actor.instance.L2NpcInstance;
32
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
32
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
33
import com.l2jfrozen.gameserver.model.base.Experience;
33
import com.l2jfrozen.gameserver.network.SystemMessageId;
34
import com.l2jfrozen.gameserver.network.SystemMessageId;
34
import com.l2jfrozen.gameserver.network.serverpackets.ShortCutRegister;
35
import com.l2jfrozen.gameserver.network.serverpackets.ShortCutRegister;
35
import com.l2jfrozen.gameserver.network.serverpackets.StatusUpdate;
36
import com.l2jfrozen.gameserver.network.serverpackets.StatusUpdate;
...
...
118
119
119
		if(player.getSp() >= _requiredSp)
120
		if(player.getSp() >= _requiredSp)
120
		{
121
		{
121
			if(player.getExp() >= _requiredExp)
122
			// Like L2OFF you can't delevel during skill enchant
123
			long expAfter = player.getExp() - _requiredExp;
124
			if(player.getExp() >= _requiredExp && expAfter >= Experience.LEVEL[player.getLevel()])
122
			{
125
			{
123
				if(Config.ES_SP_BOOK_NEEDED && (_skillLvl == 101 || _skillLvl == 141)) // only first lvl requires book
126
				if(Config.ES_SP_BOOK_NEEDED && (_skillLvl == 101 || _skillLvl == 141)) // only first lvl requires book
124
				{
127
				{