7
I Use This!
High Activity

News

Analyzed 1 day ago. based on code collected 1 day ago.
Posted over 9 years ago
Introducing Hercules' Map Zone DatabaseHello~! - What?!1st, it is a merge from item_noequip.txt and skill_nocast_db.txt functionality.2nd, it is a major improvement on what these features did in both performance and usability.map_zone_db.txt format ... [More] sample { name: "My Zone" inherit: ( "My Other Zone" ) disabled_skills: { WM_LULLABY_DEEPSLEEP: false } disabled_items: { Assumptio_5_Scroll: true } mapflags: ( "adjust_skill_damage MG_FIREBOLT 250", "adjust_unit_duration PR_SANCTUARY 50" ) } Notes on the formatIn disabled_skills and disabled_items the var following the name (: true or : false) is what allows a zone to override what it inherited, for example if My Other Zone disables a number of skills, including WM_LULLABY_DEEPSLEEP, in My Zone all of them will be disabled as well, except WM_LULLABY_DEEPSLEEP since it is as false.A zone may enforce an unlimited number of mapflags on all its maps, by using this sample all maps under My Zone will have Fire Bolt damage increased by 2.5x and Sanctuary will have its duration halved.A unlimited number of maps may be linked to a specific zone through a mapflag'mapflagzone'ChangesThe mf_restrict (restrict) was dropped.item_noequip.txt and skill_nocast_db.txt were dropped, replaced by map_zone_db.txt.setmapflag script command was modified to support the new zones.@mapflag was modified to support the new zones, also modified the formatting and made it include the amount of vendings.ImprovementsAs opposed to item_noequip.txt and skill_nocast_db.txt, map_zone_db.txt supports an unlimited number of zones.map_zone_db.txt implementation surpasses the ones from item_noequip.txt and skill_nocast_db.txt, making item equipping (pc_useitem/status_calc_pc) and skill using (skillnotok) processing much faster and efficient.@mapflag performance was improved (was doing chat room dbmap lookups without even checking if player was on the map in question)Special Thanksto Bahmut and Emistry for ideas on how to format the file.to kyeme for feature ideas.Links~!CommitMap Zone Database File [Less]
Posted over 9 years ago
We're re-introducing console input ( hercules renewal'd ), and whats this? it's the ability to type commands into login/char/map server console/terminals, that are then interpreted and acted upon. This feature was once available through a ... [More] long-deprecated plugin, we're re-introducing it as a built in feature and far more efficient than the previous version. Currently, the old commands are being used, we'll be replacing them in the coming days and adding new ones, besides improving the functionality (so that if you use a gm command through console it wont require you to type gm position more than once, among other stuff).By the way, typing 'shutdown', 'exit', 'quit' or 'end' will replicate the effect of @mapexit.It's a optional feature, can be disabled in src/config/core.h by commenting the following line:#define CONSOLE_INPUT [Less]
Posted almost 10 years ago
Starting today we'll be going throughout all of our source code to modify how functions are called. so what?BenefitWith this new implementation chances to have custom source modifications conflict when you update hercules will be drastically reduced. ... [More] How? Instead of modifying existing functions users will be able to create a new version of them elsewhere, e.g. in a custom file, and have it replace the original one. How? very simple.battle->check_target = my_new_check_target_function;PluginsThis change opens the possibility for a new plugin implementation in the future.Project VisionWe understand this move will conflict with some points in our project vision, we'll be modifying it soon.MoreWe want Hercules to stand out, with that in mind we've been planning features exclusive to Hercules, features other projects won't be able to merge. And how is that even possible? features that will integrate with our forum is one example of them. For example a feature capable of automatically looking for new updates in scripts/modifications downloaded from our upcoming downloads section. [Less]
Posted almost 10 years ago
Obtaining HerculesHercules is available through GitHub, a web-based hosting service for software development projects that use the Git revision control system.Obtaining Hercules through Git on WindowsObtaining Hercules through Git on ... [More] LinuxSupportLooking for assistance on getting Git to work? Post hereAlternatively...GitHub also provides a SVN Mirror. We won't officially work to support many branches or features in SVN, but it should remain in-sync with the latest stable release, based on master branch in git.WindowsYou need to download TortoiseSVNThe address ishttp://svn.github.com/HerculesWS/Hercules.gitLinuxTyping the following creates a working copy of hercules at your home directorysvn checkout http://svn.github.com/HerculesWS/Hercules.git ~/Hercules [Less]
Posted almost 10 years ago
Project Vision: 1. What is Hercules? 2. Why does Hercules exist? 3. Is Hercules complementary, contradictory, or unrelated to other *athena projects? 4. What types of users are the focus of Hercules? 5. What are the core development priorities? 6. ... [More] What are the immediate goals of Hercules?       1. What is Hercules? Hercules is an open-source project, focused on collaborative development. This means accepting input and help from the community rather than relying on a group of developers for all updates to the emulator.       2. Why does Hercules exist? Hercules is an *athena fork focused on community development rather than community support. Other emulators are developed by a select group of individuals with commit permissions, who work on tasks raised by the community and the internal development team. We leverage code contributions through github to facilitate community involvement in development. In addition, Hercules is working on development in a manner that supports merging to and from other *athena projects. One way we are implementing this is by putting more work into translation of the emulator into other languages.       3. Is Hercules complementary, contradictory, or unrelated to other *athena projects? Hercules has a different viewpoint on core development, supporting custom features and community contributions from outside the core development team. In this way, Hercules and other projects can co-exist and pursue their own independent paths to excellence. The hope is that each project can maintain and progress towards their own goals, while merging the work from each other. In terms of development, Hercules will strive to be more open to community contributions, involving pull requests and public code contributions and acceptance. It would be a rare case when a developer has time to actively contribute to multiple projects.       4. What types of users are the focus of Hercules? 1. Server owners 2. Developers The project focuses on server owners who run (or would like to run) the Hercules emulator, and developers who use code from and contribute back to Hercules. Server owners are supported by development of the core. Developers are supported by being able to use code from and contribute their code to the core, scripts, and related files.       5. What are the core development priorities? 1. Code stability in releases Hercules has stable releases, where code changes are reviewed before they are applied. In addition to the stable branch, there are development branches that are known to be less stable. Because Hercules has a stable branch, server owners can feel comfortable using the latest stable release, and developers can also feel more comfortable committing development-level code to a development branch for further testing. 2. Custom features support The project does not implement only official mechanics and updates. There are custom and often-requested updates in the *athena communities that are popular, and some of them are supported natively by the emulator. We build support for but don't require custom features as part of the core of Hercules so that the project can be used by various server owners with varying degrees of customization. 3. Server stability The software avoids instability potentially arising from exploits, crashes, or other data loss. Database and logic changes are mindful of server owners as best they can, while still upgrading to support new features. 4. Feature completeness Incomplete mechanics and skills are updated as a priority over new features. In addition to being easier to gather data about, they can lead to the emulator falling behind in its feature set. 5. Code readability Code readability is separate from code quality. Hercules code seeks to be stable and readable. It would be nice to have code that we take pride in and consider to be high-quality, but it is more important that the code be readable and understandable by others who will work on the project later.       6. What are the immediate goals of Hercules? 1. Support conversion to Hercules from other emulators There are various challenges involved in switching from one server emulator software to another. Hercules developers should work to ease the transition by building tools to make upgrading data easier, and by maintaining detailed guides for switching from each other supported emulator software. 2. Support translation of NPC scripts We will work to build a translation system for NPC dialogs for two reasons. Firstly, it is easier to read and update dialog if it is separated from the logic. Secondly, the current style of inline dialog prevents revision control systems (SVN, git) from detecting the difference between a dialog change and a logic change. 3. Host 3rd party scripts/plugins with updates Hercules will host a versioned repository of user-contributed files. This is to replace the use of a forum post for releases, where contributors place a new file/link each time the item is updated. [Less]