-
Posts
820 -
Joined
-
Last visited
-
Days Won
22
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by Playtester
-
-
eAthena is on github now too, so you can grab it from there: https://github.com/eathena/eathena
Don't know how to check out older versions but should be possible.
I personally would just check out rAthena, enable PRERE define and then just revert the differences between episode 5 and 13.2 one-by-one.
-
The current skill_id is in the variable "skill_id". It's avaiable in that function.
e.g.
if(skill_id == KN_BOWLINGBASH && d.damage > 100000)
-
There's no switch for it as the iRO ASPD formula hasn't been coded at all.
You could however, use pre-renewal ASPD which is probably closer to iRO than the renewal one. For that you need to open renewal.h and comment RENEWAL_ASPD.
If you want to implement iRO ASPD yourself, you need to read yourself into status.c (just search for "aspd" to find the relevant code).
- 1
-
The skill is supposed to move the caster to the target, right?
Did you try to exchange the two lines? First call clif_blown(src) and then clif_skill_nodamage(...).
-
Skill animation is already there:
clif_skill_nodamage(src,bl,skill_id,skill_lv,i);
-
As I said: Above
-
I think easiest way to do that would be to add some code in battle_calc_attack.
You have already a min damage check there:
if( d.damage + d.damage2 < 1 ) { //Miss/Absorbed //Weapon attacks should go through to cause additional effects. if (d.dmg_lv == ATK_DEF /*&& attack_type&(BF_MAGIC|BF_MISC)*/) // Isn't it that additional effects don't apply if miss? d.dmg_lv = ATK_MISS; d.dmotion = 0; }
above that I guess you could add something like:
if(d.damage > 100000) d.damage = 100000;
-
I don't really know anything about that part of the code, sorry. Guess you should just debug by setting breakpoints to see what's going wrong.
-
It's better to just uncomment #define PRERE in the same file. Then all the renewal stuff is removed.
-
Doesn't happen on default, maybe you have an item equipped that gives negative crit?
-
Check the second line:
// Only official levels included, check db/import-tmpl/job_exp.txt for an expanded list
Alternatively you need to add required exp for levels 100-300.
(Sorry, can't speak Portuguese.)
-
If I'm not completely mistaken, a much easier way to check would be:
sd->status.class_ == JOB_HIGH_PRIEST
-
You need to check for "sd" first. sd is NULL when monsters use the skill which will cause a crash when you try to access sd->status.
-
I can't do anything about it unless you tell me what packet needs to be send to the client so it works.
Unit spells can't hit ice wall. LoV can not hit ice wall. Must be an iRO custom if it does on iRO.
On rA you can already recast icewall on a destroyed wall tile.
Everything is working as on Aegis already.
-
I just checked again and when I compile current rAthena on pre-renewal setting without any changes, Sacrifice already never misses.
-
It doesn't has much to do with immune attack.
I didn't try around with that code too much but if you always set state |= BCT_ENEMY there, then I think monsters will always attack each other.
If you find a good condition you can write for that you could pull it off.
-
Even though you rewrote battle_check_target to return true in that situation?
-
You can set this in your skill_db, just read the explanation at the top.
- 1
-
So if the player is a super player he should be able to chain combos however he wants?
If guess you can get group_id via:
int pc_get_group_id(struct map_session_data *sd);
So for example... uh...
case MO_CHAINCOMBO: if(!sc) return false; if(sc->data[SC_BLADESTOP]) break; if(sc->data[SC_COMBO] && (pc_get_group_id(sd) > 0 || sc->data[SC_COMBO]->val1 == MO_TRIPLEATTACK)) break; return false;
Like this maybe?
- 1
-
It's not a bug, Tarot Card of Fate can dispell FCP.
case 3: // THE HIGH PRIESTESS - all buffs removed { status_change_clear_buffs(target, SCCB_BUFFS | SCCB_CHEM_PROTECT); break; }
- 1
-
Not defined any exp table for Novice maybe?
-
Group ID?
-
Is it so hard to press Ctrl+F and then enter that text to find it?
Or just search for AL_BLESSING to see whereever it applies. As I said it's the block that is for all normal status changes without special rules.
case AL_INCAGI: case AL_BLESSING: case MER_INCAGI: case MER_BLESSING: if (dstsd != NULL && tsc->data[SC_CHANGEUNDEAD]) { skill_attack(BF_MISC,src,src,bl,skill_id,skill_lv,tick,flag); break; } case PR_SLOWPOISON: case PR_IMPOSITIO: case PR_LEXAETERNA: case PR_SUFFRAGIUM: case PR_BENEDICTIO: case LK_BERSERK: case MS_BERSERK: case KN_TWOHANDQUICKEN: case KN_ONEHAND: case MER_QUICKEN: case CR_SPEARQUICKEN: case CR_REFLECTSHIELD: case MS_REFLECTSHIELD: case AS_POISONREACT: case MC_LOUD: case MG_ENERGYCOAT: case MO_EXPLOSIONSPIRITS: case MO_STEELBODY: case MO_BLADESTOP: case LK_AURABLADE: case LK_PARRYING: case MS_PARRYING: case LK_CONCENTRATION: case WS_CARTBOOST: case SN_SIGHT: case WS_MELTDOWN: case WS_OVERTHRUSTMAX: case ST_REJECTSWORD: case HW_MAGICPOWER: case PF_MEMORIZE: case PA_SACRIFICE: case ASC_EDP: case PF_DOUBLECASTING: case SG_SUN_COMFORT: case SG_MOON_COMFORT: case SG_STAR_COMFORT: case GS_MADNESSCANCEL: case GS_ADJUSTMENT: case GS_INCREASING: case NJ_KASUMIKIRI: case NJ_UTSUSEMI: case NJ_NEN: case NPC_DEFENDER: case NPC_MAGICMIRROR: case ST_PRESERVE: case NPC_INVINCIBLE: case NPC_INVINCIBLEOFF: case RK_DEATHBOUND: case AB_RENOVATIO: case AB_EXPIATIO: case AB_DUPLELIGHT: case AB_SECRAMENT: case AB_OFFERTORIUM: case NC_ACCELERATION: case NC_HOVERING: case NC_SHAPESHIFT: case WL_MARSHOFABYSS: case WL_RECOGNIZEDSPELL: case GC_VENOMIMPRESS: case SC_DEADLYINFECT: case LG_EXEEDBREAK: case LG_PRESTIGE: case SR_CRESCENTELBOW: case SR_LIGHTNINGWALK: case GN_CARTBOOST: case KO_MEIKYOUSISUI: case ALL_ODINS_POWER: case ALL_FULL_THROTTLE: case RA_UNLIMIT: case WL_TELEKINESIS_INTENSE: case RL_HEAT_BARREL: case RL_P_ALTER: case RL_E_CHAIN: case SU_FRESHSHRIMP: case SU_ARCLOUSEDASH: clif_skill_nodamage(src,bl,skill_id,skill_lv, sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); break;
-
Sorry, as I said I can give you hints but if you want more complex code solutions you should probably learn to understand the code yourself or hire a coder.
Skills' Level
in Source Requests
Posted
It's not so easy. Generally speaking, the max level for monster skills is already higher, you could do that at least by just raising the level in mob_skill_db. For players, the max level is defined in skill_db, but just raising it might not be sufficient.
If you have levels above 13, you will need to update the define in skill.h:
Keep in mind that the system expects you to now define the required values for each level. It will try to continue a fixed pattern like when you define 4:8:12:16:20 it will automatically continues with 24, etc. but in other cases this can cause problem, like the values going negative in case of decreasing values. So in worst case you'll have to update all the skill_xxx_db stuff for every single skill.
Finally just increasing the level server-sided much not actually affect how much you can learn on the client. You might need to modify the client to allow values above 10, which I'm not sure if anyone knows how to do. You could also write your own client but then you'll be busy with that the next 10 years.
So in short, it's hard to do and that's why nobody replies.