public override void Calculate(GSkill skill) { GPlayerWrapper player = skill.GetPlayer(); int player_level = player.GetLevel(); int player_maxmp = player.GetMaxmp(); int skill_level = skill.GetLevel(); float pp; float p = 0.002f * player_maxmp; if (player.GetSkilllevel(4011) >= skill_level) { pp = skill_level * p; } else { pp = player.GetSkilllevel(4011) * p; } skill.SetPlus((((20 * skill_level + 50) * norm(30 / player_level)) + (5 * skill_level + 10) + pp)); player.SetPerform(1); /**/ } } public GSkill3997Stub() : base(3997) { occupation = 56; maxlevel = 8; maxlearn = 6; eventflag = 0; spcost = 1; reborncount = 0; type = 1; timetype = 0; targettype = 0; rangetype = 0; doenchant = false; dobless = false; autoattack = true; allowform = 0; credittype = 0; clearmask = 0; skill_limit = 0; skillelemsnum = 0; skillelemsfactor = 0.000000f; serialskill = 0; charge = 0; chargedist = 0.000000f; succeedskillcolor = 1; succeedskillcolornum = 1; comboskill = 0; need_item = false; item1_id = -1; item1_num = 0; item2_id = -1; item2_num = 0; item_relation = 0; weapon_limit = 9; SetAction(0, "ÐùÔ¯_·Éµ¯"); SetAction(1, "0"); SetAction(2, "0"); SetAction(3, "0"); SetAction(4, "0"); SetAction(5, "0"); SetAction(6, "0"); SetAction(7, "0"); SetAction(8, "0"); SetAction(9, "ÐùÔ¯_·Éµ¯"); SetAction(10, "0"); SetAction(11, "0"); SetAction(12, "0"); SetAction(13, ""); SetAction(14, ""); SetAction(15, ""); SetAction(16, ""); SetAction(17, ""); SetAction(18, "ÐùÔ¯_Æï³Ë_·Éµ¯"); SetAction(19, "0"); SetAction(20, "0"); SetAction(21, "0"); SetAction(22, "0"); SetAction(23, "0"); SetAction(24, "0"); SetAction(25, "0"); SetAction(26, "0"); SetAction(27, "ÐùÔ¯_Æï³Ë_·Éµ¯"); SetAction(28, "0"); SetAction(29, "0"); SetAction(30, "0"); name = "¾»Äù¡¤Ë·ÐÇ"; nativename = "¾»Äù¡¤Ë·ÐÇ"; icon = "¾»Äù¡¤Ë·ÐÇ.dds"; SetTalent(0, 4149); SetTalent(1, 0); SetTalent(2, 0); SetTalent(3, 0); SetTalent(4, 0); SetTalent(5, 0); SetTalent(6, 0); SetTalent(7, 0); talent_size = 1; talent_type = 0; use_proficiency = false; inc_proficiency = 0; preskillnum = 0; cycle = false; cyclemode = 0; cyclegfx = ""; skill_class = 11; guide = false; summon_id = -1; trigger = false; conbutton_sub = false; isBabySkill = false; castInPreSkill = false; preCastSkillId = -1; darkLightType = 0; followskill = 0; targetcnt = 0; excludemonstercnt = 0; AddState(new GState1()); AddState(new GState2()); } public override int GetExecutetime(GSkill skill) { return(1075); } public override int GetCooldowntime(GSkill skill) { return(200); } public override int GetEnmity(GSkill skill) { return(1); } public override int GetRequiredLevel(int level) { int[] array = { 1, 3, 5, 7, 9, 11 }; return(array[level - 1]); } public override float GetPraydistance(GSkill skill) { int skill_t0 = skill.GetT0(); return(2 * skill_t0 + 17); } public override float GetCastdistance(GSkill skill) { int skill_t0 = skill.GetT0(); return(2 * skill_t0 + 15); } public override float GetEffectdistance(GSkill skill) { int skill_t0 = skill.GetT0(); return(2 * skill_t0 + 20); } public override float GetMpcost(GSkill skill) { return(10.000000f); } } public class GSkill3997 : GSkill { public GSkill3997() : base(3997) { } } public class GSkill3998Stub : GSkillStub { public class GState1 : GState { public override int GetTime(GSkill skill) { return(425); } public override void Calculate(GSkill skill) { GPlayerWrapper player = skill.GetPlayer(); player.SetPray(1); } public override bool Cancel(GSkill skill) { return(true); } } public class GState2 : GState { public override int GetTime(GSkill skill) { return(450); } public override void Calculate(GSkill skill) { GPlayerWrapper player = skill.GetPlayer(); int player_mp = player.GetMp(); int player_maxmp = player.GetMaxmp(); int player_var1 = player.GetVar1(); /* * if ( player_mp >= player_maxmp / 10 ) * { * v = player_maxmp / 10; * } * else * { * v = player_mp; * } * player.SetVar1(v); * player.SetMp(((player_mp - player_var1))); * player.SetPerform(1); */ }