-
Posts
802 -
Joined
-
Last visited
-
Days Won
21
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Playtester
-
How to add skills here? And Penalty XP by mob level
Playtester replied to aleph075's question in General Support
Official servers have a drop penalty on level difference, but many private server remove that "feature". I only play on pre-renewal servers so not sure how many there are that actually have a drop penalty. -
It's basically is the max of both values. So if aDelay is 76ms and aMotion is 384ms, then the delay between the attacks is 384ms. Basically "aDelay" determines the time a monster has to wait until it can attack again. "aMotion" determines the time a monster cannot do anything at all after an attack. If aMotion is higher than aDelay, the monster has to stand still until it can attack again (aMotion). If aDelay is higher than aMotion, then the monster can already move again after aMotion milliseconds, but still cannot attack until after aDelay milliseconds. Divine Pride currently has incorrect ASPD display because it only considers aMotion, not aDelay. So you cannot get the aDelay value from Divine Pride at all. I notified Dia, he will fix it on Divine Pride.
-
How to add skills here? And Penalty XP by mob level
Playtester replied to aleph075's question in General Support
1) You add the numbers together that you want it enabled for. For example if you only want Heal and Sactuary to be boosted by this bonus, then you would put "3" (1+2). If you want everything to be affected from that list you put 1+2+4+8+16+32+64+128+256=511. 2) If you are running renewal, you can define the exp and drop penalty here: https://github.com/rathena/rathena/blob/master/db/re/level_penalty.yml -
If the config files are enough then I recommend using them. If you want a special implementation, you'd need to modify the source code. The right position in the code depends a bit on how you want to modify it.
-
Soul link scroll does not work when wearing GTB
Playtester replied to playniks's question in Source Support
The condition for a status change is in status_get_sc_def: if (skill != nullptr && skill->skill_type == BF_MAGIC && // Basic magic skill !skill->inf2[INF2_IGNOREGTB] && // Specific skill to bypass ((skill->inf == INF_ATTACK_SKILL || skill->inf == INF_GROUND_SKILL || skill->inf == INF_SUPPORT_SKILL) || // Target skills should get blocked even when cast on self (skill->inf == INF_SELF_SKILL && src != bl))) // Self skills should get blocked on all targets except self return 0; If you really changed the skill used to "misc" then the status should never be blocked by GTB. Even easier would be to just use the "IgnoreGTB" flag. If it still doesn't work, then maybe it's already blocked in skill.cpp by something. Easiest is to just debug it. Put a breakpoint on the line I quoted above (first line) and see if it even reaches that code when you use the scroll. -
The "0x" in front of the number is the indicator that the number is in hex by the way.
-
bowling bash like this, what should I do?
Playtester replied to kidsada's question in Source Support
Need more info. You want to increase BB's range? In PVP only? -
I would assume in status.cpp: void status_calc_misc(struct block_list *bl, struct status_data *status, int level) // Flee stat = status->flee; stat += level + status->agi; status->flee = cap_value(stat, 1, SHRT_MAX); Change formula to whatever you want. 50% AGI would be: // Flee stat = status->flee; stat += level + status->agi/2; status->flee = cap_value(stat, 1, SHRT_MAX); Luk does not increase flee in pre-renewal anyway. Perfect flee you find as Flee2.
-
Not sure what the default is, maybe better set bonus to 0 instead of removing the whole line. Make sure to set it to 0 for all levels.
-
What is the server tick rate for Ragnarok Online?
Playtester replied to BseeS's question in General Support
Officially, Ragnarok Online has a interval of 20ms. If you use rAthena, you can customize the intervals for different things yourself by adjusting some constants. A while ago I set the base timer interval to the official value by default. // If the server can't handle processing thousands of monsters // or many connected clients, please increase TIMER_MIN_INTERVAL. // The official interval of 20ms is however strongly recommended, // as it is needed for perfect server-client syncing. const t_tick TIMER_MIN_INTERVAL = 20; const t_tick TIMER_MAX_INTERVAL = 1000; Examples: - Unit skills like Firewall and Heat can hit 50 times a second if there's no knockback - Skills with an interval not dividable by 20, such as the interval between each waterball hitting will alternate their delays (in case of waterball it's 140->160->140->160 instead of 150ms) -
You need to recalculate the renewal def to pre-renewal def through a formula if you want it to result in the same % damage reduction. For example 214 DEF and 134 MDEF in Renewal is the same as 32 DEF and 52 MDEF in pre-renewal. I've attached a tool with which you can convert all the values you want. prerenewal.zip
- 1 reply
-
- 2
-
DEF ISSUE, DEF REDUCED TO -120,PRE-RE RATHENA
Playtester replied to eloscar23's topic in Source Discussion
You should list if you are using renewal or pre-renewal and at least give the item's YAML entry that reduces the DEF. -
Your refine.yml seems pretty old, are you sure you don't get errors when started map server about outdated files? I can't spot any error in the file like lacking armor bonus at level 10 but it's clearly outdated (only 6.6 def bonus on +10 instead of +7). And this is version 1 while the current source code would expect version 2. So maybe your server version is old and has this as a bug that's already been fixed or you updated your server and it expects version 2 but you are still using version 1.
-
Hmm works fine for me in pre-re compile without any changes. You probably need to check your refine.yml files. Maybe they are outdated (you should see that in your map-server log) or maybe you customized it but forgot to define the bonus for level 10. - Level: 10 Bonus: 700 BlacksmithBlessingAmount: 4 Chances: - Type: Normal Rate: 1000 Price: 2000 Material: Elunium BreakingRate: 10000 - Type: Enriched Rate: 2000 Price: 2000 Material: Enriched_Elunium BreakingRate: 10000
-
Status resistance + item effect? how does it work?
Playtester replied to anjasoleil1's question in Source Support
Resistance from items is applied after the stat resistance. It's multiplicatively, not additively. 100% reduced by 90% = 10% 10% reduced by 20% = 8% -
It's actually both in pre-renewal. It's HardDef+SoftDef basically. ATK_RATE2(wd->damage, wd->damage2, attack_ignores_def(wd, src, target, skill_id, skill_lv, EQI_HAND_R) ?100:(is_attack_piercing(wd, src, target, skill_id, skill_lv, EQI_HAND_R) ? (int64)is_attack_piercing(wd, src, target, skill_id, skill_lv, EQI_HAND_R)*(def1+vit_def) : (100-def1)), attack_ignores_def(wd, src, target, skill_id, skill_lv, EQI_HAND_L) ?100:(is_attack_piercing(wd, src, target, skill_id, skill_lv, EQI_HAND_L) ? (int64)is_attack_piercing(wd, src, target, skill_id, skill_lv, EQI_HAND_L)*(def1+vit_def) : (100-def1)) ); Only need to change the (def1+vit_def) part if you want to customize it.
-
As for the latest file you can always get it from here: https://github.com/rathena/rathena/ Also if you didn't check your changes into Git then you can just use a diff tool to compare the changes and undo them (I use TortoiseGit for it).
-
Hmm, there's a exe diff to restore the old dance effects, maybe this could be used to remove this effect.
-
Well, you can certainly use the GRF from iRO if you want for example the iRO translation. But keep in mind that iRO might have customizations in the descriptions that don't apply to kRO and thus are not in rAthena. As for the executables, you probably can't use iRO ones unless they are really old and not encrypted.
-
Calc flags only determines when your stats get recalculated, but you still need to implement the actual bonus you want to give it.
-
It's possible but it requires quite some coding. Basically you'd need to add a variable in the md to the link to a sd (or bl). Then send all the "clif" information that involves the md only to the player linked to the sd / bl in the md data. Also all attack and damage commands from other sources then need to be ignored, otherwise other players could still damage it with AoE effects.
-
Taking out and modifying some item combo in item_combos.yml
Playtester replied to tdksw1992's question in Database Support
If it crashes you probably have a syntax error in the file. Make sure you used spaces instead of tabs and the number of spaces is correct. That's the most common mistake I make. Looks like you put too many spaces before the script part. -
Evil Druid Card and Medusa Card not working on Mobs
Playtester replied to funtwocrasher's question in General Support
Hmm this also works for me. I tried vs. Medusa and with Evil Druid Card or Medusa Card, I never get petrified. The code is also in place in status.cpp: case SC_STONE: case SC_STONEWAIT: case SC_FREEZE: // Undead are immune to Freeze/Stone if (undead_flag && !(flag&SCSTART_NOAVOID)) return 0; break; You could debug there and check why it doesn't reach the "return 0" part in your test case. For Medusa Card the could would be in status_get_sc_def: // Item resistance (only applies to rate%) if (sd) { for (const auto &it : sd->reseff) { if (it.id == type) rate -= rate * it.val / 10000; } if (sd->sc.data[SC_COMMONSC_RESIST] && SC_COMMON_MIN <= type && type <= SC_COMMON_MAX) rate -= rate*sd->sc.data[SC_COMMONSC_RESIST]->val1/100; } Note: That if you set undead_detect_type to "race", then of course Evil Druid Card doesn't protect you from Stone (has nothing to do with mobs, though). Medusa card would work either way. -
Status Recovery not working on DEVOTION
Playtester replied to funtwocrasher's question in General Support
Works fine for me. -
Stone Curse will still work on Evil Druid Card and Medusa Card
Playtester replied to funtwocrasher's question in General Support
Red is deleted lines and green is added lines, yes. But I honestly don't recommend manually updating things and rather learn to work with diff files or just keep rAthena up-to-date, because many fixes are not just one commit but also have follow-up fixes. You will really want to merge all fixes done to rAthena. Usually it shouldn't be too hard, as said even if you have local changes, you can stash them, then pull and then stash pop and you have your custom changes back in (only if the same line was changed you need to do manual merging). Maybe you can try it in a local copy.