Jump to content

GameBlonD

Members
  • Posts

    553
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by GameBlonD

  1. can you share this fix? it seems internesting.
  2. I think the only alive servers using the real l2dc files are http://raidfight.eu/ (H5) and http://l2flash.eu/ (Epilogue) You can't use preconfigured server for live , i checked the first .rar and it was really messy inside worst than test server files :)
  3. Find NpcKnownList.java and fix it yourself :) or if you can't post the full code here maybe someone can help you.
  4. Hi , i tried few methods to do CLAN_SKILL_S1_ADDED to sended to clan members but i couldn't any ideas? SystemMessage cr = new SystemMessage(SystemMessageId.S1_DEDUCTED_FROM_CLAN_REP); cr.addNumber(repCost); player.sendPacket(cr); SystemMessage sm = new SystemMessage(SystemMessageId.CLAN_SKILL_S1_ADDED); sm.addSkillName(_id); player.sendPacket(sm); sm = null; player.getClan().broadcastToOnlineMembers(new PledgeSkillList(player.getClan())); for (L2PcInstance member : player.getClan().getOnlineMembers(0)) { member.sendSkillList(); }
  5. nice fix , thank you! PS: It was a little difficult for me to adapt it in the old system (L2J GF-) without timeline/changelog on acis timeline :P
  6. Hi, anyone can help me add a check on seal of rule (pray) so players can casted only from the Platform? Tried something like this: else if (!Util.checkIfInRange(200, this, getTarget(), true) && (!(Math.abs(getZ() - getZ()) > 1000))) but it doesn't work Full code: public boolean checkIfOkToCastSealOfRule(Castle castle, boolean isCheckOnly, L2Skill skill) { SystemMessage sm; if (castle == null || castle.getCastleId() <= 0) { sm = new SystemMessage(SystemMessageId.S1_CANNOT_BE_USED); sm.addSkillName(skill); } else if (!castle.getArtifacts().contains(getTarget())) { sm = new SystemMessage(SystemMessageId.INCORRECT_TARGET); } else if (!castle.getSiege().getIsInProgress()) { sm = new SystemMessage(SystemMessageId.S1_CANNOT_BE_USED); sm.addSkillName(skill); } else if (!Util.checkIfInRange(200, this, getTarget(), true)) { sm = new SystemMessage(SystemMessageId.DIST_TOO_FAR_CASTING_STOPPED); } else if (castle.getSiege().getAttackerClan(getClan()) == null) { sm = new SystemMessage(SystemMessageId.S1_CANNOT_BE_USED); sm.addSkillName(skill); } else { if (!isCheckOnly) { sm = new SystemMessage(SystemMessageId.OPPONENT_STARTED_ENGRAVING); castle.getSiege().announceToPlayer(sm, false); } return true; } sendPacket(sm); return false; }
  7. The problem should be here so SpawnDoor works and parse data doesnt any ideas how to improve parsedata on load? public void parseData() { LineNumberReader lnr = null; try { File doorData = new File(Config.DATAPACK_ROOT, "data/door.csv"); lnr = new LineNumberReader(new BufferedReader(new FileReader(doorData))); String line = null; while ((line = lnr.readLine()) != null) { if (line.trim().length() == 0 || line.startsWith("#")) continue; L2DoorInstance door = parseList(line, false); _staticItems.put(door.getDoorId(), door); door.spawnMe(door.getX(), door.getY(), door.getZ()); ClanHall clanhall = ClanHallManager.getInstance().getNearbyClanHall(door.getX(), door.getY(), 500); if (clanhall != null) { clanhall.getDoors().add(door); door.setClanHall(clanhall); if (_log.isLoggable(Level.FINE)) { _log.fine(StringUtil.concat("door ", door.getDoorName(), " attached to ch ", clanhall.getName())); } } }
  8. I know its not your problem dude... but i cant understand why on respawn geodata works and on Load first server run geodata doesn't :)
  9. Tryskell any ideas?
  10. Hello , so i am having a strange issue with all doors and i can't find the issue. For example on Castle doors players can blink no geodata check but if I kill the doors and start/end siege then doors have geodata normally. So this is the Load: private void loadDoor() { Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("Select * from castle_door where castleId = ?"); statement.setInt(1, getCastleId()); ResultSet rs = statement.executeQuery(); while (rs.next()) { // Create list of the door default for use when respawning dead doors _doorDefault.add(rs.getString("name") + ";" + rs.getInt("id") + ";" + rs.getInt("x") + ";" + rs.getInt("y") + ";" + rs.getInt("z") + ";" + rs.getInt("range_xmin") + ";" + rs.getInt("range_ymin") + ";" + rs.getInt("range_zmin") + ";" + rs.getInt("range_xmax") + ";" + rs.getInt("range_ymax") + ";" + rs.getInt("range_zmax") + ";" + rs.getInt("hp") + ";" + rs.getInt("pDef") + ";" + rs.getInt("mDef")); L2DoorInstance door = DoorTable.parseList(_doorDefault.get(_doorDefault.size() - 1), false); _doors.add(door); DoorTable.getInstance().putDoor(door); } ResourceUtil.closeResultSet(rs); ResourceUtil.closeStatement(statement); } catch (Exception e) { _log.log(Level.WARNING, "Exception: loadCastleDoor()", e); } finally { ResourceUtil.closeConnection(con); } } This is what it is called when i end a siege: getCastle().spawnDoor(); // Respawn door to castle And Finally this is the spawnDoor: public void spawnDoor(boolean isDoorWeak) { for (int i = 0; i < getDoors().size(); i++) { L2DoorInstance door = getDoors().get(i); if (door.getCurrentHp() <= 0) { door.decayMe(); // Kill current if not killed already door = DoorTable.parseList(_doorDefault.get(i), false); DoorTable.getInstance().putDoor(door); // Readd the new door to the DoorTable By Erb if (isDoorWeak) door.setCurrentHp(door.getMaxHp() / 2); door.spawnMe(door.getX(), door.getY(), door.getZ()); getDoors().set(i, door); } else if (door.getOpen()) door.closeMe(); } loadDoorUpgrade(); // Check for any upgrade the doors may have }
  11. I found and fixed the issue it was a part of the code inside L2DefenderInstance.java All the fortress/castle guards worked fine.... but those 4 Guard in floran "found" the issue in the code : ) Thanks again.
  12. It happens only in Floran fortress and only by the 4 balcony Guards if i delete them then there is no error. also this error i get when i try to kill the balcony "stucked" guards: Anyway thanks for your help! Full update scheduled. java.lang.NullPointerException L2AttackableAIScript.java java.lang.NullPointerException at com.l2j.gameserver.model.actor.L2Attackable.addDamageHate(L2Attackab le.java:1031) at com.l2j.gameserver.model.actor.instance.L2DefenderInstance.addDamage Hate(L2DefenderInstance.java:245) at ai.group_template.L2AttackableAIScript.onAttack(L2AttackableAIScript. java:191) at com.l2j.gameserver.model.quest.Quest.onAttack(Quest.java:690) at com.l2j.gameserver.model.quest.Quest.notifyAttack(Quest.java:376) at com.l2j.gameserver.model.actor.L2Attackable.addDamage(L2Attackable.j ava:973) at com.l2j.gameserver.model.actor.L2Attackable.reduceCurrentHp(L2Attack able.java:482) at com.l2j.gameserver.model.actor.L2Attackable.reduceCurrentHp(L2Attack able.java:433) at com.l2j.gameserver.model.actor.L2Character.onHitTimer(L2Character.ja va:5786) at com.l2j.gameserver.model.actor.instance.L2PcInstance.onHitTimer(L2Pc Instance.java:4852) at com.l2j.gameserver.model.actor.L2Character$HitTask.run(L2Character.j ava:3012) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask. access$301(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask. run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source ) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
  13. Tryskell I can't understand why this happen only in Floran fort , maybe its a zone issue? with coords etc?
  14. KnownListUpdateTaskManager: updateRegion(3,false) failed for region (73, 101). F ull update scheduled. java.lang.NullPointerException KnownListUpdateTaskManager: updateRegion(1,false) failed for region (73, 101). F ull update scheduled. java.lang.NullPointerException KnownListUpdateTaskManager: updateRegion(88,false) failed for region (73, 101). Full update scheduled. java.lang.NullPointerException KnownListUpdateTaskManager: updateRegion(80,false) failed for region (73, 101). Full update scheduled. java.lang.NullPointerException KnownListUpdateTaskManager: updateRegion(78,false) failed for region (73, 101). Full update scheduled. java.lang.NullPointerException KnownListUpdateTaskManager: updateRegion(76,false) failed for region (73, 101). Full update scheduled. java.lang.NullPointerException KnownListUpdateTaskManager: updateRegion(54,false) failed for region (73, 101). Full update scheduled. java.lang.NullPointerException KnownListUpdateTaskManager: updateRegion(50,false) failed for region (73, 101). Full update scheduled. java.lang.NullPointerException KnownListUpdateTaskManager: updateRegion(48,false) failed for region (73, 101). Full update scheduled. java.lang.NullPointerException I have this problem only on Floran fortress and i cant find the reason this the spam on gameserver when some1 enters in combat zone
  15. // Check if player is an enemy of this defender npc if (player != null && ((player.getSiegeState() == 2 && !player.isRegisteredOnThisSiegeField(activeSiegeId)) || (player.getSiegeState() == 1 && !TerritoryWarManager.getInstance().isAllyField(player, activeSiegeId)) || player.getSiegeState() == 0)) { 58 if (getActiveChar().getAI().getIntention() == CtrlIntention.AI_INTENTION_IDLE) getActiveChar().getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE, null); } } return true; }
  16. Any ideas for this error? it happens when floran fortress start and a character teleported there. it stuck until fortress end. Failed running: [C] 30 Appearing java.lang.NullPointerException at com.l2j.gameserver.model.actor.knownlist.DefenderKnownList.addKnownO bject(DefenderKnownList.java:58) at com.l2j.gameserver.model.L2World.addVisibleObject(L2World.java:416) at com.l2j.gameserver.model.L2Object.spawnMe(L2Object.java:504) at com.l2j.gameserver.model.actor.L2Character.onTeleported(L2Character. java:474) at com.l2j.gameserver.model.actor.instance.L2PcInstance.onTeleported(L2 PcInstance.java:11244) at com.l2j.gameserver.network.clientpackets.action.Appearing.runImpl(Ap pearing.java:47) at com.l2j.gameserver.network.clientpackets.L2GameClientPacket.run(L2Ga meClientPacket.java:92) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source ) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) KnownListUpdateTaskManager: updateRegion(19,false) failed for region (73, 101). Full update scheduled. java.lang.NullPointerException KnownListUpdateTaskManager: updateRegion(17,false) failed for region (73, 101). Full update scheduled. java.lang.NullPointerException
  17. catch (Exception e) { _log.log(Level.WARNING, getClient()+" sent bad RequestBypassToServer: \""+_command+"\"", e); if (activeChar.isGM()) { StringBuilder sb = new StringBuilder(200); sb.append("<html><body>"); sb.append("Bypass error: "+e+"<br1>"); sb.append("Bypass command: "+_command+"<br1>"); sb.append("StackTrace:<br1>"); for (StackTraceElement ste : e.getStackTrace()) sb.append(ste.toString()+"<br1>"); sb.append("</body></html>"); // item html NpcHtmlMessage msg = new NpcHtmlMessage(0,12807); msg.setHtml(sb.toString()); msg.disableValidation(); activeChar.sendPacket(msg); } } else { hero = Hero.getInstance().getHeroesDiaries().get(classId); html.setFile(activeChar.getHtmlPrefix(), "data/html/olympiad/hero_diary.htm"); if (hero != null) { final int numOfEntries = hero.getInteger("bosses"); for (int i = page*100; i >= (page-1)*100; i--) { if (numOfEntries < i) continue; date.setTimeInMillis(hero.getLong("time"+i)); entries.append("<br><font color=\"LEVEL\">Year: " + (date.get(Calendar.YEAR)) + " Month: " + (date.get(Calendar.MONTH)+1) + " Day: " + date.get(Calendar.DAY_OF_MONTH) + " Hour: " + date.get(Calendar.HOUR_OF_DAY) + "</font><br1>"); final int data = hero.getInteger("boss"+i); if (data > 9) entries.append("&@" + data + "; was defeated.<br>"); else if (data == 0) entries.append("Gained Hero status.<br>"); else entries.append("&%" + data + "; was taken.<br>"); } if (numOfEntries/ 100 > page+1) html.replace("%page%", "<button value = \"Next\" action=\"bypass -h diary ?class=" + classId + "&page=" + (page+1) + "\" back=\"L2UI_CT1.Button_DF_Small_DOWN\" fore=\"L2UI_CT1.Button_DF_Small\" width=70 height=25 >"); } }
  18. Hi , when period ends and new heroes are formed if a players go on the Monument and click on Hero diary (to check raid boss etc) i get this message in the gameserver: *Note : if i restart the server then it works ok without this errror. [Character: Test[268479287] - Account: testchar - IP: ] sent bad RequestBypassToServer: "_diary?class=88&page=1" java.lang.IllegalArgumentException: Integer value required, but not specified at com.l2j.gameserver.templates.StatsSet.getInteger(StatsSet.java:215) at handlers.bypasshandlers.OlyMatch.useBypass(OlyMatch.java:80) at com.l2j.gameserver.model.actor.L2Npc.onBypassFeedback(L2Npc.java:890 ) at com.l2j.gameserver.network.clientpackets.RequestBypassToServer.runIm pl(RequestBypassToServer.java:82) at com.l2j.gameserver.network.clientpackets.L2GameClientPacket.run(L2Ga meClientPacket.java:92) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source ) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
  19. if i delete this if (Math.abs(dz) > 200 && Math.abs(dz) < 1500 && Math.abs(_z - activeChar.getClientZ()) < 800 ) or just use sync -1 then player doesnt move in the roof but i have other critical issues with -1 so i need to make sync 2 work
  20. Hi i have a problem with sync 2 if a players click with zoom hack/long rage camera in a roof etc in teleported there (moves there) any ideas on how to fix it? // Sync 2 (or other), // intended for geodata. Sends a validation packet to client // when too far from server calculated true coordinate. // Due to geodata/zone errors, some Z axis checks are made. (maybe a temporary solution) // Important: this code part must work together with L2Character.updatePosition if (Config.GEODATA > 0 && (diffSq > 250000 || Math.abs(dz) > 200)) { //if ((_z - activeChar.getClientZ()) < 200 && Math.abs(activeChar.getLastServerPosition().getZ()-realZ) > 70) if (Math.abs(dz) > 200 && Math.abs(dz) < 1500 && Math.abs(_z - activeChar.getClientZ()) < 800 ) { activeChar.setXYZ(realX, realY, _z); realZ = _z; } else { if (Config.DEVELOPER) _log.info(activeChar.getName() + ": Synchronizing position Server --> Client"); activeChar.sendPacket(new ValidateLocation(activeChar)); } } }
  21. or maybe how to disabled for pets??
  22. I just need mass resurrection to rez First the Character then the Pet because with the code above if both char/pet are dead and clan member uses mass resurrection - the box about accept resurrection is for pet so pet ressurected and characters remained dead.
  23. on l2skill if (activeChar instanceof L2Playable) { final L2PcInstance player = activeChar.getActingPlayer(); if (player == null) return _emptyTargetList; if (player.getOlympiadManagement().isInOlympiadMode()) return new L2Character[] { player }; final boolean isCorpseType = targetType == SkillTargetType.TARGET_CORPSE_CLAN; if (!isCorpseType) { if (onlyFirst) return new L2Character[] { player }; targetList.add(player); } final int radius = getSkillRadius(); final L2Clan clan = player.getClan(); if (addSummon(activeChar, player, radius, isCorpseType)) targetList.add(player.getPet()); if (clan != null) { L2PcInstance obj; // Get Clan Members for (L2ClanMember member : clan.getMembers()) { obj = member.getPlayerInstance(); if (obj == null || obj == player) continue; if (player.isInDuel()) { if (player.getDuelId() != obj.getDuelId()) continue; if (player.isInParty() && obj.isInParty() && player.getParty().getPartyLeaderOID() != obj.getParty().getPartyLeaderOID()) continue; } // Don't add this target if this is a Pc->Pc pvp casting and pvp condition not met if (!player.checkPvpSkill(obj, this)) continue; if (!TvTEvent.checkForTvTSkill(player, obj, this)) continue; if (!TvTCustomEvent.checkForTvTSkill(player, obj, this)) continue; if (!onlyFirst && addSummon(activeChar, obj, radius, isCorpseType)) targetList.add(obj.getPet()); if (!addCharacter(activeChar, obj, radius, isCorpseType)) continue; if (isCorpseType) { if (getSkillType() == L2SkillType.RESURRECT) { // check target is not in a active siege zone if (obj.isInsideZone(L2Character.ZONE_SIEGE) && !obj.isInSiege()) continue; } } if (onlyFirst) return new L2Character[] { obj }; targetList.add(obj);
  24. i tried it but no result
  25. Hi , The issue is that if a bishop uses mass resurrection and the clan member is dead and also has a pet dead mass resurrection resurrect the pet first how can i do it to res the character fist? some part of the code , any ideas? for (L2Character cha : targetToRes) if (activeChar instanceof L2PcInstance) { if (cha instanceof L2PcInstance) ((L2PcInstance) cha).reviveRequest((L2PcInstance) activeChar, skill, false); else if (cha instanceof L2PetInstance) ((L2PetInstance) cha).getOwner().reviveRequest((L2PcInstance) activeChar, skill, true); } else { DecayTaskManager.getInstance().cancelDecayTask(cha); cha.doRevive(Formulas.calculateSkillResurrectRestorePercent(skill.getPower(), activeChar.getWIT())); } }
×
×
  • 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