Jump to content

L2OFF C1-C6 Skilldata.txt Documentation


Recommended Posts

Hello, I was looking for information about the L2OFF platform starting from the basics and couldnt find sufficient stuff in english, mostly russian that I couldn't understand so I thought about starting a series of topics about it, posting what I have found till now, this will be the first one. Here we will try to understand the structure of skilldata.txt that is the basis for skill behavior in a Lineage2 server.

 

If you open skilldata.txt the first skills you will see are Power Strike, Dash, Mortal Blow. Let's take a look at the 1st one.

 

  • skill_begin //denotes the beginning of a skill entry
  • skill_name = [s_power_strike11] //sets how the skill will be referred by in other files
  • /* [파워 스트라이크] */ //name of the skill ingame
  • skill_id = 3 //the ID of the skill, which is also used to calculate the skill IDs in skill_pch.txt
  • level = 1 //internal counter of skill level, also used for the skill IDs in skill_pch.txt
  • operate_type = A1 //Active skill of Type 1, which means it will have an effect of i_ (instant) type
  • magic_level = 3 //Actual skill level used to calculate land rate
  • effect = {{i_p_attack_over_hit;25;0}} //Instant type effect (i_) which in this case inflicts physical damage (p_attack) with overhit capability (over_hit) adding 25 to caster's P.Atk and 0 skill critical chance
  • operate_cond = {{equip_weapon;{sword;blunt}}} //Here are the conditions that have to be met in order for the skill to be castable
  • is_magic = 0 //As zero means false in programming, when a skill is not magical it is physical
  • mp_consume2 = 10 //In L2 mp is consumed in 2 stages during skill usage, when you start casting a skill and when you finish casting. Physical skills are the exception, and they consume mp only when they are done casting, in this case 10 mp
  • cast_range = 40 //this is the max range that the character can be from its target in order to start casting
  • effective_range = 400 //this is the max range the target of the skill can reach before the skill cast is cancelled
  • skill_hit_time = 1.08 //base skill cast time in seconds, gets modified by Atk.Speed/Cast.Speed to calculate final cast time, depending on the is_magic parameter
  • skill_cool_time = 0.72 //this is the time in seconds the character who cast this skill will stay "locked" in place unable to make another move, waiting for the skill animation to finish
  • skill_hit_cancel_time = 0.5 //this is the time frame during which a skill can be cancelled after being cast 
  • reuse_delay = 13 //base skill reuse time in seconds, gets modified by Atk.Speed/Cast.Speed depending on the is_magic parameter
  • attribute = attr_none //attribute of the skill, in these older chronicles everything is attributed, from weapon damage to skill damage and debuffs
  • effect_point = -52 //aggression points to be subtracted from the target and added to the person casting the skill (not sure that is how aggro works internally, only a guess)
  • target_type = enemy //this is where u set what kind of targets can get affected by your skill, enemy means u can use it on anyone, even party members as long as CTRL is pressed. enemy_only on the contrary cannot be used on party members
  • affect_scope = single //here you set the scope of the attack, whether it can hit AOE or only single targets
  • affect_limit = {0;0} //minimum and maximum number of targets that will get hit if the skill is characterized as AOE 
  • next_action = attack //what action will be taken after the skill finished casting, here it will start autoattacking
  • ride_state = {@ride_none} //this sets if u can cast the skill while mounted on a strider/wyvern, in this case it's not allowed in any ride state
  • skill_end //denotes the end of a skill entry

 

Ok now let's look at Mortal Blow which has a little more complicated effect, but still very similar otherwise

 

Quote

skill_begin    skill_name = [s_mortal_blow11]    /* [모탈 블로우] */    skill_id = 16    level = 1    operate_type = A1    magic_level = 3    effect = {{i_fatal_blow;73;200;0}}    operate_cond = {{equip_weapon;{dagger}}}    is_magic = 0    mp_consume2 = 9    cast_range = 40    effective_range = 400    skill_hit_time = 1.08    skill_cool_time = 0.72    skill_hit_cancel_time = 0.5    reuse_delay = 11    attribute = attr_none    effect_point = -52    target_type = enemy    affect_scope = single    affect_limit = {0;0}    next_action = attack    ride_state = {@ride_none}    skill_end

 

It's also an Active Type 1 skill, which means it has an instant effect on the target and only that. Other types of active skills have different effects which we will see next. Now this effect is a fatal_blow which gets affected by crit. damage buffs/passives/jewels, it adds 73 to P.Atk, almost 3 times as much as Power Strike (that is why stabs are much less affected by your P.Atk stat and even a No-Grade dagger can hit hard), the 200 should be a modifier for the land rate based on the position (front,side,back) of the target but I am not sure, the last 0 is the skill critical chance.

 

An interesting case is with fear type skills, such as Curse Fear, Word of Fear, Sword Symphony, Horror, etc

 

Quote

skill_begin    skill_name = [s_curse_fear1]    /* [커스 피어] */    skill_id = 1169    level = 1    operate_type = A1    magic_level = 40    effect = {{i_run_away;30;20}}    is_magic = 1    mp_consume1 = 7    mp_consume2 = 28    cast_range = 600    effective_range = 1100    skill_hit_time = 4    skill_cool_time = 0    skill_hit_cancel_time = 0.5    reuse_delay = 20    attribute = attr_none    effect_point = -379    target_type = enemy_only    affect_scope = single    affect_limit = {0;0}    next_action = none    ride_state = {@ride_none;@ride_wind;@ride_star;@ride_twilight}    skill_end

 

Instead of having an activate rate and a stat that resists it, this effect takes 2 arguments, the first one should be the duration and the second one the land rate (most probably, or else its the reverse). You cannot change the basic property that resists it easily without altering the effect inside the l2server.exe. Sword Symphony as an AOE skill of the same type has half the duration and the same land rate ( effect={{i_p_attack;229;0};{i_run_away;15;20}} ). Antharas & Valakas fear being also 30 seconds, and the fact that several skill enchants of fear type skills for chance or power increase the second parameter, it should be [i_run_away;duration;chance] indeed, except if ncsoft made a mistake there.

 

Now let's look at Dash which is a little different

 

Quote

skill_begin    skill_name = [s_dash1]    /* [대시] */    skill_id = 4    level = 1    operate_type = A2    magic_level = 20    effect = {{p_speed;{all};40;diff}}    is_magic = 0    mp_consume2 = 19    cast_range = -1    effective_range = -1    skill_hit_time = 1    skill_cool_time = 0    skill_hit_cancel_time = 0.5    reuse_delay = 600    activate_rate = -1    lv_bonus_rate = 0    basic_property = none    abnormal_time = 10    abnormal_lv = 1    abnormal_type = speed_up_special    attribute = attr_none    effect_point = 204    target_type = self    affect_scope = single    affect_limit = {0;0}    next_action = none    debuff = 0    ride_state = {@ride_none}    skill_end

 

This is a Active Type 2 skill, which means it can have up to 3 types of effects (instant [i_xxx], continuous (pump) [p_xxx] and DoT (tick) [t_xxx]) and all of them can only affect the target of the skill. Dash in particular only has  a continuous effect p_speed, {all} means u can get the speed increase in any armor type, "diff" means the number before it will be added to the stat, so it adds 40 to Speed. If it was -40 it would subtract that from Speed. In other skills you may see "per" which means the number before it is a percentage modifier, so 100;per would mean increase by 100% or basically doubling the base stat. target_type is self of course, so it affects the caster only regardless of what target is selected.

 

