Leaderboard
Popular Content
Showing content with the highest reputation on 11/16/16 in all areas
-
Clan System As of Git Hash: ecc8cf9, rAthena supports the official Clans! Features: Requires 2013-12-23 client or newer. Includes the Sword, Arc Wand, Golden Mace, and Cross Bow Clans. Jumping Clan is not yet implemented as more information is needed. Includes official NPC to join and leave Clans. Side note: Confirm your chat window has the Clan Info setting enabled to display messages. Added clan_join and clan_leave script commands. Thanks to @Lemongrass for implementing this! Don't forget to update your SQL tables with upgrade_20161116.sql!9 points
-
Storage Types Optimization As of Git Hash: ade1b17, rAthena has moved the Cart, Inventory, and Storage types out of the mmo_charstatus! What does this mean to you? These storage types now mimic Guild Storage and can be loaded/saved whenever needed. Relieves mmo_charstatus from having to send storage types and lets the char-server handle it. All item storage types now have an increased max amount. Custom Storages can be created in conf/inter_server.conf which mimics official behavior of secondary Storages. Each Premium Storage behaves as a unique Storage for players to access. Images below show it in use. Fixes players having to log out to resync cart item data before opening a Vending Store. Refactored player weight and cart weight calculations into their own functions. Added script commands openstorage2 (for premium Storages), guildstoragecountitem[2] and guildstoragedelitem[2]. Refactored several function return types as well as documentation. Thanks to @Cydh for his work on the Premium Storage support and thanks to @Lighta for the initial support on creating the cleanup. Thanks to everyone else who tested the PR and helped it come to fruition!3 points
-
Hi all, Sometime last year I started working on a Ragnarok client. (Again...) It's very close in behavior to the original client, using DirectX and the original 3rd party libraries (granny2.dll, mss32.dll etc). It doesn't have a name yet, but I like to think of it as my "SakExe", since that's what it's based on. At this point it can be used for basic gameplay, though much of the user interface is still missing, as well as a lot of the effects. Recently I've made a few changes, making an alternative rendering implementation using OpenGL. After a little work I was able to compile my client for Linux and finally Android. I'll use this topic as a showcase/work log. Feel free to ask any questions. And now for some pictures... DirectX mode on Windows 8. Some features like the Granny3D actors are only supported on Windows. It's working great on Android, although some additional tweaks are needed to make it more accessible. What I've done so far is to scale the UI to make it easier to hit buttons, and adding touch gestures for things like camera rotation. This is with OpenGL ES rendering on my x86 Android phone (1920x1080). It also runs on 32 bit ARM. I've been testing it on both my newest phone and my old Samsung Galaxy Note II, the latter of which is a little over 3 years old at this point. Originally I got like 0.5~2 FPS on my phones with my naive GL renderer, but after some work the performance it pretty solid on both of my phones.1 point
-
Castle Manager In celebration of rA's movement into a new era of IPS4, I decided to finally make a new release. It's nothing too fancy, I just got tired of manually rotating castle ownership every time I rotated WoE castles. Whipped it up tonight, if you've got any suggestions feel free to post 'em! I set the permissions for GM 99 only, you guys are welcome to set separate ones per section. Some people might decide to let normal players see the guild data. Oh and a shout-out to @Euphy, as I used his WoE controller as inspiration, and copied the arrays from it. Edit: Added a new version already at @Emistry's request. You can now modify a castle's data one value at a time.1 point
-
Hello everyone, Cyan Hijirikawa here, the Project Lead of MIDICityRO Project. As thanks to everyone from rAthena, I'll personally be releasing some of our scripts every now and then. I wish that these scripts will prove to be useful to other people. These will be free releases, but I would like to ask people not to remove the Author notes and whatnot. Halloween Collection Event Script DescriptIon: This is a finders-keepers type of event Only the first person to find the npc on that map can win that map's reward Rewards are randomized, if you want to change this and don't know how to do it, contact me http://pastebin.com/xYarzVRY Classic Headgear Quest Script Description: This doesn't give headgear preview, but uses old-style RO headgear quest mechanic This was messy, but yeah, it functions properly and as intended http://pastebin.com/PNZfFMRR Radio NPC Description: Basically let's you play a song of your own choosing from any of the available playlist Be sure to follow proper formatting to keep it functional Also, be sure to have the proper bgm files in your bgm folder for this to work http://pastebin.com/UJw4HPfA1 point
-
1 point
-
Didn't we plan to make this as Xmas Nightmare bundle? From my comment at Pull: 1620#issuecomment-253699196 Sample to use the 'premium' storage conf/inter_server.conf Sample NPC Extra1 point
-
{ sc_start SC_INVINCIBLE,5000,1; } itemDB id,nameA,NameB,11,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ specialeffect2 EF_GUARD; sc_start SC_INVINCIBLE,5000,1; },{},{} item type 11 = will not be consumed, if you will carry more than 1 and want them consume change to 2 item_delay id,600000//you custom potion with invincible all damage will be 1 or miss itemdelay 600000=10min1 point
-
It's very helpful that Athena developers have attempted to keep backwards compatibility with older clients -- all despite an increasing pile of spaghetti code as seen in functions such as clif_set_unit_idle. With rAthena you can ostensibly compile the server for any given version network protocol. Of course, as people move on to newer clients, the old clients aren't really tested anymore and many things can go wrong. The result is that rAthena supports a lot of strange packet versions that are something of a mix between old and new. But in the end, the only thing that matters is that the server and client understands each other. Luckily it didn't take too much effort to get my client working with the latest trunk revision. Renewal seems to work also, although I got resource crashed from some new monster called "little poring" or something?? Below: me battling it out @ glast with rAthena pre-RE1 point
-
To settle the question of open source once and for all: I'm planning to release the full source code sometime in the future. When the code is released, anyone who wishes to do so will be free to fork the project, add renewal features, organize their own development teams and whatever. As I've already stated, I will not be interested in collaboration. I will release when I've reached my milestone for feature completion, and this will be the first and final release.1 point
-
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 select1 point
-
A brief look at RagExe Game Framework Class (GFC) is Gravity's own name for the game engine or application architecture used in Ragnarok Online. With the Ragnarok beta release in 2001, Gravity announced the finalization of GFC 2.0. But what exactly is GFC, and where did it come from? Most game developers use commercial proprietary engines for their games, while GFC is an in-house product by Gravity's RND-1 development division. In truth, it's misleading to call it a game engine, as GFC in its current form has been used in exactly one game and is tightly coupled to it. In all likelyhood the name GFC and the notion of a game engine are just buzzwords Gravity used in an attempt at impressing investors in their early days. However, my client is strictly based on Gravity's RagExe implementation, and I guess it can therefore be said to be a clone of GFC. Here's a brief look at its history. Gravity Corp. was a relatively small developer before Ragnarok Online became an international success. Certainly no one outside of South Korea knew of them. In fact, right up until Ragnarok become ready for alpha testing they were still just Team Gravity. In 1999 they partnered up with Sonnori Entertainment in a joint venture to develop an action RPG. Arcturus: The Curse and Loss of Divinity was released with success in 2000. At this point Gravity obtained the rights to publish a game based on the popular Korean comic Ragnarök. They decided to reuse source code from Arcturus. While Arcturus and Ragnarok don't have much in common in terms of game play, resemblances can be noticed in aspects such as artistic style and music. Making Arcturus into the Ragnarok we know today required a severe overhaul of the code base. However, in many architectural decisions were left intact. What was retained became the base of GFC. Ragnarok, like Arcturus, is a 2.5D game. While Gravity at one point experimented with 3D actors in Ragnarok, the main focus has always been on sprite-based characters in a 3D world. Most of the file formats from Arcturus could therefore be reused directly in Ragnarok. This is one of the reasons why some of Gravity's file formats have strange features. For instance the world resource format (RSW) contains strings pointing to scripts files, a feature not used in Ragnarok. Some formats, like RSX (think RSM for actors) were retained and is still in the code base, but never used. A few formats from Arcturus you may know include: SPR - indexed color bitmap format ACT - actor animation RSM - hierarchical 3D models with basic animation support GND - tile based ground mesh GAT - tile based property map RSW - map format (defines a scene with objects) They also made new formats, like the worthless IMF format that no one understand what is supposed to do... (Just kidding, IMF is used when combining ACT files for player characters, but it turns out it wasn't really necessary or useful. The client uses IMF offsets when drawing the player on the character select, which is probably why headgear sometimes looks a little wonky there. It also uses it for drawing order for player character sprites in-game.) While based on DirectX 7.0, from a modern perspective GFC can be said to be software rendered. If you've ever wondered why Ragnarok uses so much CPU, that is why! Direct3D is only used as a glorified triangle rasterizer with blending and depth buffering. GFC has a fairly large entity-based actor system where every actor is responsible for rendering themselves every frame. There are a few principal object types: ground (GND), models (e.g. RSM) and game objects (actors, effects, etc). Rendering done by registering a render pass from with the renderer - basically a list of screen projected vertices and a texture. The renderer sorts the render passes by depth, opacity and other attributes, and draws everything at the end of each game cycle. This all makes for a pretty horrible design. Easy to work with, but unnecessarily taxing on the system. The only reason it worked in the first place is the low amount of polygons on the screen. (Typically below 10,000 triangles at any time.) Game objects communicate by passing messages around to each other. In Ragnarok, there is also a global state (the session) and the current game mode, which is responsible for tasks like processing input, creating actors, handling network messages and signalling actors. The diagram above shows part of the base object hierarchy in Arcturus, which is pretty tall and convoluted. In Arcturus, each enemy needed its own class specialization. In comparison the diagram below shows the object hierarchy at the time of the Ragnarok alpha release. While simplified, the principal structure is the same. I have colored a few classes that provide similar functionality in the two games. CRenderObject is any type of object that is draw on the screen, while CGameActor is any object that can be interacted with. CPc is the object type for characters controlled by a player. CNpc covers static NPCs and monsters. In Arcturus you could interact with certain 3D models (e.g. doors, chests), so C3dActor was a part of the game object hierarchy. In Ragnarok, all 3D models are just decoration and not part of the game play and aren't considered game objects. (The exceptions to the rule are Granny actors and traps, the latter of which are actually RSM models drawn by a Skill object.) From the Ragnarok alpha to commercial release the renderer was improved a bit, and the 2D actor system become more flexible. A few libraries from RAD Game Tools was integrated to provide sound, video playback and a more practical 3D format (namely GR2, thought it's only been used for a few models). Aside from that, not much has changed.1 point
-
Improvements continue. Most notably I finally added NPC shops. I had completely forgotten there was a little window above the purchase window. Has that actually ever worked on any client? It's supposed to show how much your stats will be raised by buying a piece of equipment (by pulling attack and defense from itemparamtable.txt), but it seems completely broken.1 point