Beispiel #1
0
    /// <summary>
    /// 애니메이션 start됬을때 실행되는 함수. 기본 변수들 세팅과 등장 애니메이션을 실행해준다.
    /// </summary>
    public override void OnStart()
    {
        m_data.agent         = GetComponent <NavMeshAgent>();
        m_data.agent.enabled = false;
        m_data.target        = null;
        m_bossHpCount        = Character.m_actorUIData.bossHPPos.Length;
        m_bosshp             = CharacterTable.GetProperty(Character.name).hp;
        m_first      = true;
        m_bossTarget = GetComponent <UIBossTarget>();

        if (isactiveskill)
        {
            Character.AnimatorAction.Initialize <AnimatorActionDroneBoss>();
        }
        else
        {
            Character.AnimatorAction.Initialize <AnimatorActionBoss>();
        }

        //보스 등장 애니메이션 실행을 위한 세팅.
        Character.AnimatorAction.Action(AnimatorState.Appear, true);

        //보스 약점 부위를 나타내는 변수.
        m_bossTargetpart = 0;

        if (m_hpState.Length > 0)
        {
            m_curHpState = m_hpState[0];
        }

        //m_rigidbodys = transform.GetComponentsInChildren<Rigidbody>();

        //for (int y = 0; y < m_rigidbodys.Length; ++y)
        //{
        //    m_rigidbodys[y].useGravity = true;
        //    m_rigidbodys[y].isKinematic = true;
        //}

        //m_bossTarget.Initialize(m_target, m_colider);
        //m_bossHpBar = new UIBossHP[m_bossHpCount];

        //보스의 타겟에 hp를 띄울 장소를 설정합니다.
        for (int i = 0; i < m_bossHpCount; ++i)
        {
            //m_bossHpBar[i] = GetComponent<BossInfoBoss>().bosshpBar;
            m_bossHpBar[i]            = UIManager.Instance.Open("UIBossHP", true) as UIBossHP;
            m_bossHpBar[i].TargetInfo = Character.m_actorUIData.bossHPPos[i];
            //hp 갯수 구분을 위해서 보스 이름 설정.
            m_bossHpBar[i].Initialize();
            m_bossHpBar[i].Invisible();
            m_bossHpBar[i].HpSetup(m_bossHpCount, m_bosshp);

            //FX fx = AssetManager.FX.Retrieve("Boss_Target");
            //fx.transform.parent = m_target[i].gameObject.transform;
            //fx.transform.position = m_target[i].transform.FindChild("Boss_Target").position;
        }

        m_bosshpcorutineCommand = CoroutineManager.Instance.Register(BosstargetFlicker());
        //m_damagetestcorutineCommand = CoroutineManager.Instance.Register(Damage());
    }
Beispiel #2
0
        public void fillFields(Match match)
        {
            lblPlayer.Text = winner.PlayerName;
            CharacterTable winChar = new CharacterTable();

            foreach (KeyValuePair <Player, CharacterTable> entry in match.characterList)
            {
                if (winner == entry.Key)
                {
                    lblCharacter.Text = entry.Value.CharacterName;
                    winChar           = entry.Value;
                }
            }
            Moves move = Database.DatabaseContext.Instance.Moves.Where(foundMove => foundMove.CharacterTableId == winChar.Id).First();

            lblmove.Text  = move.MoveName;
            lblStage.Text = match.stageList.Last().StageName;
            PlayerType type = Database.DatabaseContext.Instance.PlayerType.Where(foundType => foundType.Id == winner.PlayerTypeId).First();

            lblType.Text = type.PlayerTypeName + " Player:";
            List <Player> tempList = new List <Player>();

            tempList = Database.DatabaseContext.Instance.Player.ToList();

            int?p  = Database.DatabaseContext.Instance.MatchTable.GroupBy(m => m.PlayerId).Select(m => new { Player = m.Key, TotalWins = m.Count() }).OrderByDescending(m => m.TotalWins).First().TotalWins;
            var p1 = Database.DatabaseContext.Instance.MatchTable.GroupBy(m => m.PlayerId).OrderByDescending(gp => gp.Count()).Take(1).Select(g => g.Key).ToList();

            lblMostWinsSet.Text = p.Value.ToString();

            Player player = Database.DatabaseContext.Instance.Player.Where(foundChar => foundChar.Id == p1[0]).First();

            lblMostWinName.Text = player.PlayerName;
        }
Beispiel #3
0
 public void OnDisconnect()
 {
     try
     {
         CharacterTable.Update(this);
         if (this.myMap != null && this.Client != null && this.Client.GetState() == WorldState.STATE_IN_GAME)
         {
             this.DestroyFromMap();
         }
         if (InventoryCache != null)
         {
             foreach (var item in InventoryCache.ItemsCache)
             {
                 if (item.Value.SpeakingItem != null)
                 {
                     SpeakingTable.Add(item.Value.SpeakingItem);
                     SpeakingTable.Cache.Remove(item.Value.SpeakingID);
                 }
                 InventoryItemTable.Items.Remove(item.Key);
             }
         }
         CharacterTable.DelCharacter(this);
         this.Client = null;
     }
     catch (Exception e)
     {
         Logger.Error(e);
     }
 }
Beispiel #4
0
        public static void ProcessTicketResponce(WorldClient Client, string Ticket)
        {
            var a_ticket = TicketController.GetTicket(Ticket);

            lock (ticketProcess)
            {
                if (a_ticket == null)
                {
                    Client.Send(new AccountTicketErrorMessage());
                    return;
                }
                else
                {
                    Client.Account = a_ticket.Account;
                    if (CharacterTable.myCharacterById.Values.Where(x => x.Account != null && x.Account.ID == Client.Account.ID).Count() > 0)
                    {
                        CharacterTable.myCharacterById.Values.Where(x => x.Account != null && x.GetClient() != null && x.Account.ID == Client.Account.ID).ToList().ForEach(x => x.Client.Disconnect());
                        Client.Send(new AccountTicketErrorMessage());
                        return;
                    }
                    AccountTable.UpdateLogged(Client.Account.ID, true);
                    Client.Account.Characters = CharacterTable.FindAll(Client.Account.ID);
                    Client.Account.Characters.Values.ToList().ForEach(x => x.Account = Client.Account);
                    Client.SetState(WorldState.STATE_AUTHENTIFIED);
                    Client.Send(new AccountTicketSuccessMessage());
                    TicketController.DestroyTicket(a_ticket);
                    Client.Account.loadData();
                }
            }
        }
Beispiel #5
0
        public override void Execute(WorldClient client, CommandParameters parameters)
        {
            if (parameters.Lenght > 1)
            {
                try
                {
                    var targeti = parameters.GetParameter(0);
                    var packet  = parameters.getShortParamater(1);

                    var target = CharacterTable.GetCharacter(targeti);

                    if (target == null || !target.IsOnline())
                    {
                        client.Send(new ConsoleMessage("Cible invalide !", ConsoleColorEnum.RED));
                        return;
                    }

                    target.Title = packet;

                    target.RefreshOnMap();

                    client.Send(new ConsoleMessage("Le titre a été modifié avec succès !", ConsoleColorEnum.GREEN));
                }
                catch (FormatException e)
                {
                    client.Send(new ConsoleMessage("Parametres invalide !", ConsoleColorEnum.RED));
                }
            }
            else
            {
                client.Send(new ConsoleMessage("Parametres invalide !", ConsoleColorEnum.RED));
            }
        }
Beispiel #6
0
        public override void Execute(WorldClient client, CommandParameters parameters)
        {
            var mapid      = parameters.getShortParamater(0);
            var cellid     = parameters.GetIntParameter(1);
            var toTeleport = client.Character;

            if (parameters.Lenght > 2)
            {
                var playerName = parameters.GetParameter(2);
                toTeleport = CharacterTable.GetCharacter(playerName);
            }

            if (toTeleport != null)
            {
                var NextMap = MapTable.Get(mapid);
                if (NextMap == null)
                {
                    client.Send(new ConsoleMessage("Mapid invalide"));
                    return;
                }
                toTeleport.Teleport(NextMap, cellid);
                client.Send(new ConsoleMessage("Teleportation effectuer"));
            }
            else
            {
                client.Send(new ConsoleMessage("Impossible de trouver le joueur", ConsoleColorEnum.RED));
            }
        }
Beispiel #7
0
        private static void ProcessEnnemyDeleteRequest(WorldClient Client, string Packet)
        {
            int guid = -1;

            switch (Packet[2])
            {
            case '%':
                Packet = Packet.Substring(3);
                Player p = CharacterTable.GetCharacter(Packet);
                if (p == null || !p.IsOnline())
                {
                    Client.Send(new CharacterEnnemyDeleteMessage("Ef"));
                    return;
                }
                guid = p.GetClient().Account.ID;
                break;

            case '*':
                Packet = Packet.Substring(3);
                var cible = Client.Account.Data.EnnemyList.Where(x => x.Value.Equals(Packet));

                if (cible != null && cible.Count() > 0)
                {
                    guid = cible.First().Key;
                }
                else
                {
                    Client.Send(new CharacterEnnemyDeleteMessage("Ef"));
                    return;
                }
                var ClientCibled = Network.WorldServer.Clients.First(x => x.Account != null && x.Account.ID == guid);
                if (ClientCibled.Account == null || ClientCibled.Character == null || !ClientCibled.Character.IsOnline())
                {
                    Client.Send(new CharacterEnnemyDeleteMessage("Ef"));
                    return;
                }

                guid = ClientCibled.Account.ID;
                break;

            default:
                Packet = Packet.Substring(2);
                Player Pr = CharacterTable.GetCharacter(Packet);
                if (Pr == null || !Pr.IsOnline())
                {
                    Client.Send(new CharacterEnnemyDeleteMessage("Ef"));
                    return;
                }
                guid = Pr.GetClient().Account.ID;
                break;
            }
            if (guid == -1 || !Client.Account.Data.EnnemyList.ContainsKey(guid))
            {
                Client.Send(new CharacterEnnemyDeleteMessage("Ef"));
                return;
            }
            Client.Account.Data.EnnemyList.Remove(guid);
            Client.Account.Data.Save();
            Client.Send(new EnnemyDeleteOkMessage("K"));
        }
Beispiel #8
0
 public override void Execute(WorldClient client, CommandParameters parameters)
 {
     if (parameters.Lenght > 0)
     {
         var spellid = parameters.GetIntParameter(0);
         var target  = client.Character;
         if (parameters.Lenght > 1)
         {
             if (CharacterTable.Contains(parameters.GetParameter(1)))
             {
                 target = CharacterTable.GetCharacter(parameters.GetParameter(1));
             }
         }
         if (!target.IsOnline())
         {
             client.Send(new ConsoleMessage("La Cible est deconnecté", ConsoleColorEnum.RED));
             return;
         }
         if (!SpellTable.Cache.ContainsKey(spellid))
         {
             client.Send(new ConsoleMessage("Impossible de trouver le sort n°" + spellid, ConsoleColorEnum.RED));
             return;
         }
         target.GetSpellBook().AddSpell(spellid, 6, 25, client);
         target.Send(new SpellsListMessage(target));
         client.Send(new ConsoleMessage("Le sort a été appris", ConsoleColorEnum.GREEN));
     }
     else
     {
         client.Send(new ConsoleMessage("Parametres invalide !", ConsoleColorEnum.RED));
     }
 }
Beispiel #9
0
        private void btnConfirm_Click(object sender, EventArgs e)
        {
            match.numPlayers = numPlayers;
            if (isEmpty())
            {
                lblError.Text = "Please do not leave any options empty";
                return;
            }


            int i = 1;

            foreach (ComboBox box in playerBoxes)
            {
                if (box.Visible == true)
                {
                    Player p = Database.DatabaseContext.Instance.Player.Where(foundPlayer => foundPlayer.PlayerName == box.SelectedItem.ToString()).First();
                    match.playerList.Add(p);
                    foreach (ComboBox cmbBox in characterBoxes)
                    {
                        if (box.Name.Contains(i.ToString()) && cmbBox.Name.Contains(i.ToString()))
                        {
                            CharacterTable newChar = Database.DatabaseContext.Instance.CharacterTable.Where(foundChar => foundChar.CharacterName == cmbBox.SelectedItem.ToString()).First();
                            match.addCharacter(p, newChar);
                        }
                    }
                    i++;
                }
            }
            Stage s = Database.DatabaseContext.Instance.Stage.Where(foundStage => foundStage.StageName == cmbStage.SelectedItem.ToString()).First();

            match.stageList.Add(s);
            this.Hide();
            controller.openChooseWinner(match);
        }
Beispiel #10
0
    /// <summary>
    /// 配置数据初始化
    /// </summary>
    public void Init(string vConfigText)
    {
        // 总配置转换
        TextAsset vConfigAsset = null;

        if (string.IsNullOrEmpty(vConfigText))
        {
            vConfigAsset = Resources.Load(LocalTextFilePath) as TextAsset;             // 从本地取
            vConfigText  = vConfigAsset.text;
        }
        configPackage  = JsonUtility.FromJson <GameConfig> (vConfigText);
        evidenceConfig = new EvidenceConfig(configPackage.value);
        // 读取tips
        vConfigAsset = Resources.Load(LocalTipsFilePath) as TextAsset;         // 从本地取
        vConfigText  = vConfigAsset.text;
        tipsConfig   = new TipsConfig(JsonUtility.FromJson <GameTipsConfig> (vConfigText).value);

        // Read Character Table
        vConfigAsset   = Resources.Load(LocalCharacterFilePath) as TextAsset;
        characterTable = new CharacterTable(vConfigAsset.text);

        // 内存释放
        if (vConfigAsset != null)
        {
            Resources.UnloadAsset(vConfigAsset);
        }
        isInitialized = true;
    }
Beispiel #11
0
        //http://rosalind.info/problems/ctbl/

        public CreatingACharacterTable()
        {
            var tree    = new NewickTree(File.ReadAllLines(@"C:\code\dataset.txt")[0]);
            var lexList = new List <string>(tree.Nodes.Where(n => n.HasName).Select(n => n.Name));

            lexList.Sort();

            CharacterTable.WriteCharacterTable(tree.Nodes, lexList);
        }
Beispiel #12
0
        private static void ProcessObjectUseRequest(WorldClient Client, string Packet)
        {
            int    guid       = -1;
            int    targetGuid = -1;
            int    targetCell = -1;
            Player Target     = null;

            try
            {
                String[] infos = Regex.Split(Packet.Substring(2), "\\|");
                guid = int.Parse(infos[0]);
                if (infos.Length == 3)
                {
                    targetCell = int.Parse(infos[2]);
                }
                try //try
                {
                    targetGuid = int.Parse(infos[1]);
                }
                catch (Exception e)
                {
                    targetGuid = -1;
                };
            }
            catch (Exception e)
            {
                Logger.Error(e);
                return;
            }
            if (CharacterTable.GetCharacter(targetGuid) != null)
            {
                Target = CharacterTable.GetCharacter(targetGuid);
            }
            if (!Client.Character.InventoryCache.hasItemGuid(guid))
            {
                return;
            }

            InventoryItemModel obj = InventoryItemTable.getItem(guid);
            ItemTemplateModel  T   = obj.Template;

            if (!T.Criterions.Equals("") && !ConditionParser.validConditions(Client.Character, T.Criterions))
            {
                Client.Send(new ImMessage("119|43"));
                return;
            }
            if (T.ItemType == ItemTypeEnum.ITEM_TYPE_PAIN || T.ItemType == ItemTypeEnum.ITEM_TYPE_VIANDE_COMESTIBLE)
            {
                Client.Character.myMap.SendToMap(new MapEmoticoneMessage(Client.Character.ActorId, 17));
            }
            else if (T.ItemType == ItemTypeEnum.ITEM_TYPE_BIERE)
            {
                Client.Character.myMap.SendToMap(new MapEmoticoneMessage(Client.Character.ActorId, 18));
            }
            T.applyAction(Client.Character, Target, guid, (short)targetCell);
        }
Beispiel #13
0
 public void SendGuildSettingsInfos()
 {
     if (this.ID != -1)
     {
         var chara = CharacterTable.GetCharacter(this.ID);
         if (chara != null)
         {
             chara.Send(new GuildSettingInformationMessage(this.GuildCache, StringHelper.EncodeBase36(this.Restriction)));
         }
     }
 }
Beispiel #14
0
 private static void GetPrefixCodes()
 {
     if (Root.IsLeaf())
     {
         CharacterTable.Add("1", Root.Fact);
     }
     else
     {
         PrefixCodes(Root, "");
     }
 }
Beispiel #15
0
 public Group(GroupID id, SizeOfConjugacyClasses scg, CharacterTable ct, IrreducibleRepresentations irrep, IEnumerable <FreeGroupElement> elements = null)
 {
     Id                       = id;
     Sizes                    = scg;
     Characters               = ct;
     Irreps                   = irrep;
     Representatives          = Irreps.Representatives;
     Generators               = Representatives.AllGenerators;
     NumberOfConjugacyClasses = Sizes.Count;
     NumberOfGenerators       = Generators.Count;
     Elements                 = elements == null ? null : new List <FreeGroupElement>(elements);
 }
Beispiel #16
0
        public form_monologue(ref Romio romioObj, string copyFilePath)
        {
            selectedAddress = "";
            selectedSize    = "";

            InitializeComponent();
            seperator = ": ";
            chara     = new CharacterTable(" = ");

            this.copyFilePath = copyFilePath;
            this.romioObj     = romioObj;
        }
Beispiel #17
0
        public static void Initialize()
        {
            nextPlayerGuid = CharacterTable.getNextGuid();
            nextPlayerGuid++;
            nextItemGuid = InventoryItemTable.getNextGuid();
            nextItemGuid++;
            nextGuildId = GuildTable.getNextGuid();
            nextGuildId++;
            nextMountId = MountTable.getNextGuid();
            nextMountId++;
            nextSpeakingId = SpeakingTable.getNextGuid();
            nextSpeakingId++;
            SpellTable.Load();
            ExpFloorTable.Load();
            MonsterTable.Load();
            ItemTemplateTable.Load();
            ItemTemplateTable.LoadItemActions();
            ItemSetTable.Load();
            DropTable.Load();
            TitleTable.Load();
            IObjectTemplateTable.Load();
            AreaTable.Load();
            AreaSubTable.Load();
            MapTable.Load();
            MapTable.LoadActions();
            CellActionTable.Load();
            MobGroupFixTable.Load();
            BreedTable.Load();
            NpcTemplateTable.Load();
            NpcTemplateTable.LoadPlaces();
            NpcQuestionTable.Load();
            NpcReplyTable.Load();
            ShopNpcTable.Initialize();
            GuildTable.Load();
            CharactersGuildTable.Load();
            TaxCollectorTable.Load();
            PrismeTable.Load();
            BidHouseTable.Load();
            BidHouseTable.LoadItems();
            MountParkTable.Load();
            StaticMountTable.Load();
            MountTable.Load();//TODO Dynamic load of Character mount
            ZaapTable.Load();
            ZaapiTable.Load();

            var Timer = new System.Timers.Timer(1000 * 60 * 25);

            Timer.Elapsed += delegate(object sender, ElapsedEventArgs e)
            {
                Save();
            };
            Timer.Start();
        }
    async Task AsyncLoad()
    {
        Func <bool> func = () =>
        {
            CharacterTable = new CharacterTable(characterTable);
            AbilityTable   = new AbilityTable(abilityTable);
            BuildingTable  = new BuildingTable(buildingTable);
            return(true);
        };

        isLoad = await Task.FromResult(func());
    }
Beispiel #19
0
 public void OnDisconnect()
 {
     AccountTable.UpdateLogged(ID, false);
     foreach (Player character in Characters.Values)
     {
         CharacterTable.DelCharacter(character);
     }
     if (Data != null)
     {
         Data.Save();
     }
     this.curPlayer = null;
 }
