Jump to content

Ind

Retired Staff
  • Content Count

    1655
  • Joined

  • Last visited

  • Days Won

    131

Reputation Activity

  1. 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
  2. Upvote
    Ind got a reaction from evilpuncker in Reduce the price of all items   
    yes, the values in use officially were those before that packetver. we did not swap ours (in the db files) as rathena did because we found it to be an unnecessary burden on the users.
  3. Upvote
    Ind got a reaction from AnnieRuru in Reduce the price of all items   
    yes, the values in use officially were those before that packetver. we did not swap ours (in the db files) as rathena did because we found it to be an unnecessary burden on the users.
  4. Upvote
    Ind got a reaction from AnnieRuru in Reduce the price of all items   
    I don't think you're getting the point, it means client devs have swapped the ids on packetver 20080827 onwards, therefore we have to swap it accordingly with the packetver, either one way or another, in order to support a high range of clients
  5. Upvote
    Ind got a reaction from karazu in Flux Control Panel for Hercules   
    in that case i'd recommend you go visit your eye doctor, because that has not been said here.We saw many of our users struggling with their fluxcp installations and, since the fluxcp repos have failed to help them, we decided to step in and fork to help these users ourselves. and that is all there is to it. I myself like ceres better, but our users were struggling with flux and not ceres, so we're forking flux to help these users.
  6. 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)
  7. Upvote
    Ind got a reaction from Yoh Asakura in Official Item Group/Package/Chain   
    Official Item Group/Package/Chain
     
    Overview
    Implementation of the official 'Item Packages', 'Item Group' redesign, 'Item Chain' implementation. item_group.conf : Overview / Sample
    The file was redesigned to make it attend the official equivalent's and to be more flexible, there are no more limitations on the number of groups or on how many items a group may contain, these limitations were lifted. Old_Card_Album: ( // <= <Container_Item_Name>     ("Poring_Card",8), // <= entries can be either ( "<Item_Name>", <Repeat_Count> )     "Sting_Card" // <= or "<Item_Name>" (no repeat) ) item_packages.conf : Overview / Sample
    The file was created to meet the requirements of the official 'Package Item' feature, there are no limitations on how many packages you may add either. Gift_Bundle: { // <= <Container_Item_Name>     White_Slim_Potion: {// <= <Entry_Item_Name>         Random: false //May be omit when not false, signs whether a item is random or should be given whenever the packageis consumed.         Count: 30 //May be omit when not higher than 1, stands for how many <White_Slim_Potion>     }     Muffler_: {         Expire: 2 //May be omit when none, signs how many hours this item will last (makes a rental item)         Announce: True //May be omit when false, signs whether to relay a special item obtain announce when this item comes out of the package.         Rate: 50 //May be omit when 'Random' is false, from 1 to 10000 (0.01% - 100%)         Named: True //May be omit when false, signs whether the item should have the owner's name in it.     } } item_chain.conf : Overview
    Officially this thing is called groups too but I found it'd be confuse to have 2 group files with entirely different functionality, named chains because the items in it are chained to each other, this file fixes quite a few stuff, for example before this patch having BS_FINDINGORE drop something was almost twice as rare than on official servers, also fixes Jewel_Sword, Gaia_Sword, Blazzer_Card, Tengu_Card and Bogy_Horn. New
    'packageitem' script command, it has only 1 param which is optional, for the package item id, when not provided it'll try to use the item id from the item it is being used from (if called from an item script), it runs a item package and grants the items accordingly to the attached player. Changes
    '#define MAX_RANDITEM' and '#define MAX_ITEMGROUP' were dropped, these limitations no longer exist and the server may support an unlimited number of item groups. 'item_findingore.txt' was dropped, its contents moved into 'item_chain.conf' 'item_bluebox.txt', 'item_cardalbum.txt', 'item_giftbox.txt', 'item_misc.txt', 'item_violetbox.txt' and 'item_group_db.txt' were dropped, its contents moved were updated and moved into 'item_group.conf' 'bonus2 bAddItemHealRate' changed; as group ids no longer exist. 'bAddMonsterDropItemGroup' was renamed to 'bAddMonsterDropChainItem' and changed from bonus 2/3 to bonus (0)/2 as the rate param was dropped because item chains have their own individual rates. Item names are now automatically made constants, so they may be used in any scripts throughout the server e.g. 'getitem Apple,1;', this works for all items except those having ' in their names (e.g. doesn't work for 'Monster's_Feed'). 'getrandgroupitem' and 'grouprandomitem' were modified since group ids no longer exist, item ids should be used instead (or constants as the item above mentions), e.g. 'getrandgroupitem Old_Blue_Box,1;' or 'getrandgroupitem 603,1;' Dropped conf/battle/drops.conf 'finding_ore_rate' for it has no place in the official formula (if you'd like to modify finding ore rates, edit them via item_chain.conf) Special Thanks
    Beret and hemagx for bringing this change up to discussion, and the data they contributed into it Yommy and Muad_Dib for all the new item data implemented in this commit (a hell of stuff! THANK YOU BOTH <3) Streusel for all the over 100 new items he converted Gepard for the group item repeat info Masao for his debugging of the monster spawn issue Mysterious for updating the documentation Link~u!
    Commit
  8. Upvote
    Ind got a reaction from Hadeszeus in Introducing Cash Shop Support   
    Cash Shop Support
    Hello~! - What?!
    1st, getting this together has only been possible thanks to Yommy 2nd, really, without Yommy's help this wouldn't have worked 3rd, did I already mention Yommy made this possible? screenHercules006.jpg
    cashshop_db.conf format
    //==================================================== //=       _   _                     _ //=      | | | |                   | | //=      | |_| | ___ _ __ ___ _   _| | ___  ___ //=      |  _  |/ _ \ '__/ __| | | | |/ _ \/ __| //=      | | | |  __/ | | (__| |_| | |  __/\__ \ //=      \_| |_/\___|_|  \___|\__,_|_|\___||___/ //=                                                   //=            http://herc.ws/board/                         //==================================================== //= http://herc.ws/board/topic/367-introducing-cash-shop-support/ cash_shop: ( {     cat_0: { //New         Apple:100         ID531:250     }     cat_1: { //Popular         ID513:100         Banana_Juice:250     }     cat_2: { //Limited         Grape:100         ID533:250     }     cat_3: { //Rental         ID515:100         Carrot_Juice:250     }     cat_4: { //Permanent         Green_Herb:100         ID510:250     }     cat_5: { //Scroll         ID501:100         ID502:250     }     cat_6: { //Usable         White_Potion:150         Blue_Potion:500     }     cat_7: { //Other         ID909:400         ID907:500     } } ) Is it ready?!
    The packets work, you can buy, list, etc. BUUUUT I wouldn't bet it is 100% complete -- I'm not very aware of how the cashpoint stuff works, I'd guess the behavior is not 100% -- BUUUT getting the packets to work was the toughest part, just drop us a bug report and we sure will fix any broken formulas instantly. I'm not aware of what the official servers have in it being sold either, I've put random garbage with absurdly high prices in the db (so we all can debug). BTW This only works on ragexe (not ragexere!) clients, e.g. : http://herc.ws/board/topic/289-2013-ragexe-area/ Special Thanks
    Yommy Yommy ...Yommy! malufett Judas Beret kLabMouse And everyone whos helped us get the 2013 client to work, Thank you All! to Beret and Yommy for the new file format suggestion! Links~!
    Commit cashshop_db.conf file
  9. 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)
  10. Upvote
    Ind got a reaction from Cabrera 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)
  11. Upvote
    Ind got a reaction from stevler in Want to learn how to add lastwarp   
    change
    menu "Last Warp[LastWarperMap$,]"intomenu "Last Warp["+LastWarperMap$+"]"however that wont display anything if the character viewing never warped before.
  12. Upvote
    Ind got a reaction from stevler in Want to learn how to add lastwarp   
    I did not remember .@ vars do not pass to subs, Thanks to Haru now I do

    I've tested this one:
    - script Warper NPC::warper -1,{ mes "[^3366FFGenie^000000]"; mes "Hello ^0000FF" + strcharinfo(0) + "^000000, I am the ^3366FFGenie^000000. Nice day isn't it?"; mes "Where in the world of Midgard, or beyond would you like to go?"; next; menu "LastWarp",L_LastWarp,"Prontera [" + getmapusers ("prontera") + "] ",-,"Payon [" + getmapusers ("payon") + "] ",L_pay,"Towns",L_town,"Dungeons",L_dung; warp "prontera", 156, 178; close; L_pay: warp "payon", 175, 98; close; L_town: menu "Alberta",L_alb, "Al De Baran",L_ald, "Amatsu",L_ama, "Ayothaya",L_ayo, "Braslis",L_bra, "Comodo",L_com, "Einbroch",L_ein, "Geffen",L_gef, "Gonryun",L_gon, "Hugel",L_hug, "Izlude",L_izl, "Jawaii",L_jaw, "Lighthalzen",L_lhz, "Louyang",L_lou, "Lutie",L_lut, "Morroc",L_mor, "Moscovia",L_mos, "Nifflheim",L_nif, "Rachel",L_rac, "Umbala",L_umb, "Vein",L_vei, "Yuno",L_yun; L_alb: set @mapname$,"alberta"; set @x,116; set @y,57; callsub L_Warp; L_ald: set @mapname$,"aldebaran"; set @x,139; set @y,118; callsub L_Warp; L_ama: set @mapname$,"amatsu"; set @x,198; set @y,121; callsub L_Warp; L_ayo: set @mapname$,"ayothaya"; set @x,208; set @y,189; callsub L_Warp; L_bra: set @mapname$,"brasilis"; set @x,227; set @y,291; callsub L_Warp; L_com: set @mapname$,"comodo"; set @x,201; set @y,137; callsub L_Warp; L_ein: set @mapname$,"einbroch"; set @x,232; set @y,189; callsub L_Warp; L_gef: set @mapname$,"geffen"; set @x,120; set @y,93; callsub L_Warp; L_gon: set @mapname$,"gonryun"; set @x,160; set @y,111; callsub L_Warp; L_hug: set @mapname$,"hugel"; set @x,96; set @y,156; callsub L_Warp; L_izl: set @mapname$,"izlude"; set @x,130; set @y,131; callsub L_Warp; L_jaw: set @mapname$,"jawaii"; set @x,203; set @y,289; callsub L_Warp; L_lhz: set @mapname$,"lighthalzen"; set @x,158; set @y,92; callsub L_Warp; L_lou: set @mapname$,"louyang"; set @x,218; set @y,100; callsub L_Warp; L_lut: set @mapname$,"xmas"; set @x,148; set @y,130; callsub L_Warp; L_mor: set @mapname$,"morocc"; set @x,158; set @y,89; callsub L_Warp; L_mos: set @mapname$,"moscovia"; set @x,223; set @y,184; callsub L_Warp; L_nif: set @mapname$,"niflheim"; set @x,193; set @y,185; callsub L_Warp; L_rac: set @mapname$,"rachel"; set @x,119; set @y,136; callsub L_Warp; L_umb: set @mapname$,"umbala"; set @x,144; set @y,154; callsub L_Warp; L_vei: set @mapname$,"veins"; set @x,214; set @y,124; callsub L_Warp; L_yun: set @mapname$,"yuno"; set @x,158; set @y,176; callsub L_Warp; L_dung: menu "Abyss Lake",L_aby, "Amatsu Dungeon",L_amad, "Anthell",L_ant, "Ayothaya Dungon",L_ayod, "Bylan Island",L_byl, "Coal Mine",L_coa, "Einbroch Mine",L_einm, "Geffen Dungeon",L_gefd, "Glast Heim",L_gh, "Glast Heim Churchyard",L_ghc, "Glast Heim Prison",L_ghp, "Hidden Temple",L_hid, "Ice Dungeon",L_ice, "Juperos Ruins",L_jup, "Kiel Robot Factory",L_kie, "Magma Dungeon",L_mag, "Nameless Island",L_nam, "Orc Dungeon",L_orc, "Payon Caves",L_payc, "Prontera Culvert",L_proc, "Pyramids",L_pyr, "Rachel Sanctuary",L_racs, "Sphinx",L_sph, "Sunken Ship",L_sun, "Thors Volcano",L_tho, "Toy Factory",L_toy, "Turtle Dungeon",L_tur, "Umbala Dungeon",L_umbd; L_aby: set @mapname$,"hu_fild05"; set @x,167; set @y,300; callsub L_Warp; L_amad: set @mapname$,"ama_in02"; set @x,122; set @y,180; callsub L_Warp; L_ant: set @mapname$,"anthell01"; set @x,37; set @y,259; callsub L_Warp; L_ayod: set @mapname$,"ayo_fild01"; set @x,126; set @y,197; callsub L_Warp; L_byl: set @mapname$,"iz_dun00"; set @x,168; set @y,165; callsub L_Warp; L_coa: set @mapname$,"mjolnir_02"; set @x,81; set @y,355; callsub L_Warp; L_einm: set @mapname$,"einbech"; set @x,138; set @y,246; callsub L_Warp; L_gefd: set @mapname$,"gef_tower"; set @x,152; set @y,34; callsub L_Warp; L_gh: set @mapname$,"glast_01"; set @x,199; set @y,134; callsub L_Warp; L_ghc: set @mapname$,"gl_chyard"; set @x,147; set @y,149; callsub L_Warp; L_ghp: set @mapname$,"gl_prison"; set @x,91; set @y,180; callsub L_Warp; L_hid: set @mapname$,"prt_fild01"; set @x,137; set @y,366; callsub L_Warp; L_ice: set @mapname$,"ra_fild01"; set @x,233; set @y,326; callsub L_Warp; L_jup: set @mapname$,"yuno_fild07"; set @x,213; set @y,175; callsub L_Warp; L_kie: set @mapname$,"yuno_fild08"; set @x,72; set @y,178; callsub L_Warp; L_mag: set @mapname$,"yuno_fild03"; set @x,39; set @y,140; callsub L_Warp; L_nam: set @mapname$,"ve_fild07"; set @x,129; set @y,132; callsub L_Warp; L_orc: set @mapname$,"gef_fild10"; set @x,69; set @y,333; callsub L_Warp; L_payc: set @mapname$,"pay_arche"; set @x,42; set @y,131; callsub L_Warp; L_proc: set @mapname$,"prt_fild05"; set @x,282; set @y,224; callsub L_Warp; L_pyr: set @mapname$,"moc_ruins"; set @x,66; set @y,159; callsub L_Warp; L_racs: set @mapname$,"ra_temin"; set @x,28; set @y,310; callsub L_Warp; L_sph: set @mapname$,"moc_fild19"; set @x,106; set @y,99; callsub L_Warp; L_sun: set @mapname$,"alb2trea"; set @x,84; set @y,64; callsub L_Warp; L_tho: set @mapname$,"ve_fild03"; set @x,168; set @y,288; callsub L_Warp; L_toy: set @mapname$,"xmas"; set @x,143; set @y,302; callsub L_Warp; L_tur: warp "tur_dun01", 152, 49; set @mapname$,"tur_dun0"; set @x,152; set @y,49; callsub L_Warp; L_umbd: warp "um_dun01", 42, 32; set @mapname$,"um_dun01"; set @x,42; set @y,32; callsub L_Warp; L_Warp: if( @mapname$ == "" && !@x && !@y ) mes "YAHOOO L_Warp vars are missing aka bypassed the set!"; set LastWarperMap$,@mapname$; set LastWarperX,@x; set LastWarperY,@y; warp @mapname$,@x,@y; end; L_LastWarp: if( LastWarperMap$ == "" && !LastWarperX && !LastWarperY ) { mes "YAHOOO L_LastWarp doesn't have a record of where you've been last to!!"; close; } warp LastWarperMap$,LastWarperX,LastWarperY; end;}
  13. Upvote
    Ind got a reaction from stevler in Want to learn how to add lastwarp   
    You should have only 1 "warp" call, i.e.
    Instead of:
    L_ein: warp "einbroch", 232, 189; close; L_gef: warp "geffen", 120, 93; close;Be like: L_ein: set .@mapname$,"einbroch"; set .@x,232; set .@y,189; callsub L_Warp; L_gef: warp "geffen", 120, 93; set .@mapname$,"geffen"; set .@x,120; set .@y,93; callsub L_Warp; L_Warp: warp .@mapname$,.@x,.@y; end;That way you can easily record whatever you last warped them to, by simply changing the label into L_Warp: set LastWarperMap$,.@mapname$; set LastWarperX,.@x; set LastWarperY,.@y; warp .@mapname$,.@x,.@y; end;
  14. Upvote
    Ind got a reaction from evilpuncker in Mob Drop Qty   
    File Name: Mob Drop Qty
    File Submitter: Ind
    File Submitted: 14 Jan 2014
    File Category: Plugins
     
    HPM Plugin.
    /** * Adds a 50% ( customizeable ) chance for ETC (customizeable) items to drop from mobs with double quantity * Adds a 25% ( customizeable as well ) chance for it to use tripple quantity (this dice is only played if the 50% one succeeded) * Adds a 10% ( customizeable as well ) chance for it to use quadruple quantity (this dice is only played if the 25% one succeeded) * Adds a 5% ( customizeable as well ) chance for it to use quintuple quantity (this dice is only played if the 10% one succeeded) * For example, after a player succeeds at dropping a jellopy (at any rate), theres a 50% chance it'll be 2 jellopies instead of 1, * and if that 50% succeeds, there'll be another 25% chance for it to be 3 instead of 2, and if that 25% succeeds, * there will be another 10% chance for it to drop 4 instead of 3, and if that 10% succeeds, there will be a 5% chance to drop 5 instead of 4. * - MvP drops are not affected * - Items looted by monsters are not affected **/ - Requires HPM Hooking
     
    Easy to Customize
    switch( data->type ) { /** * uncomment those you wanna affect, don't even try adding gear or non-stackable types -- they are not meant to have qty higher than 1! **/ //case IT_HEALING: //case IT_USABLE: //case IT_CARD: //case IT_AMMO: //case IT_DELAYCONSUME: //case IT_CASH: case IT_ETC: /** * Feel free to modify the formula here! **/ if( rand()0 > 50 ) /* if rand > 50, break and do not affect the qty */ break; *qty += 1;//from 1 to 2 if( rand()0 > 25 ) /* if rand > 25, break and do not affect the qty further */ break; *qty += 1;//from 2 to 3 if( rand()0 > 10 ) /* if rand > 10, break and do not affect the qty further */ break; *qty += 1;//from 3 to 4 if( rand()0 > 5 ) /* if rand > 5, break and do not affect the qty further */ break; *qty += 1;//from 4 to 5 break; } You may also use the *nameid variable if you wish to further enhance the mechanic, for example
    if( *nameid == 604 ) /* if dead branch, qty + 2 */ *qty += 2; How to Install
    Check the wiki page on 'Building a Plugin' http://herc.ws/wiki/HPM#Building_a_plugin
     
    Contribute / Customize
    Its available at our Staff Plugins Repo, pull requests are more than welcome.
     
    Click here to download this file
  15. Upvote
    Ind got a reaction from KaitoKid in Visible Monsters HP   
    File Name: Visible Monsters HP
    File Submitter: Ind
    File Submitted: 14 Jan 2014
    File Category: Plugins
     
    HPM Plugin.
    - Monsters HP is visible to all players, instead of only those who hit it.
    - Monsters spawned with 'boss' flag have a greater bar (2-3x normal size, check screenshot in download page view)
    - Requires PACKETVER >= 20120404
     
    Whats the 'boss' flag?
    For example, gef_dun.txt's Doppelganger
    gef_dun02,0,0,0,0 boss_monster Doppelganger 1046,1,7200000,600000,1 How to Install
    Check the wiki page on 'Building a Plugin' http://herc.ws/wiki/HPM#Building_a_plugin
     
    Contribute / Customize
    Its available at our Staff Plugins Repo, pull requests are more than welcome.
     
    Click here to download this file
  16. Upvote
    Ind got a reaction from Nebraskka 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)
  17. Upvote
    Ind got a reaction from Mystery in Visible Monsters HP   
    File Name: Visible Monsters HP
    File Submitter: Ind
    File Submitted: 14 Jan 2014
    File Category: Plugins
     
    HPM Plugin.
    - Monsters HP is visible to all players, instead of only those who hit it.
    - Monsters spawned with 'boss' flag have a greater bar (2-3x normal size, check screenshot in download page view)
    - Requires PACKETVER >= 20120404
     
    Whats the 'boss' flag?
    For example, gef_dun.txt's Doppelganger
    gef_dun02,0,0,0,0 boss_monster Doppelganger 1046,1,7200000,600000,1 How to Install
    Check the wiki page on 'Building a Plugin' http://herc.ws/wiki/HPM#Building_a_plugin
     
    Contribute / Customize
    Its available at our Staff Plugins Repo, pull requests are more than welcome.
     
    Click here to download this file
  18. Upvote
    Ind got a reaction from Zezicla in Visible Monsters HP   
    File Name: Visible Monsters HP
    File Submitter: Ind
    File Submitted: 14 Jan 2014
    File Category: Plugins
     
    HPM Plugin.
    - Monsters HP is visible to all players, instead of only those who hit it.
    - Monsters spawned with 'boss' flag have a greater bar (2-3x normal size, check screenshot in download page view)
    - Requires PACKETVER >= 20120404
     
    Whats the 'boss' flag?
    For example, gef_dun.txt's Doppelganger
    gef_dun02,0,0,0,0 boss_monster Doppelganger 1046,1,7200000,600000,1 How to Install
    Check the wiki page on 'Building a Plugin' http://herc.ws/wiki/HPM#Building_a_plugin
     
    Contribute / Customize
    Its available at our Staff Plugins Repo, pull requests are more than welcome.
     
    Click here to download this file
  19. Upvote
    Ind got a reaction from Zezicla in Server Side Manners.txt   
    File Name: Server Side Manners.txt
    File Submitter: Ind
    File Submitted: 14 Jan 2014
    File Category: Plugins
     
    HPM Plugin.
    - Implements the 'server-side' manners.txt aka ability to blacklist words.
     
    Includes:
    - Ability to read 'conf/manners.txt' (you have to create the file, you can fill as you like, and use '//' to create commands as well).
    - The @reloadmanners command
    - Implements the 'mouthful' group permission, which allows individual groups to bypass the badwords filter.
     
    Requires:
    - HPM Hooking to be enabled.
     
    How to Install
    Check the wiki page on 'Building a Plugin' http://herc.ws/wiki/HPM#Building_a_plugin
     
    Contribute / Customize
    Its available at our Staff Plugins Repo, pull requests are more than welcome.
     
    Click here to download this file
  20. Upvote
    Ind got a reaction from AnnieRuru in Server-side manner.txt   
    There you go! I'll write a topic with the documentation and stuff.
    https://github.com/HerculesWS/StaffPlugins/blob/master/shennetsind/manners/manners.c

    There: http://herc.ws/board/topic/3925-server-side-mannerstxt/
  21. Upvote
    Ind got a reaction from Dduwsmitt in Hunting Missions on newest trunk version of hercules. no global_reg_value   
    Try
    query_sql("SELECT char_id AS id, (SELECT `name` FROM `char` WHERE char_id = id),`value` FROM `char_reg_num_db ` WHERE key = 'Mission_Total' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 5",.@id,.@name$,.@val);
  22. Upvote
    Ind got a reaction from Mumbles in Visible Monsters HP   
    File Name: Visible Monsters HP
    File Submitter: Ind
    File Submitted: 14 Jan 2014
    File Category: Plugins
     
    HPM Plugin.
    - Monsters HP is visible to all players, instead of only those who hit it.
    - Monsters spawned with 'boss' flag have a greater bar (2-3x normal size, check screenshot in download page view)
    - Requires PACKETVER >= 20120404
     
    Whats the 'boss' flag?
    For example, gef_dun.txt's Doppelganger
    gef_dun02,0,0,0,0 boss_monster Doppelganger 1046,1,7200000,600000,1 How to Install
    Check the wiki page on 'Building a Plugin' http://herc.ws/wiki/HPM#Building_a_plugin
     
    Contribute / Customize
    Its available at our Staff Plugins Repo, pull requests are more than welcome.
     
    Click here to download this file
  23. Upvote
    Ind got a reaction from kyeme in Server Side Manners.txt   
    File Name: Server Side Manners.txt
    File Submitter: Ind
    File Submitted: 14 Jan 2014
    File Category: Plugins
     
    HPM Plugin.
    - Implements the 'server-side' manners.txt aka ability to blacklist words.
     
    Includes:
    - Ability to read 'conf/manners.txt' (you have to create the file, you can fill as you like, and use '//' to create commands as well).
    - The @reloadmanners command
    - Implements the 'mouthful' group permission, which allows individual groups to bypass the badwords filter.
     
    Requires:
    - HPM Hooking to be enabled.
     
    How to Install
    Check the wiki page on 'Building a Plugin' http://herc.ws/wiki/HPM#Building_a_plugin
     
    Contribute / Customize
    Its available at our Staff Plugins Repo, pull requests are more than welcome.
     
    Click here to download this file
  24. Upvote
    Ind got a reaction from Mystery in Server Side Manners.txt   
    File Name: Server Side Manners.txt
    File Submitter: Ind
    File Submitted: 14 Jan 2014
    File Category: Plugins
     
    HPM Plugin.
    - Implements the 'server-side' manners.txt aka ability to blacklist words.
     
    Includes:
    - Ability to read 'conf/manners.txt' (you have to create the file, you can fill as you like, and use '//' to create commands as well).
    - The @reloadmanners command
    - Implements the 'mouthful' group permission, which allows individual groups to bypass the badwords filter.
     
    Requires:
    - HPM Hooking to be enabled.
     
    How to Install
    Check the wiki page on 'Building a Plugin' http://herc.ws/wiki/HPM#Building_a_plugin
     
    Contribute / Customize
    Its available at our Staff Plugins Repo, pull requests are more than welcome.
     
    Click here to download this file
  25. Upvote
    Ind got a reaction from evilpuncker in Server Side Manners.txt   
    File Name: Server Side Manners.txt
    File Submitter: Ind
    File Submitted: 14 Jan 2014
    File Category: Plugins
     
    HPM Plugin.
    - Implements the 'server-side' manners.txt aka ability to blacklist words.
     
    Includes:
    - Ability to read 'conf/manners.txt' (you have to create the file, you can fill as you like, and use '//' to create commands as well).
    - The @reloadmanners command
    - Implements the 'mouthful' group permission, which allows individual groups to bypass the badwords filter.
     
    Requires:
    - HPM Hooking to be enabled.
     
    How to Install
    Check the wiki page on 'Building a Plugin' http://herc.ws/wiki/HPM#Building_a_plugin
     
    Contribute / Customize
    Its available at our Staff Plugins Repo, pull requests are more than welcome.
     
    Click here to download this file
×
×
  • Create New...

Important Information

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