Let's have a look at another Active Type 2 skill, this time Stun Shot

 

  • skill_begin
  • skill_name = [s_stun_shot11]
  • /* [스턴 샷] */
  • skill_id = 101
  • level = 1
  • operate_type = A2 //again, Active Type 2 skills can have both a continuous (pump) and instant type effect, and those effects will only affect the target
  • magic_level = 34
  • effect = {{p_block_act};{i_p_attack_over_hit;287;0}} //continuous effect of stun and instant effect of physical attack damage with overhit capability adding 287 to P.Atk and with 0 skill critical chance
  • operate_cond = {{equip_weapon;{bow}}}
  • is_magic = 0
  • mp_consume2 = 69
  • cast_range = 900
  • effective_range = 1400
  • skill_hit_time = 3
  • skill_cool_time = 1
  • skill_hit_cancel_time = 0.5
  • reuse_delay = 10
  • activate_rate = 50 //this is the base land rate of the skill, in percentage. the final land rate takes into account the skill magic_level and the target level (not sure about caster level)
  • lv_bonus_rate = 1 //this is a boost modifier based on the level difference between the target level and the magic_level (my guess), in some skills (entangle,power brake, sleep, etc) you can see an even higher bonus [2]
  • basic_property = con //this is the stat that is used to calculate the resistance to landing the continuous (pump) effect part of the skill
  • abnormal_time = 9 //this is the time the continuous (pump) effect will last onto the target
  • abnormal_lv = 1 //this is the abnormal level of the continuous (pump) effect, used for calculating success of cure poison/bleed and overwriting of abnormal states (buffs as well as debuffs)
  • abnormal_type = stun //this is the category in which the continuous (pump) effect debuff falls into, used in conjuction with the above
  • attribute = attr_shock //the attribute of the skill effect, used for calculating resistances to damage and/or land rates
  • effect_point = -327
  • target_type = enemy
  • affect_scope = single
  • affect_limit = {0;0}
  • next_action = none //after casting stun the character doesnt autottack, it just stands still if the user doesnt do anything
  • abnormal_visual_effect = ave_stun //this instructs the client on whether to show stars around the head of the target (stunned) or a white sphere (sleeped) etc.
  • debuff = 1 //this instructs the client on which place it will show the skill (de)buff icon, 0 is for buffs, 1 for debuffs, and 3 is the special bar reserved for HoP/CoL/GH heals. What is funny is that in C5 the GH heal over time buff was placed along side Heart of Paagrio and Chant of Life, in Interlude ncsoft decided it should take space in the buff bar, making it even harder to keep up without throwing off buffs when healing in full buffed pvp.
  • ride_state = {@ride_none}
  • skill_end

 

Next are Active Type 3 skills, like Blinding Blow, Punch of Doom, Aura Flare

 

Quote

skill_begin    skill_name = [s_blinding_blow1]    /* [블라인딩 블로우] */    skill_id = 321    level = 1    operate_type = A3    magic_level = 65    effect = {{i_fatal_blow;2751;150;0};{p_speed;{all};40;diff}}    operate_cond = {{equip_weapon;{dagger}}}    is_magic = 0    mp_consume2 = 133    cast_range = 40    effective_range = 400    skill_hit_time = 1.08    skill_cool_time = 0.72    skill_hit_cancel_time = 0.5    reuse_delay = 180    activate_rate = -1    lv_bonus_rate = 0    basic_property = none    abnormal_time = 10    abnormal_lv = 1    abnormal_type = speed_up_special    attribute = attr_none    effect_point = -307    target_type = enemy    affect_scope = single    affect_limit = {0;0}    next_action = attack    debuff = 0    ride_state = {@ride_none}    skill_end

 

Active Type 3 skills are very similar to the previous type, but the difference here is that the instant effect is always inflicted on the target, whereas the continuous (pump) effect always affects the caster. In this case, the stab damages the target with 2751 added on P.Atk, a 150% modifier for the land rate and 0% chance of a skill critical. The speed bonus is like the one we saw in Dash and it will be present on the caster's buffbar. activate_rate is -1 which means the caster will get the speed bonus buff at a 100% chance, abnormal_time = 10 means it will last 10 seconds.

 

Following is PoD

 

Quote

skill_begin    skill_name = [s_punch_of_doom1]    /* [펀치 오브 둠] */    skill_id = 81    level = 1    operate_type = A3    magic_level = 55    effect = {{i_p_attack_over_hit;4580;0};{p_block_act}}    operate_cond = {{equip_weapon;{dualfist}}}    is_magic = 0    mp_consume2 = 0    hp_consume = 399    cast_range = 40    effective_range = 400    skill_hit_time = 1.36    skill_cool_time = 0.44    skill_hit_cancel_time = 0.5    reuse_delay = 120    activate_rate = 80    lv_bonus_rate = 2    basic_property = con    abnormal_time = 9    abnormal_lv = 1    abnormal_type = stun    attribute = attr_none    effect_point = -266    target_type = enemy    affect_scope = single    affect_limit = {0;0}    next_action = attack    abnormal_visual_effect = ave_stun    debuff = 1    ride_state = {@ride_none}    skill_end

 

It inflicts a physical attack with 4580 added on P.Atk with 0% skill critical capability on the target, and as a continuous effect it blocks all actions on the caster with an abnormal visual effect of stun with a 80% base land rate. lv_bonus_rate is 2 so if let's say the caster has deleveled 5 levels since he acquired PoD at 55, the difference between his level (50) and the magic level of the skill (55) will be multiplied by 2 and give a 10% bonus land rate on the self stun.

 

Aura Flare is also similar

 

Quote

skill_begin    skill_name = [s_aura_flare11]    /* [오라 플래어] */    skill_id = 1231    level = 1    operate_type = A3    magic_level = 38    effect = {{i_m_attack;39};{p_pvp_magical_skill_dmg_bonus;-50;per}}    is_magic = 1    mp_consume1 = 7    mp_consume2 = 27    cast_range = 150    effective_range = 650    skill_hit_time = 1.5    skill_cool_time = 0    skill_hit_cancel_time = 0.5    reuse_delay = 2.5    activate_rate = -1    lv_bonus_rate = 0    basic_property = none    abnormal_time = 3    abnormal_lv = 0    abnormal_type = none    attribute = attr_none    effect_point = -288    target_type = enemy    affect_scope = single    affect_limit = {0;0}    next_action = none    debuff = 0    ride_state = {@ride_none;@ride_wind;@ride_star;@ride_twilight}    skill_end

 

Instant effect of magical damage with 39 added on the square root of M.Atk and a continuous effect of 50% reduction in pvp magical skill damage. The i_ affects the target, the p_ affects the caster like before. Activation rate is again undefined (-1) so the caster will get the damage reduction debuff at a 100% chance, and it will last 3 seconds from each time it finishes casting.

 

Vengeance

 

Quote

