Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 10/30/22 in all areas

  1. I just wanted to stop in to say thanks to the Dev team for continuing to support this great game after all these years. RO was a very important game to me in my youth and to see that the community is still active after all this time is amazing. Back in the old days, I always considered running my own server, but I only finally bit the bullet on it recently. I never suspected that the entire server backend would be open-source! As such, I modded the bejeezus out of it. For starters, my server is PRE-RE, however, I backported almost all of the new content from Renewal into it. Here is my Doram character in Malangdo. It's actually pretty easy to pull renewal content into PRE-RE, since they use the same server backend. To pull renewal enemies into pre-re is as simple as grabbing them from db/re's mob-db and mob-skill-db and pulling them into pre-re's mob-db / mob-skill-db. Of course, renewal enemies have slightly different stats, in particular their "max attack" is their "matk" value and their def and mdef values are usually way too high, but that's easily fixed with SDE. Ditto for items and cards, using item-db. As far as the maps are concerned, they're already all in the game, they just don't have warps, so you just need to grab the npc/warps files from renewal and pull them into pre-re. Many renewal dungeons are instances, so you can either pull the instance into pre-re, or do what I did and turn the instance dungeons into normal dungeon floors by adding warps and recreating their mob tables. As for the Doram, it's fairly easy to add them too, I'll probably make a post explaining how to do it at some point. The main thing you have to do is remove your service_korea folder from your prere grf file, which will allow the one from renewal that allows the creation of Doram to be used instead. Then there's a flag in the server settings somewhere that you have to modify so the server won't reject character creation requests for Doram. I'll write up something on this later. The biggest thing I added by far is the ability to rebirth as Super Novice, Star Gladiator, Soul Linker, Ninja, Gunslinger, and Summoner. It always annoyed me that the classes added after the first 12 never got the ability to rebirth, so I did it myself. It's not possible (or at least I can't figure out how to do it) to add new classes to the game since class sprites are hardcoded in the client file, so instead the way I did this is that when you rebirth as one of the new classes, it unlocks a new "quest skill" which is a pre-requisite for their transcendent abilities. The game also checks to see if you have this skill when it determines if you are transcendent (say, for equipping transcendent only armor or getting the 25% max hp / sp bonuses), and it also uses it to force you to the transcendent exp tables. I'd love to share the code for this, but there's so many code changes that it probably can't be done without me just zipping up my entire codebase, which is also somewhat out of date. By I encourage other intrepid coders to experiment! A reborn Ninja's new skill tree. Note the presence of a few Kagerou skills, despite the fact that he is a still a Ninja. The "reborn" skill in the bottom left is the new quest skill that makes this possible. For Ninja / Gunslinger / Star Gladiator / Soul Linker, they get a few skills from their next job as transcendent skills, with many alterations (for example, Soul Linker gains Espa and Eswhoo, but they don't require spirit energy to use, since it's not available. In exchange they have much less power). Summoner gets his post level 100 skills as transcendent skills, since the max level cap is 99. Super Novice gets to become Expanded Super Novice. I also added the ability for Novices to use bows, which required me to make a custom animation for this. The dream of Bow Super Novice is finally real! Beyond this, I also added like a hundred new pets. They all have custom portraits and speech lines. I put up a guide on how to add custom pets elsewhere on the forum if you want to do this. This poor Lunatic is NOT ready for what's about to happen. And then I manually rebalanced the effect of every card in the game and manually tweaked the exp and drop rates of almost every monster in the game. My server is technically 10x, but the beginning feels like 5x or so, while the late game feels more like 20x, because lategame monsters give more exp. I also fixed a ton of bugs and made a number of enhancements, for example if you use the whodrops command, it now shows exact matches first, so if you do "whodrops boots" you actually see slotted boots now! At this point, there's probably some room for debate as to whether or not this game is still Ragnarok Online or something else entirely, but I'm having fun with it. The only problem is that now my regular job seems boring by comparison. Having complete control over the codebase for one of the best games of all time is pretty much impossible to top. Oh well. Everyone reaches the pinnacle of their career sooner or later. I'm sorry if this sounded like a giant advertisement. Actually, my server will probably never be open to the general public. However, where my code is easily distributable I'll probably make some of it available. I've already put up a couple topics sharing some of the files I've written, and I'll probably try to put up a few more once everything is adequately tested (I've also crashed my server about a hundred times already).
    3 points
  2. Nothing fancy here, just a pack of 35 cloth colours for male and female summoners, since in the distribution I had they didn't have any. To add this to your server, download the doram-palettes.grf from the bottom of the post, then find your data.ini (in your client folder) and add a line including this grf file, like so (the last line is the one you would add): [Data] 0=rathena_resources.grf 1=pre20190427.grf 2=renewal20190427.grf 3=palettes.grf 4=data.grf 5=rdata.grf 6=doram-palettes.grf You can also merge this into an existing grf file using GRF Editor if you prefer. If the "max_cloth_color" on your server is not 35, you'll also probably want this, this is a slightly modified version of the stylist npc who manually specifies the maximum number of palettes for Summoners. This should replace your npc/custom/stylist.txt //===== rAthena Script ======================================= //= Stylist //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.1 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= Changes your hair style, hair color, and cloth color. //===== Additional Comments: ================================= //= 1.0 Initial script. //= 1.1 Switched to 'getbattleflag', credits to Saithis. [Euphy] //= 1.2 Manually specified limits for Summoners [Tero] //============================================================ prontera,170,180,1 script Stylist#custom_stylist 122,{ mes "[Stylist]"; mes "Hey baby!"; mes "I can make you look fabulous!"; mes "Are you ready?"; if (Class == 4218 || Class == 4220) { setarray .@Styles[1], 35, 6, 8; setarray .@Look[1], LOOK_CLOTHES_COLOR, LOOK_HAIR, LOOK_HAIR_COLOR; set .@s, select(" ~ Cloth color: ~ Hairstyle: ~ Hair color"); set .@Revert, getlook(.@Look[.@s]); set .@Style,1; } else { setarray .@Styles[1], getbattleflag("max_cloth_color"), getbattleflag("max_hair_style"), getbattleflag("max_hair_color"); setarray .@Look[1], LOOK_CLOTHES_COLOR, LOOK_HAIR, LOOK_HAIR_COLOR; set .@s, select(" ~ Cloth color: ~ Hairstyle: ~ Hair color"); set .@Revert, getlook(.@Look[.@s]); set .@Style,1; } while(1) { setlook .@Look[.@s], .@Style; message strcharinfo(0),"This is style #"+.@Style+"."; set .@menu$, " ~ Next (^0055FF"+((.@Style!=.@Styles[.@s])?.@Style+1:1)+"^000000): ~ Previous (^0055FF"+((.@Style!=1)?.@Style-1:.@Styles[.@s])+"^000000): ~ Jump to...: ~ Revert to original (^0055FF"+.@Revert+"^000000)"; switch(select(.@menu$)) { case 1: set .@Style, ((.@Style != .@Styles[.@s]) ? .@Style+1 : 1); break; case 2: set .@Style, ((.@Style != 1) ? .@Style-1 : .@Styles[.@s]); break; case 3: message strcharinfo(0),"Choose a style between 1 - "+.@Styles[.@s]+"."; input .@Style,0,.@Styles[.@s]; if (!.@Style) set .@Style, rand(1,.@Styles[.@s]); break; case 4: set .@Style, .@Revert; setlook .@Look[.@s], .@Revert; break; } } } Enjoy colourful cats! doram-palettes.grf
    2 points
  3. 1 point
  4. if i have extra time im going to look on my archived files to see for those older client versions of mine that i used before.
    1 point
  5. Hi. Find and replace getmapxy .@map$, .@x, .@y, 1; >>> getmapxy(.@map$, .@x, .@y, BL_NPC);
    1 point
  6. Hello, I'm also looking for similar aged clients and the best I could get close to is this post in a German support sub forum. It has some pre-diffed clients and old server software which I want to try, however, my stuck up problem is I do not have a aged enough + clean kRO folder to try this clients. Best, Myng
    1 point
  7. i think the client you are looking for is packed with the old version of emulator like Darkweiss and Vidar. it uses loader for the client which i believe the 2004 clients.
    1 point
  8. @KazumaSatou I think there are some old clients on the other thread in this forums talking about old RO clients and such as the post here. I'm planning to get some of these hexed kRO/Sakexe clients and either (a) directly run them or (b) use them as a "jump" point to start ragexe via the "-1rag1" command line invocation. The only problem is I don't have the corresponding 2007 full/clean kRO setup right now. I will try to wide search the internet for it over the weekend, hopefully something will turn up ? @sapitosucio There is 4 data folders RAR files available for download at the post here, I don't know if they will work, but they seem to align to the dates mentioned (all 2007-08 era). My plan now is to get a 2007-08 era full client from internet and try these pre-hexed client along with data RAR folders, based on screenshot in that thread, it should mostly work, again, I will test and write back.
    1 point
  9. Trying to gather all the old files on my computer and found this old installer that I have with a client date back to 2007-02-12 but I don't have the undiffed exe of that client date. Gonna test it out and check out if I get some problems for casual playing.
    1 point
  10. I made some corrections, it was tested on revisions 17687 and 17700. ExtendedVending_Rev9.1.diff @Edit Manual fix for 'You do not have enough items' (diff 9.1) in src/map/vending.cpp search for: if (battle_config.ex_buying_bound) { for (k = 0; k < MAX_INVENTORY; k++) { if (sd->inventory.u.items_inventory[k].nameid == vsd->vend_loot) { if (sd->inventory.u.items_inventory[k].bound) { clif_displaymessage(sd->fd, msg_txt(sd,1604)); return; } loot_count += sd->inventory.u.items_inventory[k].amount; } } } and replace with: for (k = 0; k < MAX_INVENTORY; k++) { if (sd->inventory.u.items_inventory[k].nameid == vsd->vend_loot) { if (sd->inventory.u.items_inventory[k].bound && !battle_config.ex_buying_bound) { clif_displaymessage(sd->fd, msg_txt(sd,1604)); return; } loot_count += sd->inventory.u.items_inventory[k].amount; } } Obs: When I have some time I will update the diff to 9.2 and remove this manual fix.
    1 point
  11. Check if this works for you, bro Index of / (eathena.org) and using maybe llchrisll's roenglish project
    1 point
  12. set .@Total,12; setarray .@P1[0],1,1230,1; //Ice Pick setarray .@P2[0],1,5135,1; //Cyclops setarray .@P3[0],1,4365,1; // HW Card setarray .@P4[0],1,4451,1; // Crothen Card setarray .@P5[0],1,18885,1; // Jejecap setarray .@P6[0],1,20036,1; // Sword Master Crown setarray .@P7[0],1,4357,1; // LK Card setarray .@P8[0],1,4403,1; // kiel card setarray .@P9[0],20,12210,20; // BGUM setarray .@P10[0],30,7227,20; // TCG setarray .@P11[0],100,7227,2; // TCG setarray .@P12[0],100,7227,2; // TCG do{ set .@i, rand(1,.@Total); }while( rand(1,100) > getd(".@P"+.@i+"[0]") ); for(set .@j,1; .@j<getarraysize(getd(".@P"+.@i)); set .@j,.@j+2) { getitem getd(".@P"+.@i+"["+.@j+"]"), getd(".@P"+.@i+"["+(.@j+1)+"]"); if (!.@k[0]) { set .@gz,.@i; setarray .@k[0], getd(".@P"+.@i+"["+.@j+"]"), getd(".@P"+.@i+"["+(.@j+1)+"]"); break; } } if( .@gz && .@gz <= 10 ) // 10% equal or below will announce announce "Congratulations! "+strcharinfo(0)+" just received "+getitemname(.@k[0])+" x "+.@k[1]+" from Lotti Girl",0; specialeffect2 248; close;
    1 point
  13. // Shop NPCs -- supplying no argument displays entire menu. // callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}}; //============================================================ prontera,164,203,6 script Quest Shop#1 998,{ callfunc "qshop"; OnPCLoadMapEvent: if( strcharinfo(3) == strnpcinfo(4) ) showevent 1,1; end; } prontera mapflag loadevent
    1 point
×
×
  • Create New...