Jump to content

LoVe+

Members
  • Posts

    115
  • Credits

  • Joined

  • Last visited

  • Days Won

    1
  • Feedback

    0%

Everything posted by LoVe+

  1. why moving should be broken after cast ? imagine you are a th and run away from something and you click somewhere press f2 dash and run , why to broke running ?
  2. try downloading some other system from other server and edit l2.ini only , maybe your system files are problem idk you can give a shot
  3. sry but i know nothing about ue2003 , used it max 4-5 times for easy tasks
  4. final L2Character target = getAttackTarget(); if (target != null) { if (target.isMoving()) { range -= 100; } // moveToPawn(target, Math.max(range, 5)); -- delete the "//" "//" if is if front of a code line , the compiler wont use that line in your code. so you can try with movetopawn and it should work normal. moveTo(target.getLocation()); --- delete this line at all } } =============================================== final L2Character target = getAttackTarget(); if (target != null) { if (target.isMoving()) { range -= 100; } moveTo(target.getLocation()); if (!this.isInsideRadius(worldPosition.getX(), worldPosition.getY(), (int) (10+ target.getCollisionRadius()), false)) { int x = target.getX(); int y = target.getY(); double dx = worldPosition.getX() - x; double dy = worldPosition.getY() - y; double dist = Math.sqrt(dx * dx + dy * dy); double sin = dy / dist; double cos = dx / dist; dist -= offset - 5; x += (int) (dist * cos); y += (int) (dist * sin); moveTo(x, y, worldPosition.getZ()); } } } try this maybe is bullshit maybe works , you can check how a raidboss and minions not colide into eachother and addapt or maybe just use movetopawn best but probably someone added "//" bcs he know smth we don't.
  5. + private void broadcastPvPMorphUpdate(L2PcPolymorph npc, CharSelectSlot winnerPvPKillsInfo) + { + if (winnerPvPKillsInfo == null) + { + npc.setPolymorphInfo(null); + return; + } + npc.setVisibleTitle(Config.CKM_PVP_NPC_TITLE.replaceAll("%kills%", String.valueOf(_winnerPvPKillsCount))); + npc.setTitleColor(Config.CKM_PVP_NPC_TITLE_COLOR); + npc.setNameColor(Config.CKM_PVP_NPC_NAME_COLOR); + npc.setPolymorphInfo(winnerPvPKillsInfo); + npc.broadcastPacket(new SocialAction(npc, 16));' ++ npc.setHeading(VALUE) + } + + private void broadcastPKMorphUpdate(L2PcPolymorph npc, CharSelectSlot winnerPKKillsInfo) + { + if (winnerPKKillsInfo == null) + { + npc.setPolymorphInfo(null); + return; + } + npc.setVisibleTitle(Config.CKM_PK_NPC_TITLE.replaceAll("%kills%", String.valueOf(_winnerPKKillsCount))); + npc.setTitleColor(Config.CKM_PK_NPC_TITLE_COLOR); + npc.setNameColor(Config.CKM_PK_NPC_NAME_COLOR); + npc.setPolymorphInfo(winnerPKKillsInfo); + npc.broadcastPacket(new SocialAction(npc, 16)); ++ npc.setHeading(VALUE) + } + + public void broadcastMorphUpdate() + { + final CharSelectSlot winnerPvPKillsInfo = getWinnerPvPKillsInfo(); + for (L2PcPolymorph npc : pvpMorphListeners) + { + broadcastPvPMorphUpdate(npc, winnerPvPKillsInfo); npc.setHeading(VALUE) + } + + final CharSelectSlot winnerPKKillsInfo = getWinnerPKKillsInfo(); + for (L2PcPolymorph npc : pkMorphListeners) + { + broadcastPKMorphUpdate(npc, winnerPKKillsInfo); npc.setHeading(VALUE) + } + } try this
  6. if he is in right mood he will accept you as you are , try maybe you lucky neves. btw nice work , maybe some shares for xmas?
  7. is there any difference in performance ( faster completing task ) in the different types ?
  8. this can be a datapack problem , probably you missing something check your summon_items.xml or i don't remember exactly name , try to copy datapack files again gameserver/data/xml.
  9. you just said you created something and is not working ? why bcs you are brainless. im not trying to solve your problems , im trying to help you use you brain .. if you don't want to fix your source on your own and all time pay someone you should hire 1 guy as developer for your projects.
  10. wts interlude files configurable addons pm
  11. IT BASSICALY 1 LINE UPPER , DO YOU WANT ME TO COMPILE FOR U? // Incorrect npc, return. final Npc trainer = activeChar.getCurrentFolkNPC(); if (trainer == null) return;
  12. : check if you have any free space left on drive C:\ did you do any changes to gameserver.java ?
  13. your condition is in this file: RequestAcquireSkill.java package net.sf.l2j.gameserver.network.clientpackets; import net.sf.l2j.Config; import net.sf.l2j.gameserver.datatables.SkillTable; import net.sf.l2j.gameserver.datatables.SkillTreeTable; import net.sf.l2j.gameserver.datatables.SpellbookTable; import net.sf.l2j.gameserver.model.L2PledgeSkillLearn; import net.sf.l2j.gameserver.model.L2ShortCut; import net.sf.l2j.gameserver.model.L2Skill; import net.sf.l2j.gameserver.model.L2SkillLearn; import net.sf.l2j.gameserver.model.actor.Npc; import net.sf.l2j.gameserver.model.actor.instance.Fisherman; import net.sf.l2j.gameserver.model.actor.instance.Folk; import net.sf.l2j.gameserver.model.actor.instance.Player; import net.sf.l2j.gameserver.model.actor.instance.VillageMaster; import net.sf.l2j.gameserver.network.SystemMessageId; import net.sf.l2j.gameserver.network.serverpackets.ExStorageMaxCount; import net.sf.l2j.gameserver.network.serverpackets.ShortCutRegister; import net.sf.l2j.gameserver.network.serverpackets.SystemMessage; public class RequestAcquireSkill extends L2GameClientPacket { private int _skillId; private int _skillLevel; private int _skillType; @Override protected void readImpl() { _skillId = readD(); _skillLevel = readD(); _skillType = readD(); } @Override protected void runImpl() { // Not valid skill data, return. if (_skillId <= 0 || _skillLevel <= 0) return; // Incorrect player, return. final Player activeChar = getClient().getActiveChar(); if (activeChar == null) return; // Incorrect npc, return. final Npc trainer = activeChar.getCurrentFolkNPC(); if (trainer == null) return; // Distance check for player <-> npc. if (!activeChar.isInsideRadius(trainer, Npc.INTERACTION_DISTANCE, false, false) && !activeChar.isGM()) return; // Skill doesn't exist, return. final L2Skill skill = SkillTable.getInstance().getInfo(_skillId, _skillLevel); if (skill == null) return; // Set learn class. activeChar.setSkillLearningClassId(activeChar.getClassId()); boolean exists = false; // Types. switch (_skillType) { case 0: // General skills. // Player already has such skill with same or higher level. int skillLvl = activeChar.getSkillLevel(_skillId); if (skillLvl >= _skillLevel) return; // Requested skill must be 1 level higher than existing skill. if (Math.max(skillLvl, 0) + 1 != _skillLevel) return; int spCost = 0; // Find skill information. for (L2SkillLearn sl : SkillTreeTable.getInstance().getAvailableSkills(activeChar, activeChar.getSkillLearningClassId())) { // Skill found. if (sl.getId() == _skillId && sl.getLevel() == _skillLevel) { exists = true; spCost = sl.getSpCost(); break; } } // No skill found, return. if (!exists) return; // Not enought SP. if (activeChar.getSp() < spCost) { activeChar.sendPacket(SystemMessageId.NOT_ENOUGH_SP_TO_LEARN_SKILL); Folk.showSkillList(activeChar, trainer, activeChar.getSkillLearningClassId()); return; } // Get spellbook and try to consume it. int spbId = SpellbookTable.getInstance().getBookForSkill(_skillId, _skillLevel); if (spbId > 0) { if (!activeChar.destroyItemByItemId("SkillLearn", spbId, 1, trainer, true)) { activeChar.sendPacket(SystemMessageId.ITEM_MISSING_TO_LEARN_SKILL); Folk.showSkillList(activeChar, trainer, activeChar.getSkillLearningClassId()); return; } } // Consume SP. activeChar.removeExpAndSp(0, spCost); // Add skill new skill. activeChar.addSkill(skill, true); activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.LEARNED_SKILL_S1).addSkillName(skill)); // Update player and return. updateShortCuts(activeChar); activeChar.sendSkillList(); Folk.showSkillList(activeChar, trainer, activeChar.getSkillLearningClassId()); break; case 1: // Common skills. skillLvl = activeChar.getSkillLevel(_skillId); if (skillLvl >= _skillLevel) return; if (Math.max(skillLvl, 0) + 1 != _skillLevel) return; int costId = 0; int costCount = 0; for (L2SkillLearn sl : SkillTreeTable.getInstance().getAvailableFishingDwarvenCraftSkills(activeChar)) { if (sl.getId() == _skillId && sl.getLevel() == _skillLevel) { exists = true; costId = sl.getIdCost(); costCount = sl.getCostCount(); break; } } if (!exists) return; if (!activeChar.destroyItemByItemId("Consume", costId, costCount, trainer, true)) { activeChar.sendPacket(SystemMessageId.ITEM_MISSING_TO_LEARN_SKILL); Fisherman.showFishSkillList(activeChar); return; } activeChar.addSkill(skill, true); activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.LEARNED_SKILL_S1).addSkillName(skill)); if (_skillId >= 1368 && _skillId <= 1372) activeChar.sendPacket(new ExStorageMaxCount(activeChar)); updateShortCuts(activeChar); activeChar.sendSkillList(); Fisherman.showFishSkillList(activeChar); break; case 2: // Pledge skills. if (!activeChar.isClanLeader()) return; int itemId = 0; int repCost = 0; for (L2PledgeSkillLearn psl : SkillTreeTable.getInstance().getAvailablePledgeSkills(activeChar)) { if (psl.getId() == _skillId && psl.getLevel() == _skillLevel) { exists = true; itemId = psl.getItemId(); repCost = psl.getRepCost(); break; } } if (!exists) return; if (activeChar.getClan().getReputationScore() < repCost) { activeChar.sendPacket(SystemMessageId.ACQUIRE_SKILL_FAILED_BAD_CLAN_REP_SCORE); VillageMaster.showPledgeSkillList(activeChar); return; } if (Config.LIFE_CRYSTAL_NEEDED) { if (!activeChar.destroyItemByItemId("Consume", itemId, 1, trainer, true)) { activeChar.sendPacket(SystemMessageId.ITEM_MISSING_TO_LEARN_SKILL); VillageMaster.showPledgeSkillList(activeChar); return; } } activeChar.getClan().takeReputationScore(repCost); activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_DEDUCTED_FROM_CLAN_REP).addNumber(repCost)); activeChar.getClan().addNewSkill(skill); VillageMaster.showPledgeSkillList(activeChar); return; } } private void updateShortCuts(Player player) { if (_skillLevel > 1) { for (L2ShortCut sc : player.getAllShortCuts()) { if (sc.getId() == _skillId && sc.getType() == L2ShortCut.TYPE_SKILL) { L2ShortCut newsc = new L2ShortCut(sc.getSlot(), sc.getPage(), L2ShortCut.TYPE_SKILL, _skillId, _skillLevel, 1); player.sendPacket(new ShortCutRegister(newsc)); player.registerShortCut(newsc); } } } } }
  14. server is good feels like playing like 5 yeras ago back on good interlude c6 servers but is hard hope is no 1 month project
  15. server is never x100 , maybe x60
×
×
  • Create New...