Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 05/11/22 in all areas

  1. Hi, I'm updating them right now as they aren't compatible anymore with the latest rAthena. I'm creating a rotation mode as well which will automatically start a battleground. It should be available in the next few days.
    2 points
  2. Yeah basically you need to edit skill.cpp, but the change should be minimal if you have a different skill that works similar already. Basically open skill.cpp in Visual Studio and make Ctrl+F, make sure you select to search only in this document so you don't get too many results. Then you first search for the skill you want to change to understand how it works. You don't want to change anything about its effects, you just want to change how often it calls "skill_attack" (you want to call it once for each enemy in the area instead of just the target). So if you search for AM_ACIDTERROR in skill.cpp and check where it calls skill_attack you will find it in a long lists of single target skills: [...] case AC_CHARGEARROW: case MA_CHARGEARROW: case RG_INTIMIDATE: case AM_ACIDTERROR: case BA_MUSICALSTRIKE: case DC_THROWARROW: case BA_DISSONANCE: case CR_HOLYCROSS: [...] You will want to remove it here. Now you search for a skill that you want it to behave like. For example MG_FIREBALL. Then you find a larger list of skills, it's even commented as "Splash skills": //Splash attack skills. case AS_GRIMTOOTH: case MC_CARTREVOLUTION: case NPC_SPLASHATTACK: flag |= SD_PREAMBLE; // a fake packet will be sent for the first target to be hit case AS_SPLASHER: case HT_BLITZBEAT: case AC_SHOWER: case MA_SHOWER: case MG_NAPALMBEAT: case MG_FIREBALL: case RG_RAID: #ifdef RENEWAL case SN_SHARPSHOOTING: #endif case HW_NAPALMVULCAN: case NJ_HUUMA: case ASC_METEORASSAULT: You just need to add your skill here ("case AM_ACIDTERROR:"). Now it works like a splash skill. The code below looks a bit scary because devs put way too many exceptions in there, but you can just ignore this unless you want your skill to have a unique handling unlike normal splash skills. Most of the other things you can just define in the skill_db.yml If you wonder how this section works, basically it will first be called without a flag: if( flag&1 ) {//Recursive invocation So this will be false and it goes into the else: } else { In the else it then calls a sub function for all units in the area: // recursive invocation of skill_castend_damage_id() with flag|1 map_foreachinrange(skill_area_sub, bl, splash_size, starget, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id); This will in the end loop back to the same function again for each valid target, except now it has "flag&1" and will just call skill_attack for that target instead.
    1 point
  3. Item headgear: https://youtu.be/l2bzYYdo3Kg Monsters: https://youtu.be/Bnhr_m2PkNs Maps: https://youtu.be/CqYoPUbgc6w Weapons: https://youtu.be/43VVdkm07yg
    1 point
×
×
  • Create New...