public static void HandleGameContextCreateRequestMessage(WorldClient client, GameContextCreateRequestMessage message) { if (client.Character.IsInWorld) { client.Character.SendServerMessage("You are already Logged !"); } else { ContextHandler.SendGameContextDestroyMessage(client); ContextHandler.SendGameContextCreateMessage(client, (sbyte)(client.Character.IsInFight() ? GameContextEnum.FIGHT : GameContextEnum.ROLE_PLAY)); client.Character.RefreshStats(); client.Character.LogIn(); } }
public static void HandleGameRolePlayPlayerFightRequestMessage(WorldClient client, GameRolePlayPlayerFightRequestMessage message) { Character actor = client.Character.Map.GetActor <Character>((int)message.targetId); if (actor != null) { if (message.friendly) { FighterRefusedReasonEnum fighterRefusedReasonEnum = client.Character.CanRequestFight(actor); if (fighterRefusedReasonEnum != FighterRefusedReasonEnum.FIGHTER_ACCEPTED) { ContextHandler.SendChallengeFightJoinRefusedMessage(client, client.Character, fighterRefusedReasonEnum); } else { FightRequest fightRequest = new FightRequest(client.Character, actor); client.Character.OpenRequestBox(fightRequest); actor.OpenRequestBox(fightRequest); fightRequest.Open(); } } else { FighterRefusedReasonEnum fighterRefusedReasonEnum = client.Character.CanAgress(actor); if (fighterRefusedReasonEnum != FighterRefusedReasonEnum.FIGHTER_ACCEPTED) { ContextHandler.SendChallengeFightJoinRefusedMessage(client, client.Character, fighterRefusedReasonEnum); } else { Fight fight = Singleton <FightManager> .Instance.CreateAgressionFight(actor.Map, client.Character.AlignmentSide, actor.AlignmentSide); fight.RedTeam.AddFighter(client.Character.CreateFighter(fight.RedTeam)); fight.BlueTeam.AddFighter(actor.CreateFighter(fight.BlueTeam)); fight.StartPlacement(); } } } }
public static void HandleChallengeTargetsListRequestMessage(WorldClient client, ChallengeTargetsListRequestMessage message) { if (client.Character.Fight != null) { var challenge = client.Character.Fight.GetChallenge(message.challengeId); if (challenge != null) { var target = client.Character.Fight.GetOneFighter(challenge.TargetId); if (target != null && target.IsVisibleFor(client.Character)) { ContextHandler.SendChallengeTargetsListMessage(client, new int[1] { target.Id }, new short[1] { target.Cell.Id }); } else { ContextHandler.SendChallengeTargetsListMessage(client, new int[0], new short[0]); } } } }
public static void HandleGameMapChangeOrientationRequestMessage(WorldClient client, GameMapChangeOrientationRequestMessage message) { client.Character.Direction = (DirectionsEnum)message.direction; ContextHandler.SendGameMapChangeOrientationMessage(client.Character.CharacterContainer.Clients, client.Character); }