New idea for a Pre-Renew server - a REAL 10x server

Started by Sottar, May 13, 2023, 12:38 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Sottar

Few years ago I had an idea for a Pre-Renew server, but I never seen it implemented... I've downloaded offline rAthena and tested it, and I think it's a cool concept:


  • Main feature: REAL 10x server.   

   When you kill a monster, you'll get 10x exp and the loot table will ROLL 10x. For example: Poring drops Jellopy at 70% chance. That means it will drop, on average, 7x Jellopy per Poring.
It might seen a small change, but it's really different than just increase the drop RATES by 10x. It actually feels like you're playing old school Rag, but on steroids and 10x faster. You can quickly make zeny, crafting becomes really rewarding and I even find myself killing plants to get some herbs...

   
  • Secondary features: Some necessary changes
   - Weight Increase: Since you'll be droping a lot of items, having extra capacity is a must. I've added 1000 extra capacity to all classes and increased the HP/SP penalty to 70%.
   - Area Loot: Extremely important, without it you'll expend most of your time clicking on items on the ground. (Solved by droping items in stacks, see code in the post below)
   - Shining rare drops: You probably won't see that cool card/equip in the middle of the junk, so shining rare drops are pretty useful. (Also solved by stack drops, so this is optional)

   
  • Optional features within the 10x theme
   - Sitting 10x stronger (20x normal regen). The idea of this server is for people who doesn't have much time but want to play classic RO, so if you're running low on SP, just sit for a few seconds and you're good to go. Note: I didn't increase standing regen, that way SP management is still a thing. If you are PVP/MVPing or you want to level up fast, you still gonna need SP consumables.
   - 10x stronger First Aid. The original skill is completely useless, but by making it heal 50 instead of 5 hp and keeping the 3 sp cost, it's actually pretty good early and mid game. A bit too strong for novices, but not a big problem.
   - 10x faster respaw rates. Probably broken, not sure if it's a good idea but why not.

   
  • Other features:
   - Since Zeny will be more abundant, a good way to keep inflation controlled is to sell former "premium" consumables for Zeny (Battle Manual, Gym Pass, Bubble Gum, and so on...)
   - Other basic stuff like quests for headgear, teleporter (maybe), class changer....
   - [New] Discount/Overcharge/Compulsion Discount are not necessary anymore, because is easier to get Zeny. Even though these skills are an important part of Ragnarok "charm" (to open your own store to compete with the NPC store, pretty cool concept), on practice they just "force" all players to create a merchant to buy/sell their stuff, creating unnecessary extra steps to a simple function .... So I think is better to remove them.


 
  • Problems:
   - Auto attack classes/builds won't be as valuable, because survivability will be easier.
   - The skill "Steal" will need a rework to keep it's value. One possible solution is to allow the same mob to be stolen 10 times instead of 1. Not sure if it's a good idea though.
   - Full Support Priests not as useful for leveling.
   - Probably many more...


If you liked the idea, feel free to steal/adapt it, I have no interest in creating a server. Just wanted to share a new concept for a server.

Playtester

The drop rate thing I actually put on my local server. I always disliked the way that drop rates worked on higher rate servers as it unbalances the drops, so I changed it so that instead of multiplying the drop rate it just rolls for the drop x times.

For usable and etc items it's fairly easy to implement multi-drop too since you can make monsters drop stacks.
src/map/mob.cpp | 25 ++++++++++++++++++++++---
1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/src/map/mob.cpp b/src/map/mob.cpp
index 3ae751bf5..2899aa062 100644
--- a/src/map/mob.cpp
+++ b/src/map/mob.cpp
@@ -2791,6 +2791,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
dlist->third_charid = (third_sd ? third_sd->status.char_id : 0);
dlist->item = NULL;

+ int qty, psize;
for (i = 0; i < MAX_MOB_DROP_TOTAL; i++) {
if (md->db->dropitem[i].nameid == 0)
continue;
@@ -2799,16 +2800,31 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)

drop_rate = mob_getdroprate(src, md->db, md->db->dropitem[i].rate, drop_modifier);

- // attempt to drop the item
- if (rnd() % 10000 >= drop_rate)
+ // get party size
+ psize = 1;
+ if (mvp_sd != nullptr || second_sd != nullptr || third_sd != nullptr) {
+ psize = party_foreachsamemap(party_sub_count, mvp_sd != nullptr ? mvp_sd : second_sd != nullptr ? second_sd : third_sd, 0);
+ if (psize < 1) psize = 1;
+ }
+ // get quantity
+ qty = 0;
+ for (psize; psize > 0; psize--) {
+ if (rnd() % 10000 < drop_rate) qty++;
+ }
+ // no drop
+ if (qty <= 0)
continue;
+ // multi drops only for usable and etc items
+ if (qty > 1 && it->type != IT_HEALING && it->type != IT_USABLE && it->type != IT_ETC) {
+ qty = 1;
+ }

