Jump to content

Secrets

Developer
  • Posts

    587
  • Joined

  • Days Won

    44

Posts posted by Secrets

  1. Glicko-2 rating system - Now on rAthena


    This source edit provides two script commands for you to get and sets rating of a player, and adjust them relative to another player after two of them battled.
    This implementation uses Glicko-2 rating system, an improvement of Elo system.

    If you still have no idea what you could do with this, this source mod is not for you.

    You can also get the code on GitHub.

    Licenses:

    The rAthena implementation of Glicko2 itself fell under the GNU GPLv3 license that rAthena uses.

    Glicko2 library by Taylor Petrick:

    Spoiler

     

    The MIT License (MIT)

    Copyright (c) 2015 Taylor Petrick

    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.

     

    tldr of the license here.


     

    • Upvote 2
    • Love 1
  2. I have so many people asking how in my Discord PMs, so I'm writing this so I could copy-paste the link...
    This will be a step-by-step guide. But please use the Forum's search bar or Google search in case you are not familiar with some terms or programs.

    Client Part [2015-10-01aRagexeRE to 2017-06-14aRagexeRE]

    1. There's a patch in NEMO that can disable Summoner, use it.

    Client Part [2017-06-21RagexeRE or later]

    1. Use GRF Editor to open your GRF, search for ExternalSettings. One or more files will appear. If nothing shows up, grab one from data.grf.

    Spoiler

    image.png.91e0cf23da5585aa49a6d50f73afeb56.png

    2. If your use a Sakray(RagexeRE) client, click externalsettings_XX_sak.lub. Otherwise click externalsettings_XX.lub. XX will be the shorthand of the country name which is associated to your langtype.
        After that, click the Save As button to save the decompiled Lua file.
     

    Spoiler

    image.thumb.png.3e2a15f93bc6d86a0ad967c27d5fbc04.png

    3. Open the file with any text editor that does not have Notepad in its name. 😄

    4. You'll see a lot of things you can customize. Let's ignore those. Find the line with this code

    MakeableRace = { Doram = true }

    5. What's next? Let's change the value to false.

    6. Save the file and put the edited Lua file back into your GRF. Make sure the file extension is lub not lua.

    7. Now we're done with the client editing. Let's also configure the server just in case a smartass use WPE or edit the Lua file back.

    Server Part

    1. Open conf/char_athena.conf in your server files.

    2. Find this part

    // Restrict certain class from being created. (Only functional on 20151001aRagexe or later)
    // 0: No character creation is allowed
    // 1: Only novice is allowed to be created    (pre-renewal default)
    // 2: Only summoner is allowed to be created
    // 3: Both novice and summoner can be created (renewal default)
    // Uncomment to customize the restriction
    //allowed_job_flag: 3

    3. Uncomment the last line. (Yes, remove the slashes)

    4. Change the value to 1.

    5. Save the file. We're done now.

    6. Oh, and don't forget to restart your server if it was running.

    PS. Don't PM me to get support, those PMs will be ignored.

    • Upvote 6
    • MVP 1
    • Like 4
  3. This project generates the Lua file for the client and YAML file for rAthena from the item ID, start date, end date you entered.
    Handy for lazy people like me who doesn't want to edit two files to update attendance item list. 🙂

    Supports rAthena only.

    Link: https://secretdataz.github.io/attendance-generator/

    Source: https://github.com/secretdataz/attendance-generator

    • Upvote 3
    • Love 3
    • MVP 1
    • Like 5
  4. Disclaimer: This comment is opinionated.

    If you wish to use subversion with github (and why the hell would you do it anyways. it's 2018), you can check out GitHub's guide.

    The correct way to solve the problem mentioned in OP is to clone a "shallow clone" with Git. Which you can find how to in Google.
    Here's the link: https://linuxhint.com/git-shallow-clone-and-clone-depth/

    And please spend some effort if people provide you a hint.

    This topic is now locked.

  5. 21 hours ago, AnnieRuru said:

    2. rathena missing has_instance script command
    this script command is fairly important ... without this, I have to resort to use strnpcinfo(4) to check which map I'm in
    because IM_NONE doesn't attach to character/party/guild ... instance_id() can only search by npc

      

    but anyway this information is enough for me to write instanced battleground script for rathena

    That’s because our instance system is intended to be less verbose. 😆

    There’s no sanity check from has_instance needed here because how the instance creation process is designed. The instance isn’t supposed to work if a required map isn’t added in the database anyways. Also, map names can always be retrieved with instance_mapname if you have instance id stored or strnpcinfo like you mentioned. Map name retrieval from outside of the instance isn’t something we need. Instance should be isolated (with only instance_enter or warp commands sending people in). You should think about redesigning your script if you need something more complicated than this somehow 🙂

  6. 6 hours ago, Radian said:

    Nice released @Secrets will this override the old soul link bonuses or its an additional bonus.?

    while compiling my files, warning in that part.

    status.cpp:14748:44: warning: ISO C++ forbids converting a string constant to char*’ [-Wwrite-strings]
      status_read_soullink_db("db/soul_link.yml");

    Im using Ubuntu.

    This will add, not override the old bonuses.

  7. Soul Link Modification - Script-based


    Information

    This source allows you to "script" additional bonuses on soul link buffs like an item script.
    See db/soul_link.yml for example.

    Q: Why this and not OnPCStatCalcEvent?
    A: PCStatCalc is known to be buggy.

    Alternate diff link: https://github.com/secretdataz/rathena/commit/6b91c4d18cc537e25a64f371ee3faf468b9dcc99.diff

    THIS RELEASE IS SUBJECT TO GPLv3 LICENSE

    Copyright © - Secrets <[email protected]thena.org> 2018 - All Rights Reserved

    Take a look at my premade script list if you like my works or want one of my premade scripts. or

    kofi2.png


     

    • Upvote 1
    • Love 2
    • MVP 2
  8. 9 hours ago, pajodex said:

    This impossible to happen. Low mmr will only face against mmr with same bracket and so on. Prior to entering the ranked match, players will have to undergo a calibration matches which will assess them on what will be their starting mmr points. So, this what happens. Players with mmr  less than 100 points will be fighting against each other. 101-200 mmr players  will be on same bracket. 201-300 mmr players and so on.. But these mmr bracket can be configured by the likings of the server admin. 

    At some point, the character in question will reach the MMR required to face other high MMR player though

  9. What would you do in the situation where a fully-geared player transfer his items to another char with lower MMR? Assuming he has equal skill to other high MMR player, use the "smurf" char and defeat other high MMR players to greatly reduce their MMR due to how MMR or ELO rating is calculated.

  10. 1 hour ago, AnnieRuru said:

    especially for case no.1 ... do rathena support MAC address in the 1st place ?

    Unfortunately, no.

    Even if we do have it, it will be prone to spoofing via hooking Winsock and changing the MAC address that was sent from the client.
    Actually I was considering doing a proof-of-concept of evading brAthena's MAC ban.

    • Like 1
  11. 2 hours ago, llchrisll said:

    @Secrets Thanks for the reply.
    I forgot to mention anyway, about the rand() that I thought about using custom random options like this:

    item_randomopt_db.txt:
    RDMOPT_VAR_ATKPERCENT,{ bonus bAtkRate,rand(1,getrandomoptinfo(ROA_VALUE)); }

    But this would make the original ones useless for cases like this.

    I tried using rand() in the item_randomopt_group.txt, but the mapserver reports it as "Too many columns", didn't try (rand()) tho.

    Regards,
    Chris

    item_randomopt_group.txt doesn't have the capability to parse script commands. See the bracket in item_randomopt_db.txt 

×
×
  • Create New...

Important Information

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