Jump to content

Murilo BiO'

Members
  • Content Count

    42
  • Joined

  • Last visited

  • Days Won

    9

Reputation Activity

  1. Upvote
    Murilo BiO' reacted to Sephus in Introducing the Item Options System   
    Introducing the Item Options System!
     

     
    Commit
    https://github.com/HerculesWS/Hercules/commit/974222a8d3f189083205bf5d330de04a43226ad3
     
    Feature Information
    The Item Option System is a feature that was implemented in 2015-02-26 clients, allowing equipments to have up to 5 additional effects similar to cards or enchants. Each equipment is capable of having 5 information bars above the card slot/enchant bar that describes the effect of the option it is infused with.
     
    New Script Commands (The following snippet is available in doc/script_commands.txt.)
    *getequipisenableopt(<equipment slot>) This function checks if the equipped item allows the use of bonus options. Returns 1 if allowed, 0 if not. --------------------------------------- *getequippedoptioninfo(<info_type>); This function is to be used with the scripts of contents listed in db/item_options.conf only. Returns the value of the current equipment being parsed. If the equip was not found or the type is invalid, -1 is returned. --------------------------------------- *getequipoptioninfo(<equip_index>,<slot>,<type>); Gets the option information of an equipment. <equipment_index> For a list of equipment indexes see getequipid(). <option_slot> can range from 1 to MAX_ITEM_OPTIONS <type> can be IT_OPT_INDEX (the ID of the option bonus, @see "Id" or "Name" in db/item_options.conf) or IT_OPT_VALUE (the value of the bonus script of the equipment, @see "Script" in db_item_options.conf). returns the value of the slot if exists or -1 for invalid slot, type or slots. --------------------------------------- *setequipoption(<equip_index>,<slot>,<opt_index>,<value>); Set an equipment's option index or value for the specified option slot. <equipment_index> For a list of equipment indexes see getequipid(). <option_slot> can range from 1 to MAX_ITEM_OPTIONS <type> can be IT_OPT_INDEX (the ID of the option bonus, @see "Id" or "Name" in db/item_options.conf) <value> The value of the type to be set. returns 0 if value couldn't be set, 1 on success.  
     
    Release Notes
    This system allows the infusing of equipments with bonus item options. This feature is constrained to clients of packet versions greater than or equal to 20150226. Item Options and their effects are defined server-side in db/item_options.conf and client side in data/luafiles514/lua files/datainfo/addrandomoptionnametable.lub The ID of the option must tally with the correct index of the description provided in the client side file. IT_OPT_* keys and MAX_ITEM_OPTIONS macro are also exported from the source as constants. If you wish to disable item options for certain (equipment) items, an additional flag `disable_options` has been added to the item sql tables, and as `DisableOptions: true/false (boolean, defaults to false !!for equipments only!!)` to the item_db.conf files. Documentation is provided for script commands. If upgrading, don't forget to run the sql upgrade files!
    Credits
    A big thanks to all the reviewers that helped make the code closer to perfection. -
    Emistry, dastgir, MishimaHaruna, Jedzkie, Ridley8819, Asheraf, 4144.
     
    Style and Script Fixes by Asheraf (https://github.com/Asheraf)
    Initial design Idea in rAthena commit.
  2. Upvote
    Murilo BiO' reacted to Haru in About Code Review and Why You'd Want Your Code to Be Reviewed   
    About Code Review and Why You'd Want Your Code to Be Reviewed
     
    Hello, fellow developers and code contributors!
    As you certainly know, years ago, Hercules adopted a workflow based on pull requests, that includes code review as one of the necessary steps before any new piece of code makes it into the master branch of the repository.
    While being an uncommon and somewhat controversial change in Hercules (and in the RO emulator scene in general), code review is part of the workflow of most software projects, both open source and closed source, and has many benefits.
     
    Why Code Review
     
    The benefits of code review are several:
    "Given enough eyeballs, all bugs are shallow" [Linus's Law by Eric S. Raymond -- The Cathedral and the Bazaar, 1999]. While the law is not strictly true, it's certainly true that the more developers read and analyze a piece of code, the more likely it is that bugs that might be hidden in it are discovered early. Testing is not enough. It's very hard (or in the case of our codebase just plain impossible) to cover all the possible edge cases when testing a new feature or a fix. An additional pair of eyes reading the code may help discovering those more easily. This includes cases where the client would normally prevent a certain thing from happening, but it's not ensured anywhere on the server side. Better quality of code. By having other developers read a piece of code, they'll end up wondering why a certain approach was taken, rather than another, and discuss it with the submitter, leading to better, more efficient algorithms, or better engineered code. Better documentation. Since the code needs to be read by other people, it'll require proper comments (or they'll ask for explanations about the parts they can't easily explain). This increases the chance that the author, or anyone else that will need to read the same code again months or years after it's been submitted, will be able to understand it again, by finding appropriate comments in the appropriate parts of the code. Better insight into the code across the team. By reading code from different parts of the emulator as part of the review process, every team member increases their own general knowledge of the software, bit by bit. This is a very efficient way of learning how different parts of the emulator work, and why they were implemented that way. Future-proofing. By having public reviews, we keep a permanent trace of what were the hot topics and why certain decisions were taken, when a certain part of the emulator was implemented. If a bug arises, or something needs to be redesigned in future, we can look up the associated pull request and related discussion, and learn more about the discussion that went on in the past, and what's hiding behind code design decisions. Reviewing code from other people, as well as having one's own code reviewed by others might not be easy for everyone, especially at the beginning, but please try your best. Here are some suggestions on how to approach code review from either side. 
    How to approach code review (for code authors)
     
    As a code author, the worst thing you can do is to be afraid or shy about other people judging your code. This is the wrong approach! Don't be shy, have your code looked at by others, have them praise you for your genial approach to tackle a problem, listen to their suggestions on how to improve it. But be ready to defend your implementation, if you believe it's better than the suggestions you receive, or if the critics that are moved against it are wrong or meaningless.
     
    Always keep in mind that:
    Having your code reviewed and commented on isn't humiliating. Other people are spending their time looking at your code, asking you why you did something in a certain way rather than another, suggesting improvements. Both sides have a lot to learn from each others. (On the other hand, if no one reviews your code, that's somewhat humiliating!) If someone spots an issue in your code, it doesn't mean that you're a bad developer. We all make mistakes, and we should be happy to learn from them (and it's definitely better if someone spots them and points them out to us before it's too late and they were able to do some harm). Never, ever, take code review personally. No one will laugh about you, fire you, kill you, shame you, etc. if your code is commented on. If you believe you're right and the comments you received are pointless or wrong, chance is that you really are right. Be ready to defend your reasons, it's possible that the reviewer didn't think of them. It is your duty to explain them your reasons. How to approach code review (for code reviewers) 
    Reviewing code is several orders of magnitude harder than having your own code reviewed. You have to check the code for several classes of problems, point out your findings, suggest improvements. And you still have to deal with the worry about hurting the code author's feelings when pointing out a mistake.
     
    Here are some things you should keep in mind when reading and reviewing code from other people:
    You're not judging a person. You're judging code. Don't make your review sound personal. Always think of uncommon and edge cases, and never assume they can't happen, unless there's an explicit check that makes them impossible to happen. Even if the code was tested by the author, it doesn't mean that it can't cause problems to other existing features, or have some issues the author couldn't think of. If the same person writes and tests a piece of code, the chance that they don't test the cases they forgot to handle while coding, is very close to 100%. If the code is not following the project's style guidelines (and this isn't just about indentation, but also about names, conventions about function calls, proper modularization, etc), it is your duty to point it out now, before it's merged. This will make the life of your fellow developers easier later on. Think defensively. Consider the code you have in front of you as buggy until you can prove its correctness. If you see that a sanity check is missing, ask the author to add it. If you believe that a function returns the wrong value in certain cases, even if very unlikely to occur, prepare an example of input for which that happens and point it out. Remember that threats such as overflows, underflows, buffer overruns, null pointers, invalid pointers, numeric (floating point) approximation, etc. are always behind the corner, check for them as often as possible and prove that they can't occur. And remember that, while the code author isn't your enemy (and code review shouldn't generate negative feelings), it's often a good idea to think of them as your "professional enemies". There's a chance that something nasty is hiding in their code, even if they didn't write it with ill intent, and as such, you shouldn't blindly trust the code, regardless of who the author is. Don't be afraid when you comment on other people's code. Your goal isn't to hurt their feelings, you're asking them for explanations and/or suggesting the way you would have done something. Likewise, don't be afraid of making a pointless comment. If the author has a good reason for their implementation, be ready to take back your comment and learn from them. Don't accept compromises. If you're firmly convinced that the author's defense of their code is wrong, your duty is to prove them wrong. But if they manage to convince you, don't be ashamed of admitting you were wrong. Happy reviewing!
  3. Upvote
    Murilo BiO' got a reaction from Ridley in Channel Fee Plugin   
    View File Channel Fee Plugin
    With this plugin you be able to set required Zeny and/or Items to players be able to send messages on channels.
     
    The idea came from this post, thank you @blaze.
     
    How to configure channels:
    // FIXME: make a better way to add fee on channels (directly on channels.conf) const struct { char name[HCS_NAME_LENGTH]; int zeny; int nameid; int amount; } channels_fee[] = { // -- Add channels with fee like the example: {"name", zeny, item id, item count}; {"main" , 1000, 0 , 0}, // #main - 1000z and no item };   Find 'channels_fee[]' declaration, and add an element just like the example.
     
    If you find any bugs please report them! Hope you enjoy it.
    Submitter Murilo BiO' Submitted 02/04/17 Category Plugins  
  4. Upvote
    Murilo BiO' got a reaction from JulioCF in Npcs simples não funcionam e não apresentam erros no mapserver   
    Primeiro NPC
     
    O Hercules já possui um sistema de Túmulos, não entendo o que quer fazer com isso.
     
    Caso queira usar seu próprio sistema tudo bem...
     
    O evento OnTombstone está sendo chamado onde?
    Você que fez?
     
    Segundo NPC
     
    O setarray e o set antes do evento OnPCDieEvent, não irão funcionar até que o script seja executado do início (click no npc).
    O que você deve fazer é adicionar um evento para que ele configure essas variáveis, se não elas estarão vazias e o npc não fará nada.
     
    antes do setarray, coloque um OnInit:
     
    Assim elas serão definidas assim que o npc for carregado.
     
    Terceiro NPC
     
    O mesmo que o segundo npc, não há nenhum evento à ser disparado, quando os comandos agitstart() ou agitstart2() são utilizados, eles disparam eventos OnAgitInit e OnAgitInit2, antes das condições coloque as labels de evento, OnAgitInit e OnAgitInit2, desse modo:
    OnAgitInit: OnAgitInit2: if(agitcheck() == 1 || agitcheck2() == 1){ // code... } end();  
    Outra observação, sua comparação está incorreta, você está usando | ao invés de ||.
     
     
    Espero ter ajudado
  5. Upvote
    Murilo BiO' got a reaction from Sephus in Channel Fee Plugin   
    View File Channel Fee Plugin
    With this plugin you be able to set required Zeny and/or Items to players be able to send messages on channels.
     
    The idea came from this post, thank you @blaze.
     
    How to configure channels:
    // FIXME: make a better way to add fee on channels (directly on channels.conf) const struct { char name[HCS_NAME_LENGTH]; int zeny; int nameid; int amount; } channels_fee[] = { // -- Add channels with fee like the example: {"name", zeny, item id, item count}; {"main" , 1000, 0 , 0}, // #main - 1000z and no item };   Find 'channels_fee[]' declaration, and add an element just like the example.
     
    If you find any bugs please report them! Hope you enjoy it.
    Submitter Murilo BiO' Submitted 02/04/17 Category Plugins  
  6. Upvote
    Murilo BiO' got a reaction from * Blaze * in Channel Fee Plugin   
    View File Channel Fee Plugin
    With this plugin you be able to set required Zeny and/or Items to players be able to send messages on channels.
     
    The idea came from this post, thank you @blaze.
     
    How to configure channels:
    // FIXME: make a better way to add fee on channels (directly on channels.conf) const struct { char name[HCS_NAME_LENGTH]; int zeny; int nameid; int amount; } channels_fee[] = { // -- Add channels with fee like the example: {"name", zeny, item id, item count}; {"main" , 1000, 0 , 0}, // #main - 1000z and no item };   Find 'channels_fee[]' declaration, and add an element just like the example.
     
    If you find any bugs please report them! Hope you enjoy it.
    Submitter Murilo BiO' Submitted 02/04/17 Category Plugins  
  7. Upvote
    Murilo BiO' reacted to KirieZ in NpcTalk2   
    View File NpcTalk2
    NOTE: Hercules now provides this functionality by itself (check unittalk). I'm not updating this anymore.
    Hello,
    When converting iRO's Xmas event I missed a way to use npctalk to a specific player, so today I made it.
     
    This plugin adds the npctalk2 script command that allows you to show a message like npctalk, but to a specific player only (by default the one attached to the script).
    *npctalk2("<message>"{, "<npc name>",{"player name"}})This command will display a message to the a target player as if the NPC object running it was a player talking - that is, above their head and in the chat window. The display name of the NPC will get appended in front of the message to complete the effect.If NPC Name is given, the message will display on this npc's instead.If Player Name is given, the message will be displayed to that player instead of the attached one (if he's online)If the player is too far from the NPC (for example, in another map), the message will only show in the chatbox.   Usage Example:
    Assumming it's running in a NPC named Test and that there's a NPC named Test2 near.// Will display "I'm only talking to <Attached Player Name>" only to the attached player over NPC Testnpctalk2 "I'm only talking to "+strcharinfo(0);// Will display "I'm only talking to KirieZ" to player named KirieZ over NPC Testnpctalk2 "I'm only talking to KirieZ", "Test", "KirieZ";// Will display "Don't bother my friend, I'll talk to you" to the Attached player over NPC Test2npctalk2 "Don't bother my friend, I'll talk to you", "Test2";   If you find any bug let me know.
    Submitter KirieZ Submitted 02/04/17 Category Plugins  
  8. Upvote
    Murilo BiO' got a reaction from Like it~* in Npcs simples não funcionam e não apresentam erros no mapserver   
    Primeiro NPC
     
    O Hercules já possui um sistema de Túmulos, não entendo o que quer fazer com isso.
     
    Caso queira usar seu próprio sistema tudo bem...
     
    O evento OnTombstone está sendo chamado onde?
    Você que fez?
     
    Segundo NPC
     
    O setarray e o set antes do evento OnPCDieEvent, não irão funcionar até que o script seja executado do início (click no npc).
    O que você deve fazer é adicionar um evento para que ele configure essas variáveis, se não elas estarão vazias e o npc não fará nada.
     
    antes do setarray, coloque um OnInit:
     
    Assim elas serão definidas assim que o npc for carregado.
     
    Terceiro NPC
     
    O mesmo que o segundo npc, não há nenhum evento à ser disparado, quando os comandos agitstart() ou agitstart2() são utilizados, eles disparam eventos OnAgitInit e OnAgitInit2, antes das condições coloque as labels de evento, OnAgitInit e OnAgitInit2, desse modo:
    OnAgitInit: OnAgitInit2: if(agitcheck() == 1 || agitcheck2() == 1){ // code... } end();  
    Outra observação, sua comparação está incorreta, você está usando | ao invés de ||.
     
     
    Espero ter ajudado
  9. Upvote
    Murilo BiO' got a reaction from Quazi in [Script Command] Sellshop - Type selective sell shop   
    Name: Sellshop
    Version: 1.0.2
    Link: donwload
     

     
    This is a new script command, looks like 'callshop' when this one is used to open the sell window, but with this plugin you can choose what type of items will be abble to be sold.
     
    It's useful for shop based scripts, you won't need to filter all sold items for the type you want.
     
    Another interesting thing about this plugin is the 'Overcharge' parameter, which can show/remove the overcharged value from Overcharge skill (merchants) and just show the original value.
     
    Usage:
     
    "shop": shop name (same as callshop)
    Overcharge: turns on(1) or off(0) the display of overcharged price on sell window.
    Healing,....,Cash: Item types. They are optional and all enabled by default, to disable use 0 and to enable use 1
     
    If only the 2 required parameters are set, all types will be enabled and will be the same of callshop,2;
     
    e.g.
     
    - shop CardBuyerShop FAKE_NPC,512:-1 prontera,181,215,3 script Card Buyer 2_VENDING_MACHINE1,{ sellshop "CardBuyerShop",0,0,0,0,0,0,1,0,0,0,0,0; }  
    In this case, the CardBuyerShop will be called without showing the overcharged price and only IT_CARD type items will be on the list.
    The settings to the Item Types are:
     
    IT_HEALING -> disabled (0)
    IT_USABLE -> disabled (0)
    IT_ETC -> disabled (0)
    IT_WEAPON -> disabled (0)
    IT_ARMOR -> disabled (0)
    IT_CARD -> enabled (1)
    IT_PETEGG -> disabled (0)
    IT_PETARMOR -> disabled (0)
    IT_AMMO -> disabled (0)
    IT_DELAYCONSUME -> disabled (0)
    IT_CASH -> disabled (0)
     
    This is my first contribution to Hercules, I hope that can be useful.
     
    Observation: The Overcharge skill still work, so if you disable the overcharged price and sell something the zeny you will receive the overcharged price.
     
     
    @edit
         1.0.1 - Removed some code related to my server (I forgot this)
         1.0.2 - Fixed conditions to filter correctly
  10. Upvote
    Murilo BiO' got a reaction from Legend in [Script Command] Sellshop - Type selective sell shop   
    Name: Sellshop
    Version: 1.0.2
    Link: donwload
     

     
    This is a new script command, looks like 'callshop' when this one is used to open the sell window, but with this plugin you can choose what type of items will be abble to be sold.
     
    It's useful for shop based scripts, you won't need to filter all sold items for the type you want.
     
    Another interesting thing about this plugin is the 'Overcharge' parameter, which can show/remove the overcharged value from Overcharge skill (merchants) and just show the original value.
     
    Usage:
     
    "shop": shop name (same as callshop)
    Overcharge: turns on(1) or off(0) the display of overcharged price on sell window.
    Healing,....,Cash: Item types. They are optional and all enabled by default, to disable use 0 and to enable use 1
     
    If only the 2 required parameters are set, all types will be enabled and will be the same of callshop,2;
     
    e.g.
     
    - shop CardBuyerShop FAKE_NPC,512:-1 prontera,181,215,3 script Card Buyer 2_VENDING_MACHINE1,{ sellshop "CardBuyerShop",0,0,0,0,0,0,1,0,0,0,0,0; }  
    In this case, the CardBuyerShop will be called without showing the overcharged price and only IT_CARD type items will be on the list.
    The settings to the Item Types are:
     
    IT_HEALING -> disabled (0)
    IT_USABLE -> disabled (0)
    IT_ETC -> disabled (0)
    IT_WEAPON -> disabled (0)
    IT_ARMOR -> disabled (0)
    IT_CARD -> enabled (1)
    IT_PETEGG -> disabled (0)
    IT_PETARMOR -> disabled (0)
    IT_AMMO -> disabled (0)
    IT_DELAYCONSUME -> disabled (0)
    IT_CASH -> disabled (0)
     
    This is my first contribution to Hercules, I hope that can be useful.
     
    Observation: The Overcharge skill still work, so if you disable the overcharged price and sell something the zeny you will receive the overcharged price.
     
     
    @edit
         1.0.1 - Removed some code related to my server (I forgot this)
         1.0.2 - Fixed conditions to filter correctly
  11. Upvote
    Murilo BiO' got a reaction from bWolfie in [Script Command] Sellshop - Type selective sell shop   
    Yes, selling screen will only show the items that have the types you set.
     
    That's helpful when using with OnSellItem: event, instead of you filter every sold item, the selling window does it for you.
     
    Edit:
    Like a shop based card remover, you need only Armors and Weapons to check, so, disable the rest types and when you open the selling secreen, even if you're full of misc items, healing items or pet eggs, it will show ONLY Armors(armors, shields, shoes, etc) and Weapons..
     
    It gives you a clear vision of what you can sell to each NPC.
  12. Upvote
    Murilo BiO' got a reaction from bWolfie in [Script Command] Sellshop - Type selective sell shop   
    Name: Sellshop
    Version: 1.0.2
    Link: donwload
     

     
    This is a new script command, looks like 'callshop' when this one is used to open the sell window, but with this plugin you can choose what type of items will be abble to be sold.
     
    It's useful for shop based scripts, you won't need to filter all sold items for the type you want.
     
    Another interesting thing about this plugin is the 'Overcharge' parameter, which can show/remove the overcharged value from Overcharge skill (merchants) and just show the original value.
     
    Usage:
     
    "shop": shop name (same as callshop)
    Overcharge: turns on(1) or off(0) the display of overcharged price on sell window.
    Healing,....,Cash: Item types. They are optional and all enabled by default, to disable use 0 and to enable use 1
     
    If only the 2 required parameters are set, all types will be enabled and will be the same of callshop,2;
     
    e.g.
     
    - shop CardBuyerShop FAKE_NPC,512:-1 prontera,181,215,3 script Card Buyer 2_VENDING_MACHINE1,{ sellshop "CardBuyerShop",0,0,0,0,0,0,1,0,0,0,0,0; }  
    In this case, the CardBuyerShop will be called without showing the overcharged price and only IT_CARD type items will be on the list.
    The settings to the Item Types are:
     
    IT_HEALING -> disabled (0)
    IT_USABLE -> disabled (0)
    IT_ETC -> disabled (0)
    IT_WEAPON -> disabled (0)
    IT_ARMOR -> disabled (0)
    IT_CARD -> enabled (1)
    IT_PETEGG -> disabled (0)
    IT_PETARMOR -> disabled (0)
    IT_AMMO -> disabled (0)
    IT_DELAYCONSUME -> disabled (0)
    IT_CASH -> disabled (0)
     
    This is my first contribution to Hercules, I hope that can be useful.
     
    Observation: The Overcharge skill still work, so if you disable the overcharged price and sell something the zeny you will receive the overcharged price.
     
     
    @edit
         1.0.1 - Removed some code related to my server (I forgot this)
         1.0.2 - Fixed conditions to filter correctly
  13. Upvote
    Murilo BiO' reacted to Skyline in [Release] ExtendedBG for Hercules (with eAmod BG modes)   
    *Casts spider web on Dastgir*
  14. Upvote
    Murilo BiO' reacted to Skyline in [Release] ExtendedBG for Hercules (with eAmod BG modes)   
    This is why we should throw pizza at Dastgir.
  15. Upvote
    Murilo BiO' reacted to Skyline in [Release] ExtendedBG for Hercules (with eAmod BG modes)   
    10/10 my body is ready
  16. Upvote
    Murilo BiO' reacted to Dastgir in [Release] ExtendedBG for Hercules (with eAmod BG modes)   
    Been working on it since past 2-3 days, and Rankings are implemented completely(need to test off, but code is done)
  17. Upvote
    Murilo BiO' reacted to Dastgir in [Release] ExtendedBG for Hercules (with eAmod BG modes)   
    Not really, this project goes in sleep mode due to other things, other things become more interesting
  18. Upvote
    Murilo BiO' reacted to Dastgir in [Release] ExtendedBG for Hercules (with eAmod BG modes)   
    Not really , rather hibernate mode,which will be Powered on soon enough
  19. Upvote
    Murilo BiO' reacted to Dastgir in [Release] ExtendedBG for Hercules (with eAmod BG modes)   
    Fake guild Data is been used... And those guild infos are been send.
  20. Upvote
    Murilo BiO' reacted to Dastgir in [Release] ExtendedBG for Hercules (with eAmod BG modes)   
    Hello Hercules Community,
     
    Let me explain it first.
    It is ExtendedBG, which tends to contain all eAmodBG modes and extra modes(as and when coded).
    Some Previews:
    http://imgur.com/a/2SSVR
    Ohh, and the last thing I forgot to tell,
    Its 100% Plugin and Script, no Source Edits ..
     
    Special Thanks To:
    jaBote co-founded this project(and really thanks to him , that he motivated me at start at provided some functions and idea of how the base should be, and what we should do it to give flavor of Hercules in it).
     
    Repository Link: https://github.com/dastgirp/eBG (Please read README.md for installation steps)
     
    Leave Comments/Suggestions if you find something.
    NOTE:
     There might be some(/many) debug messages left in map-server which will be cleaned up. I will add battle.conf soon (you have to add it yourself for now or edit the plugin) The plugin might be a big mess to read/understand (I did many experiments over the year) There might be some bugs Thanks to @Rebel and @Myriad for testing and providing initial feedback
    Contact me on Discord: @Dastgir#1460 if there's some urgent issue or else open the issue in github. keep this topic for support.
     
    Want to encourage me??

     
  21. Upvote
    Murilo BiO' reacted to jTynne in [Added Feature] jTynne's @go Command Alternative (.TXT Format!)   
    jTynne's @go Command Alternative In .txt Format!
    This is my custom alternative to @go that allows end users the ability to EASILY add/change @go locations on the fly without the need to edit any source files OR recompling/rebooting their server. This is a highly customizable script that is pretty straight-forward in its coding. You can easily add in or adjust existing @go locations in seconds.

    Please Note: This will replace the default @go command when loaded in-game!

    Instructions / Customization
    To use? Simply upload and @loadnpc the file in-game and @go will be modified. If you wish to add in a new @go location, all you have to do is add a new entry following the format noted below:

    if(@warp$ == "35" || @warp$ == "ecl" || @warp$ == "ecla" || @warp$ == "eclag" || @warp$ == "eclage") { callsub Process,"eclage",110,39,0,0; }
    if(@warp$ == "36" || @warp$ == "ser" || @warp$ == "sere" || @warp$ == "seren" || @warp$ == "serenglade") { callsub Process,"serenglade",34,82,0,0; }

    As noted in the text in red above, you add in a number higher than the current highest value (in the script currently, Eclage is 35, so to add in a custom location, simply add in a value of 36, customize the text based warp strings you want (for @go 36, in the above example, you can either use @go 36 or @go ser @go sere @go seren or @go serenglade, and all will teleport you to the same location of serenglade <34,82>).

    Planned for future releases:
    - Additional options GM's can set for the command in the header. (Re-use delay, price per use option)
    - Mapflag check for nowarp and nogo mapflags.
    - No usage while dead.

    Version History : Current Version 2.0

    2.0 Dec 31st, 2012 : http://www.justintfields.com/rAthena/scripts/gobind_v2.txt

    1.0 Dec 29th, 2012: http://www.justintfields.com/rAthena/scripts/gobind.txt


    Please report any bugs you may find, and/or if you have any requests / suggestions for the script as a response to this thread. Thank you!

    (Please +1 me if you enjoy this script~)
×
×
  • Create New...

Important Information

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