Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 04/06/16 in all areas

  1. I began writing a modular docker implementation of rAthena. Here is the source Currently it only supports the initial layers, I am working on creating a finished full-image and a deployment script to run the stack. Afterwards I hope to create individual images for each component, and add logic to the deployment script that allows a distributed local deployment for testing and demonstration.
    2 points
  2. Prolog There are many skills that actually can be set easily to ignore some bonuses. Example Gate of Hell ignores Long Range bonuses (from attacker's and target's gear), the value will be 0x0081000. // - Expanded NK Flags [Cydh] // - These flags are split value of 0x08 - Skill ignores caster's % damage cards // - If you want to this flag works better, remove the 0x08 and 0x10 first // 0x0001000 - Skill ignores caster's % range damage cards (bLongAtkRate) // 0x0002000 - Skill ignores caster's % race damage cards (bAddRace, bMagicAddRace, bAddRace2) // 0x0004000 - Skill ignores caster's % class damage cards (bAddClass, bMagicAddClass) // 0x0008000 - Skill ignores caster's % elemental damage cards (bAddEle, bMagicAddEle, bMagicAtkEle) (split of 0x10 - Skill ignores elemental adjustments) // 0x0010000 - Skill ignores caster's % size damage cards (bAddSize, bMagicAddSize) // 0x0020000 - Skill ignores caster's % specific monster damage cards (bAddDamageClass, bAddMagicDamageClass) // 0x0040000 - Skill ignores caster's % skill-type & mastery mastery bonus? (Adv. Katar Mastery) // - These flags are split value of 0x80 - Skill ignores target's def cards // - If you want to this flag works better, remove the 0x80 and 0x10 first // 0x0080000 - Skill ignores target's range reduction cards (bNearAtkDef, bLongAtkDef) // 0x0100000 - Skill ignores target's race reduction cards (bSubRace, bSubRace2) // 0x0200000 - Skill ignores target's class reduction cards (bSubClass) // 0x0400000 - Skill ignores target's elemental reduction cards (bSubEle) (split of 0x10 - Skill ignores elemental adjustments) // 0x0800000 - Skill ignores target's size reduction cards (bSubSize, bSubDefEle) // 0x1000000 - Skill ignores target's specific monster reduction cards (bAddDefMonster, bAddMDefMonster) // 0x2000000 - Skill ignores target's skill-type reduction cards (bMagicAtkDef, bMiscAtkDef) // 0x4000000 - Skill ignores target's status reduction bonus (SC_MDEF_RATE, SC_DEF_RATE) Download LATEST skill_db_nk_expand-rA-20191001-dda63f51.diff skill_db_nk_expand-rA-20190611-34971e57.diff skill_db_nk_expand-rA-20180708-f2437f4a-v1.diff Changes with old version The flag values are shifted left 1 byte (example 0x100 becomes 0x1000) so it won't be conflicted with multi-hit critical updates on Pull: 2982
    1 point
  3. That depends on what you mean by Renewal client. Ragnarok's Renewal upgrade was predominantly a change in game mechanics and an overhaul of the game content. This is for the most part independent of the client. My client could connect to a renewal-based server in its current state if I updated the networking protocol. The major differences between RagExe and RagExeRE were the introduction of the Lua interpreter and the overhaul of the user interface. I will be implementing neither of these, and probably nothing related to the 3rd classes. As for customization, that is done by changing build parameters before compiling. You can think of it as a config file like Athena uses. Client patchers provide a dead simple way to customize the client, but most people are unaware of the staggering amount of work that goes into making a tool like NEMO. These customization patches have made out of necessity, and with source code available that necessity is gone. Implementing skills is one of the biggest tasks in creating a client, simply because there are so many of them. Skills come in many different varieties, some requiring additional UI (e.g. warping, Graffiti), some need special character animations, some combine multiple effects, sounds, special damage and special hit effects. In addition to the player skills there are also many skills only used by monsters. At the moment I have about 14,000 lines of code just implementing the various visual effects, so it's easy to forget what's ready and what's not. Here's an overview of the current state of the 1st and 2-1 classes. ✓ means 100% done, ✗ means unimplemented or partially unimplemented. Most skills can be used just fine without implementing an effect, but for my 1st milestone I want to have at least 1-1, 2-1 and 2-2 skills fully implemented. Swordman ✓ Bash ✓ Endure ✓ Increase HP Recovery ✓ Magnum Break ✓ Provoke ✓ Sword Mastery ✓ Two-Handed Sword Mastery ✓ Berserk ✓ Fatal Blow ✓ HP Recovery While Moving Magician ✓ Cold Bolt ✓ Fire Ball ✓ Fire Bolt ✓ Fire Wall ✓ Frost Diver ✓ Increase SP Recovery ✓ Lightning Bolt ✓ Napalm Beat ✓ Safety Wall ✓ Sight ✓ Soul Strike ✓ Stone Curse ✓ Thunderstorm ✓ Energy Coat Archer ✓ Arrow Shower ✓ Double Strafe ✓ Improve Concentration ✓ Owl's Eye ✓ Vulture's Eye ✓ Arrow Crafting ✓ Repel Merchant ✓ Discount ✓ Enlarge Weight Limit ✓ Item Appraisal ✓ Mammonite ✓ Overcharge ✓ Pushcart ✗ Vending ✓ Cart Revolution ✓ Change Cart ✓ Crazy Uproar Thief ✓ Detoxify ✓ Double Attack ✓ Envenom ✓ Hiding ✓ Improve Dodge ✓ Steal ✓ Back Slide ✓ Find Stone ✓ Sand Attack ✓ Stone Fling Acolyte ✓ Angelus ✓ Aqua Benedicta ✗ Blessing ✓ Cure ✓ Decrease AGI ✓ Demon Bane ✓ Divine Protection ✓ Heal ✓ Increase AGI ✓ Pneuma ✓ Ruwach ✓ Signum Crusis ✗ Teleport ✗ Warp Portal ✓ Holy Light Knight ✓ Bowling Bash ✓ Brandish Spear ✓ Cavalier Mastery ✓ Counter Attack ✓ Peco Peco Ride ✓ Pierce ✓ Spear Boomerang ✓ Spear Mastery ✓ Spear Stab ✓ Twohand Quicken Wizard ✗ Earth Spike ✗ Fire Pillar ✓ Frost Nova ✗ Heaven's Drive ✗ Ice Wall ✓ Jupitel Thunder ✓ Lord of Vermillion ✓ Meteor Storm ✓ Quagmire ✗ Sense ✗ Sightrasher ✗ Storm Gust ✗ Water Ball Hunter ✓ Ankle Snare ✓ Beast Bane ✓ Blast Mine ✓ Blitz Beat ✓ Claymore Trap ✓ Detect ✓ Falconry Mastery ✗ Flasher ✓ Freezing Trap ✓ Land Mine ? Remove Trap ✓ Sandman ? Shockwave Trap ✓ Skid Trap ? Spring Trap ✓ Steel Crow ✗ Talkie Box Blacksmith (Note: Forging items not implemented!) ✓ Adrenaline Rush ✓ Hammer Fall ✓ Hilt Binding ✓ Power Maximize ✓ Power-Thrust ✓ Skin Tempering ✓ Weapon Perfection ✓ Enchantedstone Craft ✓ Iron Tempering ✓ Ore Discovery ✓ Oridecon Research ✓ Smith Axe ✓ Smith Dagger ✓ Smith Knucklebrace ✓ Smith Mace ✓ Smith Spear ✓ Smith Sword ✓ Smith Two-handed Sword ✓ Steel Tempering ✓ Weapon Repair ✓ Weaponry Reasearch Assassin ✓ Cloaking ✓ Enchant Poison ✓ Grimtooth ✓ Katar Mastery ✓ Righthand Mastery ✓ Lefthand Mastery ? Poison React ✗ Sonic Blow ✗ Venom Dust ? Venom Splasher Priest ✗ Aspersio ? B.S Sacramenti ✓ Gloria ✓ Impositio Manus ✓ Increase SP Recovery ✗ Kyrie Eleison ✓ Lex Aeterna ✗ Lex Divina ✓ Mace Mastery ✓ Magnificat ✗ Magnus Exorcismus ? Resurrection ✓ Safety Wall ✗ Sanctuary ✓ Slow Poison ✓ Status Recovery ✓ Suffragium ✗ Turn Undead Bonus pictures: Pet capture Rental cart Arrow crafting Cart select
    1 point
  4. if (.@equip_id == 22000) { //getitem2 22006,1,1,.@equip_refine,0,0,0,.@enchant,.@card3; getitem 22006,1; //Temporal_Str_Boots_ } else if (.@equip_id == 22001) { //getitem2 22009,1,1,.@equip_refine,0,0,0,.@enchant,.@card3; getitem 22009,1; //Temporal_Int_Boots_ } else if (.@equip_id == 22002) { //getitem2 22010,1,1,.@equip_refine,0,0,0,.@enchant,.@card3; getitem 22010,1; //Temporal_Agi_Boots_ } else if (.@equip_id == 22003) { //getitem2 22007,1,1,.@equip_refine,0,0,0,.@enchant,.@card3; getitem 22007,1; //Temporal_Vit_Boots_ } else if (.@equip_id == 22004) { //getitem2 22008,1,1,.@equip_refine,0,0,0,.@enchant,.@card3; getitem 22008,1; //Temporal_Dex_Boots_ } else if (.@equip_id == 22005) { //getitem2 22011,1,1,.@equip_refine,0,0,0,.@enchant,.@card3; getitem 22011,1; //Temporal_Luk_Boots_ } close; Switch the backslashes (//) with the getitem2 I recently revert it back to official setting after some research. But here's the script to help you out.
    1 point
  5. Forgotten features While revisiting games I've played for years, one of the things I find the most exciting is discovering new features. By this I mean features that were planned at some point, but in the end never made it into the final product. When projects get to a certain size there will always be a few ideas that are rejected - some at a stage where you can still find remnants in the final product. In the case of Ragnarok we even had the lead designer leaving the company relatively early on. Despite the reason for this not being public, one of the reasons I've heard cited is that he didn't get the creative freedom he wanted. Who knows what might have been? In any event, what follows are a few features I've discovered that never made it into the final game. Highly immersive footwear As you're probably aware, the player characters change appearance based on the equipped items. The first layers are the body and head sprites, followed by up to three different accessories (upper, lower, mid). There's the left and right hand weapons, as well as the shield. Different sprites for different shoes were planned as well. In old versions of the network protocol you can even find shoe IDs in the player structures. This feature was most likely eventually left out because it would simply be too much work to animate the shoes for all the different classes. Even special weapon and shield sprites have been somewhat limited in use, and I believe these require significantly less work than it would take to create shoe sprites. Having players leaving footprints was also planned early on. From the looks of it this was originally meant to complement the different shoe types. I think when they scrapped shoe sprites idea they also forgot about the footprints. The effect is still present in the client, although I believe they intended to refine it a bit more. I guess it was eventually used for the Stalker class' Stealth skill. Here's what it would originally have looked like if enabled when normal players walk around: Destroyable maps? In Ragnarok the map is completely static, which is pretty boring. A partially implement feature would allow dynamic changes in the map elevation. It's uncertain how this would be used in practice, and therefore also why they chose to leave it out. Maybe they intended that the map could be destroyed by skills? E.g. have meteor storm leave a deep crater on the ground. That could be a pretty cool feature. Maybe I'll try implementing it myself someday. Model culling Another cool effect that was left out was having static models between the camera and the player disappear so that they don't hide the player. I'm not sure if the models were planned to be completely or just partially hidden. This feature was more or less complete, but the approach used is maybe to simple so that it doesn't always work as intended. I also discovered a bug in the calculation of the bounding box used especially for this purpose. You can actually try out this feature by using NEMO patcher, as I found a relatively simple approach to enabling it. Just enable "Restore model culling" when patching your client. Sky box This one is pretty self-explanatory if you've ever worked with 3D. Instead of having the background of the map be completely black (or blue like in Yuno), the client could instead show a picture of the sky or a landscape in the far distant. It's one of the simplest and most common effects used in video games to improve immersion, so it's a shame they never got around to finishing it. Weather There are some working weather related effects like snow and fog in-game, but a much more comprehensive system was planned at some point. This would include dynamic sun location and a true day/night cycle. One problem was probably that model shadows in Ragnarok are precomputed. A rain effect was implemented, but it was probably never finished as it looks pretty bad. The jRO team used to have some pictures related to this on their news page, and I believe they planned to release the new weather system with the Yuno update. Private server developers took matters into their own hands. If you played on an eAthena server around 2004 you may remember the horrible night effect that was enabled by default: Enabling the blind effect on all players until it was "morning" again! Everything 3D Considering the fact that licensing the RAD Game Tools SDK must have been pretty expensive, it's strange that Gravity never did more with Granny3D than implementing guild flags, the emperium and the castle guardians. (Not to mention Zombie Dragon!) Additionally as I mentioned in a previous post, Gravity already had their own RSX format which would have been sufficient if they only wanted a few simple 3D actors. The obvious explanation is that they wanted to do much more with it. Indeed, it appears that at one point they planned to introduce 3D customizable player characters. Perhaps this was a reaction to contemporary MMO titles, where full 3D quickly became the norm. The results of these experiments were never disclosed, so what it would have looked like is a mystery.
    1 point
  6. I made a tool for myself at some point which does just what you're looking for (requires .net 3.5). It's rather basic, but it does the job. Put the executable where you want your local server to start. For example, if your RootURL in Thor Patcher is "http://127.0.0.1:56561/patch/",then you will want the following : Start the executable, set your port (can be anything), press Start and you're good to go. I have to admit, I haven't tested it so much. I just needed something simple to test my patcher xD. LocalServer.rar
    1 point
×
×
  • Create New...