Skip to content
Snippets Groups Projects
Commit 235566b3 authored by Rumen Nikiforov's avatar Rumen Nikiforov
Browse files

BETA: DP-Part for [L5373]

parent 5c22a683
No related branches found
No related tags found
No related merge requests found
......@@ -14,12 +14,15 @@
*/
package handlers.itemhandlers;
import java.util.logging.Level;
import com.l2jserver.gameserver.handler.IItemHandler;
import com.l2jserver.gameserver.model.actor.L2Playable;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.items.L2Item;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.model.items.L2Weapon;
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
import com.l2jserver.gameserver.model.items.type.L2ActionType;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
import com.l2jserver.gameserver.util.Broadcast;
......@@ -27,16 +30,26 @@ import com.l2jserver.gameserver.util.Broadcast;
public class BlessedSpiritShot implements IItemHandler
{
@Override
public synchronized boolean useItem(L2Playable playable, L2ItemInstance item, boolean forceUse)
public boolean useItem(L2Playable playable, L2ItemInstance item, boolean forceUse)
{
if (!(playable instanceof L2PcInstance))
if (!playable.isPlayer())
{
return false;
}
L2PcInstance activeChar = (L2PcInstance) playable;
L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance();
L2Weapon weaponItem = activeChar.getActiveWeaponItem();
final SkillHolder[] skills = item.getItem().getSkills();
int itemId = item.getItemId();
if (skills == null)
{
_log.log(Level.WARNING, getClass().getSimpleName() + ": is missing skills!");
return false;
}
// Check if Blessed SpiritShot can be used
if (weaponInst == null || weaponItem == null || weaponItem.getSpiritShotCount() == 0)
{
......@@ -50,39 +63,7 @@ public class BlessedSpiritShot implements IItemHandler
return false;
// Check for correct grade
final int weaponGrade = weaponItem.getCrystalType();
boolean gradeCheck = true;
switch (weaponGrade)
{
case L2Item.CRYSTAL_NONE:
if (itemId != 3947)
gradeCheck = false;
break;
case L2Item.CRYSTAL_D:
if (itemId != 3948 && itemId != 22072)
gradeCheck = false;
break;
case L2Item.CRYSTAL_C:
if (itemId != 3949 && itemId != 22073)
gradeCheck = false;
break;
case L2Item.CRYSTAL_B:
if (itemId != 3950 && itemId != 22074)
gradeCheck = false;
break;
case L2Item.CRYSTAL_A:
if (itemId != 3951 && itemId != 22075)
gradeCheck = false;
break;
case L2Item.CRYSTAL_S:
case L2Item.CRYSTAL_S80:
case L2Item.CRYSTAL_S84:
if (itemId != 3952 && itemId != 22076)
gradeCheck = false;
break;
}
boolean gradeCheck = item.isEtcItem() && item.getEtcItem().getDefaultAction() == L2ActionType.spiritshot && weaponInst.getItem().getItemGradeSPlus() == item.getItem().getItemGradeSPlus();
if (!gradeCheck)
{
......@@ -92,7 +73,6 @@ public class BlessedSpiritShot implements IItemHandler
return false;
}
// Consume Blessed SpiritShot if player has enough of them
if (!activeChar.destroyItemWithoutTrace("Consume", item.getObjectId(), weaponItem.getSpiritShotCount(), null, false))
{
......@@ -106,45 +86,7 @@ public class BlessedSpiritShot implements IItemHandler
// Send message to client
activeChar.sendPacket(SystemMessageId.ENABLED_SPIRITSHOT);
int skillId = 0;
switch (itemId)
{
case 3947:
skillId=2061;
break;
case 3948:
skillId=2160;
break;
case 3949:
skillId=2161;
break;
case 3950:
skillId=2162;
break;
case 3951:
skillId=2163;
break;
case 3952:
skillId=2164;
break;
case 22072:
skillId=26050;
break;
case 22073:
skillId=26051;
break;
case 22074:
skillId=26052;
break;
case 22075:
skillId=26053;
break;
case 22076:
skillId=26054;
break;
}
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skillId, 1, 0, 0), 360000);
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 360000);
return true;
}
}
......@@ -14,12 +14,15 @@
*/
package handlers.itemhandlers;
import java.util.logging.Level;
import com.l2jserver.gameserver.handler.IItemHandler;
import com.l2jserver.gameserver.model.actor.L2Playable;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.items.L2Item;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.model.items.L2Weapon;
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
import com.l2jserver.gameserver.model.items.type.L2ActionType;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
import com.l2jserver.gameserver.util.Broadcast;
......@@ -30,7 +33,7 @@ public class SoulShots implements IItemHandler
@Override
public boolean useItem(L2Playable playable, L2ItemInstance item, boolean forceUse)
{
if (!(playable instanceof L2PcInstance))
if (!playable.isPlayer())
{
return false;
}
......@@ -38,7 +41,15 @@ public class SoulShots implements IItemHandler
final L2PcInstance activeChar = playable.getActingPlayer();
final L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance();
final L2Weapon weaponItem = activeChar.getActiveWeaponItem();
final int itemId = item.getItemId();
final SkillHolder[] skills = item.getItem().getSkills();
int itemId = item.getItemId();
if (skills == null)
{
_log.log(Level.WARNING, getClass().getSimpleName() + ": is missing skills!");
return false;
}
// Check if Soul shot can be used
if ((weaponInst == null) || (weaponItem.getSoulShotCount() == 0))
......@@ -50,49 +61,7 @@ public class SoulShots implements IItemHandler
return false;
}
boolean gradeCheck = true;
final int weaponGrade = weaponItem.getCrystalType();
switch (weaponGrade)
{
case L2Item.CRYSTAL_NONE:
if ((itemId != 5789) && (itemId != 1835))
{
gradeCheck = false;
}
break;
case L2Item.CRYSTAL_D:
if ((itemId != 1463) && (itemId != 22082))
{
gradeCheck = false;
}
break;
case L2Item.CRYSTAL_C:
if ((itemId != 1464) && (itemId != 22083))
{
gradeCheck = false;
}
break;
case L2Item.CRYSTAL_B:
if ((itemId != 1465) && (itemId != 22084))
{
gradeCheck = false;
}
break;
case L2Item.CRYSTAL_A:
if ((itemId != 1466) && (itemId != 22085))
{
gradeCheck = false;
}
break;
case L2Item.CRYSTAL_S:
case L2Item.CRYSTAL_S80:
case L2Item.CRYSTAL_S84:
if ((itemId != 1467) && (itemId != 22086))
{
gradeCheck = false;
}
break;
}
boolean gradeCheck = item.isEtcItem() && item.getEtcItem().getDefaultAction() == L2ActionType.soulshot && weaponInst.getItem().getItemGradeSPlus() == item.getItem().getItemGradeSPlus();
if (!gradeCheck)
{
......@@ -134,47 +103,10 @@ public class SoulShots implements IItemHandler
{
activeChar.soulShotLock.unlock();
}
int skillId = 0;
switch (itemId)
{
case 1835:
case 5789:
skillId = 2039;
break;
case 1463:
skillId = 2150;
break;
case 1464:
skillId = 2151;
break;
case 1465:
skillId = 2152;
break;
case 1466:
skillId = 2153;
break;
case 1467:
skillId = 2154;
break;
case 22082:
skillId = 26060;
break;
case 22083:
skillId = 26061;
break;
case 22084:
skillId = 26062;
break;
case 22085:
skillId = 26063;
break;
case 22086:
skillId = 26064;
break;
}
// Send message to client
activeChar.sendPacket(SystemMessageId.ENABLED_SOULSHOT);
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skillId, 1, 0, 0), 360000);
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 360000);
return true;
}
}
......@@ -14,12 +14,15 @@
*/
package handlers.itemhandlers;
import java.util.logging.Level;
import com.l2jserver.gameserver.handler.IItemHandler;
import com.l2jserver.gameserver.model.actor.L2Playable;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.items.L2Item;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.model.items.L2Weapon;
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
import com.l2jserver.gameserver.model.items.type.L2ActionType;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
import com.l2jserver.gameserver.util.Broadcast;
......@@ -27,16 +30,26 @@ import com.l2jserver.gameserver.util.Broadcast;
public class SpiritShot implements IItemHandler
{
@Override
public synchronized boolean useItem(L2Playable playable, L2ItemInstance item, boolean forceUse)
public boolean useItem(L2Playable playable, L2ItemInstance item, boolean forceUse)
{
if (!(playable instanceof L2PcInstance))
if (!playable.isPlayer())
{
return false;
}
final L2PcInstance activeChar = (L2PcInstance) playable;
final L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance();
final L2Weapon weaponItem = activeChar.getActiveWeaponItem();
final SkillHolder[] skills = item.getItem().getSkills();
L2PcInstance activeChar = (L2PcInstance) playable;
L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance();
L2Weapon weaponItem = activeChar.getActiveWeaponItem();
int itemId = item.getItemId();
if (skills == null)
{
_log.log(Level.WARNING, getClass().getSimpleName() + ": is missing skills!");
return false;
}
// Check if Spirit shot can be used
if (weaponInst == null || weaponItem.getSpiritShotCount() == 0)
{
......@@ -49,39 +62,7 @@ public class SpiritShot implements IItemHandler
if (weaponInst.getChargedSpiritshot() != L2ItemInstance.CHARGED_NONE)
return false;
final int weaponGrade = weaponItem.getCrystalType();
boolean gradeCheck = true;
switch (weaponGrade)
{
case L2Item.CRYSTAL_NONE:
if (itemId != 5790 && itemId != 2509)
gradeCheck = false;
break;
case L2Item.CRYSTAL_D:
if (itemId != 2510 && itemId != 22077)
gradeCheck = false;
break;
case L2Item.CRYSTAL_C:
if (itemId != 2511 && itemId != 22078)
gradeCheck = false;
break;
case L2Item.CRYSTAL_B:
if (itemId != 2512 && itemId != 22079)
gradeCheck = false;
break;
case L2Item.CRYSTAL_A:
if (itemId != 2513 && itemId != 22080)
gradeCheck = false;
break;
case L2Item.CRYSTAL_S:
case L2Item.CRYSTAL_S80:
case L2Item.CRYSTAL_S84:
if (itemId != 2514 && itemId != 22081)
gradeCheck = false;
break;
}
boolean gradeCheck = item.isEtcItem() && item.getEtcItem().getDefaultAction() == L2ActionType.spiritshot && weaponInst.getItem().getItemGradeSPlus() == item.getItem().getItemGradeSPlus();
if (!gradeCheck)
{
......@@ -101,48 +82,10 @@ public class SpiritShot implements IItemHandler
// Charge Spirit shot
weaponInst.setChargedSpiritshot(L2ItemInstance.CHARGED_SPIRITSHOT);
int skillId = 0;
switch (itemId)
{
case 2509:
case 5790:
skillId=2061;
break;
case 2510:
skillId=2155;
break;
case 2511:
skillId=2156;
break;
case 2512:
skillId=2157;
break;
case 2513:
skillId=2158;
break;
case 2514:
skillId=2159;
break;
case 22077:
skillId=26055;
break;
case 22078:
skillId=26056;
break;
case 22079:
skillId=26057;
break;
case 22080:
skillId=26058;
break;
case 22081:
skillId=26059;
break;
}
// Send message to client
activeChar.sendPacket(SystemMessageId.ENABLED_SPIRITSHOT);
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skillId, 1, 0, 0), 360000);
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 360000);
return true;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment