Jump to content

Tryskell

Legendary Member
  • Posts

    5,343
  • Credits

  • Joined

  • Last visited

  • Days Won

    52
  • Feedback

    0%

Community Answers

  1. Tryskell's post in key packet error was marked as the answer   
    KeyPacket isn't an existing packet on any L2 chronicle (at least up to Grand Crusade, and since you use net.sf.l2j you're probably IL or near), so I suppose it's a custom packet used by strix patlform and it fails somehow.
     
    Technically speaking, it can be explained as your "buffer" from where you try to parse your writeB doesn't exist. It's not empty, it simply doesn't exist. Can be because you flushed the _buf meanwhile (_buf = null while accessing it and not locking it), can be because you tried to access to it while it wasn't initialized.
     
    Better ask to Strix guys why their custom stuff doesn't work :].
  2. Tryskell's post in pvp flag after boss die was marked as the answer   
    If you use aCis, it's Creature#getKnownTypeInRadius : while being compact, it also delivers the good type of instance without the need to manually cast it.
     
    // Find all Players associated to "player"'s knownlist. final List<Player> knownPlayers = player.getKnownType(Player.class); // Find all ChristmasTree in 1200 range around "player". final List<ChristmasTree> trees = player.getKnownTypeInRadius(ChristmasTree.class, 1200);  
    If you use regular L2J, it's CharKnownList#getKnownPlayersInRadius. You got only the choice between "Player" and "Character" (it is then getKnownCharactersInRadius). If you need another instance type, you have to make another filter / conditional check.
     
    final List<L2PcInstance> knownPlayers = player.getKnownlist().getKnownPlayersInRadius(4000);  
    Note : the distance is limited by your pack. On aCis, you can see "only" in 6k range, no matter what you try to check. On L2J, there is no fixed range, it depends about what you try to look (vehicles are something like 15-20k range, while Players are far lower).
     
    Also, not sure when (or even if) L2J added the possibility for Npcs to see others Npcs - which is sure is, from memory basic L2J IL isn't able to do that.
  3. Tryskell's post in How much dmg player deal to monster/rb , any hint ? was marked as the answer   
    Everything already exists, than's the whole point of AggroList, storing both damage and hate for each hitting instance. It's notably used to calculate which got loot priority.
  4. Tryskell's post in l2jfrozen, once again help me to set up this lethal ... was marked as the answer   
    lethal1 and lethal2 are 2 effects of lethal system. Those values (5 and 1) are % of being triggered, nothing more.
     
    To edit mechanisms themselves, edit Formulas.java (method should begin by "calcLethal"). Both work differently for Players and Npcs.
     
    Check for "lethal strike" here : https://l2industry.com/Home/C5
  5. Tryskell's post in Error in console was marked as the answer   
    EventInterface.onHit(EventInterface.java:153)
  6. Tryskell's post in Grand Masters Change sub was marked as the answer   
    If your point is to delete all conditions, easieast is to delete all VillageMaster children instances, and edit the used type from Npc template (on db or XML) from (let's say) "VillageMasterDwarf" to "VillageMaster".
     
    If your point is to edit conditions, edit checkVillageMasterRace and checkVillageMasterTeachType on whatever children instance. VillageMaster sends back by default "true" to both.
  7. Tryskell's post in "I have nothing to say to you" was marked as the answer   
    It means the file path isn't reachable, or the file not loadable.
     
    Default path for regular Npc is "data/html/default/" + npcId + ".htm"
     
    For specific instances, you have to check if it overrides Npc#getHtmlPath
  8. Tryskell's post in Npc gone after restarting was marked as the answer   
    //spawn_once doesn't save the Spawn into db, other than that there is no reason it bugs (from memory).
     
    Verify first if there are correctly on db, if not, it's normal it can't load - magic can't happen.
     
    If they are on db, there are only few cases where it won't generate a Spawn, and most of them got an error message associated to it (wrong NpcTemplate, wrong type of Npc - Guards, Bosses, etc).
  9. Tryskell's post in Resist / Surrender skills not working was marked as the answer   
    Public sources have been pushed to 382, you would be wise to use directly it.
     
    Regarding your problem, I don't think I ever saw resists "broken". Malfunctioning, yes, based on used formulas. But not working, I don't remember.
     
    You can first activate Config DEVELOPER and see how things are calculated. Maybe it will give you some tips.
     
    PS  : Holy weapon and such aren't, still, correctly calculated. They are supposed to edit the physical state of an attack, actually they add damage out of nothing. Resists/vulns are supposed to work correctly - since few cycles already ?
  10. Tryskell's post in Loginserver console error pop-up. [acis] was marked as the answer   
    It indicates you replaced jar while server was still running, or you touched to build folder. Compiled classes couldn't find proper path.
  11. Tryskell's post in L2jHellas: Couldn't load the NPC list? was marked as the answer   
    What is that line ?
  12. Tryskell's post in Use Config was marked as the answer   
    if (Config.ITEM_ID_LIST.contains(item.getItemId()))  
  13. Tryskell's post in Raid Boss teleporter able to teleport only when the RB is ON was marked as the answer   
    The easiest is : for each teleport location, you also load the boss npcId (so, a new class extending TeleportLocation, with int _bossId). Then when you pick the TeleportLocation, you also interrogate the boss status related to the npcId, if _bossId > 0.
     
    That probably won't help you, but if someone wants to code that... Be free to do it.
     
    A zone check simply can't work.
  14. Tryskell's post in Scheme Buffer was marked as the answer   
    If you find it enough, it's part of aCis. Simply extract it from free revision 370. Search on the SVN for related datapack (XML, HTMs).
     
    https://xp-dev.com/svn/aCis_public/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/instance/SchemeBuffer.java
    https://xp-dev.com/svn/aCis_public/aCis_gameserver/java/net/sf/l2j/gameserver/data/BufferTable.java
  15. Tryskell's post in Unstuck Location was marked as the answer   
    RECALL skilltype leads to L2SkillTeleport, L2SkillTeleport uses
     
    if (_recallType.equalsIgnoreCase("Castle")) loc = MapRegionData.getInstance().getLocationToTeleport(target, TeleportType.CASTLE); else if (_recallType.equalsIgnoreCase("ClanHall")) loc = MapRegionData.getInstance().getLocationToTeleport(target, TeleportType.CLAN_HALL); else loc = MapRegionData.getInstance().getLocationToTeleport(target, TeleportType.TOWN); So edit MapRegionData#getLocationToTeleport(Creature creature, TeleportType teleportType) to fit your needs.
     
    By default, you are teleported on a random location of the nearest town.
  16. Tryskell's post in What client animations does the server utilize? was marked as the answer   
    On aCis, RandomAnimationTaskManager handles the behavior.
     
    NPCs are registered into it either when a region becomes active, or when the NPC intention is set to ACTIVE using startRandomAnimationTimer(). _lastSocialBroadcast guarantees a social action can't occur lesser than 12sec.
     
    Broadcasted animations are 2 and 3.
     
    Special bosses got specific animations, used by cinematics (Baium wake up, Mad Doctor,...).
  17. Tryskell's post in [SOLVED]GeoData Hi5 (Freeze sometimes) was marked as the answer   
    I personally found than without any other parameters than max RAM allocation flag, it was running smoothly.
     
    If you don't NEED a particular flag, don't use it. Simple. You probably harm your server more than you do good. AggressiveOpts for example is barely useful, if not, shady.
     
    Your logs probably come from
    -XX:+CMSParallelRemarkEnabled  
    https://www.jclarity.com/2013/12/11/poorly-chosen-java-hotspot-garbage-collection-flags-and-how-to-fix-them/
  18. Tryskell's post in Weird problem. Sell Items was marked as the answer   
    Well if the value is always 0 for getReferencePrice(), you got your problem, mostly. Check the getter, if nothing, check the variable _referencePrice (put back the variable to private to see errors and track external call). _referencePrice isn't supposed to get a setter, since it is only set once, but you can check if a setter has been added too.
     
    If it's nothing from that, then it's the parser from Item/L2item. It's enough to edit the variable name "price" for a wrong one ("price2") to get 0 by default without any warning.
    _referencePrice = set.getInteger("price", 0); Finally, you can check XMLs themselves. Maybe the variable simply has been dropped, or edited.
  19. Tryskell's post in Chat Delay was marked as the answer   
    Copy-paste a FloodProtector into Say2 or whatever associated ChatHandler(s).
  20. Tryskell's post in Acis Casting Speed caltulation. was marked as the answer   
    Not sure if you know, but
    getMAtkSpd()  is currently overriden numerous time, depending about the actor. PlayerStat refers to player stats, PetStat refers to pets, etc. If you edit the value on, let's say, CreatureStat, then you have to be sure PlayerStat isn't completely overriding it.
     
    It's called inheritance, even if CreatureStat is the mother class of PlayerStat, PlayerStat must be edited OR must refer to mother class using :
     
    super.getMatkSpd(); PS : CreatureStat is the new name of CharStat.
     
    Correctly used, override is a strong tool, allowing some classes to do specific things compared to others. If you see a lot of instanceof checks, it's generally a "bad" use of overriding and inheritance.
  21. Tryskell's post in I need help for dyes was marked as the answer   
    private final Henna[] _henna = new Henna[3]; to
    private final Henna _henna; And you make all subsequent edits. getHennaEmptySlots() must return either 0 or 1, so a
    return (_henna != null) ? 0 : 1; is enough. If you still want a classId.level check, simply write one similar to existing.
  22. Tryskell's post in PetNameTable ( again ) was marked as the answer   
    aCis version is as following (the query is the same) :
    private static boolean doesPetNameExist(String name) { boolean result = true; try (Connection con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement ps = con.prepareStatement(SEARCH_NAME)) { ps.setString(1, name); final ResultSet rs = ps.executeQuery(); result = rs.next(); rs.close(); } catch (SQLException e) { _log.log(Level.SEVERE, "Couldn't check existing petname.", e); } return result; } If it doesn't fix it, verify than "name" is correctly set. If nothing works, sorry, but there is no logic, so no answer possible. Most probably you don't refresh the jar correctly, or edit the one of another server installation by error.
  23. Tryskell's post in Seal Of Ruler Issue - (Pray) was marked as the answer   
    aCis added artifact zones (PrayerZone.xml) for that purpose, simply copy it (it exists since rev 133, 07/01/11).
  24. Tryskell's post in Java Code Help was marked as the answer   
    1079 found occurences of _log, 1079 possibilties to check how a regular log is written.
  25. Tryskell's post in Fortress Requirements was marked as the answer   
    You don't put
    b=false; when you should, check other negative cases on that method. That's the problem when you try to do different than regular 
    return false;  pattern :D. Btw 
    player.destroyItemByItemId  returns already false or true if destroyed or not.
×
×
  • Create New...