Jump to content

KirieZ

Core Developers
  • Content Count

    211
  • Joined

  • Last visited

  • Days Won

    17

Reputation Activity

  1. Upvote
    KirieZ reacted to w0wZukuBg in [w0w] Ein & Lhz Trains   
    ein_tra01 & lhz_tra01
    .•°'°•.
    File Name: ein_tra01 & lhz_tra01
    File Submitter: w0wZukuBg
    File Submitted: 04 June 2018
    File Category: Maps & Textures
    Download Link: Click here to download
     
  2. Upvote
    KirieZ reacted to bWolfie in [Guide] Mapcache Generation 2018   
    As of Release v2018.03.13, the method to generate mapcache for Hercules has changed. A lot of people. myself included, were confused as to how it works. In this thread, I will do my best to explain the new way to generate your cache. This guide is intended to help people using the old system, not to aid new people (i.e. never generated mapcache before), so if you are new, some of it may seem like alien talk.
    Old (your source predates [is older than] Feb 18, 2018)
    In the old system, there were two ways to generate mapcache
    You could run the mapcache executable in Hercules root folder. Or use a program such as WeeMapCache to edit in your required mapcache. These two methods would generate or alter your required mapcache located in db/[pre-re or re]/map_cache.dat. However, they are no longer supported.
    New (your source is using Release v2018.03.13 or newer)
    The new system involves the use of the new 'mapcache' plugin to generate files. Some quick points:
    db/[pre-re or re]/map_cache.dat has been dropped (no longer supported). In its place are individual .mcache files for every map located in maps/[pre-re or re]/ Mapcache executable has been removed. Replaced with the mapcache plugin (src/plugins/mapcache.c). How to generate the mapcache?
    Same as before, check conf/map/maps.conf and db/map_index.txt have all the maps you want to cache. Your maps need to exist somewhere in your repository! There are two ways for the plugin to find them:
    a. Place all your maps, including resnametable.txt, inside the data folder of your Hercules repo. I.e. Hercules/data/prontera.gat/gnd/gnd/rsw (note: I forget if all three files are needed).
    b. OR Configure your conf/grf-files.txt to tell it where to find your GRF(s) which contains your maps. Build the mapcache plugin. On linux, this can be done by running the following command:
    make plugin.mapcache
    If using MSVC, compile as you would any other plugin. Execute plugin. This can be done using the following command:
    ./map-server --load-plugin mapcache [param]
    In windows, just remove the './' and run the commands in your command prompt. The params:
    The first thing you should do is run
    ./map-server --load-plugin mapcache --help
    A list of usable parameters will appear. Here are the ones you need to know for mapcache:
    [Info]:   --convert-old-mapcache         Converts an old db/pre-re/map_cache.dat file to the new format. [Mapcache] [Info]:   --rebuild-mapcache             Rebuilds the entire mapcache folder (maps/pre-re/), using db/map_index.txt as index. [Mapcache] [Info]:   --map <name>                   Rebuilds an individual map's cache into maps/pre-re/ (usage: --map <map_name_without_extension>). [Mapcache] [Info]:   --fix-md5                      Updates the checksum for the files in maps/pre-re/, using db/map_index.txt as index (see PR #1981). [Mapcache] ./map-server --load-plugin mapcache --convert-old-mapcache
    Rebuild all the .mcache files using your old db/[pre-re or re]map_cache.dat file.
    NOTE: You should only run this command when you have an old map_cache.dat file you need to convert.
    ./map-server --load-plugin mapcache --rebuild-mapcache
    Rebuild all the .mcache files using your map files specified in step 2 of generation.
    NOTE: You should only run this command in special circumstances. This erases ALL the existing mapcache and rebuilds it with whatever files you provide it. If you don't have the required files, the build will fail and you will be left with missing mapcache files, meaning you won't be able to access those particular maps.
    ./map-server --load-plugin mapcache --map <name>
    Rebuild the .mcache file for the map name you specify. E.g. if you replace <name> with prontera, the maps/[pre-re or re]/prontera.mcache file will be rebuilt.
    NOTE: This is the best command to run, as it only caches a single map at a time.
    ./map-server --load-plugin mapcache --fix-md5
    I don't know what checksum is for.
    The End
    Feel free to ask for help here. I'll try to answer questions re: mapcache if possible. And if you think anything needs correcting or added, let me know.
    Hope this helps!
  3. Upvote
    KirieZ got a reaction from JulioCF in Hexeds Atualizados para Renewal   
    use o NEMO para modificá-los
  4. Upvote
    KirieZ got a reaction from vaietze in Hexeds Atualizados para Renewal   
    use o NEMO para modificá-los
  5. Upvote
    KirieZ reacted to AnnieRuru in Advance SQL commands   
    As usual, I only write advance guides
    This guide is a compilation of SQL commands that I have used, or Questions answered on the forum
    every single subject here are related to Hercules/Ragnarok Online in some ways, so you won't feel bored reading them XD
    Table of Content
    1. When to use *escape_sql script command
    2. How to build a case-sensitive table
    3. Choose a table type, MyISAM or InnoDB ?
    3a. How to index a table properly
    3b. Why you shouldn't use `char_reg_num_db` table
    4. AUTO_INCREMENT
    5. How to do IF-ELSE in SQL query ?
    5a. How to update multiple rows on different conditions in a single query
    6. How to show the current rank of the player
    7. INSERT INTO ... SELECT ...
    8. Table JOIN vs AS
    9. What is the maximum string limit for *query_sql
    9a. UNION
    This topic is now open to Suggestions, Ideas, Improvements, and Questions ~
    I'm sure many of you have some questions since the creation of this topic
    You may also post up your tricks if you want to share with us
  6. Upvote
    KirieZ got a reaction from LordJasz in getcharid ???   
    Acredito que não tenha um comando para o nome de usuário da conta, mas você pode fazer com uma query sql a partir do ID da conta.
    Algo como (não testei):
    query_sql("SELECT userid FROM login WHERE account_id = " + getcharid(CHAR_ID_ACCOUNT) + " LIMIT 0,1", .@logins$); .@login$ = .@logins$[0]; mes "Seu usuário é: " + .@login$;  
  7. Upvote
    KirieZ reacted to Tio Akima in ADD new Signboard - chat/shop/icon/etc   
    Hi, I'm TioAkima.
    Small tutorial to help add the new fucking SIGNBOARDs that are available to new clients.
    If I'm not mistaken, it's for client's 2016+
    For those who do not know, I'm talking about these new chat/shop on the NPC:


     
    They are cool and leave the server with a nice face. <3
    it is quite simple.
    Go in your data folder, and in your LUA files (luafiles514)
    search for file signboardlist.lub
    data\luafiles514\lua files\signboardlist.lub Now let's understand how this file works to add a SIGNBOARD (cute little window with icon) like this:


    The structure of the file is as follows:
    {" prontera", 150, 193, 5, IT_BMP, "유저인터페이스\\information\\over_kafra.bmp", " KAFRA Tools ","#0x00FFFFFF"}    {
            "prontera", = map name
            150, = x
            193, = y
            5, = height you want the window (can be zero if you want)
            IT_SIGNBOARD, = window type
           "유저인터페이스\\information\\over_kafra.bmp",  = here is the directory where your icon is
            "KAFRA Tools", = chat  name
            "#0x00FFFFFF" = letter color
        },
    Just add another line following this format. Remembering that the last window does not have the comma in the end ... It is good to pay attention to this.
    Now to add icons in this other way>


    The format is very similar, but it has some minimal difference ... And it's also in the same file.
    It's pretty much the same thing, but one or the other function argument changes.
    The structure is this:
    {"prontera", 150, 193, 1, IT_BMP, "유저인터페이스\\information\\over_kafra.bmp"},    {
            "prontera", = map name
            150, = x
            193, = y
            1, = height you want the icon (can be zero if you want)
            IT_BMP, = Only place the icon (without the window)
           "유저인터페이스\\information\\over_kafra.bmp"  = here is the directory where your icon is
        },
    READY!
    Note that for this, you do not put the name of the chat nor the color of the letter! (you do not have these two arguments, okay?) ..
    That's it .. I hope it helps anyone who wants to put these windows.

    att,
    Tio akima
  8. Upvote
    KirieZ reacted to 4144 in PEEK fork   
    This is fork of peek packet extractor.
    Can be downloaded here: https://gitlab.com/4144/peek
     
    Changes:
    For now fixed packets extraction for new clients.
    Fixed packets extraction if client not have encryption packets (not kro)
     
    Known issues:
    Packet captures not works for new clients.
  9. Upvote
    KirieZ reacted to Ridley in [Collection] Official Full Clients + latest kRO   
    Changelog:
    - Updated all Clients
    - Updated twRO BGMS (3 new ones)
    NOTE: to disable the Snow effect in Prontera, open your grf and navigate to data/etcinfo.txt
    Then add (or edit) the following:
    weather# //prontera.rsw# //snow# Collection of official Full Clients. Those are vanilla, not modified in any way or whatever. They are patched up to date. Let me know if I've missed something.
    Server Name
    With BGM
    Without BGM
    BGM only
    South Korea (kRO)
    21. Dec. 2018
    2,70 GB
    Mega
    OneDrive
    2,42 GB
    Mega
    OneDrive
    294 MB
    Mega
    OneDrive
    South Korea (Ragnarok Zero)
    21. Dec. 2018
    2,22 GB
    Mega
    OneDrive
        Taiwan and Hongkong (twRO)
    21. Dec. 2018
    2,24 GB
    Mega
    OneDrive
    1,95 GB
    Mega
    OneDrive
    310 MB
    Mega
    OneDrive
    Japan (jRO)
    21. Dec. 2018
    2,23 GB
    Mega
    OneDrive
    1,93 GB
    Mega
    OneDrive
    311 MB
    Mega
    OneDrive
    Thailland (tRO)
    21. Dec. 2018
    1,67 GB
    Mega
    OneDrive
    1,41 GB
    Mega
    OneDrive
    272 MB
    Mega
    OneDrive
    International (iRO)
    21. Dec. 2018
    2,42 GB
    Mega
    OneDrive
    2,14 GB
    Mega
    OneDrive
    294 MB
    Mega
    OneDrive
    Philippines (pRO)
    21. Dec. 2018
    1,5 GB
    Mega
    OneDrive
    1,25 GB
    Mega
    OneDrive
    272 MB
    Mega
    OneDrive
    Indonesia (idRO)
    21. Dec. 2018
    1,88 GB
    Mega
    OneDrive
    1,61 GB
    Mega
    OneDrive
    282 MB
    Mega
    OneDrive
    Brazil (bRO)
    21. Dec. 2018
    1,95 GB
    Mega
    OneDrive
    1,69 GB
    Mega
    OneDrive
    273 MB
    Mega
    OneDrive
    France, Europe (fRO, euRO) 21. Dec. 2018
    1,85 GB
    Mega
    OneDrive
    1,59 GB
    Mega
    OneDrive
    273 MB
    Mega
    OneDrive
  10. Upvote
    KirieZ reacted to Ridley in Ridley's new PC   
    Hey guys, few months ago I built a new PC and I wrote about it at my Gaming Clan's place. But now I wanna do an english topic about it, I'm also thinkin about a YouTube Channel for Harwardware reviews. However - Let me introduce you to my PC "Dark Side"
    CPU: Ryzen 7 1700x  @300€ Mainboard: Asus Crosshair VI Extreme @370€ RAM: G.SKILL Trident Z RGB 32GB @3200, CL14-14-14-32 @370€ Monitor: ASUS ROG P27Q9 @800€ GPU: ASUS ROG STRIX 1080Ti OC @850€ Monitor:      ASUS ROG P27Q9 @800€                                                        Headset:        ASUS ROG Centurion @270€                                                                     Keyboard: ASUS ROG Claymore @250€                                         Mouse: ASUS ROG Spatha @170€ Pad: ASUS ROG Wethstone @50€ The overall costs for this build was at ~ 5k€
    The Centurion is a not yet available Prototype directly from Asus - Doing a review another time (it's different from the ones you can buy)
    CPU: Ryzen 7 1700x
    Originally I was about to get the 1800x but there aren't real benefits compared to 1700x or 1700 - except of a guaranteed overclocking.
    Mainboard: Crosshair VI Extreme
    It's a bit overkill, A Crosshair VI Hero would be fine too - but this one has a second M.2 Slot which I may use in the future. There were some problems with it due to the extended ATX Form Factor. According to the manufacturer it fits (and it did) but
    A: The I/O shield is fixed and barely fits under my rear cooler. 
    B: The 24 Molex ATX pin is vertically and I didn't notice until I wanted to power it  xD


    Case: DeepCool Genome ROG
    The Genome ROG has a built in AiO Watercooling and is ROG Certified (which comes in handy for my Aura Sync plans). 

    The left panel got some Vinyls.

    The right one was printed with UV print

    RAM: G.Skill Trident Z RGB 3200, 2x16GB Kit (CL 14, 14, 14, 34)
    RAM with Aura Sync and 3200mhz.
    Apparently it wasn't as easy but I made it work at 3000 MHz with a latency of 14, 14, 14, 34. 
    I wanted 2 x 16GB in case I ever need more. 

    Rear Cooler: Cooler Master Master Fan Pro and Front Cooler 2x Noctua NF-S12A
    The Cooler Master replaces the stock rear cooler, (Aura Sync Compatibility). The 2 Noctuas are in the front and replacing the standard HDD Bay (I won't use normal HDD Storages in this build). 

    Highlight: Storm Trooper Cooler Protector

    All 3 Coolers support PWM. The Noctuas are ugly but insanely strong. 
    First I ordered the large NOCTUA NF-A20 but it was way too alrge so I switched to 2 x 120mm.

    Noctua Chromax Anti Vibrationsticks
    Replaces normal screws.

    Storage: Samsung 850 und 960 Evo
    I hate Samsung - but they do by far the best storages. I use 2 x 850 Evo (500 GB) and 1 x 960 Evo (500 GB).  The speed is insane x). The SSD's are on the inner part of the right side panel. M.2 storages use the M.2 slots direclty on the mainboard, some use PCI-E.


    GPU: Asus Geforce 1080 Ti OC
    Not much to say here. I haven't had a Nvidia GPU in 10 Years but AMD had enough chances and I was quite disappointed of Vega. You can't use 1st class parts only and then use a 3rd class graphics card - so here's my Nvidia comeback. The GPU is mounted horizontally.


    PSU: Dark Power Pro 11 650
    As above, everything in this PC is premium, so is the Power Supply.

    Cooling Paste: Noctua NT-H1
    I love Noctua. Overclocked at 8 cores @ 3,9 Ghz 31°C. Stock at 3,4Ghz it had 24°C. Under Full Load it reaches at max 58C°

    Full PC:
    The lights are full RGB and adjustable via remote (also supports various modes). GPU is mounted horizontall. The fin on top is a W-LAN antenna. 


     
  11. Upvote
    KirieZ got a reaction from Quazi in Configurable Refiner   
    File Name: Configurable Refiner
    File Submitter: KirieZ
    File Submitted: 02 Aug 2015
    File Category: Utility
     
    This is a configurable refiner that I made after reading the request from this topic.
     
    It contains the following options (all of them configurable):
    Normal refine
    Refine N times at once (It's possible to allow this for a different group)
    Set different zeny and item requirements based on item's WeaponLv field
    Display information about the refine like: the safe refine and the chance of the next level.
    Allow the usage of items that increase the success chance
    Allow the usage of items that avoids the item from being destroyed when the refine fails
    (2.0) Ask if want to use items to protect / increase refine chance
    (2.0) Define custom effects when refine fails: stay as is, decrease one level or go back to +0

    Everything is configurable at the end of the script.
     
    I made some tests and it seems to be working correctly, if you run into any bug or wants to suggest a new feature, please let me know and I'll see what I can do.
     
    Click here to download this file
  12. Upvote
    KirieZ reacted to meko in Recent changes to the Hercules engine   
    Update: September 19 2017
     
    Projects merged:
    RoDEX Contributors: @KirieZ @hemagx @Asheraf @Dastgir @Smoke @4144 @Haru
      Item DB enhancements Contributors: @Haru @Ragno  
    New script commands:
    getdatatype getcalendartime rodex_sendmail rodex_sendmail2 rodex_sendmail_acc rodex_sendmail_acc2  
    Modified script commands:
    getgroupid recovery  
    Deprecated script commands:
    useatcmd superseded by atcommand
  13. Upvote
    KirieZ reacted to Sephus in BladeCP - An advanced CMS   
    Greetings everyone,
    Today I'm introducing a project that I've been envisioning and working on for a couple of months, a control panel developed using Laravel (currently v5.8) that has quite a few advanced features that no other panel has offered before.
    Feature Insight
    Bootstrap Responsive Design
    The panel by default will come with one bootstrap-based responsive design that is elegant, light coloured and adjusts to screens of all sizes. The panel is also capable of supporting custom themes.
     
    Master Account System
    Create and manage all your game accounts in any server from one main web-account.
     
    Passwords of the master accounts are hashed using bcrypt to ensure safety for all registered users.
    ROGen
    Adapted from @KeyWorld's ROChargen, a library in php that extracts images from sprites and uses resources inside data folders (and not grf files). With the help of this library images of headgears, skill icons, illustrations, item images, monsters and mini maps are can be generated and displayed on web pages.
    Complete Database Libraries
    Using a library with conversions of information in the client folder, the website incorporates in-game information such as skill and item descriptions, quest information and much more.
    Character Overview
    The character overview page is an important part of a user's experience. With the features mentioned above, we're able to display alot of information about one's in-game characters on the fly.
     
    User Profiles
    Additionally, something that's never been seen before in RO CMS or Panels are public user profiles. The ability of a user to view another user's in-game information through the control panel.
    Customisable Email Templates
     
    Administration Section
    The demo for this site is live and available at - http://bladecp.xyz
    ID: [email protected] Pass: abcdef  
    How do I gain access to this awesome panel?
    PM me on discord @Sxyz#0202!
    To get in touch or check out updates on this project, join my discord channel @ https://discord.gg/pWgZHzx
  14. Upvote
    KirieZ got a reaction from JulioCF in ERRO FATAL Emulador Hercules!   
    Se me lembro bem o Hercules não deixa ser executado em um usuário com privilégio root, por não ser necessário. Você precisa criar um novo usuário, tente seguir os passos desse tutorial, na parte "create a new linux user": https://habilisbest.com/rathena-setting-up-ragnarok-online-private-server .
  15. Upvote
    KirieZ reacted to Temtaime in New life for RO   
    Hello everybody !
    I'm working about two years on writing a complete new RO client. I hadn't so much time, as I'd wish, but now it's almost ready for a basic gameplay.
    So what are the advantages of having own RO client ?
    RO doesn't depend anymore on Koreans. It gives an ability for releasing of any new feature, whatever the players want: new 3D mobs, dynamically generated locations, everything you want.
    The client is cross-platform and can work on Windows, Linux, Mac OS X and Android natively.
    Thanks to using of new computer graphics features, the client works faster, consumes fewer resources, providing better graphics. For example, it loads a location instantly(to be more precise, it takes ~15 ms to load a map) - so no waiting anymore !
    What are the features we have today ?
    Dynamic shadows and per-pixel shading(no strange blur on the ground anymore!).
    Correct rendering of all the sprites and locations including all the animations on the locations.
    Rendering the best part of effects.
    The most part of UI.
    All the network communications with server.
    But there are some missing features: some part of UI(skill UI for example), and some in-game interactions are missed. But all these will be fixed soon.
    I would find those who are interested in that project, because it will be the only project, which will be used on the servers providing better game experience.
    Also, a development of the project requires some means and other help, so if you have a mind and in the position, you can write to me in PM or in these comments.
     
    Some screenshots:






  16. Upvote
    KirieZ reacted to THPO in 2014-10-22 Issues with latest version of Hercules   
    That is nice Thanks
     
    It's Fixed
  17. Upvote
    KirieZ got a reaction from THPO in 2014-10-22 Issues with latest version of Hercules   
    Should be fixed with last commit (a couple hours ago)
    Edit: At least part of it, I didn't notice other problems
  18. Upvote
    KirieZ reacted to hemagx in [RELEASED] RO Hooks, a nice set of modifications for your client   
    Hello! ~
    * Introduction
    RO Hooks is a paid project, which will allow a set of custom abilities to your client, such as player name coloring, server side GM sprite and such; It is is meant to be a way to edit this old dead game client to add things either improving player's experience or giving the ability to have new of content or to give your players something special.
     
    * What do we have currently
    GM Clothes and Robot Clothes controller server side (Robot Clothes is a Special Event Sprite) Player Name coloring (Server-side) Item Name Coloring (Client-Side) Messages Timestamp "inspired by Project Chaos RO (nachtwolke.ai4rei.com)" More to come  
    * Pictures
    - GM and Robot Clothes


    - Name Coloring




    - Colorizing Item Names (Configure client side, could be applied to any kind of items)

    - Messages Timestamp

    * Which Clients are supported?
    Pretty much anything 2012-04 and onward, older clients are also supported upon request.
    * Is there anything more? when is this supposed to be release? And can we suggest something?
    There's still other futures which will be announced soon, I'm pretty much working everyday to find something newer.
    It will be released as soon as we have enough set of custom futures, also any suggestions for features is more than welcome, as soon as anything new finished i will announce it here. Also as soon as it's ready for sell I will get a Paid Service topic.
     
  19. Upvote
    KirieZ got a reaction from jTynne in Noob Sanity Check - Why isn't my simple script working?   
    This format seems to be from phpmyadmin/mysql, am I right?
    Hercules doesn't support sql item_db, you must edit <herc_folder>/db/re/item_db.conf or <herc_folder>/db/pre-re/item_db.conf instead. (according to your server settings)
    Hope this helps!
  20. Upvote
    KirieZ reacted to Dastgir in Ragnarok Unpacked Clients Repository (RUCR)   
    RUCR
    Hello Hercules Community,
    I was working on RUCR this month and I am happy to announce that it's complete. The Site contains all Ragexe(upto 2016-07) and RagexeRE from 2014, fully unpacked.
    It would be great if there will be no mirrors, I would be keeping this web up and running, so mirrors won't be needed.
    Also, if you find any clients missing, you can post it here, and I will check if that can be uploaded.
     
     
    Repo Link: DISABLED
    Enjoy
     
  21. Upvote
    KirieZ 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!
  22. Upvote
    KirieZ got a reaction from Ragno in R> How to squash commits on GitHub?   
    You have to force push
    git push origin <your branch> --force
  23. Upvote
    KirieZ reacted to Ridley in [Release] The (data) GRF Project   
    Offering 2 versions of the grf now. Scroll down for more info. Both data.grf do NOT require rdata.grf.
     
    Option 1: (clean standard kRO GRF)
    Download OneDrive
     The grf is up-to-date 2018-12-22. Its cleaned up, and optimized. A Lot of invalid content is removed or merged. The size is 1,40gb (1.503.844.793 bytes) compared to the original 2.13gb (2.291.252.926)
    Works perfect with all current pre-renewal and/or renewal content (rdata.grf is not needed). You still need the content of the Translation Project in order to use this.
    All cutins in this grf are reduced by 35%
    Note: This is pure kro data.grf and does not contain any jro/iro/whatever files
     

      
    Option 2: GRF with the content of all official servers
    Download Mediafire
    Download OneDrive
    Download Mega
     
    This GRF contains all official files. Its cleaned up, and optimized. A Lot of invalid content is removed or merged. The size is 1,43gb (1.536.478.834 bytes)
    The grf is up-to-date 2016-08-04.
    Please throw a PM on me if this GRF is missing something! I want this to be the most complete one of all
    Small summarize
    more than 200 additional maps more than 700 additional items more than 60 additional NPC's more than 130 additionalmobs more than 900 additional cutins
     
    Instructions:
    1. Download the data.7z
    2. Extract it
    3. Put both (grf + dll) into your RO folder
     
    Changelog: Fixed Rock Ridge Illustrations use wrong Magenta (200, 238, 120 instead of 200, 240, 120) Removed chunk  
    Option 3: Episode 13.2 Pre-Renewal GRF
    This one is 775 MB (812.914.794 Bytes) and great for all kind of pre-re servers.
    Download OneDrive

    All rights and credits belong to Gravity
     
    Note: you can still encrypt your grf with SecureGRF or Tokei's GRF Editor - just use another name than cps.dll for it.
    updated thread 2019-01-13
  24. Upvote
    KirieZ got a reaction from Ragno in SetQuest2   
    This seems like a great idea, I'll try something when I get some free time, no promises though
  25. Upvote
    KirieZ got a reaction from fourxhackd in SetQuest2   
    SetQuest2
    View File NOTE: This functionality got merged into Hercules (check setquest and getcalendartime). That being said, I'm NOT maintaining this plugin anymore.
    Hello,
    This plugin adds the setquest2 script command that allows you to add a quest with your own time limit, ignoring the one in quest_db, thus allowing you to, for example, make a quest end at a determined time next day independently of when it was originally given.
    *setquest(<ID>,<Time Limit>)Place quest of <ID> that will expire at <Time Limit> in the users quest log, the state of which is "active".    
    Examples:
     
    - Ask the player to come back in a random number of minutes (1 ~ 3)
    prontera,150,150,4 script SetQuest2 1_m_01,{ .@p = questprogress(7128,PLAYTIME); if (.@p == 1) { mes "Come back later!"; } else { if (.@p == 2) { mes "You came back!"; getitem Red_Potion, 1; erasequest 7128; } .@i = rand(1, 3); mes "Come back in " + .@i + " minutes"; setquest2 7128, gettimetick(2) + (.@i * 60); } close;}    
    - Ask the player to come back tomorrow (next day at 00:00)
    prontera,150,152,4 script SetQuest2b 1_m_01,{ .@p = questprogress(7126,PLAYTIME); if (.@p == 1) { mes "Come back later!"; } else { if (.@p == 2) { mes "You came back!"; getitem Red_Potion, 1; erasequest 7126; } .@i = 86400 - gettimetick(1); mes "Come back tomorrow"; setquest2 7126, gettimetick(2) + .@i; } close;}    
    If you find any bug let me know.
    Submitter KirieZ Submitted 02/22/17 Category Plugins  
×
×
  • Create New...

Important Information

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