Jump to content


High Council
  • Content Count

  • Joined

  • Last visited

  • Days Won


Rytech last won the day on July 19 2022

Rytech had the most liked content!

About Rytech

  • Rank
    Advanced Member

Profile Information

  • Gender
  • Github
  • Emulator

Recent Profile Visitors

15909 profile views
  1. Well this is it. This is the day I knew would one day come after spending some time thinking about the project and my priorities. After a number of not so good things happened to me during the first few months of this year (2020) I had to sit down and think about many things including this project. In the end I came to the difficult decision of ending this project. Many many years of work into something that I feel has to end. But not every reason for this is due to my current situation in life but also the changing world of Ragnarok Online. I won't get into the details of whats going on in my personal life but ill talk about the issues with the project itself. RO is changing. A lot. Its changing too much for me to keep up on jobs, skills, and important features on the project and my life future needs to take priority. For most of the time I worked on this project it has distracted me from my priorities in life. I kept up with it for a very long time and I tried to catch up on things for many years. With the complete recode of the elemental system on r900 I felt I finally got all caught up and only had a few bugs here and there related to skills that needed to be fixed and I just needed to finish up whats missing for the Summoner job. But I was so wrong. The thing is I felt the need to keep things up to keep the project alive and not have people wondering if the project is dead or not. Plus after doing so much work it felt like ending it would mean I wasted years of my life doing this for....what??? What exactly did I get out of this? Some fun, a hand full of thanks, and some credits and rep. Kinda felt like someone who played a MMO for many years and can't quit knowing it would make all that past time feel like it was all for nothing. A waste. So whats the issues with the project itself? Well.... 1. The Base Code Is Too Old 3CeAM is running on eAthena r14767 which is around 9 or 10 years old. A base that dated has been found to have some issues with newer compilers like VS 2015 which I have resolved this year. But other issues appeared after running the program made with newer compilers which I fixed some. But I realized that not only is there a lot of hidden issues needing fixing but things like plugin's and other .dll files are dated and need updating along with the code that uses them. I have little knowledge of this stuff and can't do it by myself. Other projects like rAthena and Hercules are much more up-to-date for newer compilers and OS's. 3CeAM's base code is just too old to keep up with. Especially when im the only one working on it. 2. Keeping Things Up-To-Date Is Impossible When it comes to development in this project there's a few key things I focus on most. Jobs, skills, any systems related to the jobs/skills that require them, and client support. I don't bother with things like the banking system or equip swap or other non important things. This pile of stuff I pushed off grew over the years and now while client support is good, many features in them don't work since I never coded them in. Im always busy working on job/skill related stuff most of the time. Its very time consuming. But after spending many years catching up on the official support for skills and these job/skill related systems I finally caught up in r900 with the exception of Summoners and a few skills that could use a quick recode. Looking at whats been going on in official kRO the dev's have been changing things with the 3rd job skills....A LOT!!!! They will increase the max level for some of them, change how some of the skills work, and do these massive skill updates. That would be kinda fine with me if it wasn't for the fact that they keep changing things. How many skill updates Rune Knights got? How many freaken times Sonic Wave got changed? How many times did they change a large number of 3rd job skills for each job? Each job must of gotten at least 3 or 4 massive skill change updates to their skill set. Its enough to drive me crazy trying to keep up with it all. Remember how long it took me to go through every 3rd job a few years back to comb through all of the code to get each of them up-to-date with the 2011 skill updates? Even after that I had to go back and revisit the parts I held off on knowing they would be very complex and time consuming to do. Now it feels like half or most of what ive done was now a time waster since I will have to do this exact procedure ALL OVER AGAIN combing through the code and kRO change logs to update each 3rd job skills 1 by 1 to get them up-to-date again. I did it once, im not doing it again. 3. Newer Client Support. In mid 2018 official kRO increased the value that handles item ID's from short (16-bit 32k item limit or 64k however you look at it) to int (32-bit allowing over 2 billion ID's). But the way they did it made things difficult. Many existing packets relays on item ID's and so they decided to change this value in all already existing packets. To support newer clients over 50 or probely 70 or 80 or maybe more needs updating. But not only updating but many which only have 1 versions of itself requires additional code to keep backward support for older clients. Such a change is a huge workload and would require multiple updates to get it working. Me not having the time for this crap if I did it would just say FUCK IT and remove ALL of those packets and only readd the latest versions of each one to significantly reduce that workload. I would make a copy of the source files that handles the packets and put them to the side in the SVN for those who want 2018-06-20 or older support because that change will make it so only 2018-07-01 and newer clients will work. Won't be the most popular choice but im not up for trying to keep backward compatibility with years of clients. Just going to be a pain in the ass. 4. The 4th Jobs Workload It took many years since the beginning to get the 3rd jobs caught up. Some of that time spent figuring out how to implement them in the system on their own layer and also inherit the features and permissions of the previous jobs. That was a big challenge since noone knew exactly how the job management system worked. Me and a few others made multiple prototype codes to find the best method until I found the right way to do it. Knowing this knowledge I can create a new layer for 4th jobs. But these jobs come with a lot more then just a hand full of skill sets. When 3rd jobs came, so did the introduction of a new game mechanic that split cast times into variable cast and fixed cast and it also introduced cooldowns. It was a nice and much needed change and it didn't take long to code this stuff in. 4th jobs however are adding new game mechanics much bigger then this. When you change to a 4th job, level 201 to 250 will give you a new kind of stat points called T.Stats and you use them on 6 new stats that are added to the 6 that existed since day 1 of RO, making the total number of stats in the game 12 now. This also comes with a hand full of new sub-stats which we can just call T.Sub-Stats. Coding all of this in will be a big work load since no new stats were added since the early days of RO server emulators. Also new to the table is something called AP which will be a new requirement for some if not all of the 4th job skills according to info I found in a updated skillinfo_f.lua file. So now we will soon have to mange HP, SP, and now AP. Info extracted from newer client exe's shows some of the new buff skills increases T.Stats and also increases T.Sub-Stats. Combining that with the new AP requirements and you now have over 100 new skills that will require all of this to be coded in and working to allow those skills to work properly. This is a workload much MUCH greater then what the 3rd jobs were and doing this alone will just stress me out. Especially when this is only a free time hobby that brings no income. 5. A Project Managed By 1 Person Managing the project by myself has been somewhat stressful at times. It used to be developed by a small team but everyone moved on with their lives. And I got used to doing it all by myself. I knew the code inside and out because almost everything was being done by me and I knew what was done and what still needed to be coded in. Well this became a big part of the project's downfall. Doing it all by myself is a lot on me and it prevented things like a updated base code and .dll's, server/client features, and other things to fall behind. Sure 15peaces made patches you can apply to get those other features working but its not something officially in the project's code. I tried working with the team at rAthena before only to quickly find out that some of the dev's there don't do a good job at coding. Some would code something in and commit it to the GIT and those changes would cause problems. So dev's have to go back and fix the bug or the issue which sometimes causes crashes and commit again. And even with that the fix won't even fix the issue as if the dev didn't test it. WTF!!??!! The dev would commit multiple times on that code before its actually working. I can only imagine the number of issues in that project's code. When you code something in your supposed to TEST IT BEFORE RELEASING IT!!!! Test it thoroughly to make sure it works EXACTLY how its supposed to and test some scenario with it to make sure it doesn't cause problems or crashes in case there's any hidden bugs. And even if it works properly, find ways to shrink the code down to make it smaller and optimize it to use a few CPU cycles and little memory as possible. I follow a procedure when I do my own coding. Code it in, do simple tests, shrink and optimize the code if it passes the test, test again for the same expected results, do extra testing (thorough testing through stressing the code and running scenarios that might cause issues), and then release it if all passes. Its because of this 3CeAM has a history of being stable and extremely rarely has any crashes or bugs. If there's one thing dev's should take from this example, do it right the first time and give it your best at all times. If your often having to go back to your previous work or the same piece of code repeatedly to fix it then your doing something wrong. The lack of this procedure in rAthena made me quit in less then a month as I refused to fix/cleanup other people's messes. This is why I worked alone for so long. I was afraid to let or ask others join the team. Final Note 3CeAM was fun to work on and I learned a lot from it. It was very popular before rAthena and Hercules existed since at the time people wanted 3rd jobs in their servers. But those golden years are gone and trying to keep this project alive will just be a waste. Its time to let go and move on to new hobbies. Im very interested in the 4th jobs but im not interested in trying to code them into a old very dated project. If I do such a thing it will be in rAthena (which is in a better standing then when I saw it years ago), or Hercules. Anything with 3CeAM will only happen if its a paid job and thats if I even choose to accept it. Thank you to the community for supporting the project and being with me all these years. It was a fun journey.
  2. Please don't necro old topics. If you need help then make a new topic. Thanks.
  3. What client are you using? If its 2018-06-21aRagexeRE make sure your using a sclientinfo.xml file and not clientinfo.xml and double check your entrys in the file. IP and port 6900 should work by default.
  4. Those documents were released by iRO staff back in around 2011 when they applied the 3rd job skill balance updates from kRO. I just placed a copy of them there to use for reference when I was still coding in the skills since they contained info that was up-to-date at the time. Pretty much every official formula for skill damage and effects are used in 3CeAM unless a change is needed for balance/mechanical reasons. Like a skill that increases DEF by a fixed 120 would be OP for sure and is divided by 10 here. There is no info listed on how things are handled here.
  5. =General *Elemental system recode part 10. -This update focuses on adding support for all of Tera's skills. -With this update, the recoding of the entire elemental system is now complete. -Any further updates to the system will be bug fixes and optimization. -Im sooooooo glad im finally done with this. *Reduced the amount of code used for some autocasting status's. =Skills *EL_WIND_SLASH -Fixed a issue where it was dealing magical damage instead of physical. *EL_SOLID_SKIN *EL_STONE_SHIELD *EL_POWER_OF_GAIA *EL_PETROLOGY *EL_CURSED_SOIL *EL_UPHEAVAL *EL_STONE_HAMMER *EL_ROCK_CRUSHER *EL_ROCK_CRUSHER_ATK *EL_STONE_RAIN -Added support for these skills.
  6. =General *Elemental system recode part 9. -This update focused on adding support for all of Ventus's skills. -3 elementals down. Only 1 more to go. Im so ready to finish this. =Skills *EL_WIND_STEP *EL_WIND_CURTAIN *EL_ZEPHYR *EL_GUST *EL_BLAST *EL_WILD_STORM *EL_WIND_SLASH *EL_HURRICANE *EL_HURRICANE_ATK *EL_TYPOON_MIS *EL_TYPOON_MIS_ATK -Added support for these skills.
  7. =General *Elemental system recode part 8. -This update focused on adding support for all of Aqua's skills. -2 elementals down. 2 more to go. *Added some checks to help stablize the elemental skills. =Skills *EL_PYROTECHNIC *EL_HEATER -Corrected the damage increase to certain skills. *EL_WATER_SCREEN *EL_WATER_DROP *EL_WATER_BARRIER *EL_AQUAPLAY *EL_COOLER *EL_CHILLY_AIR *EL_ICE_NEEDLE *EL_WATER_SCREW *EL_WATER_SCREW_ATK *EL_TIDAL_WEAPON -Added support for these skills.
  8. =General *Elemental system recode part 7. -This update focuses on adding the structures and handlings for the elementals -skills and the status for them. This update also adds support for all of Agni's -skills. Now that I have things set on how to handle these skills it should be -a smooth development for the remaining 3 elementals. =Elementals *Fixed a issue where LV 1 elementals would not stay in passive mode. =Skills *SA_AUTOSPELL -Aftercast delay is now properly triggered on autocast. *NC_RESEARCHFE -Recoded the skill. -Bonus ATK now only applies to fire and earth element monsters. -Damage reduction is corrected to be a fixed reduction. -The damage reduction only applies to attacks from fire and earth element monsters. *SO_WARMER -Recoded the skill. -Freeze, Frost Misty, and Crystalize status are now removed by the AoE itself. -HP recovery is now handled by the warmer status. This is the official handling. -Status is now removed when you walk outside of the AoE. -I had to recode this when adding Agni's Heater skill. *SO_EL_CONTROL -Fixed a issue where the skill would fail even if you have a elemental. *EL_CIRCLE_OF_FIRE *EL_FIRE_CLOAK *EL_PYROTECHNIC *EL_HEATER *EL_TROPIC *EL_FIRE_BOMB_ATK *EL_FIRE_WAVE_ATK -Added support for these skills. *EL_FIRE_MANTLE -Number of hits per cell changed to 1. -Due to the damage they deal and with no known official number, its best to keep -it safe for now. Especially when you can lure a enemy to walk through multiple -cells at a time. 1000% MATK is a lot of damage for 1 hit from a firewall. -A regular LV 10 firewall deals 50% MATK per hit for 12 hits per cell. -Thats 600% total. *EL_FIRE_BOMB *EL_FIRE_WAVE -Now has a 50/50 chance of casting 1 of 2 versions of itself.
  9. =General *Elemental system recode part 6. -This part focused on redoing all the SQL save/load related stuff for elementals -and the format that the data for them is saved in. Due to the major rework on -the format for their save data a SQL update is required. This update drops the -elemental table and all of the data for them and creates a new one with the new -format. This is also important to get rid of any unused elemental data caused -by a bug on character deletion. - -Glad I got this out of the way. All thats left is to code in all of the skills -for the elementals. Should be easy to do since their skills are simple. *Fixed a issue where deleting a character would not delete the data for a attached -elemental if one was active at the time of deletion. =Elementals *Base sub-stats are now calculated during the summoning of a elemental. -Once summoned, these base sub-stats will be set for the entire duration of the -elementals life. The only thing that will affect them after is changes through -status's. =SQL *Updated the main.sql file with the new format for the elemental table. *Added update 3CeAM_svn896.sql.
  10. =General *Elemental system recode part 5. -This part focused on finishing up the rest of the AI related stuff, how the -mode switching functions work, and all that happens while a mode is active and -what happens during the switching of modes. Database relate stuff is updated -to remove all the useless stuff not needed. Finally, some code was updated to -be more compact and efficant now that things are finalized. - -With this step done the system is now complete enough to where I can start -putting focus on coding in their skills. I can also focus on moving the sub-stat -calculations to the elemental create function and also update the save data -format for them. Which ever one I choose to work on next. *Replaced the "elem_support" config with "elem_defensive_support" config. -It works similar to the old one except it only applies to Defensive mode. -Felt allowing a elemental to attack while in Wait or Passive mode was too much. *Added "elem_defensive_attack_skill" config. -Sets if a elemental can autocast its offensive skills in Defensive mode. -Its set to no by default as you can trigger them using Elemental Action. *Reaplced "natural_elem_healhp_interval" and "natural_elem_healsp_interval" with -"natural_elem_healhp_interval" config. This is necessary due to the changes to -their HP/SP regen mechanics. *The "eleminfo" command no longer shows the elementals regen rate. *Elemental type checks is switched to use the "elemental_get_type" function. =Database *Updated the elemental_db. -Removed quite a number of columns since a lot of it is pointless. Most of a -elementals sub-stats are set using formulas different from the norm. *Removed the elemental_skill_db. -Aegis has the skill selection and management hardcoded. Doing the same here -showed to be much easier to do and is more efficant. Plus its easy to add new -skills to the lists in the code if needed. =Elementals *Recoded the handling of HP/SP regen to official. -HP/SP is no longer regenerated by normal means and is now done through the "Wait" -mode status. While this means that status's that normally increases a player's -regen rate no longer affects elementals, it also means status's that reduce or -disables HP/SP regen won't affect elementals. - -For as long as the elemental is in the wait mode it will regen HP/SP. The regen -can be doubled when standing in a level 1 insignia of the same element. Regen is -only disabled when the elemental is in any of the 3 active modes... -Passive / Defensive / Offensive. *SP is now drained while in Passive and Defensive modes. If there's not enough SP -to continue the state it will switch back to Wait mode. *The masters SP will now be drained every 10 seconds for as long as the elemental -is alive. If theres not enough SP to continue, the elemental will be lost. *Elementals follow distance increased to 3.
  11. =General *Elemental system recode part 4. -This part focused on coding in the rest of the AI for handling skill related -stuff. Elementals will now autocast their offensive skills when attacking and -also use them when commanded with Elemental Action. Skills are also handled -through 3 seprate skill type functions and are triggered depending on the -elementals set mood. - -With how well the skills control is being handled in the source im thinking of -just removing the elemental_skill_db since its just feels pointless. It turned -out to be much easier and cleaner to hardcode the stuff in a group for each -mode. Best and most efficant way to go since all skills are 1 level max, -there's no skill tree, and skills can't be used/triggered by normal means. - -With the main parts of the system now working I feel its safe to enable the -Sorcerer's elemental related skills. There's still some bugs as the system -is still in development but nothing to worry about. *elem_support *elem_offensive_skill_chance *elem_offensive_skill_casttime *elem_offensive_skill_aftercast -Added these configs to the elemental config. *Updated the "useskill" command to check if the player has a elemental when -casting a skill from their skill range. If one exists, it will cast the skill -instead of the player. This check is also added for mercenarys and their skills. *Elementals are now summoned with full HP/SP....again. *Elementals are now only allowed to attack when in offensive mode. *Cleaned up some code. =Jobs *Sorcerer -Enabled skills related to the elemental system. -With the system recode now stable and mostly working it should be safe to allow -use of these skills. =Skills *Elementals -Updated all timer data settings in the skill_renewal_cast_db to prepare for -coding in their skills soon. Some may need to be hardcoded later on. -All skill animation code is complete (should be) and so is the status support. -They only look pretty for now but I wanted a way to visually see if the mode -switch function is working and it appear that it does. PROGRESS!!!! *EL_FIRE_MANTLE *EL_FIRE_ARROW *EL_FIRE_BOMB *EL_FIRE_WAVE -Added support for these skills. -A bit early on coding some of their skills in but I needed a few working to test -their offensive skill autocasting AI and also their mode switching functions.
  12. =General *Elemental system recode part 3. -This part focused on adding AI support for the elementals. -With the AI requiring a lot of work its best to do the main functions here and -do the other functions in the next part. *Added AI support for the elementals. -Elementals appear to use the same AI as monsters in official and because of this -I decided to make a copy of the mob's AI and then do the needed edits to make it -usable for elementals. The basic functions and feature are complete which gives -the elementals life. They will follow its master, attack anything the master -attacks, attack anything that attacks it, search for and attack stuff when set -to aggressive, etc. - -Only the main parts of the AI is done. More features and functions will be added -in the next update. *Added the "elemtalk" command. -This allows you to make a elemental say what you type. Fun extra to have. *Added the "elemental_ai" config setting. -Allows setting custom AI settings for the elemental's AI. -Note: Not all of the settings work since the AI is still under development.
  13. =General *Elemental system recode part 2. -This part focused on recoding the elemental C/H files from the ground up. -With the core parts complete, its possible to summon and release elementals. -They don't have a working AI yet and will just stand in place and do nothing. *Elementals are now supported in TXT mode. -The support bypasses the need for the char server and any save functions. -Since nearly every server run's in SQL mode its pointless to add save function -support to the char server. This TXT support is good enough for development -and testing purposes. *Updated the "eleminfo" command. -Now shows the elemental's summon Lv next to the name. -Now displays the remaining time left for the current elemental. -Note: The rate display will remain in here for now for testing purposes. *Shifted the offset ranges for homunculus, mercenary, elemental, and guild skills. =Database *Updated the elemental_db and elemental_skill_db. -The formats should be finalized but well see. =Skills *SO_EL_CONTROL -Partly recoded the skill but did enough for allowing releasing the elemental. -It does not support mode switching yet. *SO_SUMMON_AGNI *SO_SUMMON_AQUA *SO_SUMMON_VENTUS *SO_SUMMON_TERA -Recoded these skills.
  14. =General *Elemental system recode part 1. -Removed all status and skill code for elemental skills. -There was a lot to track after doing this. Best to commit the changes before -doing the elemental system itself as it too is a lot of code to remove. *All elemental related skills in the Sorcerer's skill tree is set to passive type -for now to prevent use of those skills. They will be renabled once the recoding -is complete. Gotta error proof things for anyone updating past r890 not aware of -whats going on.
  15. Much much better. Thank you. =D
  • Create New...

Important Information

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