skill_begin    skill_name = [s_vengence1]    /* [벤젼스] */    skill_id = 368    level = 1    operate_type = A3    magic_level = 77    effect = {{i_target_me};{p_physical_defence;{all};5400;diff};{p_magical_defence;{all};4050;diff};{p_block_move}}    operate_cond = {{equip_shield}}    is_magic = 0    mp_consume2 = 105    cast_range = -1    effective_range = -1    skill_hit_time = 1    skill_cool_time = 0    skill_hit_cancel_time = 0.5    reuse_delay = 1800    activate_rate = -1    lv_bonus_rate = 0    basic_property = none    abnormal_time = 30    abnormal_lv = 3    abnormal_type = pd_up_special    attribute = attr_none    effect_point = -3992    target_type = self    affect_scope = point_blank    affect_range = 200    affect_object = not_friend    affect_limit = {10;10}    next_action = none    debuff = 0    ride_state = {@ride_none}    skill_end

 

Same things here, the instant effect targets all non-friendly (N)PCs around the caster with a range of 200, as this skill has a point_blank scope. It will always affect up to 10 targets if it can find them, there is no randomization in that. Adds 5400 to P.Def and 4050 to M.Def regardless of armor type, as the {all} suggests.


and Evade Shot

 

Quote

skill_begin    skill_name = [s_evade_shot1]    /* [이베이드 샷] */    skill_id = 369    level = 1    operate_type = A3    magic_level = 78    effect = {{i_p_attack_over_hit;2020;0};{p_avoid;{all};6;diff}}    operate_cond = {{equip_weapon;{bow}}}    is_magic = 0    mp_consume2 = 130    cast_range = 900    effective_range = 1400    skill_hit_time = 4    skill_cool_time = 0    skill_hit_cancel_time = 0.5    reuse_delay = 300    activate_rate = -1    lv_bonus_rate = 0    basic_property = none    abnormal_time = 30    abnormal_lv = 2    abnormal_type = avoid_up_special    attribute = attr_none    effect_point = -337    target_type = enemy    affect_scope = single    affect_limit = {0;0}    next_action = none    debuff = 0    ride_state = {@ride_none}    skill_end

 

follows the same pattern, adds 2020 to P.Atk without being able to crit, and gives +6 to evasion in any armor type the caster is wearing.

 

Next are P type skills which are passive skills

 

Quote

skill_begin    skill_name = [s_long_range_shot1]    /* [롱 샷] */    skill_id = 113    level = 1    operate_type = P    magic_level = 20    effect = {{p_attack_range;{bow};200;diff}}    skill_end

 

Long Shot adds 200 to the attack range as long as a bow is equipped. The effect is always on, as long as the conditions are met.

 

Quote

skill_begin    skill_name = [s_mana_recovery]    /* [마나 리커버리] */    skill_id = 214    level = 1    operate_type = P    magic_level = 1    effect = {{p_mp_regen;{armor_magic};20;per}}    skill_end

 

Mana recovery will increase the base mp regen of the character by 20% as long as the main armor piece equipped is of type robe {armor_magic}

 

Quote

skill_begin    skill_name = [s_final_frenzy1]    /* [파이널 프렌지] */    skill_id = 290    level = 1    operate_type = P    magic_level = 43    effect = {{p_physical_attack_by_hp1;32.9;diff}}    skill_end

 

Final Frenzy will increase the base P.Atk of the character by 32.9 as long as the HP is under 30%. Totem Spirit Bison also contains this same effect for its 30% HP bonuses, but also has the 2nd version of this effect (p_physical_attack_by_hp2) which is activated at below 60% HP.

 

Let us look at some T type skills now

Quote

skill_begin    skill_name = [s_rest_in_piece]    /* [릴렉스] */    skill_id = 226    level = 1    operate_type = T    magic_level = 5    effect = {{c_rest;-1;3};{p_hp_regen;{all};5;diff}}    mp_consume1 = 2    reuse_delay = 0    target_type = none    next_action = sit    ride_state = {@ride_none}    skill_end

 

Chameleon Rest is a Toggle type skill which means it can contain continuous (pump) effects as well as consuming effects. Toggle skills are always on until the consuming effect doesnt have anything to consume any more. Here, c_rest is  very similar to c_mp, but has a hard-coded aggro avoidance inside the effect, consuming MP at a rate of 1 mana point per second. The number 3 after it denotes how many server "ticks" must pass for it to update the consuming process. A tick in L2 is 666ms so the skill will show up as eating away at 1,99 MP every 1,99 seconds in the client. The secondary effect is of continuous (pump) type and will add to the HP regen a total of 5 points in any armor type the character is wearing. This skill will also consume 2 MP each time it is activated apart from the DoT on the MP, next_action is sit and indeed after using the skill the character sits down

 

Quote

skill_begin    skill_name = [s_fake_death1]    /* [페이크 데스] */    skill_id = 60    level = 1    operate_type = T    magic_level = 40    effect = {{c_fake_death;-10;5};{p_avoid_agro;70}}    mp_consume1 = 200    reuse_delay = 0    target_type = none    next_action = fake_death    ride_state = {@ride_none}    skill_end

 

Fake Death is another skill of the same type, this time c_fake_death consumes 10 MP per second, and ingame it will show up as eating away at 33.3 MP every 3.33 seconds. c_fake_death also sends a signal to every mob attacking the caster that he is dead, the same signal that is sent when a player actually dies. But because of the continuous (pump) effect p_avoid_agro being only 70% chance, some mobs will reagro that same exact moment. In C1 p_avoid_agro didn't have a chance parameter, it was hard-coded 100%. That is why Fake Death was 100% successful back then.

 

Quote

skill_begin    skill_name = [s_soul_cry1]    /* [소울 크라이] */    skill_id = 1001    level = 1    operate_type = T    magic_level = 1    effect = {{c_mp;-1;5};{p_physical_attack;{all};4.5;diff}}    mp_consume1 = 2    reuse_delay = 0    target_type = none    next_action = none    ride_state = {@ride_none}    skill_end

 

Another popular skill of toggle type, Soul Cry will consume 2 MP upon activation, and then 1 MP per second internally on the server. However on the client it will show up as 3.33 MP every 3.33 seconds.

 

Arcane Power is next

 

Quote

skill_begin    skill_name = [s_arcane_power1]    /* [아케인 파워] */    skill_id = 337    level = 1    operate_type = T    magic_level = 78    effect = {{p_magical_attack;{all};30;per};{p_magic_mp_cost;1;10;per};{c_hp;-50;5}}    mp_consume1 = 36    reuse_delay = 0    target_type = none    next_action = none    ride_state = {@ride_none}    skill_end    

 

