Dragonis1701

Members
  • Content Count

    81
  • Avg. Content Per Day

    0
  • Joined

  • Last visited

  • Days Won

    1

Dragonis1701 last won the day on August 17

Dragonis1701 had the most liked content!

Community Reputation

4 Neutral

About Dragonis1701

  • Rank
    Santa Poring

Profile Information

  • Gender
    Male
  • Location
    Old Bridge, New Jersey

Recent Profile Visitors

1,896 profile views
  1. I just implemented a feature I've been putting off scripting because I'm bad at scripting, Infusions. I took all cards that are "Get X item when you kill Y" and made them available for infusing into those closed card slots on Accessories and Headgears. This cards are Headgear: Cramp Dryad Giant Hornet Knocker Leaf Cat Leib Olmai Myst Case Accessory: Anopheles Armeyer Dinze Baroness of Retribution Blazer Cloud Hermit Dragon Egg Rice Cake Boy Galapago Gargoyle Gremlin Grove Hermit Plant Jing Guai Marin Mimic Orc Archer Plasma Raydric Archer Sage Worm Sea-Otter Sleeper Snowier Spring Rabbit Stem Worm Tengu Wraith It costs 400k and each armor piece can hold three, if slotted, and four if not slotted. I feel this gives some use to these cards as most of the time they're just not good enough or the item they provide is not good enough to warrant sacrificing the slot during normal gameplay. If any of the cards had an additional effect aside from the bonus item, the extra effect was removed.
  2. I believe dispell already does remove bard/dancer skills when the player is outside the effect area. Buff icons are kind of difficult because of how the status icons are coded unless it was changed from when I last looked. It will give your player a buff icon that lasts three minutes but the icon will disappear if the player is outside the song effect area for twenty seconds.
  3. For the status.c, 1st part: Case BL_Pet, BL_Mob, BL_Mer and BL_Elem is for Pets, Monsters, Mercenaries and Elementals. 2nd part: BL_Hom is for Homunculi and BL_PC is for players. Change the: return status->int_ + (status->int_ / 2) + (status->dex / 5) + (status->luk / 3) + (level / 4); to: return status->int_ + (status->int_ / 6) * (status->int_ / 6) + (status->dex * 3 / 5) Then for the max magic part change the same portion, the part under BL_PC from: return status->int_ + (status->int_ / 2) + (status->dex / 5) + (status->luk / 3) + (level / 4); to: return status->int_ + (status->int_ / 5) * (status->int_ / 5) + (status->luk * 3 / 5)
  4. Currently, Banshees can throw down an evil land, which lasts 30 seconds, die, then evil land stops dealing damage until the Banshee respawns and then the evil land starts dealing damage again. Is there a way to make evil land's instance end and disappear on death?
  5. Today I spent about five hours adding new costumes for each headgear quest. Players will now obtain a costume version of the item they just completed the quest for. Binoculars, Helmet of Orc Hero, Opera Masque, etc. This will be the only way to get these specific costumes and I think it adds more use to those quests in general. Some headgears are nice looking but you don't wanna equip them because their effects are bad and some of them are too simple to warrant the 50 decent coins, imo. I feel it's a good inbetween move.
  6. I've been debating making a Discord to more easily document my changes for those that are interested but that requires me organizing my mess of a changelog. I quite often tweak or change things but some are too insignificant alone to post but could be worth mentioning all at the same time but, by the time I get a decent stack, I don't always remember everything I've done. Something worth mentioning I did earlier was I tweaked Dispell to be more uniform. Some buffs that target equipment don't get dispelled on Dispell/Death such as EDP. Some usable items that grant buffs, Hit I believe and Atkpotions, don't go away on Dispell/Death. I think this is strange and inconsistent, so I changed it to where any item that grants a buff no longer goes away on death or dispell and any skill that targets equipment rather than the player themselves also no longer goes away on dispell/death. I also lessened the time that the airship takes to run it's route; roughly 80% shorter. I added a sign at the entrance portal of Bio F3 that is only there if the Mvp is dead. A tomb of sorts so people can know quickly if it is up or not. Lowered the requirement of Crystalized Teardrops on Laphine Craftsman from 15 to 5. Added an "As Many As Possible" to Tripatriate's Union Feud NPCs turn-ins. Added portals to the Guild SE Dungeon Floors that were missing that lead back outside. But these are all pretty minor changes imo.
  7. Player's are capped at 1.99 levels per exp source. So, taking those quests post rebirth would only net you 3.99 levels.
  8. I was talking to my partner about what Mvps we could do together once I finally found a marc card, because I also play on the server that I am working on to better find bugs and just 'cause I like RO, and one of the bosses was Ktullanux. I realized that, other than the Ice Necklace Quest, there was no other way to acquire more Freezing Snow Powder. It feels like a bit of an oversight that in order to summon the boss again, you need to get a character to base level 70 to do the quest. This is by far the highest requirement, especially since the server is 1x, to summon a boss and seems a bit strange to population-lock a boss like that. So, I implemented Freezing Snow Powder as a drop from all mobs in Ice Dungeon, excluding Iceicle, at varying rates. It was added to Siroma at 0.01% base, Snowier at 0.03% base, Gazeti at 0.08% base, Ice Titan at 0.10% base and Ktullanux at 30% base. I say base because my server has the +0.01% drop rate to all drops below 50%. So, that would make it 0.02, 0.04, 0.09, 0.11 and 30.01 across the mobs respectively. I never really gave Ktullanux much thought but I think this is a pretty decent change that should allow it to be summoned more often and would perhaps lead to an uptick in Ice Dungeon parties, as now, if you stay long enough, you can summon the boss.
  9. After hopping from server to server, I found that most servers had the same bugs that most people would suggest to be fixed after the server officially opened. I started to compile a list and post my list on the forums before the start of every server I played on. Being young at the time, 18 or 19, I thought maybe I could make a server, not knowing how much work really went into it. The seed was planted, though, and it stayed buried for a long time until about four years ago. I had just got done playing on a 1x server on renewal. It was fun and challenging in a few ways I didn't expect, mainly on the tedious spectrum and being used to autoloot. Unfortunately, the server died. A player from that server showed me how to set up my own instance of RO on my own computer and I could modify it to my liking but it needed a name. I wanted to make a good server, as most of us do, but I was no longer cocky. I knew being an admin was hard but I wanted to strive for something better than okay, something... decent. And thus the name was born. That preamble out of the way, I decided to just roll with what I was most comfortable with. Pre-renewal with some, pretty standard, tweaks and most of the usual suspects fixed. I taught myself script, so I'm pretty bad at it and most likely make redundant scripts but I've been able to get away with doing what I need to and, if I can't, I beg on these forums. It had to have BG and everybody loved eAmod BG, so I looked up the scripts for that and tried to get it to work. It needed some tweaks but I managed and, as far as I can test with one person running ten clients, it seemed to work properly with some play testing. Then I turned my eye to some normal features I felt were lacking: Pets, picking up loot, new content, etc. It was around this point I started modifying the src. I'm no where near even half decent at src modification but I've been able to put together how to get an idea of what is happening. It's allowed me to really make some decent modifications. I brought back pets fighting (not sure if that's enabled in renewal now), added arealoot with some bothering of Playtester, and started tweaking some renewal content. I've managed to get what I feel are some decent tweaks to New World, Dicastes, Mora, Old Glast Heim and Dewata. I implemented the pre-renewal Brasilis with some minor modifications. I've implemented all renewal cards, excluding maybe four or so. The amount of random tweaks I've made to this server I feel really make it stand out but I'm too worried, anxious and just scared to release it. I came close one time but then maintaining a website, finding the correct server to host it on and just the pressure of being an official admin was too much and I canceled. My changelog is pretty detailed and I've been adamant about making sure I write down every change or fix I make to the server. If you'd like to discuss, especially my unfinished ideas, I'm glad to hear feedback. Here's the link: https://pastebin.com/YCf0vnXp
  10. I think that requires src modifications.
  11. If I want to talk about a server I've been working on for years, is that allowed? I honestly doubt I'll ever officially open it but it would help with feedback, as I can get tunnel visioned after not having anybody to talk to my ideas about
  12. I've been trying to get a new status effect I've called SC_BIFROST for Mora Berry and I'm not sure what I'm doing wrong. I figured I'll implement it in the same vein as Pinguicula's Fruit Jam and such items. I've done the following: battle.c: if (bl->type == BL_MOB) { uint8 i; if ( ((sce=sc->data[SC_MANU_ATK]) && (flag&BF_WEAPON)) || ((sce=sc->data[SC_MANU_MATK]) && (flag&BF_MAGIC)) ) { for (i=0;ARRAYLENGTH(mob_manuk)>i;i++) { if (((TBL_MOB*)bl)->mob_id==mob_manuk[i]) { damage += damage * sce->val1 / 100; break; } } } if ( ((sce=sc->data[SC_SPL_ATK]) && (flag&BF_WEAPON)) || ((sce=sc->data[SC_SPL_MATK]) && (flag&BF_MAGIC)) ) { for (i=0;ARRAYLENGTH(mob_splendide)>i;i++) { if (((TBL_MOB*)bl)->mob_id==mob_splendide[i]) { damage += damage * sce->val1 / 100; break; } } } if ( (sce=sc->data[SC_BIFROST]) ) { for (i=0;ARRAYLENGTH(mob_bifrost)>i;i++) { if (((TBL_MOB*)bl)->mob_id==mob_bifrost[i]) { damage += damage * sce->val1 / 100; break; } } } } battle.c2: if (src->type == BL_MOB) { int i; if (sc->data[SC_MANU_DEF]) { for (i=0;ARRAYLENGTH(mob_manuk)>i;i++) { if (mob_manuk[i]==((TBL_MOB*)src)->mob_id) { damage -= damage * sc->data[SC_MANU_DEF]->val1 / 100; break; } } } if (sc->data[SC_SPL_DEF]) { for (i=0;ARRAYLENGTH(mob_splendide)>i;i++) { if (mob_splendide[i]==((TBL_MOB*)src)->mob_id) { damage -= damage * sc->data[SC_SPL_DEF]->val1 / 100; break; } } } if (sc->data[SC_BIFROST]) { for (i=0;ARRAYLENGTH(mob_bifrost)>i;i++) { if (mob_bifrost[i]==((TBL_MOB*)src)->mob_id) { damage -= damage * sc->data[SC_BIFROST]->val1 / 500; break; } } } } status.c: StatusIconChangeTable[SC_MANU_ATK] = SI_MANU_ATK; StatusIconChangeTable[SC_MANU_DEF] = SI_MANU_DEF; StatusIconChangeTable[SC_SPL_ATK] = SI_SPL_ATK; StatusIconChangeTable[SC_SPL_DEF] = SI_SPL_DEF; StatusIconChangeTable[SC_MANU_MATK] = SI_MANU_MATK; StatusIconChangeTable[SC_SPL_MATK] = SI_SPL_MATK; StatusIconChangeTable[SC_BIFROST] = SI_BIFROST; status.c2: case SC_MANU_DEF: case SC_MANU_ATK: case SC_MANU_MATK: val2 = 1; // Manuk group break; case SC_SPL_DEF: case SC_SPL_ATK: case SC_SPL_MATK: val2 = 2; // Splendide group break; case SC_BIFROST: val2 = 3; break; status.h: SC_BIFROST, SC_MAX, status.h2: SI_BIFROST = 1018, SI_MAX, Inserted it into three points where it is also implemented in skill.c under Banishing Buster, Dispell and Clearance. mob.c: const int mob_manuk[20] = { MOBID_TATACHO, MOBID_CENTIPEDE, MOBID_NEPENTHES, MOBID_HILLSRION, MOBID_HARDROCK_MOMMOTH, MOBID_G_TATACHO, MOBID_G_HILLSRION, MOBID_CENTIPEDE_LARVA, MOBID_HORN_SCARABA, MOBID_HORN_SCARABA2, MOBID_ANTLER_SCARABA, MOBID_RAKE_SCARABA, MOBID_QUEEN_SCARABA, MOBID_HORN_SCARABA_EGG, MOBID_HORN_SCARABA2_EGG, MOBID_ANTLER_SCARABA_EGG, MOBID_RAKE_SCARABA_EGG, MOBID_DOLOMEDES, MOBID_G_ANTLER_SCARABA, MOBID_G_RAKE_SCARABA }; const int mob_splendide[17] = { MOBID_TENDRILRION, MOBID_CORNUS, MOBID_NAGA, MOBID_LUCIOLA_VESPA, MOBID_PINGUICULA, MOBID_LOST_DRAGON, MOBID_POM_SPIDER, MOBID_ANGRA_MANTIS, MOBID_PARUS, MOBID_LITTLE_FATUM, MOBID_MIMING, MOBID_DRACO, MOBID_DRACO_EGG, MOBID_PINGUICULA_D, MOBID_AQUA_ELEMENTAL, MOBID_RATA, MOBID_DUNEYRR }; const int mob_bifrost[6] = { MOBID_POM_SPIDER, MOBID_LOST_DRAGON, MOBID_ANGRA_MANTIS, MOBID_PARUS, MOBID_LITTLE_FATUM, MOBID_MIMING }; mob.h: extern const int mob_manuk[20]; extern const int mob_splendide[17]; extern const int mob_bifrost[6]; itemdb: 12574,Mora_Berry,Mora Berry,2,1000,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ specialeffect2 EF_POTION_BERSERK; sc_start SC_BIFROST,1800000,250; },{},{} Pinguicula's Fruit Jam and those items work fine after the modifications I made to them but this new one doesn't. Am I missing a spot I should have added some lines of code to?
  13. Oh, that's unfortunate. Thanks.
  14. I repurposed an old item, item ID 542, to be another usable item that heals the player. Currently the item has a rising white aura effect on use. How do I change the effect to something like an orange potion's orange splash on use?
  15. While doing the sign quest, no alterations to the script, and I got this error when trying to spam enter during the queen of the dead's spam of effects, where she gives you the Lucifer's Lament, (see picture below) in the console. This bug made it so that I was not able to continue the dialog and the client became unresponsive, requiring a relog to be able to function again. Going back to the Queen of the dead and re-talk to her did not see a repeat of this error. Can this just randomly happen every now and then?