Jump to content

Playtester

Developer
  • Posts

    905
  • Joined

  • Last visited

  • Days Won

    26

Everything posted by Playtester

  1. They are all independent already. Depending on where you stand only some meteors might hit you and others not.
  2. MDEF already reduces the duration of Freeze. See: https://raw.githubusercontent.com/rathena/rathena/master/src/map/status.c status_get_sc_def case SC_FREEZE: sc_def = status->mdef*100; sc_def2 = status->luk*10 + status_get_lv(bl)*10 - status_get_lv(src)*10; tick_def2 = status_src->luk*-10; // Caster can increase final duration with luk break; As tick_def isn't defined it will use the same as sc_def as explained at the top: /// Resistance rate: 10000 = 100% /// Example: 50% (5000) -> sc_def = 5000 -> 25%; /// 5000ms -> tick_def = 5000 -> 2500ms int sc_def = 0, tick_def = -1; // -1 = use sc_def /// Fixed resistance value (after rate calculation) /// Example: 25% (2500) -> sc_def2 = 2000 -> 5%; /// 2500ms -> tick_def2=2000 -> 500ms int sc_def2 = 0, tick_def2 = 0; No, but as you can see in the formula quoted above. LUCK of the caster can increase the freeze duration. LUCK of the target reduces chance to be affected but not duration.
  3. What do you mean by "Showing"?
  4. If that's the only thing you've changed it should work just fine. That the ASPD is 193 indicates you must have made another modification. Making Knife or Cotton Shirt give +100% ASPD would cause this. Or messing with the pre-re/job_db1.txt file.
  5. Maybe you are GM and set it so that GMs can't attack monsters?
  6. You have to put the code further down at the end of function "battle_calc_weapon_attack". Probably below "wd = battle_calc_weapon_final_atk_modifiers(wd, src, target, skill_id, skill_lv);". Like... if(skill_id == MC_MAMMONITE) wd.damage = cap_value(wd.damage, INT_MIN, 80000);
  7. I don't know what value i is. Assuming you want to put the code here: status->amotion = cap_value(amotion,pc_maxaspd(sd),2000); Then adding below something like... if (sc->data[SC_EDP]) { if (sc->data[SC_EDP]->val1 == 5) status->amotion = cap_value(amotion,pc_maxaspd(sd)+20,2000); else if (sc->data[SC_EDP]->val1 == 4) status->amotion = cap_value(amotion,pc_maxaspd(sd)+10,2000); } should do the trick.
  8. You might need to refresh OR your client isn't diffed to display aura on higher levels.
  9. Yes whenever you modify any c file you need to compile again.
  10. The option you put there only affects Magnum Break's direct damage. The bonus damage is hardcoded, you can only set the duration in skill_cast_db: //-- SM_MAGNUM 7,0,0,0,2000,10000,2000 The code for the elemental damage bonus is in battle.c if (sc && sc->data[SC_WATK_ELEMENT] && (wd.damage || wd.damage2)) { // Descriptions indicate this means adding a percent of a normal attack in another element. [Skotlex] int64 damage = battle_calc_base_damage(sstatus, &sstatus->rhw, sc, tstatus->size, sd, (is_skill_using_arrow(src, skill_id)?2:0)) * sc->data[SC_WATK_ELEMENT]->val2 / 100; wd.damage += battle_attr_fix(src, target, damage, sc->data[SC_WATK_ELEMENT]->val1, tstatus->def_ele, tstatus->ele_lv); if (is_attack_left_handed(src, skill_id)) { damage = battle_calc_base_damage(sstatus, &sstatus->lhw, sc, tstatus->size, sd, (is_skill_using_arrow(src, skill_id)?2:0)) * sc->data[SC_WATK_ELEMENT]->val2 / 100; wd.damage2 += battle_attr_fix(src, target, damage, sc->data[SC_WATK_ELEMENT]->val1, tstatus->def_ele, tstatus->ele_lv); } } You can mess around there if you want to change how it works, but I don't really have time to write you a complete solution for what you want. Maybe if you remove the requirement for there to be wd.damage or wd.damage2 it might work on a miss?
  11. Maybe just use skill_damage_db, that's easiest: https://github.com/rathena/rathena/blob/master/db/skill_damage_db.txt You can also edit the damage formula in battle.c, search for GS_GROUNDDRIFT, you'll find both the percentual damage formula for renewal and the absolute damage addition for pre-renewal.
  12. Im on Pre-re. A 50 dex Crusader Magnum still miss on a 287 flee sinx. is that normal? Because now i now that Magnum isn't ignore flee, but only add final hitrates... case MS_MAGNUM: case SM_MAGNUM: hitrate += hitrate * 10 * skill_lv / 100; Yes, that's normal. Assuming the crusader is level 99, with 50 dex, he has 149 hit. You base hit chance is 80% + 149% = 229%. So against 229 flee or more, your hit chance already reached 0. Even if you increase that chance by 10%, it's still 0%, because 10% of nothing is still nothing. @Azeroth Just refer to the documentation, should be self explanatory: nk for Magnum is 0x2 right now, if you make it 0x42, it would ignore flee.
  13. Of course!
  14. Give sample HIT and FLEE for test then I tell you the hit chance. Don't forget to say if you are using pre-re or re.
  15. It's official, in pre-re there is no SP recovery delay. You want to customize it?
  16. Does he have a ranged weapon equipped?
  17. Playtester

    Level Max

    The guide is outdated in regards of the DB files. To properly set up your server, you need to understand how the exp file works. It has Max Level first and then a class list and then it defines the exp needed for each level. You need to be aware that for each class you have available on your server, you have to define the exp (one row for base exp and one for job exp). And you need as many exp requirements listed as you have levels at least. The default file only includes official exp requirements now, but if you don't want to write your own requirements you can use the provided import template rows for it: https://github.com/rathena/rathena/blob/master/db/import-tmpl/job_exp.txt (this automatically should appear in your import folder when you compile) The header explains how to use it.
  18. Well first of all that rate 300 is pretty high. That's 300% more EXP each kill. That is quadruple EXP the first kill! Very abusable. I'd rather put something like 10-30. Second, monsters level up to "max base level" of the PC they killed, so it depends what the max level is on your server. You can change it by putting concrete number in pc.c: if(battle_config.mobs_level_up && md->status.hp && (unsigned int)md->level < pc_maxbaselv(sd) && !md->guardian_data && !md->special_state.ai// Guardians/summons should not level. [Skotlex] ) { // monster level up [Valaris] clif_misceffect(&md->bl,0); md->level++; status_calc_mob(md, SCO_NONE); status_percent_heal(src,10,0); if( battle_config.show_mob_info&4 ) {// update name with new level clif_charnameack(0, &md->bl); } } Just replace "pc_maxbaselv(sd)" with whatever max level you want.
  19. } else if( !battle_check_range(src, target, range) ) return 0; // Arrow-path check failed. Just change to that to: } else if( !battle_check_range(src, target, range+1) ) return 0; // Arrow-path check failed. For now. At least then you only change it in that one specific case instead of changing a general range function that's used everywhere. Yes, it's not safe, it gives hackers one more skill range than other players, but I can't look into a better fix because the bug doesn't appear for me locally and nobody else that has this bug could look into why it even gets to that code part.
  20. Es gibt viele Maps ohne Monsterspawns. Dörfer, die ganzen Indoor Maps, fast alle Quest Maps und die ganzen WoE / PVP / Minigame Maps.
  21. It should be unrelated to the emulator. The emulator simply will make you move when the client sends a move request. So whatever you did with your client or mouse, it apparently sends a move request in that situation. Maybe it registers the click twice?
  22. Renewal enthält halt viel Mist, gerade wenn man ein Fan von traditionellem RO war. Deswegen gibt es viele Private Server die auf Pre-Renewal bleiben und nur die guten Inhalte aus Renewal nehmen. In den Emulatoren gibt es auch entsprechende Defines (#define PRERE) die man einfach auskommentieren kann und dann alles auf Pre-Renewal kompilieren kann. Man könnte wohl monatelang darüber diskutieren welch Sachen an Renewal gut und welche schlecht sind. Gab auch einige versuche Hybrid-Server zu machen, aber die meisten Menschen wollen halt das, was sie gewohnt sind (und den meisten Server-Admins fehlt auch einfach das Wissen um wirkliche Balance zu erzeugen).
  23. Was willst du denn wissen?
  24. How about this one: bonus2 bSubSkill,sk,n; Reduces n% damage received from skill sk
  25. Why would you get that result? Go digit by digit: First digit: 2 (0x200000) = 2 Second digit: 8 (0x080000) = 8 Third digit: 1 (0x001000) + 2 (0x002000) + 4 (0x004000) = 7 Fourth digit: 2 (0x000200) = 2 Fifth digit: 1 (0x000010) + 2 (0x000020) + 8 (0x000080) = 11 = B Sixth digit: 1 (0x000001) = 1
×
×
  • Create New...