=Legend= Posted September 2, 2009 Posted September 2, 2009 this came out just today on l2j <skill id="922" levels="1" name="Hide"> <set name="target" val="TARGET_SELF" /> <set name="skillType" val="BUFF" /> <set name="reuseDelay" val="180000" /> <set name="operateType" val="OP_ACTIVE" /> - <for> - <effect count="1" name="Hide" time="30" val="0"> <mul order="0x30" stat="runSpd" val="0.7" /> </effect> </for> just do an update ,or just copy this code (should work) Quote
Emrys Posted September 2, 2009 Posted September 2, 2009 this came out just today on l2j <skill id="922" levels="1" name="Hide"> <set name="target" val="TARGET_SELF" /> <set name="skillType" val="BUFF" /> <set name="reuseDelay" val="180000" /> <set name="operateType" val="OP_ACTIVE" /> - <for> - <effect count="1" name="Hide" time="30" val="0"> <mul order="0x30" stat="runSpd" val="0.7" /> </effect> </for> just do an update ,or just copy this code where is core??? It is need and the core support to work... Yes for Final only Quote
ExTrEmEDwarf Posted September 2, 2009 Posted September 2, 2009 it makes you invisible for 30 seconds, like //invis. i dont think it needs core support :s Quote
Emrys Posted September 2, 2009 Posted September 2, 2009 it makes you invisible for 30 seconds, like //invis. i dont think it needs core support :s yes it needs.. I used to see l2j forum.... Core: ### Eclipse Workspace Patch 1.0 #P Clean_Core Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 3057) +++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -313,18 +313,28 @@ L2PcInstance.this.doInteract(target); } - @Override + @SuppressWarnings("synthetic-access") + @Override public void doAttack(L2Character target) { + if(!isGM() && _appearance.getInvisible()) + { + stopEffects(L2EffectType.HIDE); + } super.doAttack(target); // cancel the recent fake-death protection instantly if the player attacks or casts spells getPlayer().setRecentFakeDeath(false); } - @Override + @SuppressWarnings("synthetic-access") + @Override public void doCast(L2Skill skill) { + if(!isGM() && _appearance.getInvisible()) + { + stopEffects(L2EffectType.HIDE); + } super.doCast(skill); // cancel the recent fake-death protection instantly if the player attacks or casts spells @@ -1240,6 +1250,7 @@ destroyItem("CombatFlag", getInventory().getItemByItemId(9819), null, true); } } + if(isHiding()) stopEffects(L2EffectType.HIDE); // Stops hiding to avoid duplicate character on login closeNetConnection(); } @@ -13349,4 +13360,16 @@ try { con.close(); } catch (Exception e) {} } } + + boolean _isHiding = false; + + public void justHiding(boolean isHide) + { + _isHiding = true; + } + + public boolean isHiding() + { + return _isHiding; + } } \ No newline at end of file Index: java/net/sf/l2j/gameserver/skills/effects/EffectHide.java =================================================================== --- java/net/sf/l2j/gameserver/skills/effects/EffectHide.java (revision 0) +++ java/net/sf/l2j/gameserver/skills/effects/EffectHide.java (revision 0) @@ -0,0 +1,81 @@ +/* + * This program 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. + * + * This program 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 net.sf.l2j.gameserver.skills.effects; + +import net.sf.l2j.gameserver.model.L2Effect; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import net.sf.l2j.gameserver.skills.Env; +import net.sf.l2j.gameserver.templates.effects.EffectTemplate; +import net.sf.l2j.gameserver.templates.skills.L2EffectType; + +public class EffectHide extends L2Effect +{ + public EffectHide(Env env, EffectTemplate template) + { + super(env, template); + } + + /** + * + * @see net.sf.l2j.gameserver.model.L2Effect#getEffectType() + */ + @Override + public L2EffectType getEffectType() + { + return L2EffectType.HIDE; + } + + /** + * + * @see net.sf.l2j.gameserver.model.L2Effect#onStart() + */ + @Override + public boolean onStart() + { + L2PcInstance activeChar = (L2PcInstance)getEffected(); + activeChar.justHiding(true); + getEffected().startAbnormalEffect(0x100000); // effect stealth, just animation + activeChar.getAppearance().setInvisible(); + activeChar.broadcastUserInfo(); + activeChar.decayMe(); + activeChar.spawnMe(); + return true; + } + + /** + * + * @see net.sf.l2j.gameserver.model.L2Effect#onActionTime() + */ + @Override + public boolean onActionTime() + { + // Simply stop the effect + return false; + } + + /** + * + * @see net.sf.l2j.gameserver.model.L2Effect#onExit() + */ + @Override + public void onExit() + { + L2PcInstance activeChar = (L2PcInstance)getEffected(); + getEffected().stopAbnormalEffect(0x100000); + activeChar.getAppearance().setVisible(); + activeChar.broadcastUserInfo(); + activeChar.justHiding(false); + } +} Index: java/net/sf/l2j/gameserver/model/actor/L2Character.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/L2Character.java (revision 3057) +++ java/net/sf/l2j/gameserver/model/actor/L2Character.java (working copy) @@ -1978,6 +1978,10 @@ return false; } } + if(skill.isPotion() && ((L2PcInstance)this).getAppearance().getInvisible() && !isGM()) + { + stopEffects(L2EffectType.HIDE); + } return true; } @@ -5228,7 +5232,14 @@ // reduce targets HP target.reduceCurrentHp(damage, this, null); - + if(target instanceof L2PcInstance) + { + L2PcInstance targetChar = (L2PcInstance)target; + if(targetChar.isHiding()) + { + targetChar.stopEffects(L2EffectType.HIDE); + } + } if (reflectedDamage > 0) { reduceCurrentHp(reflectedDamage, target, true, false, null); Index: java/net/sf/l2j/gameserver/templates/skills/L2EffectType.java =================================================================== --- java/net/sf/l2j/gameserver/templates/skills/L2EffectType.java (revision 3057) +++ java/net/sf/l2j/gameserver/templates/skills/L2EffectType.java (working copy) @@ -66,5 +66,6 @@ PROTECTION_BLESSING, AFROHAIR, FUSION, - CHANCE_SKILL_TRIGGER + CHANCE_SKILL_TRIGGER, + HIDE } Index: java/net/sf/l2j/gameserver/model/L2World.java =================================================================== --- java/net/sf/l2j/gameserver/model/L2World.java (revision 3057) +++ java/net/sf/l2j/gameserver/model/L2World.java (working copy) @@ -28,6 +28,7 @@ import net.sf.l2j.gameserver.model.actor.L2Playable; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PetInstance; +import net.sf.l2j.gameserver.templates.skills.L2EffectType; import net.sf.l2j.util.Point3D; /** @@ -330,6 +331,11 @@ { L2PcInstance player = (L2PcInstance) object; + if(!player.isGM() && player.getAppearance().getInvisible() && !player.isHiding()) // check if player is invisible and if is NOT hiding (variable starts in false) + { + player.stopEffects(L2EffectType.HIDE); //stops effect to avoid duplicate character (?) + } + if (!player.isTeleporting()) { L2PcInstance tmp = _allPlayers.get(player.getName().toLowerCase()); Quote
®ৠ♪Ŋαķαмοūŗα♪ৠ® Posted September 2, 2009 Posted September 2, 2009 Do you try this skill settings?Is it working? Quote
ExTrEmEDwarf Posted September 2, 2009 Posted September 2, 2009 its the buff for daggers TH right? yeap but none server had it implement on the skills..it was like stealth Quote
Emrys Posted September 2, 2009 Posted September 2, 2009 Ok This skill working 100% But It isnt full.... L2j fixed... Look: After the code that I have up, add this Updated: Index: trunk/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- trunk/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 3432) +++ trunk/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 3442) @@ -4052,7 +4052,10 @@ protected void doAttack(L2Character target) { - L2Effect eInvisible = getFirstEffect(L2EffectType.HIDE); - if (eInvisible != null) - eInvisible.exit(); + if (getAppearance().getInvisible()) + { + L2Effect eInvisible = getFirstEffect(L2EffectType.HIDE); + if (eInvisible != null) + eInvisible.exit(); + } super.doAttack(target); @@ -4066,7 +4069,10 @@ public void doCast(L2Skill skill) { - L2Effect eInvisible = getFirstEffect(L2EffectType.HIDE); - if (eInvisible != null) - eInvisible.exit(); + if (getAppearance().getInvisible()) + { + L2Effect eInvisible = getFirstEffect(L2EffectType.HIDE); + if (eInvisible != null) + eInvisible.exit(); + } super.doCast(skill); Index: trunk/L2_GameServer/java/net/sf/l2j/gameserver/skills/effects/EffectHide.java =================================================================== --- trunk/L2_GameServer/java/net/sf/l2j/gameserver/skills/effects/EffectHide.java (revision 3428) +++ trunk/L2_GameServer/java/net/sf/l2j/gameserver/skills/effects/EffectHide.java (revision 3442) @@ -15,13 +15,13 @@ package net.sf.l2j.gameserver.skills.effects; +import net.sf.l2j.gameserver.ai.CtrlIntention; import net.sf.l2j.gameserver.model.L2Effect; import net.sf.l2j.gameserver.model.actor.L2Character; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.network.serverpackets.DeleteObject; +import net.sf.l2j.gameserver.network.serverpackets.L2GameServerPacket; import net.sf.l2j.gameserver.skills.Env; import net.sf.l2j.gameserver.templates.effects.EffectTemplate; import net.sf.l2j.gameserver.templates.skills.L2EffectType; -import net.sf.l2j.gameserver.util.Broadcast; - /** @@ -31,16 +31,15 @@ */ public class EffectHide extends L2Effect -{ - +{ public EffectHide(Env env, EffectTemplate template) { super(env, template); } - + public EffectHide(Env env, L2Effect effect) { super(env, effect); } - + /** * @@ -52,5 +51,5 @@ return L2EffectType.HIDE; } - + /** * @@ -64,11 +63,30 @@ L2PcInstance activeChar = ((L2PcInstance) getEffected()); activeChar.getAppearance().setInvisible(); - activeChar.broadcastUserInfo(); activeChar.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_STEALTH); - Broadcast.toKnownPlayers(activeChar, new DeleteObject(activeChar)); + + L2GameServerPacket del = new DeleteObject(activeChar); + for (L2Character target : activeChar.getKnownList().getKnownCharacters()) + { + try + { + if (target.getTarget() == activeChar) + { + target.setTarget(null); + target.abortAttack(); + target.abortCast(); + target.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + } + + if (target instanceof L2PcInstance) + target.sendPacket(del); + } + catch (NullPointerException e) + { + } + } } return true; } - + /** * @@ -82,9 +100,8 @@ L2PcInstance activeChar = ((L2PcInstance) getEffected()); activeChar.getAppearance().setVisible(); - activeChar.broadcastUserInfo(); activeChar.stopAbnormalEffect(L2Character.ABNORMAL_EFFECT_STEALTH); } } - + /** * Quote
Zorr0 Posted September 2, 2009 Posted September 2, 2009 yeap but none server had it implement on the skills..it was like stealth well i was playing on pvp spanish server like 3 weeks ago and was working right. rly funny skill BTW. and u cant target it when its activated. Quote
=Legend= Posted September 2, 2009 Author Posted September 2, 2009 Thats way i said to best update it needs core support,many servers indeed dont have this skill implemented, i check a lot of servers and as yet are missing this skill Quote
mody405 Posted September 2, 2009 Posted September 2, 2009 tnx for the share :) i was looking for it xDD Quote
rockk Posted September 3, 2009 Posted September 3, 2009 working on this server www.lineage2media.com/server.html Quote
booosas Posted November 19, 2010 Posted November 19, 2010 But i see the problem, if you just hiting player and he get invisible i still hitting him, but target dissapear.. any idea? I think need add effect like "anti target" to HIDE effect. ;s BTW I added it to Interlude. Everything works good. Only this problem.. :) Quote
Recommended Posts
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.