Everyone is familiar with this skill, it is the bread and butter of high level nukers. It gives a 30% boost on the base M.Atk using all weapon types, it increases the initial cast MP cost of all spells (that's mp_consume1) by 10%, and consumes 50 HP per second appearing as 166.5 HP every 3.33 seconds ingame.

 

Quote

skill_begin    skill_name = [s_fist_fury1]    /* [피스트 퓨리] */    skill_id = 222    level = 1    operate_type = T    magic_level = 43    effect = {{c_hp;-13;2};{p_attack_speed;{all};25;per}}    mp_consume1 = 8    reuse_delay = 0    target_type = none    next_action = none    ride_state = {@ride_none}    skill_end

 

Last toggle skill example is Fist Fury, consumes 8 MP upon activation, and then 13 HP per second server-side and 17.3 HP per 1.33 seconds client-side. It will also increase the base Atk.Speed by 25% for all armor types.

 

As we have talked about HP and MP DoT skill effects on toggle skills it's time we also see some examples for DoT skill effects on Active skills.

 

Quote

skill_begin    skill_name = [s_decay1]    /* [디케이] */    skill_id = 1233    level = 1    operate_type = A2    magic_level = 48    effect = {{t_hp;-77;1}}    is_magic = 1    mp_consume1 = 13    mp_consume2 = 52    cast_range = 600    effective_range = 1100    skill_hit_time = 4    skill_cool_time = 0    skill_hit_cancel_time = 0.5    reuse_delay = 6    activate_rate = 70    lv_bonus_rate = 1    basic_property = wit    abnormal_time = 15    abnormal_lv = 5    abnormal_type = dot_attr    attribute = attr_earth    effect_point = -457    target_type = enemy_only    affect_scope = single    affect_limit = {0;0}    next_action = none    abnormal_visual_effect = ave_dot_bleeding    debuff = 1    ride_state = {@ride_none;@ride_wind;@ride_star;@ride_twilight}    skill_end

 

The unique Sorceror/Sorceress skill that noone ever used because ncsoft was so stupid at balancing DoT type spells after soulshots/spiritshots/buffs became the defacto standard in pvp, they are only ok if you pvp without shots and buffs, like in Beta/Prelude. The t in t_hp stands for Tick and specifies damage over time (DoT) effects. In Decay it will consume 77 HP per second showing up as 51.3 HP every 666ms in the game, which makes it one of the fastest updating DoTs in the game, along with Orc Mystic DoTs. To say some things about the rest of the parameters, it's a magical skill so it will consume spiritshots, takes 13 MP on cast and 52 MP on finish, can be started casting at max 600 range, will cancel casting if the target goes further away than 1100 range, has a 4 second base casting time, no "freeze" time as all magical skills, a typical half-second cancel time, 6 seconds base reuse, 70% base land rate with a normal lvl difference bonus, gets resisted by WIT, lasts 15 seconds on the target, has an abnormal level of 5 and a type of dot_attr, it's attribute is Earth type so Earth resistance will make it land less, provides 457 agro points for the mob AI and cannot target party members. It's a single target spell with a visual effect of bleeding type skills (Bleed,Sting/Chilling Flame) and is placed in the debuff bar.

 

Quote

skill_begin    skill_name = [s_lesser_healing_potion]    /* [체력회복제] */    skill_id = 2031    level = 1    operate_type = A2    magic_level = 1    effect = {{t_hp;8;3}}    is_magic = 0    mp_consume2 = 0    cast_range = -1    effective_range = -1    skill_hit_time = 0    skill_cool_time = 0    skill_hit_cancel_time = 0    reuse_delay = 0    activate_rate = -1    lv_bonus_rate = 0    basic_property = none    abnormal_time = 15    abnormal_lv = 1    abnormal_type = hp_recover    attribute = attr_none    effect_point = 0    target_type = self    affect_scope = single    affect_limit = {0;0}    next_action = none    debuff = 0    ride_state = {@ride_none}    skill_end

Quote

skill_begin    skill_name = [s_healing_potion]    /* [고급 체력회복제] */    skill_id = 2032    level = 1    operate_type = A2    magic_level = 1    effect = {{t_hp;24;3}}    is_magic = 0    mp_consume2 = 0    cast_range = -1    effective_range = -1    skill_hit_time = 0    skill_cool_time = 0    skill_hit_cancel_time = 0    reuse_delay = 0    activate_rate = -1    lv_bonus_rate = 0    basic_property = none    abnormal_time = 15    abnormal_lv = 2    abnormal_type = hp_recover    attribute = attr_none    effect_point = 0    target_type = self    affect_scope = single    affect_limit = {0;0}    next_action = none    debuff = 0    ride_state = {@ride_none}    skill_end

Quote

skill_begin    skill_name = [s_greater_healing_potion]    /* [강력 체력회복제] */    skill_id = 2037    level = 1    operate_type = A2    magic_level = 1    effect = {{t_hp;50;3}}    is_magic = 0    mp_consume2 = 0    cast_range = -1    effective_range = -1    skill_hit_time = 0    skill_cool_time = 0    skill_hit_cancel_time = 0    reuse_delay = 0    activate_rate = -1    lv_bonus_rate = 0    basic_property = none    abnormal_time = 15    abnormal_lv = 3    abnormal_type = hp_recover    attribute = attr_none    effect_point = 0    target_type = self    affect_scope = single    affect_limit = {0;0}    next_action = none    debuff = 0    ride_state = {@ride_none}    skill_end    

 

Healing potions are a skill too, updating every 1.99 seconds for 16/48/100 HP depending on the type.

 

Touch of Life is an interesting one

 

Quote

skill_begin    skill_name = [s_touch_of_life1]    /* [터치 오브 라이프] */    skill_id = 341    level = 1    operate_type = A2    magic_level = 78    effect = {{i_hp_per_max;50};{t_hp;50;5};{p_resist_dispel_by_category;slot_buff;-60;per};{p_resist_abnormal_by_category;slot_debuff;-30;per};{p_heal_effect;30;per}}    is_magic = 0    mp_consume2 = 0    hp_consume = 1621    cast_range = 40    effective_range = 400    skill_hit_time = 1.8    skill_cool_time = 0    skill_hit_cancel_time = 0.5    reuse_delay = 1200    activate_rate = -1    lv_bonus_rate = 0    basic_property = none    abnormal_time = 120    abnormal_lv = 1    abnormal_type = touch_of_life    attribute = attr_holy    effect_point = 811    target_type = target    affect_scope = single    affect_limit = {0;0}    next_action = none    debuff = 0    ride_state = {@ride_none}    skill_end    

 

It has all 3 types of effects, instant/continuous/dot, first it heals 50% of the target's max hp, then it adds 50 HP per second appearing as 166.5 HP every 3.33 seconds, and lastly it adds +60% to the base resistance for buff cancelling  and +30% to the resistance for debuff attacks. Also it increases healing effectiveness on the target by 30%. Doesn't consume any mp at all, altho it consumes 1621 HP on cast.

 

Quote

skill_begin    skill_name = [s_fire_vortex1]    /* [파이어 보텍스] */    skill_id = 1339    level = 1    operate_type = A2    magic_level = 77    effect = {{i_m_attack_over_hit;140};{p_speed;{all};-10;per};{p_attack_speed;{all};-30;per};{p_magic_speed;{all};-10;per};{t_mp;-12;5};{p_defence_attribute;attr_fire;20}}    is_magic = 1    mp_consume1 = 21    mp_consume2 = 84    cast_range = 900    effective_range = 1400    skill_hit_time = 6    skill_cool_time = 0    skill_hit_cancel_time = 0.5    reuse_delay = 60    activate_rate = 80    lv_bonus_rate = 2    basic_property = wit    abnormal_time = 30    abnormal_lv = 1    abnormal_type = multi_debuff    attribute = attr_fire    effect_point = -999    target_type = enemy    affect_scope = single    affect_limit = {0;0}    next_action = none    debuff = 1    ride_state = {@ride_none;@ride_wind;@ride_star;@ride_twilight}    skill_end

 

Vortex spells also have 3 effect types. Fire Vortex adds 140 to the square root of the caster's M.Atk, hitting with overhit, reducing 10% base Speed, 30% Atk.Speed, 10% Cast.Speed of the target in all armor types, increasing the fire damage received by the target by 20% and consuming his MP by 12 every second, appearing as 39.96 MP every 3.33 seconds. Abnormal_type for all Vortex spells is multi_debuff and they are all of abnormal level 1 so they will overwrite each other when cast on the same target. Interestingly Arcane Chaos also shares the same type and level so it can overwrite and get overwritten by Vortex spells just the same.

 

Next are AOE (Area of Effect) skills

 

Quote

skill_begin    skill_name = [s_poison_cloud1]    /* [포이즌 클라우드] */    skill_id = 1167    level = 1    operate_type = A2    magic_level = 25    effect = {{t_hp;-18;5}}    is_magic = 1    mp_consume1 = 7    mp_consume2 = 27    cast_range = 500    effective_range = 1000    skill_hit_time = 4    skill_cool_time = 0    skill_hit_cancel_time = 0.5    reuse_delay = 20    activate_rate = 35    lv_bonus_rate = 1    basic_property = men    abnormal_time = 30    abnormal_lv = 3    abnormal_type = poison    attribute = attr_poison    effect_point = -243    target_type = enemy_only    affect_scope = range    affect_range = 200    affect_object = not_friend    affect_limit = {9;10}    next_action = none    abnormal_visual_effect = ave_dot_poison    debuff = 1    ride_state = {@ride_none;@ride_wind;@ride_star;@ride_twilight}    skill_end

 

This type of skills can have several different affect scopes, like range, point_blank, fan, square, square_pb. Poison Cloud in particular is of type range, which means it casts onto a ranged target, in this case up to 500 units away from you, and when it finishes casting on the target it spreads in a circle around it, in this case in a 200 unit radius. It can't be cast on party members as it's enemy_only, and it will only affect non-party/non-clan members that are hit inside its radius, as the affect_object is not_friend. Below is a schematic of the different types of AOE :

 

A5snBl.jpg

 

 

Quote

skill_begin    skill_name = [s_sonic_storm11]    /* [소닉 스톰] */    skill_id = 7    level = 1    operate_type = A1    magic_level = 47    effect = {{i_energy_attack;155;0}}    operate_cond = {{equip_weapon;{dual;sword;blunt}};{energy_saved;1}}    is_magic = 0    mp_consume2 = 61    cast_range = 500    effective_range = 1000    skill_hit_time = 1.9    skill_cool_time = 0    skill_hit_cancel_time = 0.5    reuse_delay = 20    attribute = attr_none    effect_point = -114    target_type = enemy    affect_scope = range    affect_range = 150    affect_object = not_friend    affect_limit = {5;12}    next_action = none    ride_state = {@ride_none}    skill_end

 

Sonic Storm is the ranged AOE skill of the gladiator. It also has a 500 max cast range and it will hit around its target in a 150 unit radius. This one CAN be cast on party members as it of target_type enemy but it will not hit party or clan members around the target. When it lands it will hit a random number of targets between 5 and 12.

 

Quote

skill_begin    skill_name = [s_sonic_buster11]    /* [소닉 버스터] */    skill_id = 9    level = 1    operate_type = A1    magic_level = 41    effect = {{i_energy_attack;111;0}}    operate_cond = {{equip_weapon;{dual;sword;blunt}};{energy_saved;1}}    is_magic = 0    mp_consume2 = 51    cast_range = 40    effective_range = 400    skill_hit_time = 0.72    skill_cool_time = 0.28    skill_hit_cancel_time = 0.5    reuse_delay = 10    attribute = attr_none    effect_point = -99    target_type = enemy    affect_scope = fan    affect_object = not_friend    fan_range = {0;0;200;180}    affect_limit = {5;12}    next_action = attack    ride_state = {@ride_none}    skill_end

 

Sonic Buster is the close range AOE skill of the gladiator. It can only be cast from melee range (40) and as far as who it can be cast and who it can affect it's the same as the previous one. The difference is in the shape of the attack. Fan means that it creates a cone like shape, just like the red part in the image above. There are 4 parameters in the fan_range which affect how that will look like. The first one is always zero and I suspect it is used to move the center point of the circle ( or point of origin) forward or backwards.  The next one is the center of the viewpoint by which you can direct the "looking" angle of the cone. Imagine it like the following :

 

WH9ejb.jpg

Angle Mapping

 

0 means it will create the cone at the exact direction the caster is facing, 180 means it will hit at the back of the caster, -15 means at a slight angle to the right, 15 at a slight angle to the left.

In Sonic Buster's case the cone will have a straight ahead orientation. The next number is the circle radius, the blue one in the fan part of the AOE schematic. So it will have a blast range just like Poison Cloud, and 50 more than Sonic Storm. The final number specifies the arc of the attack in degrees, the circular sector formed by centering your view in the viewpoint suggested by the 2nd parameter and then forming an angle as wide as this last parameter.  As this is180° Sonic Buster will hit 5-12 targets that are located in front of the caster at a maximum range of 200 units from him. Basically a semicircle.

 

In contrast let's have a look at Wild Sweep that has a much narrower front arc

 

Quote

skill_begin    skill_name = [s_wild_sweep11]    /* [와일드 스위프] */    skill_id = 245    level = 1    operate_type = A1    magic_level = 18    effect = {{i_p_attack_over_hit;90;0}}    operate_cond = {{equip_weapon;{pole}}}    is_magic = 0    mp_consume2 = 22    cast_range = 40    effective_range = 400    skill_hit_time = 1.08    skill_cool_time = 0.72    skill_hit_cancel_time = 0.5    reuse_delay = 17    attribute = attr_none    effect_point = -96    target_type = enemy    affect_scope = fan    affect_object = not_friend    fan_range = {0;0;80;150}    affect_limit = {5;12}    next_action = attack    ride_state = {@ride_none}    skill_end

 

If you ever played a low level pole class and used this skill in catacombs you will remember that it wasn't hitting a lot of mobs if they weren't aligned perfectly in front of you. That is because of it's fan_range parameters. Like the previous ones it casts from melee range, and it's point of origin is 0 so the next calculations will start directly at the point the target resides at. The orientation is straight ahead again since the second parameter is 0°. The 3rd parameter is 80 units and is the radius around the target, which is quite small. The final parameter being the arc width, is 30° less than the other skills, so it will hit 75° to the left and 75° to the right the character is facing.

 

Quote

skill_begin    skill_name = [s_spinning_slasher11]    /* [스피닝 슬래셔] */    skill_id = 36    level = 1    operate_type = A1    magic_level = 38    effect = {{i_p_attack_over_hit;369;0}}    operate_cond = {{equip_weapon;{pole}}}    is_magic = 0    mp_consume2 = 40    cast_range = -1    effective_range = -1    skill_hit_time = 1.067    skill_cool_time = 0.733    skill_hit_cancel_time = 0.5    reuse_delay = 17    attribute = attr_none    effect_point = -183    target_type = self    affect_scope = point_blank    affect_range = 150    affect_object = not_friend    affect_limit = {6;12}    next_action = none    ride_state = {@ride_none}    skill_end

 

Whirlwind is the bigger brother of Wild Sweep, and is a much better skill for AOE because this one is using point_blank scope, which means it will hit at a circle around the caster. The radius in this case is 150 units and it will not hit party/clan members, randomizing the successful target hits between 6 and 12 if there are more than the minimum in its hit radius.

 

And now some Boss skills which are more interesting

 

Quote

skill_begin    skill_name = [s_antaras_mouth]    /* [입 냄새 공격] */    skill_id = 4110    level = 1    operate_type = A1    magic_level = 70    effect = {{i_m_attack;250}}    is_magic = 0    mp_consume2 = 0    cast_range = 500    effective_range = 1000    skill_hit_time = 2.3    skill_cool_time = 2.7    skill_hit_cancel_time = 0.5    reuse_delay = 0    attribute = attr_fire    effect_point = -100    target_type = enemy    affect_scope = square    affect_object = not_friend    fan_range = {0;0;1200;300}    affect_limit = {0;0}    next_action = none    ride_state = {@ride_none}    skill_end

 

This is the attack Antharas does with his mouth spitting red sparkles in front of him, it is a magic attack curiously, it is a ranged attack that can cast on a target up to 500 units afar. The interesting part is that it hits in a rectangle area rather than a circle. The ncsoft programmer made a mistake naming this scope square, as a square has equal length in its sides and this scope produces rectangles, usually of unequal length sides. Anyway the fan_range now changes somewhat as to what it specifies. The first 2 are the same as before, so in order of these parameters, the skill calculations will start from 0 range of the target and the orientation is straight forward. The next 2 numbers are the length and the width of the rectangle, so it will hit those who are 1200 units long and 300 wide in front of the target he casted the skill onto.

 

This one is really nice

 

Quote

skill_begin    skill_name = [s_antaras_tail]    /* [쇼크] */    skill_id = 4107    level = 1    operate_type = A2    magic_level = 70    effect = {{i_p_attack_over_hit;11000;0};{i_fly_away};{p_block_act}}    is_magic = 0    mp_consume2 = 0    cast_range = -1    effective_range = -1    skill_hit_time = 3    skill_cool_time = 3    skill_hit_cancel_time = 1.5    reuse_delay = 0    activate_rate = -1    lv_bonus_rate = 0    basic_property = none    abnormal_time = 9    abnormal_lv = 1    abnormal_type = fly_away    attribute = attr_shock    effect_point = -100    target_type = self    affect_scope = square_pb    affect_object = not_friend    fan_range = {0;180;1500;400}    affect_limit = {0;0}    next_action = none    abnormal_visual_effect = ave_stun    debuff = 1    ride_state = {@ride_none}    skill_end

 

It's the tail smash he does when he turns to look behind him, this one is like the one before it except now its of type square_pb meaning its the point blank version. As it is PB, it doesnt have a cast or effective range, skills of this type don't need a target, like the warlord's whirlwind. The fan_range though has exactly the same meaning as on the Antharas Mouth attack. In order, range calculations start from 0 range of the caster (Antharas), the orientation is 180° rotated so it hits at the back of where he is facing, the length of the rectangle will be 1500 units and it will hit 400 units wide.

 

Quote

skill_begin    skill_name = [s_valakas_trample_left]    /* [Valakas Trample] */    skill_id = 4681    level = 1    operate_type = A1    magic_level = 75    effect = {{i_p_attack;23397;10}}    is_magic = 0    mp_consume2 = 0    cast_range = 50    effective_range = 400    skill_hit_time = 1    skill_cool_time = 1.5    skill_hit_cancel_time = 0.5    reuse_delay = 0    attribute = attr_valakas    effect_point = -100    target_type = enemy    affect_scope = square    affect_object = not_friend    fan_range = {0;15;250;160}    affect_limit = {0;0}    next_action = none    ride_state = {@ride_none}    skill_end

Quote

skill_begin    skill_name = [s_valakas_trample_right]    /* [Valakas Trample] */    skill_id = 4682    level = 1    operate_type = A1    magic_level = 75    effect = {{i_p_attack;23397;10}}    is_magic = 0    mp_consume2 = 0    cast_range = 50    effective_range = 400    skill_hit_time = 1    skill_cool_time = 1.5    skill_hit_cancel_time = 0.5    reuse_delay = 0    attribute = attr_valakas    effect_point = -100    target_type = enemy    affect_scope = square    affect_object = not_friend    fan_range = {0;-15;250;160}    affect_limit = {0;0}    next_action = none    ride_state = {@ride_none}    skill_end


These two are the attack Valakas does with his left and right claws on the ground. From the shape the skill animation leaves on the ground it's apparent that the rectangle is about twice as long than it is wide. And that is true if you check the fan_range, it has 250 units length and 160 units width. The angle is 15° for the left, and -15° for the right one which corresponds exactly with the angle mapping given several lines above.

 

Quote

skill_begin    skill_name = [s_valakas_tail_stomp_a]    /* [Valakas Tail Stomp] */    skill_id = 4685    level = 1    operate_type = A1    magic_level = 75    effect = {{i_p_attack;37224;10}}    is_magic = 0    mp_consume2 = 0    cast_range = -1    effective_range = -1    skill_hit_time = 3    skill_cool_time = 1    skill_hit_cancel_time = 0.5    reuse_delay = 0    attribute = attr_fire    effect_point = -100    target_type = self    affect_scope = square_pb    affect_object = not_friend    fan_range = {0;180;1000;120}    affect_limit = {0;0}    next_action = none    ride_state = {@ride_none}    skill_end

 

Valakas's Tail Stomp leaves a long firey dragon mark on the ground and as you can see from the parameters it is 1000 units long 120 units wide as it should, the orientation being 180° hitting in the back as it should.

 

Quote

skill_begin    skill_name = [s_valakas_tail_lash]    /* [발라카스 쇼크] */    skill_id = 4688    level = 1    operate_type = A2    magic_level = 75    effect = {{i_p_attack;21423;10};{i_fly_away};{p_block_act}}    is_magic = 0    mp_consume2 = 0    cast_range = -1    effective_range = -1    skill_hit_time = 3    skill_cool_time = 3    skill_hit_cancel_time = 0.5    reuse_delay = 0    activate_rate = 80    lv_bonus_rate = 1    basic_property = con    abnormal_time = 9    abnormal_lv = 1    abnormal_type = fly_away    attribute = attr_shock    effect_point = -100    target_type = self    affect_scope = square_pb    affect_object = not_friend    fan_range = {0;180;250;500}    affect_limit = {0;0}    next_action = none    debuff = 1    ride_state = {@ride_none}    skill_end    

 

Quite the opposite happens with his Tail Lash that stuns and throws people away in his back. As you can see from the skill animation the tail goes left and right pretty wide, 500 units wide to be exact, but it will only hit PCs that are close to his tail, 250 units far.

 

The last type of skills we should talk about are the ones that have a static reuse time.

 

Quote

skill_begin    skill_name=[s_heroic_miracle]    /* [Heroic Miracle] */    skill_id=395    level=1    operate_type=A2    magic_level=-1    effect={{p_resist_dispel_by_category;slot_buff;-100;per};{p_physical_defence;{all};5400;diff};{p_magical_defence;{all};4050;diff};{p_speed;{all};5;diff}}    is_magic=2    mp_consume1=72    mp_consume2=0    item_consume={[soul_ore];40}    cast_range=-1    effective_range=-1    skill_hit_time=1    skill_cool_time=0    skill_hit_cancel_time=0.5    reuse_delay=1200    activate_rate=-1    lv_bonus_rate=0    basic_property=none    abnormal_time=30    abnormal_lv=3    abnormal_type=heroic_miracle    attribute=attr_none    effect_point=331    target_type=self    affect_scope=single    affect_limit={0;0}    next_action=none    debuff=0    ride_state={@ride_none;@ride_wind;@ride_star;@ride_twilight}    skill_end

Quote

skill_begin    skill_name=[s_heroic_berserker]    /* [Heroic Berserker] */    skill_id=396    level=1    operate_type=A2    magic_level=-1    effect={{p_resist_dispel_by_category;slot_buff;-100;per};{p_resist_dispel_by_category;slot_debuff;-100;per};{p_physical_attack;{all};500;diff};{p_attack_speed;{all};10;per};{p_magical_attack;{all};500;diff};{p_magic_speed;{all};10;per};{p_speed;{all};20;diff};{p_hit;{all};8;diff};{p_physical_defence;{all};-25;per};{p_magical_defence;{all};-25;diff};{p_avoid;{all};-8;diff};{p_heal_effect;100;per}}    is_magic=2    mp_consume1=72    mp_consume2=0    item_consume={[soul_ore];40}    cast_range=-1    effective_range=-1    skill_hit_time=1    skill_cool_time=0    skill_hit_cancel_time=0.5    reuse_delay=1200    activate_rate=-1    lv_bonus_rate=0    basic_property=none    abnormal_time=120    abnormal_lv=3    abnormal_type=heroic_miracle    attribute=attr_none    effect_point=331    target_type=self    affect_scope=single    affect_limit={0;0}    next_action=none    debuff=0    ride_state=@ride_none;@ride_wind;@ride_star;@ride_twilight}    skill_end

