Jump to content

Ind

Retired Staff
  • Content Count

    1655
  • Joined

  • Last visited

  • Days Won

    131

Reputation Activity

  1. Upvote
    Ind got a reaction from Sephus in How to check if target is a boss?   
    if your mob is guaranteed to have spawned from a 'boss' flag e.g.
    gef_dun02,0,0,0,0 boss_monster Doppelganger 1046,1,7200000,600000,1you can check withif( md->spawn && md->spawn->state.boss )(note that you can't check directly to md->spawn->state.boss because some mobs do not have md->spawn, so checking both is a must (otherwise it'll crash)
  2. Upvote
    Ind got a reaction from Jezu in [Suggestion] SkillModifier.txt & Skill Duration.txt   
    I see you want a special keyword to add a mapflag to all maps. I don't see the need, and by see I'm meaning I'm not seeing you point out a purpose on adding that while the same feature is already available by zones, since in map_zone_db within the 'All' zone you can have
    mapflags: ("adjust_skill_damage MG_FIREBOLT 50" )
  3. Upvote
    Ind got a reaction from Gerz in Map Zone Debuff   
    To use the disabled_skills info, it'd be like (just drafted) int i, type; for(i = 0; i < map->list[sd->bl.m].zone->disabled_skills_count; i++) { if( (type = status->skill2sc(map->list[sd->bl.m].zone->disabled_skills[i]->nameid) ) && sd->sc.data[type] ) { status_change_end(&sd->bl, type, INVALID_TIMER); } }I think what I'm proposing would be more like a bugfix than related to this suggestion, since without it if you have assumptio blocked in prontera you can get inside with the effect by casting it before warping...wouldn't it be confusing to users to maintain the icon? (I'd say it'd be interesting however since it'd mean once you leave the map/zone the effect would resume)
  4. Upvote
    Ind got a reaction from AnnieRuru in Correct Pneuma Effect Update   
    nope, still broken D: clif_skill_delunit (ZC_SKILL_DISAPPEAR) is unable to delete pneuma, so the visual effect remains even after the server has deleted it because of landprotector.
  5. Upvote
    Ind got a reaction from AnnieRuru in [Suggestion] Implementation of Source-based per RO Episode.   
    this has been proposed a number of times throughout time and there are many issues involved that make it hardly practical, besides those already presented in this thread, for example many regional servers have misused (or split) the first few episodes which causes a number of users recollect how things were in episode x y or z differently from those on other regional servers, which'd flood us with "this episode didn't have y", "this episode had x" reports which'd be very troublesome and take a great amount of research from us in order to assert the validity.
  6. Upvote
    Ind got a reaction from AnnieRuru in Map Zone Debuff   
    To use the disabled_skills info, it'd be like (just drafted) int i, type; for(i = 0; i < map->list[sd->bl.m].zone->disabled_skills_count; i++) { if( (type = status->skill2sc(map->list[sd->bl.m].zone->disabled_skills[i]->nameid) ) && sd->sc.data[type] ) { status_change_end(&sd->bl, type, INVALID_TIMER); } }I think what I'm proposing would be more like a bugfix than related to this suggestion, since without it if you have assumptio blocked in prontera you can get inside with the effect by casting it before warping...wouldn't it be confusing to users to maintain the icon? (I'd say it'd be interesting however since it'd mean once you leave the map/zone the effect would resume)
  7. Upvote
    Ind got a reaction from AnnieRuru in Implement New skill GD   
    I see...I think we can manage that, something like if ( itemskill == GD_EMERGENCYCALL ) { switch( level ) { case 1: limit = 7; ... } }
  8. Upvote
    Ind got a reaction from AnnieRuru in Logs for cashshop_db   
    does it really need a new table? can't we share picklog? (with a new type)
  9. Upvote
    Ind got a reaction from kyeme in successrefitem   
    Approved, will be in the repo within minutes
  10. Upvote
    Ind got a reaction from AnnieRuru in Monster transform   
    humm I wonder would this be implemented in "autobonus" fashion?
  11. Upvote
    Ind got a reaction from Triedge in Party Commands.   
    As this has been pointed out
    Also the queue feature provided in hercules makes a alternative to adding people to games/events without chatrooms.
  12. Upvote
    Ind got a reaction from evilpuncker in [Suggestion] displaybottom & message colors   
    colormes needs to be modified (or a new version since we rely on that for hardcoded things)
  13. Upvote
    Ind got a reaction from evilpuncker in 3rd class post balance update   
    Michieru has been working (and mostly done I hear) on a super-mega-ultra-plus-hyper-uber long skill update, with the exception whereas rathena's update relies on 2011 data Michieru is constructing the update on 2013 data.
  14. Upvote
    Ind reacted to KeyWorld in Hercules 1st 2014 MegaPatch   
    Basically:
    https://github.com/HerculesWS/Hercules/blob/master/src/map/script.c#L1105
    https://github.com/HerculesWS/Hercules/blob/master/src/map/script.c#L3011
    https://github.com/HerculesWS/Hercules/blob/master/src/map/script.c#L3425
     
    Number in script are integer, supported from -2147483647 to 2147483647, else it lead to overflow error.
    So if you can't create a number greater than this value, you will never be able to select an index superior than 2147483647 in an array.
  15. Upvote
    Ind got a reaction from Ragno in Hercules 1st 2014 MegaPatch   
    Hercules: 1st 2014 MEGAPATCH
    Helloooo! Starting 2014 with a boom, yet another outstanding patch from Hercules! Patch Item #1: Scripting Level UP
    Char and account variables overhaul They're no longer limited to #define ACCOUNT/GLOBAL_REG_NUM, they're now limitless Their storage capabilities have received a colossal improvement, each numeric variable now uses at least 1/10 the memory it did previously, and we achieved it while increasing speed, simply outstanding as expected from us. Thanks to their quantity no longer being limited, char and account variables now support arrays, i.e. setarray #accreg[y],...; Saving and loading procedures have been improved outstandingly! for instance, previously, if you had 100 char regs but only one had been modified or deleted, map server would need to send all of them and char server would have to re-insert all of them; now only modified or deleted ones are saving, increasing saving speed of both map and char server procedures and decreasing inter-server bandwidth by dinosaur steps. Magnificent Array Improvement (to all variable types) Size limit modified from 127 to ...2 billion! Speed of countless array operations have been improved thanks to new array handling, e.g. whereas previously upon deleting any array it'd set its 127 possible values to 0 (regardless of how many values it actually had) now it only deletes as many members as it possesses getarraysize (the-oh-misleading-function since it returns the arrays' highest index) has been sped up as well thanks to this, and it no longer wastes script stack room on every interaction And the futureThis improvement has open way for many other amazing features, for example, Haruna has designed a foreach implementation for scripting among some other useful enhancements Global account variable handling redesign To clarify, this is that ancient type used on multiple-char-server setups, ##varname, which are present in all servers an accounts logs into, as opposed to #varname which, while account-wide, are considered 'local' to a char server. Saving and loading have been modified to match char/local-acc variable new design, on its own it already is a major speed boost and bandwidth saver, however, it has also improved login servers overall processing speed, thanks to its processing no longer being attached to ordinary account handling, this means that all operations that required login server to use an accounts data (i.e. login/pincode change/ban/block/etca) have been sped up, and use less memory. '.', '.@' and ''' variables write operation speed up trying to write ''' variables outside instances will now print warnings instead of silently doing nothing runtime read/write operations of global/temporary(@) char variables, as well as account variables, have been considerably sped up, whereas previously it'd run a str lookup to find a match for read/write it now uses the variable id, furthermore it now relies on DBMaps to handle the lookup (whereas previously it was a normal loop). Database tables overhaulWe've analysed global reg data storage and we've decided that it not only is a memory waste, it is a processing one as well due to how int and str variables share the same storage, we've analysed global reg data for a number of large servers and have identified most variables are numbers, by a outstanding majority, with that in mind, this patch introduces 6 tables that will improve this drastically. You'll notice this patch's SQL upgrade file will take care of this, and thus migrate the data properly into the new tables. Special Thanks To:
    Haruna ! <3 wouldn't have gotten half of it done if it weren't for Haru, thank you so much sensei! jaBote, for proposing it! Emistry Yommy Streusel Patch Item #2: @autotrade Persistency
    Also known as: @at merchants survive server crashes/restart, as soon as the server starts again they're re-spawned. May be disabled on src/config/core.h by commenting out AUTOTRADE_PERSISTENCY Special Thanks To:
    Haruna! Michieru, this feature wouldn't be out now if it weren't for him, lets all thank him! Dekamaster/Nightroad for helping me on this features original design, 3-4 years ago. Thank you master <3! Link'u!
    Commit Upgrade files #1 (Autotrade) #2 (Scripting Level UP)
  16. Upvote
    Ind got a reaction from EriNa_KillerSoul in Obtaining Hercules   
    Obtaining Hercules
    Hercules 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 Windows Obtaining Hercules through Git on Linux Git Troubleshooting

      Support
    Looking for assistance on getting Git to work? Post here

    Alternatively...
    GitHub also provides a SVN Mirror. We won't officially work to support many branches or repository-features in SVN, but it should remain in-sync with the latest stable release, based on master branch in git.
    Windows
    You need to download TortoiseGit The address is http://github.com/HerculesWS/Hercules  
    Linux
    Typing the following creates a working copy of hercules at your home directory svn checkout http://github.com/HerculesWS/Hercules ~/Hercules  
     
     
  17. Upvote
    Ind got a reaction from lakasmonk123 in Hercules 1st 2014 MegaPatch   
    Hercules: 1st 2014 MEGAPATCH
    Helloooo! Starting 2014 with a boom, yet another outstanding patch from Hercules! Patch Item #1: Scripting Level UP
    Char and account variables overhaul They're no longer limited to #define ACCOUNT/GLOBAL_REG_NUM, they're now limitless Their storage capabilities have received a colossal improvement, each numeric variable now uses at least 1/10 the memory it did previously, and we achieved it while increasing speed, simply outstanding as expected from us. Thanks to their quantity no longer being limited, char and account variables now support arrays, i.e. setarray #accreg[y],...; Saving and loading procedures have been improved outstandingly! for instance, previously, if you had 100 char regs but only one had been modified or deleted, map server would need to send all of them and char server would have to re-insert all of them; now only modified or deleted ones are saving, increasing saving speed of both map and char server procedures and decreasing inter-server bandwidth by dinosaur steps. Magnificent Array Improvement (to all variable types) Size limit modified from 127 to ...2 billion! Speed of countless array operations have been improved thanks to new array handling, e.g. whereas previously upon deleting any array it'd set its 127 possible values to 0 (regardless of how many values it actually had) now it only deletes as many members as it possesses getarraysize (the-oh-misleading-function since it returns the arrays' highest index) has been sped up as well thanks to this, and it no longer wastes script stack room on every interaction And the futureThis improvement has open way for many other amazing features, for example, Haruna has designed a foreach implementation for scripting among some other useful enhancements Global account variable handling redesign To clarify, this is that ancient type used on multiple-char-server setups, ##varname, which are present in all servers an accounts logs into, as opposed to #varname which, while account-wide, are considered 'local' to a char server. Saving and loading have been modified to match char/local-acc variable new design, on its own it already is a major speed boost and bandwidth saver, however, it has also improved login servers overall processing speed, thanks to its processing no longer being attached to ordinary account handling, this means that all operations that required login server to use an accounts data (i.e. login/pincode change/ban/block/etca) have been sped up, and use less memory. '.', '.@' and ''' variables write operation speed up trying to write ''' variables outside instances will now print warnings instead of silently doing nothing runtime read/write operations of global/temporary(@) char variables, as well as account variables, have been considerably sped up, whereas previously it'd run a str lookup to find a match for read/write it now uses the variable id, furthermore it now relies on DBMaps to handle the lookup (whereas previously it was a normal loop). Database tables overhaulWe've analysed global reg data storage and we've decided that it not only is a memory waste, it is a processing one as well due to how int and str variables share the same storage, we've analysed global reg data for a number of large servers and have identified most variables are numbers, by a outstanding majority, with that in mind, this patch introduces 6 tables that will improve this drastically. You'll notice this patch's SQL upgrade file will take care of this, and thus migrate the data properly into the new tables. Special Thanks To:
    Haruna ! <3 wouldn't have gotten half of it done if it weren't for Haru, thank you so much sensei! jaBote, for proposing it! Emistry Yommy Streusel Patch Item #2: @autotrade Persistency
    Also known as: @at merchants survive server crashes/restart, as soon as the server starts again they're re-spawned. May be disabled on src/config/core.h by commenting out AUTOTRADE_PERSISTENCY Special Thanks To:
    Haruna! Michieru, this feature wouldn't be out now if it weren't for him, lets all thank him! Dekamaster/Nightroad for helping me on this features original design, 3-4 years ago. Thank you master <3! Link'u!
    Commit Upgrade files #1 (Autotrade) #2 (Scripting Level UP)
  18. Upvote
    Ind got a reaction from IndieRO in Introducing Hercules' Map Zone Database   
    Introducing Hercules' Map Zone Database
    Hello~! - 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 sample
    {     name: "My Zone"     inherit: ( "My Other Zone" )     disabled_skills: {         AL_HEAL: "PLAYER | MONSTER | ELEMENTAL"         AL_TELEPORT: "MONSTER"         MG_FIREBOLT: "NONE"         //MG_NAPALMBEAT: "PLAYER"         //ID11: "PLAYER"     }     disabled_items: {         Assumptio_5_Scroll: false         //Apple: true         //ID501: true     }     mapflags: (         "adjust_skill_damage    MG_FIREBOLT    250",         "adjust_unit_duration    PR_SANCTUARY    50"     )     /* "command:min-group-lv-to-override" e.g. "heal: 70" */     disabled_commands: {         //Example Below makes @heal be used in maps within this zone only by those group lv 70 and above         //heal: 70     }     skill_damage_cap: {         //Exemple Below caps firebolt damage in maps within this zone to a maximum 50 damage,         // (depends on HMAP_ZONE_DAMAGE_CAP_TYPE in src/config/core.h)         // when cast vs players and monsters.         //MG_COLDBOLT: (50,"PLAYER | MONSTER")     } } Notes on the format
    In disabled_skills the var following the name (: "PLAYER | MONSTER | HOMUN | MERCENARY | ELEMENTAL | PET | CLONE | MOB_BOSS") is what allows a zone to know what unit types should have this skill disabled. In the sample above, for example, in My Zone, player, monster and elemental unit types are unable to cast heal, while only monsters are unable to cast teleport. this variable may also be used to ignore skills from inheritance, for example if My Other Zone disabled a number of skills, including MG_FIREBOLT, in My Zone all of them will be disabled as well, except for MG_FIREBOLT since it is set as NONE. In 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 items, including Assumptio_5_Scroll, in My Zone all of them will be disabled as well, except Assumptio_5_Scroll 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 '<map name><tab>mapflag<tab>zone<tab><zone name>' Changes The 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. @mapinfo was modified to support the new zones, also modified the formatting and made it include the amount of vendings. Improvements As 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 (previously skillnotok, now status_check_skilluse) processing much faster and efficient. @mapinfo performance was improved (was doing chat room dbmap lookups without even checking if player was on the map in question) Special Thanks to Muad_Dib <3. to lighta for discussing the feature with me and helping design the unit-based restrictions on skills to Bahmut and Emistry for ideas on how to format the file. to kyeme for feature ideas. Links~! Commit Commit 2 (update) Map Zone Database File
  19. Upvote
    Ind got a reaction from Jedzkie in Skill ID Processing Overhaul   
    Skill ID Processing Overhaul
    Hello~! - What?!
    Yet another super-ultra-mega improvement, brought to you by Hercules. Improvement
    This is a monster improvement, map server's memory usage was dropped by no less than 38MB Processing on a number of areas that rely on this have improved, much faster e.g. skill tree calculation. This also prepares the game server to receive the new skills that have id of 5k or higher (e.g. Dragon Breath Water) Changes
    This changes how skills are stored during runtime for players, if you have any modifications on that you will want to update them before getting this update in your server. mob_max_skilllvl config was dropped, this limitation no longer exists (e.g. if you make a monster cast lvl 1000 jupitel thunder it'll do 1k hits) reintroduced, accidentally removed (misunderstood function) Special Thanks
    to Rytech, he brought up the topic of skill id processing which led me to do this Links~!
    Commit
  20. Upvote
    Ind got a reaction from Mumbles in Introducing HPM Datacheck   
    HPM Data Check
    I begin by thanking ai4rei for bringing this to our attention HELLOOOO, WHAT?! This introduces automatic data integrity insurance between plugins and the core, allowing the core to reject loading plugins whose data structures mismatch those in the core thus preventing potential crashes and loose data read/write, it goes a long way towards making this issue being inexistent. In short: its a feature that enables the core to reject "outdated" plugins, "outdated" meaning that a data struct used by the plugin has been modified in the core while the plugin was not recompiled to reflect the change. It is smartThanks to Haru's design the feature is able to identify the files which the plugin relies on, therefore even if data structs in the core have been modified the plugin will only fail load if its a data struct from a file it actually includes Changes: Hello Plugin Developers!
    Plugins are now required to include the HPMDataCheck file, plugins without it will not pass loading validation, to include use: #include "../common/HPMDataCheck.h"it should be the last file included, if it isn't the last it'll render the plugin uncompilable (intentionally). ...and thats it, it stands on its own afterwards. Also in & Thanks to Haru
    the HPMHookGen has been updated so that the data HPMDataCheck relies on is always up to date HPMHookGen has been sped up. New Possibilities
    Thanks to HPMDataCheck enabling the core to know which files the plugin relies on there are many enhancements we can (and intend to) add, for example, drop GET_SYMBOL entirely and have the core load the interfaces automatically Special Thanks to
    Haru ai4rei Link'u
    HPMHookGen Update Commit
  21. Upvote
    Ind got a reaction from JulioCF in Introducing HPM Datacheck   
    HPM Data Check
    I begin by thanking ai4rei for bringing this to our attention HELLOOOO, WHAT?! This introduces automatic data integrity insurance between plugins and the core, allowing the core to reject loading plugins whose data structures mismatch those in the core thus preventing potential crashes and loose data read/write, it goes a long way towards making this issue being inexistent. In short: its a feature that enables the core to reject "outdated" plugins, "outdated" meaning that a data struct used by the plugin has been modified in the core while the plugin was not recompiled to reflect the change. It is smartThanks to Haru's design the feature is able to identify the files which the plugin relies on, therefore even if data structs in the core have been modified the plugin will only fail load if its a data struct from a file it actually includes Changes: Hello Plugin Developers!
    Plugins are now required to include the HPMDataCheck file, plugins without it will not pass loading validation, to include use: #include "../common/HPMDataCheck.h"it should be the last file included, if it isn't the last it'll render the plugin uncompilable (intentionally). ...and thats it, it stands on its own afterwards. Also in & Thanks to Haru
    the HPMHookGen has been updated so that the data HPMDataCheck relies on is always up to date HPMHookGen has been sped up. New Possibilities
    Thanks to HPMDataCheck enabling the core to know which files the plugin relies on there are many enhancements we can (and intend to) add, for example, drop GET_SYMBOL entirely and have the core load the interfaces automatically Special Thanks to
    Haru ai4rei Link'u
    HPMHookGen Update Commit
  22. Upvote
    Ind got a reaction from Mystery in Introducing HPM Datacheck   
    HPM Data Check
    I begin by thanking ai4rei for bringing this to our attention HELLOOOO, WHAT?! This introduces automatic data integrity insurance between plugins and the core, allowing the core to reject loading plugins whose data structures mismatch those in the core thus preventing potential crashes and loose data read/write, it goes a long way towards making this issue being inexistent. In short: its a feature that enables the core to reject "outdated" plugins, "outdated" meaning that a data struct used by the plugin has been modified in the core while the plugin was not recompiled to reflect the change. It is smartThanks to Haru's design the feature is able to identify the files which the plugin relies on, therefore even if data structs in the core have been modified the plugin will only fail load if its a data struct from a file it actually includes Changes: Hello Plugin Developers!
    Plugins are now required to include the HPMDataCheck file, plugins without it will not pass loading validation, to include use: #include "../common/HPMDataCheck.h"it should be the last file included, if it isn't the last it'll render the plugin uncompilable (intentionally). ...and thats it, it stands on its own afterwards. Also in & Thanks to Haru
    the HPMHookGen has been updated so that the data HPMDataCheck relies on is always up to date HPMHookGen has been sped up. New Possibilities
    Thanks to HPMDataCheck enabling the core to know which files the plugin relies on there are many enhancements we can (and intend to) add, for example, drop GET_SYMBOL entirely and have the core load the interfaces automatically Special Thanks to
    Haru ai4rei Link'u
    HPMHookGen Update Commit
  23. Upvote
    Ind got a reaction from jTynne in Introducing HPM Datacheck   
    HPM Data Check
    I begin by thanking ai4rei for bringing this to our attention HELLOOOO, WHAT?! This introduces automatic data integrity insurance between plugins and the core, allowing the core to reject loading plugins whose data structures mismatch those in the core thus preventing potential crashes and loose data read/write, it goes a long way towards making this issue being inexistent. In short: its a feature that enables the core to reject "outdated" plugins, "outdated" meaning that a data struct used by the plugin has been modified in the core while the plugin was not recompiled to reflect the change. It is smartThanks to Haru's design the feature is able to identify the files which the plugin relies on, therefore even if data structs in the core have been modified the plugin will only fail load if its a data struct from a file it actually includes Changes: Hello Plugin Developers!
    Plugins are now required to include the HPMDataCheck file, plugins without it will not pass loading validation, to include use: #include "../common/HPMDataCheck.h"it should be the last file included, if it isn't the last it'll render the plugin uncompilable (intentionally). ...and thats it, it stands on its own afterwards. Also in & Thanks to Haru
    the HPMHookGen has been updated so that the data HPMDataCheck relies on is always up to date HPMHookGen has been sped up. New Possibilities
    Thanks to HPMDataCheck enabling the core to know which files the plugin relies on there are many enhancements we can (and intend to) add, for example, drop GET_SYMBOL entirely and have the core load the interfaces automatically Special Thanks to
    Haru ai4rei Link'u
    HPMHookGen Update Commit
  24. Upvote
    Ind got a reaction from hemagx in Introducing HPM Datacheck   
    HPM Data Check
    I begin by thanking ai4rei for bringing this to our attention HELLOOOO, WHAT?! This introduces automatic data integrity insurance between plugins and the core, allowing the core to reject loading plugins whose data structures mismatch those in the core thus preventing potential crashes and loose data read/write, it goes a long way towards making this issue being inexistent. In short: its a feature that enables the core to reject "outdated" plugins, "outdated" meaning that a data struct used by the plugin has been modified in the core while the plugin was not recompiled to reflect the change. It is smartThanks to Haru's design the feature is able to identify the files which the plugin relies on, therefore even if data structs in the core have been modified the plugin will only fail load if its a data struct from a file it actually includes Changes: Hello Plugin Developers!
    Plugins are now required to include the HPMDataCheck file, plugins without it will not pass loading validation, to include use: #include "../common/HPMDataCheck.h"it should be the last file included, if it isn't the last it'll render the plugin uncompilable (intentionally). ...and thats it, it stands on its own afterwards. Also in & Thanks to Haru
    the HPMHookGen has been updated so that the data HPMDataCheck relies on is always up to date HPMHookGen has been sped up. New Possibilities
    Thanks to HPMDataCheck enabling the core to know which files the plugin relies on there are many enhancements we can (and intend to) add, for example, drop GET_SYMBOL entirely and have the core load the interfaces automatically Special Thanks to
    Haru ai4rei Link'u
    HPMHookGen Update Commit
  25. Upvote
    Ind got a reaction from pan in Introducing HPM Datacheck   
    HPM Data Check
    I begin by thanking ai4rei for bringing this to our attention HELLOOOO, WHAT?! This introduces automatic data integrity insurance between plugins and the core, allowing the core to reject loading plugins whose data structures mismatch those in the core thus preventing potential crashes and loose data read/write, it goes a long way towards making this issue being inexistent. In short: its a feature that enables the core to reject "outdated" plugins, "outdated" meaning that a data struct used by the plugin has been modified in the core while the plugin was not recompiled to reflect the change. It is smartThanks to Haru's design the feature is able to identify the files which the plugin relies on, therefore even if data structs in the core have been modified the plugin will only fail load if its a data struct from a file it actually includes Changes: Hello Plugin Developers!
    Plugins are now required to include the HPMDataCheck file, plugins without it will not pass loading validation, to include use: #include "../common/HPMDataCheck.h"it should be the last file included, if it isn't the last it'll render the plugin uncompilable (intentionally). ...and thats it, it stands on its own afterwards. Also in & Thanks to Haru
    the HPMHookGen has been updated so that the data HPMDataCheck relies on is always up to date HPMHookGen has been sped up. New Possibilities
    Thanks to HPMDataCheck enabling the core to know which files the plugin relies on there are many enhancements we can (and intend to) add, for example, drop GET_SYMBOL entirely and have the core load the interfaces automatically Special Thanks to
    Haru ai4rei Link'u
    HPMHookGen Update Commit
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.