Jump to content

Tryskell

Legendary Member
  • Posts

    5,373
  • Joined

  • Last visited

  • Days Won

    70
  • Feedback

    0%

Everything posted by Tryskell

  1. Changeset 397 (2224) Geoengine / Movement, Admin commands, Scripts, Bugfixes, Organization Geoengine / Movement - Drop L2D concept. With years, it got less and less uses (was invalid for LoS, and can be calculated in another mean for geopath). L2OFF and L2J are, anew, fully supported. - Fix Z being shifted too high, leading to Z layer misplacement (forts outside wood ladder). Ty Sahar. - Fix geopath heuristics. Ty Hasha/Sahar. - First iteration of multilayer geopath support (Barakiel column, fort stairs/plateforms, etc) using binary heap. Ty Hasha for the implementation. - Fix the 2 IOOBEs related to canSee / canMove (since MoveDirectionType implementation). Ty Hasha. - Fix swim movement issue. Ty Sahar. - Remove the collision radius offset shrinker in order paths being properly executed (notably visible for Attackable stucking in corners). Introduce back some client<>server desync. Admin commands - Addition of AdminCommand model, storing parameters and description of the admin command. - Addition of Pagination class, used to easily cut your data and format it under HTMs. Ty StinkyMadness. - Addition of multiple useful methods into IAdminCommandHandler to cut some target selection redundancy. Ty StinkyMadness. - activeChar > player rename. - Delete all admin HTMs related to skills (data/html/admin/skills). Skills list is generated from //skill list. - Move previous //help logic to new //link command. - //announce without params properly calls the panel. - //help is now generated using adminCommands.xml content. Previous static help system is deleted. - AdminDoor //open_all and //close_all are deleted (no use). - Merge //bkpage with //bk, //knownlist_page with //knownlist. A bookmark name can't be anymore a number. - All related server admincommands are merged into //server param. - All related siege commands are merged into //siege param castleName. - All related castle commands are merged into //castle param castleName. - All related zone commands are merged into //zone show "id"|all|clear, //zone calling the panel. - All related geoengine commands are merged into //geo. - All related pathfind commands are merged into //path. - All related skills commands are merged into //skill and //clan_skill. Greatly improve //clan_skill, allowing to add, delete, add all and delete all skills of a Clan. - All related summon commands are merged into //summon. Generate AdminSummon out of AdminRideWyvern/AdminEditChar content. - All related effect commands are merged into //effect. Merge AdminBuffs with AdminEffects. //effect now handle set, remove and visual parameters. Edit admin panels accordingly. - All related item creation commands are merged into //item. Generate AdminItem out of AdminCreateItem. //item coin can accept radius. Drop //reward_all. - //info over Player got a new look, added collision radius/height infos over Npc. - //runmod is deleted, //instant_move now accepts 0|1|2. - //recall_party and //recall_clan are merged into //recall. - //goto is deleted, //teleportto is used instead. All "goto" subcommands (ch, cw,...) are also renamed "teleportto". - //tele_areas is deleted. - //move_to is renamed //teleport. As L2OFF, it can accept only 2 parameters, being X and Y - Z being calculated based on X/Y coords and actual Player Z. - //polymorph is now a toggle, merging the 4 previous admincommands to it. Delete the possibility to morph into an Item (too much bugged). - //invul and //undying don't work anymore on other targets than yourself. - //para becomes a toggle. Delete //para_all and //unpara_all (no use). - Delete //special (not existing). - Delete all redundant commands ending with "_menu". - //abnormal and //social only affect your current target. There is no more player or radius check. - //ban, //ban_acc, //ban_char and //ban_chat are all merged. Same for //unban. - //kick, //kick_non_gm are merged. //character_disconnect is dropped. - Merge //kill, //res, //heal to new AdminManage, which now use [name[radius]] parameters. Delete //res_monster. Delete AdminHeal and AdminRes. //areacancel is renamed //cancel and moved to AdminManage. - Merge AdminGm with AdminAdmin. Rename //gm to //gmoff. - //ch chId parameter is moved from first to second place (//ch param chId). - Delete //cw "info". It is now part of regular //cw, similar to //siege, //zone, //ch... - Heal/kill/res/cancel/open/close now accept parameters over //admin quickbox. Added a "Cancel" button upon //admin. - Merge //find_character, //find_ip, //find_account and //find_dualbox into //find. //show_characters is renamed //list. Generate AdminFind for it. - Delete //clan_info (collide with //pledge info), //st (collide with //effect visual), //get/reset_skills (you can't ninja anymore skills set of another Player). - Generate AdminEditChar //remove out of //removereuse and //remove_clan_penalty. Add //remove death_penalty. - Drop //forge and AdminForge. Move left //msg to AdminAdmin. Scripts - Optional item (e.g. fish) isn't considered as quest item anymore for 3rd class quest. Ty Hasha. - Add Medusa and BrekaStronghold AIs. Ty Hasha. Bugfixes - Fix 2 NPEs due to AggroList rework. Ty Sahar for report. - Fix AttackableAI NPE over thinkIdle. Ty Sahar for report. - Fix CreatureCast/CreatureAttack NPEs (definitive edition). Ty Sahar. - Fix Doors being non attackable during SiegableHall. Ty Sahar. - Fix registration to SiegableHalls. Ty Sahar. - Fix Devasted Castle guards. Ty Sahar. - Fix BabyPet / Pet skill level. Ty Hasha. - Fix RaidPointManager not being properly saved + few optimizations. Ty AshenOne for report. - Validate teleport location if a random offset is used. Ty Hasha. - Fix invalid PK check over gatekeepers. Ty Dimityr203. - Add few more X/Y/Z check validation upons spawns (quest spawns, minion teleport, pet spawn). Ty Hasha. - Servitors/pets now spawn heading towards the Player, and their distance is moved from 30 to 40. Both Pets and Servitors use the same spawn rules. - Fix Buy shop showing wrong shop quantity. Ty StinkyMadness. Organization - FloodProtector is moved to its own enum, on enums folder. - Add AggroList#getMostHatedCreature for easier usage. PS : Since geoengine doesn't accept anymore L2D format, the exact same geodata is now shared under L2J format. See [url=https://acis.i-live.eu/index.php?topic=1974.0]public sources topic[/url] to download it back.
  2. You have to move the code logic, aka (Config.PLAYER_SPAWN_PROTECTION > 0 && _player.isSpawnProtected()) to (and similar to what already is done with //hide effect) : writeD((!_player.getAppearance().isVisible() && _player.isGM()) ? (_player.getAbnormalEffect() | AbnormalEffect.STEALTH.getMask()) : _player.getAbnormalEffect()); Packets accept defined values, if it accepts a CAR you can't put an ICE-CREAM on it. Abnormal effects are set on the line I gave, and nothing else. Remember, for other players you have also to edit CharInfo.
  3. Reading the link answer would give you a good clue. It's your environnement which is faulty. Install another version (lower) of mySQL.
  4. https://stackoverflow.com/questions/51283759/mysql-8-0-11-is-throwing-client-plugin-auth-is-required
  5. L2D format is part of aCis, and since geodata is mandatory since multiple cycles those properties have been removed. L2D format will be dropped on next revision, btw, due to the lack of uses of diagonal checks (was dropped from LoS few revs ago due to invalid purposes, and last use can be done from canGoN + canGoE). Geodata will still be mandatory, and the readme fixed. PS : also, some geopath issues will be fixed, notably heuristics, Z layer being called too high, the IOOBE over canSee/canMove, and maybe, if Hasha got time, the implementation of a Binary Heap to properly climb some specific spaces (Barakiel broken column, stairs with geodata below, etc).
  6. Your bypass isn't properly cut / variable filled, L2CraftManagerInstance.java:69 can't process it properly at least.
  7. Well, it's not because you copy-paste a good datapack than it makes a good pack.
  8. The libraries you're refering to were part of L2J external script loader, which were dropped from aCis at rev 348 due to the 2min loading process (JDK 8 was causing the issue, somehow, I never tried to understand and dropped it). Now scripts are simply loaded and generated from ScriptData. aCis don't use any external libraries anymore, except the MariaDB connector, which is also used as a connection factory (instead of C3P0). About Java scripts themselves, we remade them from zero, using L2OFF decompiled ai.obj data as validation. I doubt you got any usage of those informations - except if you copy-paste my community work and add it to L2JFrozen.
  9. My exemple is perfectly fine, and you are actually out of context - I was talking about a "script" folder, and you come and speak about Java being not a script langage. So my Monster being not a monster exemple is perfectly ok. I won't continue on that way, I know you like to troll :).
  10. As a class named "Monster" isn't a monster. But ty for your participation !
  11. I would like to thank everyone who helped on the scripts folder. That adventure begun in changeset 126, on June 24th 2011. Many helpers are now gone - some of them since few years already - but their dedication wasn't vain. A lot of work has been done to migrate quests to Java, and we were one of the first fork to initiate the movement (unfortunately, not the first to end it). After 9 years, the quest folder is ended, ending this milestone. :) AIs will be the next, and their functionalities will be improved with the addition of the SpawnManager !
  12. Changeset 396 (2123) Scripts, Bugfixes, Organization Scripts - Ty Hasha. - Add missing Q501 and Q503. Ty RooT and Hasha. - Rework entirely Quest to be able to handle basic operations without a QuestState. All regular scripts are now QuestState free. - QuestState now extends MemoSet. - QuestStatus enum implementation, SQL is edited accordingly. - Add ElmoderenCemeteryTeleporters, splitted from Q620_FourGoblets. NPC 31919 and 31920 changed to Folk type, moved HTMLs. - Merge GoldenRamMercenary instance with Q628, and edit NPCs to Folk. - Move death event registration from Player to Quest. - Quest loading process is moved from Enterworld to Player#restoreCharData. - Implementation of QuestList, a Player container holding QuestStates. - Entire script reorganization and renames, to fit with future changes. - Complete rework of all Sagas, using dedicated npcIds, itemIds, NpcStringIds. Ty Hasha. Bugfixes - Revert one edit introduced in 395, leading to quest html modified in sysmsg. Ty shyr for report. - Fix rechargeShots bug upon toggle activation. Ty MasterRoshi for the fix. - Edit rank > ranking over clan privileges to bypass MySQL reserved word RANK. Ty Hasha for the fix. - Summons can't trigger pvp flag over their masters upon attack. - Fix SummonAI stackoverflow. - Add missing PRIVATE_STORE_NOT_WHILE_CASTING sysMsg. - Fix bow>melee>bow cooling down exploit. Ty StinkyMadness. - Fix Player rotation over interaction, for both regular and Walkers. Organization - Implement Npc#forceAttack, delete AttackableAIScript#attack and cleanup all uses. - Delete AccessLevel allowPeaceAttack, takeAggro, gainExp concepts. They were defeating the contract about GMs being as "playerish" as possible. - Priviledge > Privilege typo. - Drop unused CreatureMove#canfollow. - Drop few ActionFailed uses. - Move ON_ATTACK call from Attackable to Npc (allow futher custom or non custom usages). - Add few missing NpcStringIds. - BossInfoType stores NpcStringId instead of Strings. - ExShowScreenMessage packet is cleaned up. SMPOS is mandatory. - AbstractGroup#broadcastOnScreen is added. - Npc#broadcastNpcShout and broadcastOnScreen are added. PS : Following SQL update is needed for live servers: ALTER TABLE `clan_privs` CHANGE `rank` `ranking` INT NOT NULL DEFAULT '0'; UPDATE `character_quests` SET `var` = '<cond>' WHERE `var` = 'cond'; UPDATE `character_quests` SET `var` = '<flags>' WHERE `var` = '__compltdStateFlags'; UPDATE `character_quests` SET `value` = 'CREATED' WHERE `var` = '<state>' AND `value` = '0'; UPDATE `character_quests` SET `value` = 'STARTED' WHERE `var` = '<state>' AND `value` = '1'; UPDATE `character_quests` SET `value` = 'COMPLETED' WHERE `var` = '<state>' AND `value` = '2';
  13. The task still runs silently in background. While the task is only few dozens of seconds and is barely exploitable, it's not a good practice. Using that type of logic will pown you, one day or another.
  14. You have to store your running task to a ScheduledFuture<?> _task (stored in L2PcInstance / Player) and then if (_task != null) { _task.cancel(false); _task = null; } over it if you need to abort it. That code section can be put in a public method to be triggered anywhere, anytime. You got over 50+ occurrences on any regular L2J pack of that way of coding.
  15. All gameserver/votereward pathing files need to be added, since they don't exist. Generate a class in your project with the good name and copy-paste content without the "+" in beginning of each line. Player class is specific to aCis (the patch is made using my pack), in L2J it's still in model.actor.instance but is called L2PcInstance. Other packs can rename it L2Player, PLayerInstance, etc. It uses a system called VoicedCommandHandler (custom .commands usable for players), which, in aCis is dropped, but not on the vast majority of other packs. Elfo's patch only show what you need to add if it already exists. The leftover is shared with other packs, and the patch itself is pretty basic.
  16. 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
  17. Changeset 395 (2037) is up !

     

    GeoEngine, StatSet / MemoSet, AggroList, Gatekeeper, Raid Curses, Bugfixes, Organization

  18. Changeset 395 (2038) GeoEngine, StatSet / MemoSet, AggroList, Gatekeeper, Raid Curses, Bugfixes, Organization GeoEngine - Ty Hasha - Added MoveDirectionType enum with pre-calculated constants. - Added getValidSwimLocation, which calculates last accessible swimming location. It also handles getting out of water correctly. - Dropped geo coordinate validation when converting from world coordinates (getGeoX, getGeoY). - Added world coordinate or geo coordinate checks in various can/get methods. GeoEngine now support processing of coords, when outside of world. - Fix LoM check giving false positive result, when target is on "balcony". - Simplified GeoEngine#getWorldX/Y calculation. - Added new admin command "geo_fly" to check LoF. - Fixing movement blocked / pathfinding fail / by dual-layer (e.g. Sirra's pond). StatSet / MemoSet - Implementation of MemoSet, a CHMap storing String pairs. - StatsSet is renamed StatSet and moved to common.data. - NpcMemo and AbstractMemo are deleted. - Lazy initialization concept is deleted from PlayerMemo and ServerMemoTable. AggroList - Introduce AggroList container, gathering all methods related to aggro. - Move few methods here and there for an easier and more logical use (notably, hold AggroInfo instead of Creature and compute back getHating). - Rework and cleanup methods, for easier use and/or optimization. - AggroList#stopHate/reduceAllHate trigger an AI reaction when a most hated isn't foundable. - Implement //info aggro for easier aggro management, include it in the existing panel. - Fixes related to that refactor : - AggroList#reconsiderTarget doesn't consider anymore actual most hated as a valid choice. - The aggro isn't cleared anymore if the most hated becomes out of range (so the second on the list inherits the attack stance). - Fix multiple aggro values (all are checked). "Raid related" use their own formula. - AggroList#randomizeAttack() don't build anymore aggro like crazy and can now work on non aggressive, 0 getAggroRange(). Gatekeeper - Delete 35001 > 35341 instant locations / associated HTMs. - Fix all Ivory Tower Gatekeepers, using proper systems. - Fix few HTMs typos. - RaceTrack > MonsterRaceTrack script rename. Raid Curses - Correct implementation of Raid Boss curse system. Ty shyr for report. - Trigger it exclusively for Playable during a regular hit. - Regular RaidBoss now casts AntiStrider skill during a regular hit. Bugfixes - Fix revive animation. Remove the paralyze effect upon revive. Ty StinkyMadness. - Fix deadlock over AttackableAI#onEvtAttacked. - Fix broken movement Intention (fix few, linked, issues such as boat moving in ground, etc). - Secure all spawns position using World borders. - Fix doAttackHitByPole logic (ss consumption is fixed, add allowPeaceAttack() check) and optimize it. - Fix "Focus Attack" skill target amount. - Implement missing Seal of Strife siege banish behavior. - Fix rewardNewbieShots for Q273 and alike. Ty shyr for report. - Fix skillId 2217 leading to Inventory NPE. Ty shyr for report. - Fix Peace Zone messages/checks for attack/cast. Ty StinkyMadness. - Add RandomizeHate effect, used by 3 different skills (used notably by Confusion). Ty shyr for report. - Delete PenaltyMonster instance and introduce FishingBlocker script using L2OFF. - Rework Monastery script to fit with L2OFF. - Fix ON_SKILL_SEE being centered on actor and not on acting player. - canScheduleAfter is desactivated for AttackableAI. Fix onSpellFinished behavior, mage AI, aggro movement over a Confusion cast, etc. - Fix //reload npc, add //reload script. Ty nighty for report. - Shift Z upon teleport action. - Fix the NPE over CreatureAttack#onHitTimer. Organization - Add World#isOutOfWorld method. - Remove all -100 / +100 from WorldObject#spawnMe/setXYZInvisible. - Add Location#addRandomOffsetBetweenTwoValues method. - Optimize Attack process. - Baium script heavy cleanup. Introduce Quest#addGrandBossSpawn. - Delete unused SummonCast. - //info is slightly edited / reorganized. 2 buttons are added, AggroList and knownlist - Quest#onSkillSee handle Creature[] targets, not WorldObject[]. - Quest#showResult is slightly edited (secured html tags, move few null checks). - All "data containers" holding a single Queue/Map/List now directly extends it.
  19. https://monopoly.fandom.com/wiki/Bankruptcy
  20. When you do Party#removePartyMember, it does what it says ; therefore all additional checks about Player's Party will return false, since he is ALREADY OUT OF THE PARTY. Interrogating Player#getParty() will therefore return ALWAYS NULL, which is PERFECTLY LOGICAL. If you want to code such thing, you have to either : In case of a second method using Party#removePartyMember (what you currently do) : RETAIN the Party of the Player into a variable, and reuse it just after Party#removePartyMember if != null (Party can be disband by default in removePartyMember) In case of Party#removePartyMember method edit : write directly in the method whatever check (there are already such checks for Duel and Dimensional Rift, DuelManager/DimensionalRiftManager#onPartyEdit - in L2J, EVERYTHING ALREADY EXISTS). The good approach is the SECOND approach, since some vars are already validated inside the method (notably, player != null and Party#contains)
  21. //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).
  22. Changeset 394 (1972) Scripts, Teleport system, Seven Signs, Organization, Bugfixes Scripts - Introduction of Tutorial / NewbieGuide - Ty howlrang/Marcatu for initial cleanup of L2J script. - Fix following quests : 101, 102, 103, 104, 105, 106, 107, 108, 257, 260, 265, 273, 293. - Rewards are done using rewardItems instead of giveItems. - Fix ss/sps beginners rewards amount. - Rewards are now secured by a PlayerMemo var instead of QuestState var, making it exploit-free (case of 257, 260, 265, 273, 293). - Q105 now rewards regular ss/sps ng, aswell as potions. - Q260 / Q265 reward formulas are fixed using L2OFF. Teleport system - Revamp whole teleport system, using lord_rex initial share. - goto/tele/etc bypasses are deleted, and replaced by only those 2 versions : instant_teleport and teleport_request. Move the teleport logic to Npc. Children classes can override isTeleportAllowed(Player). - Implement TeleportType enum, based on L2OFF AI content. - Implement instantTeleports.xml. Those teleports only check Npc#isTeleportAllowed(Player), while regular teleports check siege, item consumption and Npc#isTeleportAllowed(Player). - Improve teleports.xml, reparsing the content using L2OFF. The model now holds the Castle, teleports are organized by npcId and by TeleportType. The initial data was double check with RooT's work, allowing to add 10 missing ids and cut 60+ pointless ones. - The HTM which shows teleports is now built out of nothing from data. All existing, related HTMs are deleted (scripts and regular teleporters). - Add few missing "-pk" HTMs (30162, 30836, 31964). - Add (back ?) FREE_TELEPORT config. - Rename "teleporter" HTM folder to "gatekeeper" (to match class names). - Rename script ToIVortex > DimensionalVortex. - Add castle chamberlains teleports aswell - parsed from L2OFF GF, since the content of Vanganth and AdvExt was lacking. They are not yet implemented. Seven Signs - Ty Hasha. - Updated all HTMLs to L2OFF GF, formated them, fixed obvious mistakes, typos and names. - Added missing HTML with - not enough adena to purchase Records of Seven Signs. - Fix xxxx_priest_2c.htm to not containCatacomb/Necropolis teleport location link (Seal of Gnosis owner lost -> no teleport). - Fix "Failed to retrieve cabal from bypass command." upon trying to contribute Seal Stones while Seven Signs is in Competition period. - Characters with 1st class transfer can now join any side. - Delete ALT_GAME_CASTLE_DAWN / ALT_GAME_CASTLE_DUSK configs. Replace it by SEVEN_SIGNS_BYPASS_PREREQUISITES. Organization - Add //show html, which toggles on/off the HTML path for GMs (similar to L2OFF). There is no associated config, and is set to false by default. - Secure //set class, which now checks dummy ClassIds, and provide more infos upon fail. - Introduce QuestState#rewardNewbieShots method for easier management of beginner reward. - RadarList#addMarker/removeMarker now accept a Location as parameter. - QuestState#addRadar/removeRadar only accept Location as parameter. - Hardcode all Locations used in Quests for easier management. Replace some int[][] for Location[]. - MIMYU SpawnLocations are downgraded to Locations. - Delete all unused SkillTypes. - Drop all "Alt" and "Game" from either Config .properties or java side. Few Config renames. - Cleanup all checks regarding TAKE_CASTLE, STRIDER_SIEGE_ASSAULT, SIEGE_FLAG and SUMMON_FRIEND - moving methods from Player to dedicated handlers. - Generate NpcTalkCond enum. Rename and generate on Npc #validateCondition(Player) > Npc#getNpcTalkCond(Player), which now acts as overriden. Cleanup all uses. Bugfixes - Fix Benom spawn timer. - Fix trade NPE, upon empty lists pushing "Start" button. - Fix frozen actions upon invalid trade windows checks. - Fix Summon Friend and alike skills. Remove the 50 radius check. Add a SystemMessage and avoid the cast on yourself. - Fix Gate Chant, adding SUMMON_PARTY SkillType. - Fix Elpy AI. Ty Bruns87. - Allow Config.OLY_MIN_MATCHES to be correctly spread over queries when a Config reload occurs. - Fix a stackoverflow over siege end. Ty Kitsos for report/fix. - Fix StriderSiegeAssault, using skill target instead of getTarget(). - Fix bow attack reuse over CreatureAttack#stop() call. Ty MonKEY fo report. - Delete active siege check on Wyvern Managers + class cleanup. - Switch Schuttgart CHs to correct order, fixing CHs doors and spawn. - Auto loot Config properly checks inventory size. PS : Q257 is now race bound to HUMAN. While NOT RETAIL, it looks like a NCSOFT fail : - It defeats the C3 layout being than "all races get access to 13k ss / 6k sps". - Out of 13 newbie quests, it's the only "race unbound" quest. If you manage to find any retail info about why it has been done that wrong way, I'm willing to revert it.
  23. Simply call getInstance() from L2ZoneManager... See all existing uses of the method to figure out.
  24. Don't edit the parts you shown, it's pointless to edit them.
  25. You can check pagination system on aCis. It basically store all elements in a List than sublist it based on given page number. Simply check one of the 7 occurences of MathUtil#countPagesNumber. https://gitlab.com/Tryskell/acis_public/-/blob/master/aCis_gameserver/java/net/sf/l2j/commons/math/MathUtil.java Exemple of use #showBookmarks : https://gitlab.com/Tryskell/acis_public/-/blob/master/aCis_gameserver/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminBookmark.java By default L2J got also some handwritten pagination, maybe 1 or 2 times, but I don't find it really readable.
×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..