Quote

skill_begin    skill_name=[s_heroic_valor]    /* [Heroic Valor] */    skill_id=1374    level=1    operate_type=A2    magic_level=-1    effect={{p_resist_dispel_by_category;slot_buff;-100;per};{p_physical_attack;{all};250;diff};{p_physical_defence;{all};500;diff}}    is_magic=2    mp_consume1=289    mp_consume2=0    item_consume={[spirit_ore];80}    cast_range=-1    effective_range=-1    skill_hit_time=2.5    skill_cool_time=0    skill_hit_cancel_time=0.5    reuse_delay=1200    activate_rate=-1    lv_bonus_rate=0    basic_property=none    abnormal_time=120    abnormal_lv=1    abnormal_type=heroic_miracle    attribute=attr_none    effect_point=331    target_type=self    affect_scope=pledge    affect_range=600    affect_object=friend    affect_limit={0;0}    next_action=none    debuff=0    ride_state={@ride_none;@ride_wind;@ride_star;@ride_twilight}    skill_end

Quote

skill_begin    skill_name=[s_heroic_grandeur]    /* [Heroic Grandeur] */    skill_id=1375    level=1    operate_type=A2    magic_level=80    effect={{p_physical_defence;{all};-23;per};{p_magical_defence;{all};-20;per};{p_shield_defence_rate;-40};{p_avoid;{all};-19;diff};{p_reduce_cancel;-65;diff};{p_block_spell};{p_block_skill_physical}}    is_magic=2    mp_consume1=109    mp_consume2=0    item_consume={[spirit_ore];80}    cast_range=-1    effective_range=-1    skill_hit_time=2.5    skill_cool_time=0    skill_hit_cancel_time=0.5    reuse_delay=300    activate_rate=80    lv_bonus_rate=1    basic_property=men    abnormal_time=30    abnormal_lv=1    abnormal_type=heroic_grandeur    attribute=attr_derangement    effect_point=331    target_type=self    affect_scope=point_blank    affect_range=450    affect_object=not_friend    affect_limit={10;10}    next_action=none    abnormal_visual_effect=ave_silence    debuff=1    ride_state={@ride_none;@ride_wind;@ride_star;@ride_twilight}    skill_end

