sepultribe Posted January 5, 2018 Posted January 5, 2018 (edited) 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 : 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 : 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 March 18, 2019 by sepultribe adding stuff, corrections #2 1 4 4
sepultribe Posted January 6, 2018 Author Posted January 6, 2018 (edited) 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 August 1, 2018 by sepultribe
eressea Posted January 6, 2018 Posted January 6, 2018 Very nice! For Epilogue there's one more variable "olympiad_use = 0/1"
tyrkysovej Posted January 6, 2018 Posted January 6, 2018 Very informative, thank you ! Looking forward to next series.
sepultribe Posted January 6, 2018 Author Posted January 6, 2018 (edited) 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 January 6, 2018 by sepultribe
Sdw Posted January 6, 2018 Posted January 6, 2018 Let's start with the basis, it's not progressive but pump
sepultribe Posted January 6, 2018 Author Posted January 6, 2018 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.
Sdw Posted January 6, 2018 Posted January 6, 2018 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
sepultribe Posted January 6, 2018 Author Posted January 6, 2018 (edited) 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 January 6, 2018 by sepultribe
eressea Posted January 6, 2018 Posted January 6, 2018 (edited) 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 January 6, 2018 by eressea
sepultribe Posted January 6, 2018 Author Posted January 6, 2018 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
eressea Posted January 6, 2018 Posted January 6, 2018 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).
sepultribe Posted January 7, 2018 Author Posted January 7, 2018 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.
Recommended Posts