Beispiel #20
0
 private static void ProcessFollowAll(WorldClient Client, string Packet)
 {
     if (Client.GetGameAction(GameActionTypeEnum.GROUP) != null)
     {
         var  Party  = (Client.GetGameAction(GameActionTypeEnum.GROUP) as GameParty).Party;
         long pGuid2 = -1;
         if (!long.TryParse(Packet.Substring(3), out pGuid2))
         {
             Client.Send(new BasicNoOperationMessage());
             return;
         }
         var P2 = CharacterTable.GetCharacter(pGuid2);
         if (P2 == null || !P2.IsOnline())
         {
             Client.Send(new BasicNoOperationMessage());
             return;
         }
         if (Packet[2] == '+')
         {
             foreach (var T in Party.Players)
             {
                 if (T.ActorId == Client.Character.ActorId)
                 {
                     continue;
                 }
                 if (T.Follows != null)
                 {
                     T.Follows.Follower.Remove(Client.Character.ActorId);
                 }
                 T.Send(new CharacterFlagMessage(P2));
                 T.Send(new PartyFlagMessage("+" + P2.ActorId));
                 T.Follows = P2;
                 P2.Follower.Add(T.ActorId, T);
             }
         }
         else if (Packet[2] == '-')
         {
             foreach (var T in Party.Players)
             {
                 if (T.ActorId == Client.Character.ActorId)
                 {
                     continue;
                 }
                 T.Send(new CharacterDeleteFlagMessage());
                 T.Send(new PartyFlagMessage("-"));
                 T.Follows = null;
                 P2.Follower.Remove(T.ActorId);
             }
         }
     }
 }
Beispiel #21
0
            public virtual void ReadChildData(BinaryReader reader)
            {
                int x = 0;

                for (x = 0; (x < _characterTable.Count); x = (x + 1))
                {
                    CharacterTable.Add(new FontCharacterTableBlock());
                    CharacterTable[x].Read(reader);
                }
                for (x = 0; (x < _characterTable.Count); x = (x + 1))
                {
                    CharacterTable[x].ReadChildData(reader);
                }
            }
Beispiel #22
0
        private static void ProcessPartyRequest(WorldClient Client, string Packet)
        {
            Player Target = CharacterTable.GetCharacter(Packet.Substring(2));

            if (Target == null || !Target.IsOnline() || Target.isAaway)
            {
                Client.Send(new PartyErrorMessage("n"));
                return;
            }
            if (!Target.Client.CanGameAction(World.GameActionTypeEnum.GROUP))
            {
                Client.Send(new PartyErrorMessage("a"));
                return;
            }
            if (!Client.CanGameAction(GameActionTypeEnum.BASIC_REQUEST))
            {
                Client.Send(new BasicNoOperationMessage());
                return;
            }
            if (!Target.Client.CanGameAction(GameActionTypeEnum.BASIC_REQUEST))
            {
                Client.Send(new PartyErrorMessage("a"));
                return;
            }
            if (Client.GetBaseRequest() != null && Client == Client.GetBaseRequest().Requester)
            {
                Client.Send(new BasicNoOperationMessage());
                return;
            }
            if (Client.IsGameAction(World.GameActionTypeEnum.GROUP) && (Client.GetGameAction(World.GameActionTypeEnum.GROUP) as GameParty).Party.Players.Count == 8)
            {
                Client.Send(new PartyErrorMessage("f"));
                return;
            }

            var Request       = new PartyRequest(Client, Target.Client);
            var RequestAction = new GameRequest(Client.GetCharacter(), Request);

            Client.SetBaseRequest(Request);
            Target.Client.SetBaseRequest(Request);

            Client.AddGameAction(RequestAction);
            Target.Client.AddGameAction(RequestAction);

            var Message = new PartyRequestMessage(Client.Character.Name, Target.Name);

            Client.Send(Message);
            Target.Send(Message);
        }
        /// <summary>
        /// Executes the query for the specified character.
        /// </summary>
        /// <param name="characterName">The name of the character.</param>
        /// <returns>The <see cref="ICharacterTable"/> for the character with the name <paramref name="characterName"/>, or
        /// null if they do not exist.</returns>
        public ICharacterTable Execute(string characterName)
        {
            CharacterTable ret;

            using (var r = ExecuteReader(characterName))
            {
                if (!r.Read())
                {
                    return(null);
                }

                ret = new CharacterTable();
                ret.ReadValues(r);
            }

            return(ret);
        }
