示例#1
0
    private static void CreateCharacter(byte Index, NetIncomingMessage Data)
    {
        byte Character = Player.EncontrarCharacter(Index, string.Empty);

        // Lê os Data
        string Name = Data.ReadString().Trim();

        // Verifica se está tudo certo
        if (Name.Length < Game.Min_Character || Name.Length > Game.Max_Character)
        {
            Sending.Alert(Index, "The character name must contain " + Game.Min_Character + " and " + Game.Max_Character + " characters.", false);
            return;
        }
        if (Name.Contains(";") || Name.Contains(":"))
        {
            Sending.Alert(Index, "Cannot contain ';' and ':' in the Character name.", false);
            return;
        }
        if (Read.Characters_Names().Contains(";" + Name + ":"))
        {
            Sending.Alert(Index, "A character with this name already exists.", false);
            return;
        }

        // Define o Character que será usado
        Lists.TempPlayer[Index].Used = Character;

        // Define os valores iniciais do Character
        Player.Character(Index).Name      = Name;
        Player.Character(Index).Level     = 1;
        Player.Character(Index).Classe    = Data.ReadByte();
        Player.Character(Index).Genre     = Data.ReadBoolean();
        Player.Character(Index).Attribute = Lists.Classe[Player.Character(Index).Classe].Attribute;
        Player.Character(Index).Map       = Lists.Classe[Player.Character(Index).Classe].Appearance_Map;
        Player.Character(Index).Direction = (Game.Location)Lists.Classe[Player.Character(Index).Classe].Appearance_Direction;
        Player.Character(Index).X         = Lists.Classe[Player.Character(Index).Classe].Appearance_X;
        Player.Character(Index).Y         = Lists.Classe[Player.Character(Index).Classe].Appearance_Y;
        for (byte i = 0; i <= (byte)Game.Vital.Amount - 1; i++)
        {
            Player.Character(Index).Vital[i] = Player.Character(Index).MaxVital(i);
        }

        // Salva a conta
        Write.Character(Name);
        Write.Player(Index);

        // Entra no Game
        Player.Entrar(Index);
    }
示例#2
0
    private static void Character_Delete(byte Index, NetIncomingMessage Data)
    {
        byte   Character = Data.ReadByte();
        string Name      = Lists.Player[Index].Character[Character].Name;

        // Verifica se o Character existe
        if (string.IsNullOrEmpty(Name))
        {
            return;
        }

        // Deleta o Character
        Sending.Alert(Index, "The character '" + Name + "' has been deleted.", false);
        Write.Characters(Read.Characters_Names().Replace(":;" + Name + ":", ":"));
        Clean.Player_Character(Index, Character);

        // Salva o Character
        Sending.Characters(Index);
        Write.Player(Index);
    }