private void ThiefSkill(NecClient client, int skillId, int targetId) { int skillBase = skillId / 1000; if (!_server.SettingRepository.SkillBase.TryGetValue(skillId, out SkillBaseSetting skillBaseSetting)) { Logger.Error($"Getting SkillBaseSetting from skillid [{skillId}]"); int errorCode = -1; RecvSkillExecR execFail = new RecvSkillExecR(errorCode, 0, 0); Router.Send(execFail, client); return; } if (skillBase > 114300 && skillBase < 114399) { Trap(client, skillId, skillBaseSetting); return; } else if (skillBase == 114607) { Stealth(client, skillId, skillBaseSetting); return; } RecvSkillExecR execSuccess = new RecvSkillExecR(0, skillBaseSetting.CastingCooldown, skillBaseSetting.RigidityTime); Router.Send(execSuccess, client); ThiefSkill thiefSkill = (ThiefSkill)Server.Instances.GetInstance((uint)client.Character.activeSkillInstance); thiefSkill.SkillExec(); }
private int DrawThiefSkill(ref XGraphics gfx, ThiefSkill skill, int start, int pageWidth) { DrawBonus(ref gfx, "Dovednost:", skill.Name, PADDING, start + LINEHEIGHT * 0); DrawBonus(ref gfx, "Kategorie:", skill.Category, PADDING, start + LINEHEIGHT * 1); if (skill.Rating == 3 && skill.Mastered) { DrawBonus(ref gfx, "Bonus mistra:", skill.MasterBonus, pageWidth / 2, start + LINEHEIGHT * 1); } DrawBonus(ref gfx, "Stupeň:", skill.Rating + ((skill.Rating == 3 && skill.Mastered)?(" + M"):""), PADDING, start + LINEHEIGHT * 2); DrawBonus(ref gfx, "Pravidla:", skill.Source.ToString(), pageWidth / 2, start + LINEHEIGHT * 2, (LABEL_WIDTH / 3) * 2); return(start + LINEHEIGHT * 4); }
private void ThiefSkill(NecClient client, int skillId, uint skillTarget) { int skillBase = skillId / 1000; if (client.character.IsStealthed() && skillBase != 114607) { client.character.ClearStateBit(CharacterState.StealthForm); RecvCharaNotifyStateflag charState = new RecvCharaNotifyStateflag(client.character.instanceId, (uint)client.character.state); _server.router.Send(client.map, charState); } if (skillBase > 114300 && skillBase < 114399) { Trap(client, skillId); return; } if (skillBase == 114607) { Stealth(client, skillId); return; } if (skillTarget == 0) { _Logger.Debug($"Skill requires target!! [{skillId}]"); int errorCode = -1311; RecvSkillStartCastR skillFail = new RecvSkillStartCastR(errorCode, 0); router.Send(skillFail, client); return; } ThiefSkill thiefSkill = new ThiefSkill(_server, client, skillId, skillTarget); server.instances.AssignInstance(thiefSkill); client.character.activeSkillInstance = thiefSkill.instanceId; thiefSkill.StartCast(); }