Beispiel #24
0
        //http://rosalind.info/problems/cstr/

        public CreatingACharacterTableFromGeneticStrings()
        {
            //This actually sorts the strings according to how they'd split if they were arranged like a trie

            List <string> inputs = File.ReadAllLines(@"C:\code\dataset.txt").ToList();
            Dictionary <KeyValuePair <int, int>, string> trie = Trie.GetTrie(inputs);
            var lexList = new List <string>();

            for (int i = 0; i < inputs.Count; i++)
            {
                lexList.Add(i.ToString());
            }

            var nodes = new List <TrieNode>();

            int  name        = 0;
            int  max         = trie.First().Key.Value;
            bool passedFirst = false;

            foreach (var item in trie)
            {
                int neighbours = trie.Count(t => t.Key.Key == item.Key.Value);

                int value = item.Key.Key;
                if (value < max)
                {
                    if (passedFirst)
                    {
                        value = max;
                    }
                    passedFirst = true;
                }

                if (neighbours == 0)
                {
                    nodes.Add(new TrieNode(item.Key.Value, value, name.ToString(), true));
                    name++;
                }
                else
                {
                    nodes.Add(new TrieNode(item.Key.Value, value, "", neighbours != 2));
                }
            }

            CharacterTable.WriteCharacterTable(nodes, lexList);
        }
Beispiel #25
0
 private static void PrefixCodes(HuffmanNode Node, string traversal)
 {
     if (Node.IsLeaf())
     {
         CharacterTable.Add(traversal, Node.Fact); return;
     }
     else
     {
         if (Node.LeftNode != null)
         {
             PrefixCodes(Node.LeftNode, traversal + "0");
         }
         if (Node.RightNode != null)
         {
             PrefixCodes(Node.RightNode, traversal + "1");
         }
     }
 }
Beispiel #26
0
 private static void PrefixCodes(Nodo Node, string Route)
 {
     if (Node.IsLeaf())
     {
         CharacterTable.Add(Node.Fact, Route);
     }
     else
     {
         if (Node.LeftNode != null)
         {
             PrefixCodes(Node.LeftNode, Route + "0");
         }
         if (Node.RightNode != null)
         {
             PrefixCodes(Node.RightNode, Route + "1");
         }
     }
 }
Beispiel #27
0
        private static void ProcessPartyLeave(WorldClient Client, string Packet)
        {
            if (!Client.IsGameAction(GameActionTypeEnum.GROUP))
            {
                Client.Send(new BasicNoOperationMessage());
                return;
            }
            var Party = (Client.GetGameAction(GameActionTypeEnum.GROUP) as GameParty).Party;

            if (Party == null)
            {
                Client.Send(new BasicNoOperationMessage());
                return;
            }
            if (Packet.Length == 2)
            {
                Party.Leave(Client.Character);
                Client.Send(new PartyLeaveMessage(""));
                Client.Send(new InconnuHelpMessage(""));
            }
            else
            {
                long guid = -1;
                if (!long.TryParse(Packet.Substring(2), out guid))
                {
                    Client.Send(new BasicNoOperationMessage());
                    return;
                }
                if (guid == -1)
                {
                    return;
                }
                var Target = CharacterTable.GetCharacter(guid);
                if (Target == null)
                {
                    Client.Send(new BasicNoOperationMessage());
                    return;
                }
                Party.Leave(Target);
                Target.Send(new PartyLeaveMessage(Client.Character.ActorId.ToString()));
                Target.Send(new InconnuHelpMessage(""));
            }
        }