Quote

skill_begin    skill_name=[s_heroic_dread]    /* [Heroic Dread] */    skill_id=1376    level=1    operate_type=A2    magic_level=80    effect={{p_speed;{all};52;per};{p_fear};{p_block_controll};{i_save_position};{i_add_hate;100}}    is_magic=2    mp_consume1=109    mp_consume2=0    item_consume={[spirit_ore];80}    cast_range=-1    effective_range=-1    skill_hit_time=2.5    skill_cool_time=2.7    skill_hit_cancel_time=0.5    reuse_delay=300    activate_rate=80    lv_bonus_rate=2    basic_property=men    abnormal_time=15    abnormal_lv=1    abnormal_type=turn_flee    attribute=attr_derangement    effect_point=-1    target_type=self    affect_scope=point_blank    affect_range=450    affect_object=not_friend    affect_limit={10;10}    next_action=none    debuff=1    ride_state={@ride_none;@ride_wind;@ride_star;@ride_twilight}    skill_end

 

All Hero skills fall in that category, Miracle/Berserker/Valor have a set 20 min reuse time, Grandeur/Dread have a 5 min reuse time. What makes them behave as such is the is_magic=2 parameter. This will make them use spiritshots, be affected by M.Atk for their land rate and by Cast.Speed for their cast time but the reuse will remain as set. This was very stupid from ncsoft as non-mystic classes were basically excluded from properly using the Hero debufs. Also Hero UD having an extremely long duration but that is another story...

 

