OasisRO
-
Posts
3 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by OasisRO
-
-
Just now, Playtester said:
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.
Ahaha. Thank you so much for this. It definitely clarified what I was literally on my way to try and poorly explain how I got it working for anyone searching in the future. I literally just now managed to get it working. You did it so perfectly, thank you again.
-
Hi, I'm sure this has been asked before but the search gave me so many unrelated results I'm not even sure I know how to search the forums here.
I'm trying to learn how to edit skills, and I've managed to figure out a few things, but so far I'm pretty stumped on the AoE portion of skills.
For example, I'm trying to make Acid Terror into an AoE. I have made it into a multi hit skill, and made it not reduce the amount of acid bottles by editing the skill_db.yml.I tried to copy the text from fireball and magnum break without any results on either, and I found one vague message on the discord when searching that said "you can't just edit the skill_db to make something an aoe" but it didn't clarify how to actually do it. (not trying to being rude just saying.)
Should I go into the skill.cpp and change something there or is there another way that I'm not understanding. The formulas in the skill.cpp make me really nervous because I don't want to make any drastic changes and I was worried about breaking something in there.
Anyway, if anyone could give me a baby mode breakdown of like "first do this, then do this, and then finish by doing this" I would really appreciate it. I just started learning to do this last night with an offline build because all the lawsuit stuff has me anxious I won't be able to play ro again in the future lol.I'll post the code I have in the skill_db for reference so you can see if I'm messing that up. I believe I took this one from Mag Break.
Oh I think I'm supposed to say the client is 2021 11 17?
- Id: 230 Name: AM_ACIDTERROR Description: Acid Terror MaxLevel: 5 Type: Weapon TargetType: Attack DamageFlags: Splash: true IgnoreFlee: true Flags: IgnoreAutoGuard: true IgnoreCicada: true Range: 9 Hit: Single HitCount: 1 SplashArea: - Level: 1 Area: 2 - Level: 2 Area: 2 - Level: 3 Area: 2 - Level: 4 Area: 4 - Level: 5 Area: 4 CopyFlags: Skill: Plagiarism: true Reproduce: true CastCancel: true CastTime: 1000 Duration1: - Level: 1 Time: 5 - Level: 2 Time: 5 - Level: 3 Time: 5 - Level: 4 Time: 5 - Level: 5 Time: 5 Duration2: 120000
Any way to make the 3rd/4th job aura into the 99 one?
in Graphics Support
Posted
Hi, I've done *a lot* of searching and eventually managed to turn the late auras into something not completely blinding thanks to some posts by Olrox, but ideally I was hoping I could change them into the auras for 99 and trans 99, maybe with different colors.
I have no idea how to do that, or if it's even possible so I thought I would ask. Here is the aura I ended up with though for reference just to show that I did manage to make some kind of change lol.