Beispiel #28
0
        public static void ProcessBasicMessageRequest(WorldClient Client, string Packet)
        {
            var Data = Packet.Substring(2).Split('|');

            var Message = Data[1];

            if (Enum.IsDefined(typeof(ChatChannelEnum), (int)Data[0][0]))
            {
                var Channel = (ChatChannelEnum)Data[0][0];

                if (Client.Character.IsChatChannelEnable(Channel))
                {
                    Client.RaiseChatMessage(Channel, Message);
                }

                Client.Send(new BasicNoOperationMessage());
            }
            else
            {
                var CharacterName = Data[0];

                var Character = CharacterTable.GetCharacter(CharacterName);

                // Le personnage existe ?
                if (Character != null && Character.IsOnline())
                {
                    if (Character.Account != null && Character.Account.Data != null && Character.Account.Data.EnnemyList.ContainsKey(Client.Account.ID))
                    {
                        Client.Send(new TextInformationMessage(TextInformationTypeEnum.ERREUR, 14, Character.Name));
                        return;
                    }
                    Client.Send(new ChatChannelMessage(ChatChannelEnum.CHANNEL_PRIVATE_SEND, Character.ID, Character.Name, Message));
                    Character.Send(new ChatChannelMessage(ChatChannelEnum.CHANNEL_PRIVATE_RECIEVE, Client.Character.ID, Client.Character.Name, Message));
                }
                else
                {
                    // Personnage non trouvé.
                    Client.Send(new ChatMessageErrorMessage(ChatChannelErrorEnum.ERROR_NOT_FOUND));
                }
            }
        }
Beispiel #29
0
 public override void Execute(WorldClient client, CommandParameters parameters)
 {
     if (parameters.Lenght > 0)
     {
         int level;
         try
         {
             level = parameters.GetIntParameter(0);
         }
         catch (FormatException e)
         {
             client.Send(new ConsoleMessage("Le parametre 1 n'est pas un nombre décimal", ConsoleColorEnum.RED));
             return;
         }
         var target = client.Character;
         if (parameters.Lenght > 1)
         {
             if (CharacterTable.Contains(parameters.GetParameter(1)))
             {
                 target = CharacterTable.GetCharacter(parameters.GetParameter(1));
             }
         }
         if (!target.IsOnline())
         {
             client.Send(new ConsoleMessage("La Cible est deconnecté", ConsoleColorEnum.RED));
             return;
         }
         while (target.Level < level)
         {
             target.LevelUP();
         }
         target.Send(new AccountStatsMessage(target));
         target.Send(new CharacterNewLevelMessage(target.Level));
         target.Send(new SpellsListMessage(target));
         client.Send(new ConsoleMessage("Le niveau a été modifié", ConsoleColorEnum.GREEN));
     }
     else
     {
         client.Send(new ConsoleMessage("Parametres invalide !", ConsoleColorEnum.RED));
     }
 }
Beispiel #30
0
        public override void Execute(WorldClient client, CommandParameters parameters)
        {
            if (parameters.Lenght > 0)
            {
                int honor;
                try
                {
                    honor = parameters.GetIntParameter(0);
                }
                catch (FormatException e)
                {
                    client.Send(new ConsoleMessage("Le parametre 1 n'est pas un nombre décimal", ConsoleColorEnum.RED));
                    return;
                }
                var target = client.Character;
                if (parameters.Lenght > 1)
                {
                    if (CharacterTable.Contains(parameters.GetParameter(1)))
                    {
                        target = CharacterTable.GetCharacter(parameters.GetParameter(1));
                    }
                }
                if (!target.IsOnline())
                {
                    client.Send(new ConsoleMessage("La Cible est deconnecté", ConsoleColorEnum.RED));
                    return;
                }

                target.AddHonor(honor);
                target.RefreshOnMap();

                client.Send(new ConsoleMessage("Les points d'honneurs ont été ajouté", ConsoleColorEnum.GREEN));
            }
            else
            {
                client.Send(new ConsoleMessage("Parametres invalide !", ConsoleColorEnum.RED));
            }
        }