Invocation is another good example.

 

Quote

skill_begin    skill_name=[s_invocation1]        skill_id=1430    level=1    operate_type=A2    magic_level=56    effect={{p_block_act};{t_mp;30;3};{p_physical_defence;{all};-80;per}}    is_magic=2    mp_consume1=27    cast_range=-1    effective_range=-1    skill_hit_time=2    skill_cool_time=0    skill_hit_cancel_time=0.5    reuse_delay=900    activate_rate=-1    lv_bonus_rate=0    basic_property=none    abnormal_time=30    abnormal_lv=1    abnormal_type=meditation    attribute=attr_sleep    effect_point=360    target_type=self    affect_scope=single    affect_limit={0;0}    next_action=none    abnormal_visual_effect=ave_meditation    debuff=0    ride_state={@ride_none;@ride_wind;@ride_star;@ride_twilight}    skill_end

 

Invocation will use spiritshots and cast faster with Acumen/Zerk/etc many times fooling players into thinking that using all those will make it reset faster. But the truth is it will always reset at 15 minutes no matter what.

 

 

=============================================================================================================

 

 

To sum it up for operate types (what effects can be used):

A1 - Active skills with instant effects on the target
A2 - Active skills with instant, continuous (pump) and DoT (tick) effects on the target
A3 - Active skills with instant effects on the target and continuous (pump) effects on the caster
P - Passive skills with continuous (pump) effects
T - Toggle skills with consuming and continuous (pump) effects on the caster

 