if( mvp_sd && it->type == IT_PETEGG ) {
pet_create_egg(mvp_sd, md->db->dropitem[i].nameid);
continue;
}

- ditem = mob_setdropitem(&md->db->dropitem[i], 1, md->mob_id);
+ ditem = mob_setdropitem(&md->db->dropitem[i], qty, md->mob_id);

//A Rare Drop Global Announce by Lupus
if( mvp_sd && md->db->dropitem[i].rate <= battle_config.rare_drop_announce ) {
@@ -4250,6 +4266,9 @@ bool MobDatabase::parseDropNode(std::string nodeName, const ryml::NodeRef& node,
this->invalidWarning(dropit["RandomOptionGroup"], "Unknown random option group %s for monster %s, defaulting to no group.\n", group_name.c_str(), nodeName.c_str());
}

+ //Official drop bug for very low drops
+ if (rate > 0 && rate < 10) rate++;
+
drops[index].nameid = item->nameid;
drops[index].rate = rate;
drops[index].steal_protected = steal;

Note: In this sample code the drop rate is the party size rather than 10x, but you can easily adjust that.

(I made it so that everybody always gets 100% exp/drops, no matter how big the party is so if you have a 10x party everyone still gets 100% exp and 100% drops, this is of course designed for just playing with friends in LAN, not for online play where it could be easily exploited by making artificially large parties.)

Sottar

Oh... that's a cool implementation. You've increased the size of the stack instead of multiple copies of the same drop, a much better way to do it than what I did, which was just to put a loop to make the drop code run 10x.

The way you did it, the area loot becomes unnecessary, pretty neat! And also can potentially solve the "Steal" skill problem.... I haven't check the code but it might be possible to implement something similar, so if you steal a Jellopy from a Poring, on average, you'll get 7 Jellopys from it.

Playtester

It's also better for looter mobs so that it takes longer for them to get "full" and delete items.

Ralgondo


OrcLordDaddy

A similar server to that already exists, except it has a 100% drop rate on everything except miniboss and mvp card and I can tell you one thing of my own experience with it:

As nice and fun as it is at the start, it gets boring super quickly.
Within an hour or so you will have all items and materials and cards that you want and then there is nothing to do anymore.

Might as well start with a lv 99/50 99/70 character and have NPC shops with all items in them.

Playtester

Quote from: OrdLordDaddy on May 21, 2023, 10:50 PM
A similar server to that already exists, except it has a 100% drop rate on everything except miniboss and mvp card and I can tell you one thing of my own experience with it:

As nice and fun as it is at the start, it gets boring super quickly.
Within an hour or so you will have all items and materials and cards that you want and then there is nothing to do anymore.

Might as well start with a lv 99/50 99/70 character and have NPC shops with all items in them.
I don't see how this server idea is anything remotely close to a server with 100% drop rate for all items.

Sottar

Quote from: OrdLordDaddy on May 21, 2023, 10:50 PM
A similar server to that already exists, except it has a 100% drop rate on everything except miniboss and mvp card and I can tell you one thing of my own experience with it:

As nice and fun as it is at the start, it gets boring super quickly.
Within an hour or so you will have all items and materials and cards that you want and then there is nothing to do anymore.

Might as well start with a lv 99/50 99/70 character and have NPC shops with all items in them.

I think you're referring to MindRO, and I agree with you. I personally loved playing on that server, one of the best I've seen in a while, but yeah, after a few weeks I kinda got bored too (PvP is really good though).

But a 10x server is NOWHERE NEAR as easy as a 300x Exp / 10,000x Drops.

Personally, I think the original RO is insanely hard (read: time consuming). I remember spending literally a whole night to get like 20 ~ 30% of a level, that's absurd for today standards and now I have a family and responsibilities. So a 10x server feels more in line with the time I have available today.

The main idea is that 1h in this server = 10h on original... That's the reason behind the drop changes, sitting regen, etc. Everything you could do on a 10h session on original, with these changes, you can accomplish in 1h (I think). That way, all the systems and balances stay very similar to original, but just faster. Common items become really common, but ultra rare drops are still pretty rare, so is not game-braking.

So instead of thousands of hours to get to endgame, we're talking about hundreds... Instead of years, months. Is not fast, but much more bearable.

Blinzer

Quote from: Playtester on May 22, 2023, 10:53 AM
I don't see how this server idea is anything remotely close to a server with 100% drop rate for all items.

i agree. the strongest use of this code is when you run with low % drop rates. that's when the flavor comes out.



itsmonoxd

I actually feel this. With how much time I have left to spend on time playing ragnarok these days this would feel kinda refreshing. As long as the drop rates itself stay 1x and just the amount the drop table is rolled changes I think it wont feel as crazy as a straigth 10k drop rate server. But there will be a lot that would have to be balanced around the amount of zeny you can make. If it's mostly for people with less time I do think there would be some hardcore players trying to exploit this ruining the economy. So there would have to be some form of multiple zeny sinks.
Overall i think it might be a nice idea for the players with less time on their hands and I would probably give it a go