-
Posts
764 -
Joined
-
Last visited
-
Days Won
19
Playtester last won the day on April 8
Playtester had the most liked content!
About Playtester

Profile Information
-
Gender
Male
Playtester's Achievements
-
The GTB card is making the player immune to the skill: PF_SPIDERWEB (405)
Playtester replied to Tdi123's question in General Support
Maybe your rAthena is outdated. This flag was added on February 1st 2022: https://github.com/rathena/rathena/commit/3deb3e204852f169c84e5ea9399e8a1e5129a71e -
How to make single target skill into AoE?
Playtester replied to OasisRO's question in Scripting Support
You could for example check for the Soul Link status change and if you don't have it just call skill_attack directly, otherwise call map_foreachinrange as for other splash skills. -
The GTB card is making the player immune to the skill: PF_SPIDERWEB (405)
Playtester replied to Tdi123's question in General Support
Adding the flag as qtdan described is the easiest solution. If this is a bug in the emulator and it should not make targets immune to GTB, then that's usually more an indication of that it shouldn't be a magic spell in the first place (maybe misc?). Though changing the damage type often requires to also move the skill's code to another function (might not be needed for no-damage skills though). -
How to make single target skill into AoE?
Playtester replied to OasisRO's question in Scripting Support
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. -
On a sidenote, this was a bug on the emulator which is fixed now: https://github.com/rathena/rathena/commit/64f10ed10bfb174709f3a0ed0abe93be20d64cf5
-
Not familiar with that diff (you're better off asking on WARP Discord), but I can tell you that you cannot just use any executable, first of all you need one that's not encrypted, so you kind of rely it being provided by the Nemo/Warp project, because Gravity now encrypts their executables. Second, if you take a too modern executable, some of its feature might not be supported in rAthena yet. Using older ones should be fine though as long as you adapt PACKETVER in packets.hpp.
-
Status wont disappear even when you character select.
Playtester replied to funtwocrasher's question in General Support
I created an issue on Steel Body on the bug tracker too: https://github.com/rathena/rathena/issues/6910 -
Status wont disappear even when you character select.
Playtester replied to funtwocrasher's question in General Support
You can use Status.yml to define special properties of status changes: - Status: Steelbody Icon: EFST_STEELBODY DurationLookup: MO_STEELBODY States: NoCast: true CalcFlags: Def: true Mdef: true Aspd: true Speed: true Opt3: SteelBody: true For example you can use the flag "NoSave", so that a status change is removed on logout, similar to how it is defined for Devotion: - Status: Devotion Icon: EFST_DEVOTION DurationLookup: CR_DEVOTION Flags: NoSave: true RemoveOnChangeMap: true OverlapIgnoreLevel: true Note: Endow is not remove on logout on official servers so that's correct. However, I can confirm that Steel Body should be removed, but isn't. -
Just a quick heads up, your original reports are fixed on the emulator now: https://github.com/rathena/rathena/commit/3b9c28aa464b8adb3decb5357725e1f705c8517e
-
There's one more thing, right now the transition from SC_STONEWAIT to SC_STONE can also be resisted. That also needs to be fixed by making it unavoidable. We are also checking an issue in renewal right now. I recommend you just wait for the next update though otherwise you'll run into merge conflicts.
-
You're perfectly right, I will forward that one as well. Good thinking!
-
I assume this "Shadow Cross" is a new 4th job class? Your file doesn't contain this class at all, so it uses the official values from the emulator. You will need to expand your job_status.yml with the new jobs.
-
It's a small error in the rework on the Stone SC. In status.cpp this part: case SC_STONE: case SC_FREEZE: // Undead are immune to Freeze/Stone if (undead_flag && !(flag&SCSTART_NOAVOID)) return 0; break; Needs to be changes to: case SC_STONE: case SC_STONEWAIT: case SC_FREEZE: // Undead are immune to Freeze/Stone if (undead_flag && !(flag&SCSTART_NOAVOID)) return 0; break; I'll forward this to Aleos so he can fix this directly on the emulator.
-
Lemongrass already fixed this here: https://github.com/rathena/rathena/commit/aae930198d1bf1c491444a55bb028af2a147ad41 Just update rAthena to latest and it should be fixed.
-
@funtwocrasher I strongly recommend that you set up your server in a way you can always update rAthena without merging trouble. That way you can always stay up-to-date on all the fixes without much effort. For conf/db changes, you only need to make sure to use the import folder for your changes instead of the files themselves. Those folders are set to be ignored by git so your changes are safe there. SRC/NPC changes are part of the git repository, it's a bit more tricky there, it depends a little bit on how you apply your customization. If you are like me and just edit the files directly, but not check them in at all, not even locally (kinda risky), then you need to call "Stash changes" (I'm using Tortoise Git) first, this will remove all your custom changes temporarily and put them into a stash. Then you can just call "Pull" which will update your base files to the latest rAthena (assuming you are still on the master branch). Afterwards just call "Stash pop" that puts your custom changes back in. Sometimes if you changed something that was also updated on rAthena you will have to do a merge and decide what changes to keep / adjust. If you commit your changes into your local respository then as far as I know you can just call Pull directly and it will automatically merge it. If you have your own branch you need to select yourself that you want to merge master into your branch. Not too familiar with that process though. If are really scared of losing your changes, you could also just copy your whole rathena folder as a backup before you pull. Then you can restore lost changes by moving files from the backup back into the main folder. Or to keep a better overview, just backup the files you actually changed. Hope this helps.