Target types (what is a valid target for the skill):

enemy (without holding CTRL only mobs/wartags, with CTRL pressed anyone)
self (skill targets self automatically, happens transparently on L2OFF, only changes client target on L2J)
enemy_only (can't be cast on party members or non-flagged non-wartags even with CTRL pressed)
none (used for toggle skills that have no target)
holything (can only target the castle altar, used for the Seal Engraving skill)
target (needs CTRL for mobs or flagged PCs)
summon (automatically targets summon)
door_treasure (only usable on doors and treasure chests)
pc_body (only usable on a dead player body)
npc_body (only usable on a dead NPC body)
others (cannot target self, only other players)
item (only usable on inventory items)

 

Affect scopes (first level of target filtering, also defines the shape of the attack for AOE types) :

single (only affects current target)
party (affects all party members)
range (AOE skill that hits in a radius around a ranged target)
fan (close range AOE skill that hits in an arc shape)
point_blank (AOE skill that hits in a 360° radius around the caster)
dead_pledge (only affects dead clan members)
pledge (only affects alive clan members)
square (hits in a rectangle shape starting on a ranged target)
square_pb (hits in a rectangle shape starting from the caster itself)
none (used for weapon SA and cubic skills)

Affect objects (second level of target filtering, using the results from affect_scope):

friend (will affect party or clan or non-flagged targets)
not_friend (will affect any target which is flagged or a wartag or a mob)
undead_real_enemy (will affect any object classified as undead)
all (will affect anyone for example Battle Symbol skills)
clan (used for mob clan buffs)

 

Please provide any info on the things I said I am not sure about if you know something, and also any mistakes I made. Thanks for reading and keep on sharing the knowledge

Edited by sepultribe
adding stuff, corrections #2
  • Like 1
  • Thanks 4
  • Upvote 4
Link to comment
Share on other sites

GF operate types

CA1 - Channeling Active skills with instant effects that tick every X secs on target(s)
CA5 - Channeling Active skills that attach a skill with continuous (pump) effects which ticks every X secs on target(s)
DA1 - Directional (charging) Active skills with instant effects on target(s)
DA2 - Directional (charging) Active skills with instant, continuous (pump) and DoT (tick) effects on target(s)

 

New mandatory fields for the following operate types

 

A2/A3 - end_effect
CA1 - start_effect, tick_effect, fail_effect, tick_interval
CA5 - end_effect, tick_interval, attached_skill
DA2 - end_effect

end_effects are available in all skills that can contain p_ and t_ type effects, and they are triggered when the abnormal_time expires

start_effects are triggered at the beginning of the cast

tick_effect is the skill that will be casted every tick_interval seconds [for CA1]

attached_skill is the skill that will be casted every tick_interval seconds [for CA5]

fail_effect is the skill that will be casted on spell failure

Edited by sepultribe
Link to comment
Share on other sites

Unfortunately while editing the post yesterday the forums went in maintenance mode and I lost quite a lot of it, didn't have the courage to write it again at that moment. What remained here was a little rough, cleaned up some mistakes and added some more stuff now.

 

 

 

 

13 hours ago, eressea said:

Very nice!

 

For Epilogue there's one more variable "olympiad_use = 0/1"

 

Thank you eressea :) , yes that one permits or denies specific skills from being used inside oly.

 

 

3 hours ago, MimisK said:

Very helpful! +1

 

Thanks bro

 

 

2 hours ago, tyrkysovej said:

Very informative, thank you ! Looking forward to next series.

 

You are welcome

 

 

 

2 hours ago, Sdw said:

Subject clearly not mastered by the author

 

Where did I imply I am the master of anything? If you even saw in the introduction of the topic I clearly said that I will post what I have found till now. If you don't have anything to contribute oh guru please take your toxic behavior somewhere else. Thnx

Edited by sepultribe
Link to comment
Share on other sites

First of all it was just a guess based on the letter, secondly provide some sources as to why the p refers to pump. Since [i_] is instant, and the opposite of that is continuous, [p_] skill effects also having a lasting effect, a synonym for continuous is progressive, makes sense. I don't see how pump makes more sense, but it could, I just don't see it atm.

Link to comment
Share on other sites

Go for a deep dive within L2Server. Sorry I'm actually lacking time to explain. 

 

 

Thanks God there is Google to save time :

 

https://github.com/MMOCOM/OSIE-GF/blob/master/l2server.txt

 

Link to comment
Share on other sites

Very nice so that is a list of all the functions present in the GF leaked l2server.exe if I am not mistaken. It seems that they refer to [p_] effects as Pump, [i_] as Instant, [t_] as Tick and [c_] as Consume types.  I will update the original post with that information, altho that is only about semantics. We need more information from people who know about the actual effects like stabs, fear, etc. how they work internally to contribute here.

Edited by sepultribe
Link to comment
Share on other sites

14 minutes ago, sepultribe said:

Very nice so that is a list of all the function present in the GF leaked l2server.exe if I am not mistaken. It seems that they refer to [p_] effects as Pump, [i_] as Instant, [t_] as Tick and [c_] as Consume types.  I will update the original post with that information, altho that is only about semantics. We need more information from people who know about the actual effects like stabs, fear, etc. how they work internally to contribute here.

 

 

If you have some basic knowledge about how exe files work, what is assembler etc, you should get IDA Pro, there's lot of other stuff that can be found in l2server.exe (and other binaries). By the way, there's list of tokens that CLexerForSkill recognizes, you can get some additional info there :) (but it's from Gracia Final so there's some additional stuff not in C1-C6)

Edited by eressea
Link to comment
Share on other sites

Unfortunately I am not an advanced programmer and my knowledge about the PE internals is minimal. I have done some programming in c++/c#/ruby/python and 8051 assembly but I would call myself a barely intermediate coder. Looking at the code you people at shrine have published, I am feeling overwhelmed most of the time trying to follow what is happening. Yes I have downloaded IDA pro in the past and tried to disassemble l2server.exe and decompile with Hex-Rays but I didn't get much out of it. I was lost and felt I was in too deep waters, had no guide whatsoever, going by what I could understand by myself. Surely I need to study and read some more to fill in the gaps. Thank you for the link, I recognized a lot of names in that list of tokens, is that generated by this parser Yacc? If yes what did it parse to get that output?

 

Sorry I had no idea these things existed, just read about lexers in wikipedia :P

Link to comment
Share on other sites

2 minutes ago, sepultribe said:

Thank you for the link, I recognized a lot of names in that list of tokens, is that generated by this parser Yacc? If yes what did it parse to get that output?

 

Yes, lex+yacc ported to win32. Unfortunately it's really hard to get any info from the tables so I was just logging all tokens in CLexerForSkill::yyaction during load and made enum from it (so there might be something missing).

Link to comment
Share on other sites

Added some more stuff about AOE and Boss skills. Please contribute if you are skilled with dissasembling binaries, I am mostly curious about the dagger skill land rate boost parameter. I am working on doing it myself but I don't know how long it will take me, maybe months maybe years. If you know something, please share it with us.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


×
×
  • Create New...