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

BETA: Reworking Nornil hidden door detection skill from skill handlers to effects.

	* Reviewed by: Nos, Adry_85
parent 89076eb3
No related branches found
No related tags found
No related merge requests found
......@@ -76,6 +76,7 @@ public final class EffectMasterHandler
DefenceTrait.class,
DeleteHate.class,
DeleteHateOfMe.class,
DetectHiddenObjects.class,
Detection.class,
Disarm.class,
DispelAll.class,
......
......@@ -206,7 +206,6 @@ import handlers.punishmenthandlers.ChatBanHandler;
import handlers.punishmenthandlers.JailHandler;
import handlers.skillhandlers.DeluxeKey;
import handlers.skillhandlers.Dummy;
import handlers.skillhandlers.NornilsPower;
import handlers.skillhandlers.Sow;
import handlers.skillhandlers.Unlock;
import handlers.targethandlers.Area;
......@@ -493,7 +492,6 @@ public class MasterHandler
// Skill Handlers
DeluxeKey.class,
Dummy.class,
NornilsPower.class,
Sow.class,
Unlock.class,
},
......
......@@ -16,70 +16,45 @@
* 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 handlers.skillhandlers;
package handlers.effecthandlers;
import com.l2jserver.gameserver.handler.ISkillHandler;
import com.l2jserver.gameserver.instancemanager.InstanceManager;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
import com.l2jserver.gameserver.model.skills.L2Skill;
import com.l2jserver.gameserver.model.skills.L2SkillType;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
import com.l2jserver.gameserver.model.conditions.Condition;
import com.l2jserver.gameserver.model.effects.AbstractEffect;
import com.l2jserver.gameserver.model.skills.BuffInfo;
public class NornilsPower implements ISkillHandler
/**
* @author UnAfraid
*/
public class DetectHiddenObjects extends AbstractEffect
{
private static final L2SkillType[] SKILL_IDS =
public DetectHiddenObjects(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
{
super(attachCond, applyCond, set, params);
}
@Override
public boolean isInstant()
{
L2SkillType.NORNILS_POWER
};
return true;
}
@Override
public void useSkill(L2Character activeChar, L2Skill skill, L2Object[] targets)
public void onStart(BuffInfo info)
{
if (!activeChar.isPlayer())
super.onStart(info);
if (!info.getEffected().isDoor())
{
return;
}
InstanceWorld world = null;
final int instanceId = activeChar.getInstanceId();
if (instanceId > 0)
final L2DoorInstance door = (L2DoorInstance) info.getEffected();
if (door.getTemplate().isStealth())
{
world = InstanceManager.getInstance().getPlayerWorld(activeChar.getActingPlayer());
door.setMeshIndex(1);
door.setTargetable(door.getTemplate().getOpenType() != 0);
door.broadcastStatusUpdate();
}
if ((world != null) && (world.getInstanceId() == instanceId) && (world.getTemplateId() == 11))
{
if (activeChar.isInsideRadius(-107393, 83677, 0, 100, false, true))
{
activeChar.destroyItemByItemId("NornilsPower", 9713, 1, activeChar, true);
L2DoorInstance door = InstanceManager.getInstance().getInstance(world.getInstanceId()).getDoor(16200010);
if (door != null)
{
door.setMeshIndex(1);
door.setTargetable(true);
door.broadcastStatusUpdate();
}
}
else
{
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_CANNOT_BE_USED);
sm.addSkillName(skill);
activeChar.sendPacket(sm);
}
}
else
{
activeChar.sendPacket(SystemMessageId.NOTHING_HAPPENED);
}
}
@Override
public L2SkillType[] getSkillIds()
{
return SKILL_IDS;
}
}
\ No newline at end of file
}
......@@ -25,6 +25,7 @@ import java.util.List;
import com.l2jserver.gameserver.handler.ITargetTypeHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
import com.l2jserver.gameserver.model.skills.L2Skill;
import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
import com.l2jserver.gameserver.model.zone.ZoneId;
......@@ -42,8 +43,18 @@ public class Aura implements ITargetTypeHandler
final Collection<L2Character> objs = activeChar.getKnownList().getKnownCharactersInRadius(skill.getAffectRange());
for (L2Character obj : objs)
{
if (obj.isAttackable() || obj.isPlayable())
if (obj.isDoor() || obj.isAttackable() || obj.isPlayable())
{
// Stealth door targeting.
if (obj.isDoor())
{
final L2DoorInstance door = (L2DoorInstance) obj;
if (!door.getTemplate().isStealth())
{
continue;
}
}
if (!L2Skill.checkForAreaOffensiveSkills(activeChar, obj, skill, srcInArena))
{
continue;
......
......@@ -887,14 +887,22 @@
</cond>
</skill>
<skill id="2353" levels="1" name="Nornil's Power">
<set name="affectRange" val="600" />
<set name="itemConsumeId" val="9713" />
<set name="itemConsumeCount" val="1" />
<set name="hitTime" val="200" />
<set name="magicLvl" val="85" />
<set name="operateType" val="A1" />
<set name="skillType" val="NORNILS_POWER" />
<set name="targetType" val="SELF" />
<set name="targetType" val="AURA" />
<cond msgId="113" addName="1">
<player insideZoneId="2353" />
<and>
<player instanceId="11" />
<player insideZoneId="2353" />
</and>
</cond>
<for>
<effect name="DetectHiddenObjects" />
</for>
</skill>
<skill id="2354" levels="1" name="Gate Key of Darkness">
<!-- Confirmed CT2.5 -->
......
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