Added latest commits for todays sync.
This commit is contained in:
parent
fe25f74122
commit
094651541b
@ -94,7 +94,7 @@ public final class Heal extends AbstractEffect
|
||||
final L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance();
|
||||
if (weaponInst != null)
|
||||
{
|
||||
mAtkMul = weaponInst.getItem().getItemGrade() == CrystalType.S84 ? 4 : weaponInst.getItem().getItemGrade() == CrystalType.S80 ? 2 : 1;
|
||||
mAtkMul = weaponInst.getItem().getCrystalType() == CrystalType.S84 ? 4 : weaponInst.getItem().getCrystalType() == CrystalType.S80 ? 2 : 1;
|
||||
}
|
||||
// shot dynamic bonus
|
||||
mAtkMul = bss ? mAtkMul * 4 : mAtkMul + 1;
|
||||
|
@ -94,7 +94,7 @@ public final class HpCpHeal extends AbstractEffect
|
||||
final L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance();
|
||||
if (weaponInst != null)
|
||||
{
|
||||
mAtkMul = weaponInst.getItem().getItemGrade() == CrystalType.S84 ? 4 : weaponInst.getItem().getItemGrade() == CrystalType.S80 ? 2 : 1;
|
||||
mAtkMul = weaponInst.getItem().getCrystalType() == CrystalType.S84 ? 4 : weaponInst.getItem().getCrystalType() == CrystalType.S80 ? 2 : 1;
|
||||
}
|
||||
// shot dynamic bonus
|
||||
mAtkMul = bss ? mAtkMul * 4 : mAtkMul + 1;
|
||||
|
@ -73,7 +73,7 @@ public class BlessedSpiritShot implements IItemHandler
|
||||
}
|
||||
|
||||
// Check for correct grade
|
||||
boolean gradeCheck = item.isEtcItem() && (item.getEtcItem().getDefaultAction() == ActionType.SPIRITSHOT) && (weaponInst.getItem().getItemGradeSPlus() == item.getItem().getItemGradeSPlus());
|
||||
boolean gradeCheck = item.isEtcItem() && (item.getEtcItem().getDefaultAction() == ActionType.SPIRITSHOT) && (weaponInst.getItem().getCrystalTypePlus() == item.getItem().getCrystalTypePlus());
|
||||
|
||||
if (!gradeCheck)
|
||||
{
|
||||
|
@ -44,7 +44,7 @@ public class CharmOfCourage implements IItemHandler
|
||||
final L2PcInstance activeChar = playable.getActingPlayer();
|
||||
|
||||
int level = activeChar.getLevel();
|
||||
final int itemLevel = item.getItem().getItemGrade().getId();
|
||||
final int itemLevel = item.getItem().getCrystalType().getId();
|
||||
|
||||
if (level < 20)
|
||||
{
|
||||
|
@ -71,7 +71,7 @@ public class FishShots implements IItemHandler
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean gradeCheck = item.isEtcItem() && (item.getEtcItem().getDefaultAction() == ActionType.FISHINGSHOT) && (weaponInst.getItem().getItemGradeSPlus() == item.getItem().getItemGradeSPlus());
|
||||
boolean gradeCheck = item.isEtcItem() && (item.getEtcItem().getDefaultAction() == ActionType.FISHINGSHOT) && (weaponInst.getItem().getCrystalTypePlus() == item.getItem().getCrystalTypePlus());
|
||||
|
||||
if (!gradeCheck)
|
||||
{
|
||||
|
@ -67,7 +67,7 @@ public class SoulShots implements IItemHandler
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean gradeCheck = item.isEtcItem() && (item.getEtcItem().getDefaultAction() == ActionType.SOULSHOT) && (weaponInst.getItem().getItemGradeSPlus() == item.getItem().getItemGradeSPlus());
|
||||
boolean gradeCheck = item.isEtcItem() && (item.getEtcItem().getDefaultAction() == ActionType.SOULSHOT) && (weaponInst.getItem().getCrystalTypePlus() == item.getItem().getCrystalTypePlus());
|
||||
|
||||
if (!gradeCheck)
|
||||
{
|
||||
|
@ -72,7 +72,7 @@ public class SpiritShot implements IItemHandler
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean gradeCheck = item.isEtcItem() && (item.getEtcItem().getDefaultAction() == ActionType.SPIRITSHOT) && (weaponInst.getItem().getItemGradeSPlus() == item.getItem().getItemGradeSPlus());
|
||||
boolean gradeCheck = item.isEtcItem() && (item.getEtcItem().getDefaultAction() == ActionType.SPIRITSHOT) && (weaponInst.getItem().getCrystalTypePlus() == item.getItem().getCrystalTypePlus());
|
||||
|
||||
if (!gradeCheck)
|
||||
{
|
||||
|
@ -18,17 +18,20 @@
|
||||
*/
|
||||
package quests.Q10323_TrainLikeItsReal;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import quests.Q10322_SearchingForTheMysteriousPower.Q10322_SearchingForTheMysteriousPower;
|
||||
|
||||
import com.l2jserver.gameserver.enums.QuestSound;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.holders.ItemHolder;
|
||||
import com.l2jserver.gameserver.model.holders.NpcLogListHolder;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.model.quest.State;
|
||||
import com.l2jserver.gameserver.network.NpcStringId;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExQuestNpcLogList;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
import com.l2jserver.gameserver.network.serverpackets.TutorialShowHtml;
|
||||
|
||||
@ -99,9 +102,6 @@ public class Q10323_TrainLikeItsReal extends Quest
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
final ExQuestNpcLogList packet = new ExQuestNpcLogList(getId());
|
||||
packet.addNpc(TRAINING_GOLEM, 0);
|
||||
player.sendPacket(packet);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
@ -256,9 +256,7 @@ public class Q10323_TrainLikeItsReal extends Quest
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
killedGolem++;
|
||||
final ExQuestNpcLogList packet = new ExQuestNpcLogList(getId());
|
||||
packet.addNpcString(NpcStringId.ELIMINATE_THE_TRAINING_GOLEM, killedGolem);
|
||||
killer.sendPacket(packet);
|
||||
|
||||
if (killedGolem >= 4)
|
||||
{
|
||||
qs.setCond(3, true);
|
||||
@ -266,15 +264,14 @@ public class Q10323_TrainLikeItsReal extends Quest
|
||||
else
|
||||
{
|
||||
qs.setMemoState(killedGolem);
|
||||
sendNpcLogList(killer);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
else if (qs.isCond(6) || qs.isCond(7))
|
||||
{
|
||||
killedGolem++;
|
||||
final ExQuestNpcLogList packet = new ExQuestNpcLogList(getId());
|
||||
packet.addNpcString(NpcStringId.ELIMINATE_THE_TRAINING_GOLEM2, killedGolem);
|
||||
killer.sendPacket(packet);
|
||||
|
||||
if (killedGolem >= 4)
|
||||
{
|
||||
qs.setCond(8, true);
|
||||
@ -282,11 +279,30 @@ public class Q10323_TrainLikeItsReal extends Quest
|
||||
else
|
||||
{
|
||||
qs.setMemoState(killedGolem);
|
||||
sendNpcLogList(killer);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance activeChar)
|
||||
{
|
||||
final QuestState qs = getQuestState(activeChar, false);
|
||||
final Set<NpcLogListHolder> npcLogList = new HashSet<>(1);
|
||||
|
||||
if ((qs != null) && (qs.isCond(2)))
|
||||
{
|
||||
npcLogList.add(new NpcLogListHolder(NpcStringId.ELIMINATE_THE_TRAINING_GOLEM, qs.getMemoState()));
|
||||
return npcLogList;
|
||||
}
|
||||
else if ((qs != null) && (qs.isCond(6) || qs.isCond(7)))
|
||||
{
|
||||
npcLogList.add(new NpcLogListHolder(NpcStringId.ELIMINATE_THE_TRAINING_GOLEM2, qs.getMemoState()));
|
||||
return npcLogList;
|
||||
}
|
||||
return super.getNpcLogList(activeChar);
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
<html><body>Pantheon:<br>
|
||||
Suspicious Types... Now I remember that in recent times have also seen in the Museum of strange personalities. It seemed to me that they are looking for material on the Giants... Maybe they're one of those bands that were seen in the Ruins?<br><br>
|
||||
They tried to steal a book called <font color="LEVEL">War of the Gods and the Giants </ font>. In this ancient manuscript contains information in the power of the Giants, the origin of their powers, monsters era Giants and the like. I am afraid that now, after the fall of the Island of Giants, this information can be used for evil purposes. It is necessary to rearrange the book elsewhere.
|
||||
Suspicious Types... Now I remember that in recent times have also seen in the Museum of strange personalities. It seemed to me that they are looking for material on the Giants... Maybe they're one of those bands that were seen in the Ruins?<br>
|
||||
They tried to steal a book called <font color="LEVEL">War of the Gods and the Giants</font>. In this ancient manuscript contains information in the power of the Giants, the origin of their powers, monsters era Giants and the like. I am afraid that now, after the fall of the Island of Giants, this information can be used for evil purposes. It is necessary to rearrange the book elsewhere.
|
||||
</body></html>
|
@ -1,4 +1,4 @@
|
||||
<html><body>Gallint:<br>
|
||||
Ah-ah! My back... Something I overworked these documents... Ah... I wanted to give something... How am I so... <br>
|
||||
Ah-ah! My back... Something I overworked these documents... Ah... I wanted to give something... How am I so...<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10326_RespectYourElders 32980-02.htm">"Ask describe the problem in detail"</button>
|
||||
</body></html>
|
@ -1,6 +1,6 @@
|
||||
<html><body>Gallint:<br>
|
||||
You know... Today I long for the first time, brought order to the documents. There were so many that had to move folders using magic.<br><br>
|
||||
But these manuscripts was so much dust that I started sneezing. Distracted, and documents that are carried through the air, dropped over. Now sore lower back.<br><br>
|
||||
For three days had passed on his feet I stood up, but moving all Yeshe hard. It was necessary to convey something of the Pantheon. Phew. <br>
|
||||
You know... Today I long for the first time, brought order to the documents. There were so many that had to move folders using magic.<br>
|
||||
But these manuscripts was so much dust that I started sneezing. Distracted, and documents that are carried through the air, dropped over. Now sore lower back.<br>
|
||||
For three days had passed on his feet I stood up, but moving all Yeshe hard. It was necessary to convey something of the Pantheon. Phew.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10326_RespectYourElders 32980-03.htm">"Offer Help"</button>
|
||||
</body></html>
|
@ -1,3 +1,3 @@
|
||||
<html><body>Gallint:<br>
|
||||
You are so kind. <font color="LEVEL">Pantheon</font> <font color="LEVEL">is located at the Museum</font>. Tell him: <font color="LEVEL">"In Esagire caught suspicious characters"</ font>. And pass. I beg you.
|
||||
You are so kind. <font color="LEVEL">Pantheon</font> <font color="LEVEL">is located at the Museum</font>. Tell him: <font color="LEVEL">"In Esagire caught suspicious characters"</font>. And pass. I beg you.
|
||||
</body></html>
|
@ -191,7 +191,11 @@ public class Q10326_RespectYourElders extends Quest
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = npc.getId() == GALLINT ? "32980-01.htm" : "32972-01a.htm";
|
||||
if (npc.getId() == GALLINT)
|
||||
{
|
||||
htmltext = "32980-01.htm";
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
|
@ -343,9 +343,16 @@
|
||||
<item id="17754" name="Soulshot (R-grade)" additionalName="" type="EtcItem">
|
||||
<!-- The power of a higher-level spirit is bestowed upon a weapon, temporarily increasing its P. Atk. significantly. Can be used with an R-grade weapon. -->
|
||||
<set name="icon" val="icon.soulshot_r_i00" />
|
||||
<set name="default_action" val="SOULSHOT" />
|
||||
<set name="crystal_type" val="R" />
|
||||
<set name="weight" val="1" />
|
||||
<set name="price" val="200" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="immediate_effect" val="true" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="price" val="200" />
|
||||
<set name="handler" val="SoulShots" />
|
||||
<set name="item_skill" val="9193-1" />
|
||||
<set name="commissionItemType" val="SOULSHOT" />
|
||||
</item>
|
||||
<item id="17755" name="Human Male Wig - A" additionalName="" type="Armor">
|
||||
<set name="icon" val="BranchSys.icon.br_plastic_hair_f_i00" />
|
||||
|
16
trunk/dist/game/data/stats/items/19400-19499.xml
vendored
16
trunk/dist/game/data/stats/items/19400-19499.xml
vendored
@ -288,16 +288,30 @@
|
||||
<item id="19441" name="Spiritshot (R-grade)" additionalName="" type="EtcItem">
|
||||
<!-- The power of a higher-level spirit is bestowed upon a weapon, temporarily increasing its M. Atk. Can be used with an R-grade weapon. -->
|
||||
<set name="icon" val="icon.spiritshot_r_i00" />
|
||||
<set name="default_action" val="SPIRITSHOT" />
|
||||
<set name="immediate_effect" val="true" />
|
||||
<set name="crystal_type" val="R" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="weight" val="1" />
|
||||
<set name="price" val="300" />
|
||||
<set name="price" val="350" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="handler" val="SpiritShot" />
|
||||
<set name="item_skill" val="9194-1" />
|
||||
<set name="commissionItemType" val="SPIRITSHOT" />
|
||||
</item>
|
||||
<item id="19442" name="Blessed Spiritshot (R-grade)" additionalName="" type="EtcItem">
|
||||
<!-- The power of a higher-level spirit is bestowed upon a weapon, temporarily increasing its M. Atk. significantly. Can be used with an R-grade weapon. -->
|
||||
<set name="icon" val="icon.blessed_spiritshot_r_i00" />
|
||||
<set name="default_action" val="SPIRITSHOT" />
|
||||
<set name="immediate_effect" val="true" />
|
||||
<set name="crystal_type" val="R" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="weight" val="1" />
|
||||
<set name="price" val="750" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="handler" val="BlessedSpiritShot" />
|
||||
<set name="item_skill" val="9195-1" />
|
||||
<set name="commissionItemType" val="SPIRITSHOT" />
|
||||
</item>
|
||||
<item id="19443" name="Orichalcum Bolt" additionalName="" type="EtcItem">
|
||||
<!-- Bolt made of Orichalcum. Used as bolts for R-grade Crossbows. -->
|
||||
|
16
trunk/dist/game/data/stats/items/22400-22499.xml
vendored
16
trunk/dist/game/data/stats/items/22400-22499.xml
vendored
@ -211,12 +211,28 @@
|
||||
<item id="22433" name="Soulshot (R-grade)" additionalName="" type="EtcItem">
|
||||
<!-- The power of a higher-level spirit is bestowed upon a weapon, temporarily increasing its P. Atk. significantly. Can be used with an R-grade weapon. -->
|
||||
<set name="icon" val="icon.soulshot_r_i00" />
|
||||
<set name="default_action" val="SOULSHOT" />
|
||||
<set name="crystal_type" val="R" />
|
||||
<set name="weight" val="1" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="immediate_effect" val="true" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="price" val="1000" />
|
||||
<set name="handler" val="SoulShots" />
|
||||
<set name="item_skill" val="9193-1" />
|
||||
</item>
|
||||
<item id="22434" name="Blessed Spiritshot (R-grade)" additionalName="" type="EtcItem">
|
||||
<!-- The power of a higher-level spirit is bestowed upon a weapon, temporarily increasing its M. Atk. significantly. Can be used with an R-grade weapon. -->
|
||||
<set name="icon" val="icon.blessed_spiritshot_r_i00" />
|
||||
<set name="default_action" val="SPIRITSHOT" />
|
||||
<set name="immediate_effect" val="true" />
|
||||
<set name="crystal_type" val="R" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="weight" val="1" />
|
||||
<set name="price" val="350" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="handler" val="BlessedSpiritShot" />
|
||||
<set name="item_skill" val="9195-1" />
|
||||
</item>
|
||||
<item id="22435" name="Scroll of Escape" additionalName="" type="EtcItem">
|
||||
<!-- Magic scroll that moves you to the nearest village. Weight is 0. -->
|
||||
|
15
trunk/dist/game/data/stats/items/22800-22899.xml
vendored
15
trunk/dist/game/data/stats/items/22800-22899.xml
vendored
@ -720,12 +720,27 @@
|
||||
<item id="22888" name="Mysterious Soulshot (R-grade)" additionalName="" type="EtcItem">
|
||||
<!-- Dimensional Item\nThe power of a spirit is bestowed upon a weapon, momentarily increasing its P. Atk. significantly. Can be used with an R-grade weapon. Cannot be exchanged or dropped. Can be stored in a private warehouse. Can be shared within an account through the Dimensional Merchant. -->
|
||||
<set name="icon" val="icon.bm_soulshot_purple" />
|
||||
<set name="default_action" val="SOULSHOT" />
|
||||
<set name="crystal_type" val="R" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="immediate_effect" val="true" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="price" val="1000" />
|
||||
<set name="handler" val="SoulShots" />
|
||||
<set name="item_skill" val="9193-1" />
|
||||
</item>
|
||||
<item id="22889" name="Mysterious Blessed Spiritshot (R-grade)" additionalName="" type="EtcItem">
|
||||
<!-- Dimensional Item\nThe power of a higher-level spirit is bestowed upon a weapon, momentarily increasing its M. Atk. significantly. Can be used with an R-grade weapon. Cannot be exchanged or dropped. Can be stored in a private warehouse. Can be shared within an account through the Dimensional Merchant. -->
|
||||
<set name="icon" val="icon.bm_spell_shot_purple" />
|
||||
<set name="default_action" val="SPIRITSHOT" />
|
||||
<set name="immediate_effect" val="true" />
|
||||
<set name="crystal_type" val="R" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="weight" val="1" />
|
||||
<set name="price" val="350" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="handler" val="BlessedSpiritShot" />
|
||||
<set name="item_skill" val="9195-1" />
|
||||
</item>
|
||||
<item id="22890" name="Mysterious Blessed Soulshot Pack (10000) (R-grade)" additionalName="" type="EtcItem">
|
||||
<!-- Pack containing 10,000 Mysterious Soulshots (R-grade). -->
|
||||
|
16
trunk/dist/game/data/stats/items/34600-34699.xml
vendored
16
trunk/dist/game/data/stats/items/34600-34699.xml
vendored
@ -49,7 +49,14 @@
|
||||
<item id="34609" name="Mysterious Soulshot (R-grade)" additionalName="Event" type="EtcItem">
|
||||
<!-- The power of a higher-level spirit is bestowed upon a weapon, temporarily increasing its P. Atk. significantly. Can be used with an R-grade weapon. -->
|
||||
<set name="icon" val="icon.soulshot_r_i00" />
|
||||
<set name="default_action" val="SOULSHOT" />
|
||||
<set name="crystal_type" val="R" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="immediate_effect" val="true" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="price" val="1000" />
|
||||
<set name="handler" val="SoulShots" />
|
||||
<set name="item_skill" val="9193-1" />
|
||||
</item>
|
||||
<item id="34610" name="Mysterious Blessed No-grade Spiritshot" additionalName="Event" type="EtcItem">
|
||||
<!-- The power of a higher-level spirit is bestowed upon a weapon, temporarily increasing its magic significantly. Used with No-grade weapons. -->
|
||||
@ -84,7 +91,16 @@
|
||||
<item id="34616" name="Mysterious Blessed Spiritshot (R-grade)" additionalName="Event" type="EtcItem">
|
||||
<!-- The power of a higher-level spirit is bestowed upon a weapon, temporarily increasing its M. Atk. significantly. Can be used with an R-grade weapon. -->
|
||||
<set name="icon" val="icon.blessed_spiritshot_r_i00" />
|
||||
<set name="default_action" val="SPIRITSHOT" />
|
||||
<set name="immediate_effect" val="true" />
|
||||
<set name="crystal_type" val="R" />
|
||||
<set name="material" val="PAPER" />
|
||||
<set name="weight" val="1" />
|
||||
<set name="price" val="350" />
|
||||
<set name="is_stackable" val="true" />
|
||||
<set name="handler" val="BlessedSpiritShot" />
|
||||
<set name="item_skill" val="9195-1" />
|
||||
<set name="commissionItemType" val="SPIRITSHOT" />
|
||||
</item>
|
||||
<item id="34617" name="Player Commendation - Agathion's Gift" additionalName="PC-exclusive" type="EtcItem">
|
||||
<!-- When used, you can receive an Agathion's gift. -->
|
||||
|
@ -127,7 +127,7 @@ public class EnchantItemHPBonusData implements IXmlReader
|
||||
*/
|
||||
public final int getHPBonus(L2ItemInstance item)
|
||||
{
|
||||
final List<Integer> values = _armorHPBonuses.get(item.getItem().getItemGradeSPlus());
|
||||
final List<Integer> values = _armorHPBonuses.get(item.getItem().getCrystalTypePlus());
|
||||
if ((values == null) || values.isEmpty() || (item.getOlyEnchantLevel() <= 0))
|
||||
{
|
||||
return 0;
|
||||
|
61
trunk/java/com/l2jserver/gameserver/enums/ItemGrade.java
Normal file
61
trunk/java/com/l2jserver/gameserver/enums/ItemGrade.java
Normal file
@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2015 L2J Server
|
||||
*
|
||||
* This file is part of L2J Server.
|
||||
*
|
||||
* L2J Server is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J Server is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.l2jserver.gameserver.enums;
|
||||
|
||||
import com.l2jserver.gameserver.model.items.type.CrystalType;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
*/
|
||||
public enum ItemGrade
|
||||
{
|
||||
NONE,
|
||||
D,
|
||||
C,
|
||||
B,
|
||||
A,
|
||||
S,
|
||||
R;
|
||||
|
||||
public static ItemGrade valueOf(CrystalType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case NONE:
|
||||
return NONE;
|
||||
case D:
|
||||
return D;
|
||||
case C:
|
||||
return C;
|
||||
case B:
|
||||
return B;
|
||||
case A:
|
||||
return A;
|
||||
case S:
|
||||
case S80:
|
||||
case S84:
|
||||
return S;
|
||||
case R:
|
||||
case R95:
|
||||
case R99:
|
||||
return R;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
@ -41,11 +41,6 @@ public class Hit
|
||||
addMask(AttackType.MISSED);
|
||||
return;
|
||||
}
|
||||
else if (target.isInvul() || (shld > 0))
|
||||
{
|
||||
addMask(AttackType.BLOCKED);
|
||||
return;
|
||||
}
|
||||
|
||||
if (crit)
|
||||
{
|
||||
@ -56,6 +51,11 @@ public class Hit
|
||||
{
|
||||
addMask(AttackType.SHOT_USED);
|
||||
}
|
||||
|
||||
if (target.isInvul() || (shld > 0))
|
||||
{
|
||||
addMask(AttackType.BLOCKED);
|
||||
}
|
||||
}
|
||||
|
||||
private void addMask(AttackType type)
|
||||
|
@ -1090,7 +1090,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
||||
// the hit is calculated to happen halfway to the animation - might need further tuning e.g. in bow case
|
||||
final int timeToHit = timeAtk / 2;
|
||||
_attackEndTime = System.currentTimeMillis() + timeAtk;
|
||||
final int ssGrade = (weaponItem != null) ? weaponItem.getItemGradeSPlus().getId() : 0;
|
||||
final int ssGrade = (weaponItem != null) ? weaponItem.getItemGrade().ordinal() : 0;
|
||||
// Create a Server->Client packet Attack
|
||||
Attack attack = new Attack(this, target, wasSSCharged, ssGrade);
|
||||
|
||||
@ -2628,7 +2628,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
||||
{
|
||||
if (_ai == null)
|
||||
{
|
||||
_ai = initAI();
|
||||
return _ai = initAI();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1749,7 +1749,7 @@ public abstract class Inventory extends ItemContainer
|
||||
|
||||
for (L2ItemInstance item : getItems())
|
||||
{
|
||||
if (item.isEtcItem() && (item.getItem().getItemGradeSPlus() == bow.getItemGradeSPlus()) && (item.getEtcItem().getItemType() == EtcItemType.ARROW))
|
||||
if (item.isEtcItem() && (item.getItem().getCrystalTypePlus() == bow.getCrystalTypePlus()) && (item.getEtcItem().getItemType() == EtcItemType.ARROW))
|
||||
{
|
||||
arrow = item;
|
||||
break;
|
||||
@ -1771,7 +1771,7 @@ public abstract class Inventory extends ItemContainer
|
||||
|
||||
for (L2ItemInstance item : getItems())
|
||||
{
|
||||
if (item.isEtcItem() && (item.getItem().getItemGradeSPlus() == crossbow.getItemGradeSPlus()) && (item.getEtcItem().getItemType() == EtcItemType.BOLT))
|
||||
if (item.isEtcItem() && (item.getItem().getCrystalTypePlus() == crossbow.getCrystalTypePlus()) && (item.getEtcItem().getItemType() == EtcItemType.BOLT))
|
||||
{
|
||||
bolt = item;
|
||||
break;
|
||||
|
@ -26,6 +26,7 @@ import java.util.logging.Logger;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.ItemTable;
|
||||
import com.l2jserver.gameserver.enums.ItemGrade;
|
||||
import com.l2jserver.gameserver.model.Elementals;
|
||||
import com.l2jserver.gameserver.model.L2Object;
|
||||
import com.l2jserver.gameserver.model.PcCondOverride;
|
||||
@ -388,6 +389,14 @@ public abstract class L2Item extends ListenersContainer implements IIdentifiable
|
||||
return (_crystalType != CrystalType.NONE) && (_crystalCount > 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return return General item grade (No S80, S84, R95, R99)
|
||||
*/
|
||||
public ItemGrade getItemGrade()
|
||||
{
|
||||
return ItemGrade.valueOf(_crystalType);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the type of crystal if item is crystallizable
|
||||
* @return CrystalType
|
||||
@ -407,30 +416,21 @@ public abstract class L2Item extends ListenersContainer implements IIdentifiable
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the grade of the item.<BR>
|
||||
* <BR>
|
||||
* <U><I>Concept :</I></U><BR>
|
||||
* In fact, this function returns the type of crystal of the item.
|
||||
* @return CrystalType
|
||||
*/
|
||||
public final CrystalType getItemGrade()
|
||||
{
|
||||
return getCrystalType();
|
||||
}
|
||||
|
||||
/**
|
||||
* For grades S80 and S84 return S
|
||||
* For grades S80 and S84 return S, R95, and R99 return R
|
||||
* @return the grade of the item.
|
||||
*/
|
||||
public final CrystalType getItemGradeSPlus()
|
||||
public final CrystalType getCrystalTypePlus()
|
||||
{
|
||||
switch (getItemGrade())
|
||||
switch (_crystalType)
|
||||
{
|
||||
case S80:
|
||||
case S84:
|
||||
return CrystalType.S;
|
||||
case R95:
|
||||
case R99:
|
||||
return CrystalType.R;
|
||||
default:
|
||||
return getItemGrade();
|
||||
return _crystalType;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -77,7 +77,7 @@ public class L2WarehouseItem
|
||||
_enchant = item.getEnchantLevel();
|
||||
_customType1 = item.getCustomType1();
|
||||
_customType2 = item.getCustomType2();
|
||||
_grade = item.getItem().getItemGrade();
|
||||
_grade = item.getItem().getCrystalType();
|
||||
if (item.isAugmented())
|
||||
{
|
||||
_isAugmented = true;
|
||||
|
@ -137,7 +137,7 @@ public abstract class AbstractEnchantItem
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if (_grade != itemToEnchant.getItem().getItemGradeSPlus())
|
||||
else if (_grade != itemToEnchant.getItem().getCrystalTypePlus())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -80,7 +80,7 @@ public class FuncEnchant extends AbstractFunction
|
||||
|
||||
if (getStat() == Stats.MAGIC_ATTACK)
|
||||
{
|
||||
switch (item.getItem().getItemGradeSPlus())
|
||||
switch (item.getItem().getCrystalTypePlus())
|
||||
{
|
||||
case S:
|
||||
// M. Atk. increases by 4 for all weapons.
|
||||
@ -107,7 +107,7 @@ public class FuncEnchant extends AbstractFunction
|
||||
if (item.isWeapon())
|
||||
{
|
||||
final WeaponType type = (WeaponType) item.getItemType();
|
||||
switch (item.getItem().getItemGradeSPlus())
|
||||
switch (item.getItem().getCrystalTypePlus())
|
||||
{
|
||||
case S:
|
||||
if (item.getWeaponItem().getBodyPart() == L2Item.SLOT_LR_HAND)
|
||||
|
@ -227,7 +227,7 @@ public abstract class AbstractRefinePacket extends L2GameClientPacket
|
||||
return false;
|
||||
}
|
||||
|
||||
final CrystalType grade = item.getItem().getItemGrade();
|
||||
final CrystalType grade = item.getItem().getCrystalType();
|
||||
final LifeStone ls = _lifeStones.get(refinerItem.getId());
|
||||
|
||||
// Check for item id
|
||||
|
@ -141,7 +141,7 @@ public final class RequestAutoSoulShot extends L2GameClientPacket
|
||||
{
|
||||
final boolean isSoulshot = (item.getEtcItem().getDefaultAction() == ActionType.SOULSHOT) || (item.getEtcItem().getDefaultAction() == ActionType.FISHINGSHOT);
|
||||
final boolean isSpiritshot = item.getEtcItem().getDefaultAction() == ActionType.SPIRITSHOT;
|
||||
if ((activeChar.getActiveWeaponItem() == activeChar.getFistsWeaponItem()) || (item.getItem().getCrystalType() != activeChar.getActiveWeaponItem().getItemGradeSPlus()))
|
||||
if ((activeChar.getActiveWeaponItem() == activeChar.getFistsWeaponItem()) || (item.getItem().getCrystalType() != activeChar.getActiveWeaponItem().getCrystalTypePlus()))
|
||||
{
|
||||
activeChar.sendPacket(isSoulshot ? SystemMessageId.THE_SOULSHOT_YOU_ARE_ATTEMPTING_TO_USE_DOES_NOT_MATCH_THE_GRADE_OF_YOUR_EQUIPPED_WEAPON : SystemMessageId.YOUR_SPIRITSHOT_DOES_NOT_MATCH_THE_WEAPON_S_GRADE);
|
||||
return;
|
||||
|
@ -82,7 +82,7 @@ public final class RequestConfirmGemStone extends AbstractRefinePacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (_gemStoneCount != getGemStoneCount(targetItem.getItem().getItemGrade(), ls.getGrade()))
|
||||
if (_gemStoneCount != getGemStoneCount(targetItem.getItem().getCrystalType(), ls.getGrade()))
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.GEMSTONE_QUANTITY_IS_INCORRECT);
|
||||
return;
|
||||
|
@ -70,7 +70,7 @@ public class RequestConfirmRefinerItem extends AbstractRefinePacket
|
||||
}
|
||||
|
||||
final int refinerItemId = refinerItem.getItem().getId();
|
||||
final CrystalType grade = targetItem.getItem().getItemGrade();
|
||||
final CrystalType grade = targetItem.getItem().getCrystalType();
|
||||
final LifeStone ls = getLifeStone(refinerItemId);
|
||||
final int gemStoneId = getGemStoneId(grade);
|
||||
final int gemStoneCount = getGemStoneCount(grade, ls.getGrade());
|
||||
|
@ -141,7 +141,7 @@ public final class RequestCrystallizeItem extends L2GameClientPacket
|
||||
// Check if the char can crystallize items and return if false;
|
||||
boolean canCrystallize = true;
|
||||
|
||||
switch (itemToRemove.getItem().getItemGradeSPlus())
|
||||
switch (itemToRemove.getItem().getCrystalTypePlus())
|
||||
{
|
||||
case D:
|
||||
{
|
||||
|
@ -87,7 +87,7 @@ public final class RequestRefine extends AbstractRefinePacket
|
||||
|
||||
final int lifeStoneLevel = ls.getLevel();
|
||||
final int lifeStoneGrade = ls.getGrade();
|
||||
if (_gemStoneCount != getGemStoneCount(targetItem.getItem().getItemGrade(), lifeStoneGrade))
|
||||
if (_gemStoneCount != getGemStoneCount(targetItem.getItem().getCrystalType(), lifeStoneGrade))
|
||||
{
|
||||
activeChar.sendPacket(new ExVariationResult(0, 0, 0));
|
||||
activeChar.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS);
|
||||
|
@ -120,7 +120,7 @@ public class RequestCrystallizeEstimate extends L2GameClientPacket
|
||||
// Check if the char can crystallize items and return if false;
|
||||
boolean canCrystallize = true;
|
||||
|
||||
switch (item.getItem().getItemGradeSPlus())
|
||||
switch (item.getItem().getCrystalTypePlus())
|
||||
{
|
||||
case D:
|
||||
{
|
||||
|
@ -61,7 +61,7 @@ public class ExQuestNpcLogList extends L2GameServerPacket
|
||||
writeC(_npcLogList.size());
|
||||
for (NpcLogListHolder holder : _npcLogList)
|
||||
{
|
||||
writeD((holder.getId()));
|
||||
writeD(holder.getId());
|
||||
writeC(holder.isNpcString() ? 0x01 : 0x00);
|
||||
writeD(holder.getCount());
|
||||
}
|
||||
|
@ -324,7 +324,7 @@ public class UserInfo extends AbstractMaskPacket<UserInfoType>
|
||||
writeC(_activeChar.getInventory().getTalismanSlots()); // Confirmed
|
||||
writeC(_activeChar.getInventory().getBroochJewelSlots()); // Confirmed
|
||||
writeC(_activeChar.getTeam().getId()); // Confirmed
|
||||
writeC(0x00); // Red dotted ring on the floor
|
||||
writeC(0x00); // (1 = Red, 2 = White, 3 = White Pink) dotted ring on the floor
|
||||
writeC(0x00);
|
||||
writeC(0x00);
|
||||
writeC(0x00);
|
||||
|
Loading…
Reference in New Issue
Block a user