Jump to content

Playtester

Developer
  • Posts

    897
  • Joined

  • Last visited

  • Days Won

    26

Everything posted by Playtester

  1. 1. Fix position lag issues. 2. Revert to pre-renewal but keep and all renewal maps added in a rebalanced way. Change 3rd classes to alternative trans classes (so from Swordsman High you can decide if you want to become a Lord Knight or a Rune Knight) and rebalance them. 3. Rebalance several monsters, so there are not just a few monsters worth killing.
  2. It should be fine Backslide was already coded so it's not prevent by "No Knockback" equips: case TF_BACKSLIDING: //This is the correct implementation as per packet logging information. [Skotlex] clif_skill_nodamage(src,bl,skill_id,skill_lv,1); skill_blown(src,bl,skill_get_blewcount(skill_id,skill_lv),unit_getdir(bl),2); break; /** * Used to knock back players, monsters, traps, etc * @param src Object that give knock back * @param target Object that receive knock back * @param count Number of knock back cell requested * @param dir Direction indicates the way OPPOSITE to the knockback direction (or -1 for default behavior) * @param flag 0x01 - position update packets must not be sent 0x02 - ignores players' special_state.no_knockback These flags "return 'count' instead of 0 if target is cannot be knocked back": 0x04 - at WOE/BG map 0x08 - if target is MD_KNOCKBACK_IMMUNE 0x10 - if target has 'special_state.no_knockback' 0x20 - if target is in Basilica area * @return Number of knocked back cells done */ Cloaking ending conditions are all over the place, check battle.c and status.c. I think the main part is in status.c in function "status_damage", there it lists all status changes that end when taking damage.
  3. Hmm, I might have fixed this already on rAthena. The code for getting EXP is in mob.c, function mob_dead.
  4. You will also need to update the position of all NPCs manually though.
  5. // 16 inf3 (skill information 3):// 0x00001 - skill ignores land protector 653,0,8,4,0,0x6,5:7:9:11:13:5:7:9:11:13,10,1,no,0,0x40002,0,magic,0,0x0, NPC_EARTHQUAKE,Earthquake Try to change the 0x0 to 0x1.
  6. Sorry, but the issue must come from some of your changes. When I check out default rAthena and do no changes it certainly reads from the re folder.
  7. And 9999 DEF / 9999 MDEF is probably too high. And it could be that 65535 damage is actually max for base damage, but not sure. Higher values are risking an overflow, so not sure about that.
  8. Yeah but it's super complicated to fix because everything involving songs is complicated... moving unit cells and stuff. x_x
  9. That's how it officially works too. If you want to fix it you'd need to modify the client or write your own client.
  10. Even if those class are not on my game? What cause them to be loaded? I don't even want them If you don't want them in game, edit the at job command and remove the npcs, so they are unobtainable. That or do large src and db edits to remove completely. Personally id just remove their skill tree and lower their max level to 1/1. He just doesn't want the jobs to be read from the database. I'm just not sure how rAthena even knows which jobs to look for. Maybe job_db?
  11. Oh it works differently in pre-renewal? If I could get some proof on that, I could do it so that old behavior is used when compiling pre-re.
  12. https://github.com/eathena/eathena
  13. Monster behavior like aggressive, passive, cast sensor, looter, etc.
  14. Sorry I don't know and not enough time to check something like this, guess you'll have to check the source yourself.
  15. Remove all your custom changes to renewal.h, recompile, start?
  16. You'll have to work a bit with the code. I give you one example in skill.c, find: // Autospell when attacking if( sd && !status_isdead(bl) && sd->autospell[0].id ) If you scroll a bit further down inside that block you'll see: //Set canact delay. [Skotlex] ud = unit_bl2ud(src); if (ud) { rate = skill_delayfix(src, skill, autospl_skill_lv); if (DIFF_TICK(ud->canact_tick, tick + rate) < 0){ ud->canact_tick = max(tick + rate, ud->canact_tick); if ( battle_config.display_status_timers && sd ) clif_status_change(src, SI_ACTIONDELAY, 1, rate, 0, 0, 0); } } If you remove that part, you have removed aftercast delay for autospells when attacking. Now you need to do the same for autospell when being hit. The code to be removed actually looks identical so you should be able to find it easily, just search for the comment from Skotlex.
  17. Probably a client thing or is it different on official servers?
  18. If you wanted full renewal, you should actually not change anything in renewal.h. It's renewal by default. If you uncomment the PRERE define there, it will actually be pre-renewal.
  19. Ok, can confirm it, but it has to do with the dissonance song overlap effect. Enemies inside that are killed throw skill id error 0. Enemies that lost overlap effect throw skill id error 65535. Created issue on github: https://github.com/rathena/rathena/issues/1341
  20. These have nothing to do with pre-renewal and renewal. 1. When the target moves behind an obstacle, the attack won't deal any damage. That's official behavior for both renewal and pre-renewal. Range should not matter for both. You can still be hit when you're on the other side of the map as long as there's no obstacle in between. Last time I checked it already worked like that. 2. MVPs switch target only when attacked by a normal attack from within their attack range + 1. That's the case in both pre-renewal and renewal. MVPs only switch to the closest target when in chase mode. Should already be working like that on rAthena default. I implemented that properly just a few months ago. 3. Hitlocking is a complicated topic. I haven't figured out how it should work. For me it feels I can actually slow down monsters, even bosses, sometimes but half of the time it doesn't work at all. We tried so much with improving the hitlock, but nobody managed it to get it right yet. Feel free to try around yourself, it's all in unit.c: int unit_set_walkdelay(struct block_list *bl, unsigned int tick, int delay, int type)
  21. Ah I see you don't want to use those... I wonder where it takes the classes it searches for from. /hm
  22. You wouldn't get the warnings if there were sufficient "required exp" values defined.
  23. (according to aleos import-tmpl should be automatically copied to import on first compile, so the copy step might not be needed) You also need to uncomment the corresponding lines and replace x with the jobs you want to have increased max levels. You can also just add your own exp requirements to the official exp table.
  24. Need to update skill.c. In pre-re modify function: int skill_castfix(struct block_list *bl, uint16 skill_id, uint16 skill_lv) { In re: int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, uint16 skill_lv)
×
×
  • Create New...