Jump to content

DnR

VIP Member
  • Posts

    737
  • Credits

  • Joined

  • Last visited

  • Days Won

    4
  • Feedback

    0%

Everything posted by DnR

  1. I'm a bit obsessed with small details so i give you the retail sm for final skills(at least 1 of them). Sorry for this worthless share,i know that even a kid can do this,however i upload it for ppl who can't implement it and are interested in it. PcStatus.java super.reduceHp(value, attacker, awake); if (!getActiveChar().isDead() && getActiveChar().isSitting()) getActiveChar().standUp(); if (getActiveChar().isFakeDeath()) getActiveChar().stopFakeDeath(null); + if (getActiveChar().getCurrentHp() <= getActiveChar().getMaxHp() * 0.3 + && getActiveChar().getCurrentHp() + value > getActiveChar().getMaxHp() * 0.3) + { + if (getActiveChar().getSkillLevel(290) > 0) + { + getActiveChar().sendMessage("Since HP has decreased, the effect of Final Frenzy can be felt."); + } + if (getActiveChar().getSkillLevel(291) > 0) + { + getActiveChar().sendMessage("Since HP has decreased, the effect of Final Fortress can be felt."); + } + }
  2. Just tried it. Cp bug and character dublication are effective so far. Also,i got Npes without even touching the source. It's not recommended >_<.
  3. Isn't this rev. the incomplete one? What's the meaning of even adding it? :S
  4. Has anyone got the retail elemental formula? L2j's seems a bit messed,so i guess it's not retail-like.
  5. Any way to block dual box without IP check?
  6. You are wrong here. Skills refresh when the match starts and players get ported to arena.
  7. A possible way is to add this in L2Character CheckDoCastConditions boolean. if (this instanceof L2PcInstance && !((L2PcInstance)this).isInOlympiadMode() && skill.getSkillType() == L2SkillType.STEAL_BUFF)) { SystemMessage sm = new SystemMessage(SystemMessageId.S1_CANNOT_BE_USED); sm.addSkillName(skill); sendPacket(sm); return false; }
  8. A new cancellation formula has been implemented in L2JServer Gracia final,more efficient with less chance. Check the disablers of that revision ;)
  9. I think you can get inspired from this^^: http://www.maxcheaters.com/forum/index.php?topic=71601.0
  10. Look at my own slot system and add the changes. // Remove first Buff if number of buffs > getMaxBuffCount() L2Skill tempSkill = newEffect.getSkill(); if (getBuffCount() > getMaxBuffCount() && !doesStack(tempSkill) && (( tempSkill.getSkillType() == L2Skill.SkillType.BUFF || tempSkill.getSkillType() == L2Skill.SkillType.REFLECT || tempSkill.getSkillType() == L2Skill.SkillType.HEAL_PERCENT || tempSkill.getSkillType() == L2Skill.SkillType.MANAHEAL_PERCENT) && !tempSkill.isOffensive() && !(tempSkill.getId() > 4360 && tempSkill.getId() < 4367))
  11. Pigaine sto L2Character,bres to doattackhitbybow kai checkare tis diafores: private boolean doAttackHitByBow(Attack attack, L2Character target, int sAtk, int reuse) { int damage1 = 0; boolean shld1 = false; boolean crit1 = false; // Calculate if hit is missed or not boolean miss1 = Formulas.getInstance().calcHitMiss(this, target); // Consumme arrows reduceArrowCount(false); _move = null; // Check if hit isn't missed if (!miss1) { // Calculate if shield defense is efficient shld1 = Formulas.getInstance().calcShldUse(this, target); // Calculate if hit is critical crit1 = Formulas.getInstance().calcCrit(getStat().getCriticalHit(target, null)); // Calculate physical damages damage1 = (int)Formulas.getInstance().calcPhysDam(this, target, null, shld1, crit1, false, attack.soulshot); } // Check if the L2Character is a L2PcInstance if (this instanceof L2PcInstance) { // Send a system message sendPacket(new SystemMessage(SystemMessageId.GETTING_READY_TO_SHOOT_AN_ARROW)); // Send a Server->Client packet SetupGauge SetupGauge sg = new SetupGauge(SetupGauge.RED, sAtk+reuse); sendPacket(sg); } // Create a new hit task with Medium priority ThreadPoolManager.getInstance().scheduleAi(new HitTask(target, damage1, crit1, miss1, attack.soulshot, shld1), sAtk); // Calculate and set the disable delay of the bow in function of the Attack Speed _disableBowAttackEndTime = (sAtk+reuse)/GameTimeController.MILLIS_IN_TICK + GameTimeController.getGameTicks(); // Add this hit to the Server-Client packet Attack attack.addHit(target, damage1, miss1, crit1, shld1); // Return true if hit isn't missed return !miss1; }
  12. UPDATED You can receive buffs by all NPC Buffers now. Check the code again. Btw,Thanks a lot to the guy who gave me the karma.
  13. Thanks but can sb try it and post here the results? Some ppl prefer criticizing instead of thanking for a share ^^.
  14. Try to get buffs by other player,not yourself^^
  15. Here you are: http://www.maxcheaters.com/forum/index.php?topic=180578.msg1425341#msg1425341
  16. Just looking at the old AntiBuff Shield made me -beep-ing sick,so i share you my own :). By declaring the skilltypes in this skillhandler,buffs of Core Buffer won't be prevented. Also,a core support has been made to let the skill work like toggle. This shield protects you only from buffs casted by other players.You are free to use your self buffs ^^. L2Effect.java CHARMOFCOURAGE, SIGNET_EFFECT, SIGNET_GROUND, + PREVENT_BUFF, PREVENT_MAGIC, TRANSFERDMG, CANCEL, WARP } L2Character.java private boolean _isAfraid = false; // Flee in a random direction + private boolean _isBuffProtected = false; private boolean _isConfused = false; // Attack anyone randomly private boolean _isFakeDeath = false; // Fake death private boolean _isFlying = false; //Is flying Wyvern? + public final void setIsBuffProtected(boolean value) + { + _isBuffProtected = value; + } + + public boolean isBuffProtected() + { + return _isBuffProtected; + } } Continuous.java // Walls and Door should not be buffed if (target instanceof L2DoorInstance && (skill.getSkillType() == L2Skill.SkillType.BUFF || skill.getSkillType() == L2Skill.SkillType.HOT)) continue; + // Anti-Buff Protection prevents you from getting buffs by other players + if (activeChar instanceof L2PlayableInstance && target != activeChar && target.isBuffProtected() && !skill.isHeroSkill() + && (skill.getSkillType() == L2Skill.SkillType.BUFF + || skill.getSkillType() == L2Skill.SkillType.HEAL_PERCENT + || skill.getSkillType() == L2Skill.SkillType.FORCE_BUFF + || skill.getSkillType() == L2Skill.SkillType.MANAHEAL_PERCENT + || skill.getSkillType() == L2Skill.SkillType.COMBATPOINTHEAL + || skill.getSkillType() == L2Skill.SkillType.REFLECT)) + continue; EffectDeflectBuff.java package net.sf.l2j.gameserver.skills.effects; import net.sf.l2j.gameserver.model.L2Effect; import net.sf.l2j.gameserver.model.L2Effect.EffectType; import net.sf.l2j.gameserver.model.L2Skill.SkillType; import net.sf.l2j.gameserver.network.SystemMessageId; import net.sf.l2j.gameserver.serverpackets.SystemMessage; import net.sf.l2j.gameserver.skills.Env; /** * @author Java */ public final class EffectDeflectBuff extends L2Effect { /** * @param env * @param template */ public EffectDeflectBuff(Env env, EffectTemplate template) { super(env, template); } /* * (non-Javadoc) * * @see net.sf.l2j.gameserver.model.L2Effect#getEffectType() */ @Override public EffectType getEffectType() { return EffectType.PREVENT_BUFF; } /* * (non-Javadoc) * * @see net.sf.l2j.gameserver.model.L2Effect#onActionTime() */ @Override public boolean onActionTime() { // Only cont skills shouldn't end if(getSkill().getSkillType() != SkillType.CONT) return false; double manaDam = calc(); if(manaDam > getEffected().getCurrentMp()) { SystemMessage sm = new SystemMessage(SystemMessageId.SKILL_REMOVED_DUE_LACK_MP); getEffected().sendPacket(sm); return false; } getEffected().reduceCurrentMp(manaDam); return true; } /* * (non-Javadoc) * * @see net.sf.l2j.gameserver.model.L2Effect#onStart() */ @Override public void onStart() { getEffected().setIsBuffProtected(true); return; } /* * (non-Javadoc) * * @see net.sf.l2j.gameserver.model.L2Effect#onExit() */ @Override public void onExit() { getEffected().setIsBuffProtected(false); } } And this is how the skill should be in DP: <skill id="add the skill id here" levels="1" name="AntiBuff-Shield"> <set name="target" val="TARGET_SELF"/> <set name="skillType" val="CONT"/> <set name="operateType" val="OP_TOGGLE"/> <set name="castRange" val="-1"/> <set name="effectRange" val="-1"/> <for> <effect count="0x7fffffff" name="DeflectBuff" time="3" val="0"/> </for> </skill> Have fun!
  17. I currently face some errors with patch creation in my eclipse, but as soon as i create the patch,i will post it here :)
  18. The code has been reworked and its working perfectly now. Enjoy ^^.
  19. To kanes compile esy i einai preconfigured? Giati kamia team nomizw den exei auto to feature.
  20. Nai mporoun,kai auti einai i pigi apo to lineage2 official site. Attributes System Change A maximum of three different attributes can now be added to each piece of armor. Of the six attributes available, there are three sets of opposing attributes: Water-Fire, Wind-Earth, and Divinity-Darkness. When choosing your three attributes, you cannot select opposing attributes. For example, a single piece of armor cannot have both Fire and Water attributes. Attribute Master Yin in Aden and Attribute Master Yang in Rune can remove attributes from weapons and armor for a fee. Attribute values have changed. Attack attribute bonus has been decreased. Defense attribute resistance has changed (when the defense attribute amount is higher than the attack attribute). For example, if an attacker's attribute value is 50, and the defense attribute value on a target is 100, the damage amount will be the same if the defense value was 50.
  21. First Post UPDATED. Several fixes had been made.
  22. Lineage II Gracia Part II Once the "Invincible" skill effect is applied, it cannot be re-applied for a certain amount of time. Related skills include: Celestial Shield, Flames of Invincibility, Sonic Barrier, Force Barrier, Servitor Barrier, Sublime Self-Sacrifice. Reworked I decided to implement this small feature because it prevents players from using the one barrier after the other. The default penalty time is 10 minutes. I hope its gonna be useful for you people. First of all,create a record in Characters table using navicat. The record must be like this. Characters Name Type Length Decimals Allow Null isInvulLimited tinyint 3 0 (untick this) L2PcInstance.java // Character Character SQL String Definitions: private static final String INSERT_CHARACTER = "INSERT INTO characters (account_name,obj_Id,char_name,level,maxHp,curHp,maxCp,curCp,maxMp,curMp,face,hairStyle,hairColor,sex,exp,sp,karma,pvpkills,pkkills,clanid,race,classid, -deletetime,cancraft,title,accesslevel,online,isin7sdungeon,clan_privs,wantspeace,base_class,newbie,nobless,power_grade,last_recom_date) --values -------(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; +deletetime,cancraft,title,accesslevel,online,isin7sdungeon,clan_privs,wantspeace,base_class,newbie,nobless,power_grade,isInvulLimited,last_recom_date) +values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,face=?,hairStyle=?,hairColor=?,sex=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprenti -ce=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=? WHERE obj_Id=?"; +ce=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,isInvulLimited=?,death_penalty_level=? WHERE obj_Id=?"; private static final String RESTORE_CHARACTER = "SELECT account_name, obj_Id, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, face, hairStyle, hairColor, sex, heading, x, y, z, exp, expBeforeDeath, sp, karma, pvpkills, pkkills, clanid, race, classid, deletetime, cancraft, title, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, in_jail, jail_timer, newbie, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, -varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level FROM characters WHERE obj_Id=?"; +varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,isInvulLimited,death_penalty_level FROM characters WHERE obj_Id=?"; statement.setInt(28, isIn7sDungeon() ? 1 : 0); statement.setInt(29, getClanPrivileges()); statement.setInt(30, getWantsPeace()); statement.setInt(31, getBaseClass()); statement.setInt(32, getNewbie()); statement.setInt(33, isNoble() ? 1 :0); statement.setLong(34, 0); - statement.setLong(35,System.currentTimeMillis()); + statement.setInt(35, isInvulLimited() ? 1 : 0); + statement.setLong(36,System.currentTimeMillis()); if (player.isInJail()) player.setJailTimer(rset.getLong("jail_timer")); else player.setJailTimer(0); CursedWeaponsManager.getInstance().checkPlayer(player); player.setAllianceWithVarkaKetra(rset.getInt("varka_ketra_ally")); + player.startInvulPenalty(rset.getInt("isInvulLimited") == 1); player.setDeathPenaltyBuffLevel(rset.getInt("death_penalty_level")); statement.setLong(45,getSponsor()); statement.setInt(46, getAllianceWithVarkaKetra()); statement.setLong(47, getClanJoinExpiryTime()); statement.setLong(48, getClanCreateExpiryTime()); statement.setString(49, getName()); - statement.setLong(50, getDeathPenaltyBuffLevel()); - statement.setInt(51, getObjectId()); + statement.setInt(50, isInvulLimited() ? 1 : 0); + statement.setLong(51, getDeathPenaltyBuffLevel()); + statement.setInt(52, getObjectId()); L2Character.java private boolean _isConfused = false; // Attack anyone randomly private boolean _isFakeDeath = false; // Fake death private boolean _isFlying = false; //Is flying Wyvern? + private boolean _isInvulLimited = false; private boolean _isMuted = false; // Cannot use magic private boolean _isMagicImmune = false; public final void stopPhysicalAttackMuted(L2Effect effect) { if (effect == null) stopEffects(L2Effect.EffectType.PHYSICAL_ATTACK_MUTE); else removeEffect(effect); setIsPhysicalAttackMuted(false); } + + public boolean isInvulLimited() + { + return _isInvulLimited; + } + + public final void startInvulPenalty(boolean value) + { + _isInvulLimited = value; + if (isInvulLimited()) + { + long limit = 600000; + ThreadPoolManager.getInstance().scheduleGeneral(new Runnable() + { + @Override + public void run() + { + _isInvulLimited = false; + sendMessage("The Invincible skill effect penalty has been removed."); + } + }, limit); + } + } } L2Skill.java public final L2Effect[] getEffects(L2Character effector, L2Character effected) { if (isPassive()) return _emptyEffectSet; if (_effectTemplates == null) return _emptyEffectSet; + if (effected.isInvulLimited() && (getId() == 1505 || getId() == 1496 || getId() == 1427 || getId() == 1418 || getId() == 837 || getId() == 443 || getId() == 442)) + return _emptyEffectSet; EffectInvincible.java package net.sf.l2j.gameserver.skills.effects; import net.sf.l2j.gameserver.model.L2Effect; +import net.sf.l2j.gameserver.serverpackets.SystemMessage; import net.sf.l2j.gameserver.skills.Env; public class EffectInvincible extends L2Effect { public EffectInvincible(Env env, EffectTemplate template) { super(env, template); } @Override public EffectType getEffectType() { return L2Effect.EffectType.INVINCIBLE; } @Override public void onStart() { getEffected().setIsInvul(true); + getEffected().startInvulPenalty(true); + getEffected().sendMessage("Once the Invincible skill effect is applied, it cannot be re-applied for a certain amount of time."); } *Note: For Interlude,you gotta remove skill ids 1496,1505 and 837. Thank you for using it if you ever use it :)
×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock