コード例 #1
0
 public PlayerController(Player player, SignalBus bus, PlayerStats playerStats, SceneHandler sceneHandler)
 {
     Player        = player;
     _bus          = bus;
     _playerStats  = playerStats;
     _sceneHandler = sceneHandler;
 }
コード例 #2
0
        public void EnemySpawnList(Model.Player a_player)
        {
            if (m_spawnList.Count > 0)
            {
                for (int i = 0; i < m_spawnList.Count; i++)
                {
                    if (m_spawnList[i].WaitingToSpawn())
                    {
                        m_spawnList[i].SpawnTimer--;
                    }
                    else
                    {
                        //BUGGFIX FÖR LOOTRUTOR EFTER SPAWN
                        if (m_spawnList[i] == a_player.LootTarget)
                        {
                            a_player.LootTarget = null;
                        }

                        //Skapar den nya fienden här fär att spawnen ska bli rätt.
                        MapObject mapObj   = m_spawnList[i].ThisUnit;
                        Rectangle spawnPos = new Rectangle(m_spawnList[i].SpawnPosition.X, m_spawnList[i].SpawnPosition.Y, m_spawnList[i].ThisUnit.Bounds.Width, m_spawnList[i].ThisUnit.Bounds.Height);
                        mapObj.Bounds = spawnPos;
                        Enemy enemy = new Enemy(mapObj, m_spawnList[i].Type, m_spawnList[i].UnitId, m_spawnList[i].EnemyZone);
                        m_enemies.Add(enemy);
                        m_spawnList.Remove(m_spawnList[i]);
                    }
                }
            }
        }
コード例 #3
0
 //Constructor
 public Camera(GraphicsDevice a_graphicsDevice, Model.GameModel a_gameModel)
 {
     this.m_viewPort   = a_graphicsDevice.Viewport;
     this.m_mapView    = a_graphicsDevice.Viewport.Bounds;
     this.m_currentMap = a_gameModel.CurrentMap;
     this.m_player     = a_gameModel.Player;
 }
コード例 #4
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="graphicsDevice">GraphicsDevice instance</param>
 /// <param name="gameModel">Game model instance</param>
 public Camera(GraphicsDevice graphicsDevice, Model.GameModel gameModel)
 {
     this._viewPort   = graphicsDevice.Viewport;
     this._mapView    = graphicsDevice.Viewport.Bounds;
     this._currentMap = gameModel.CurrentMap;
     this._player     = gameModel.PlayerSystem.Player;
 }
コード例 #5
0
            internal override Model ReadEntry(BinaryReaderEx br)
            {
                ModelType type = br.GetEnum32 <ModelType>(br.Position + 8);

                switch (type)
                {
                case ModelType.MapPiece:
                    var mapPiece = new Model.MapPiece(br);
                    MapPieces.Add(mapPiece);
                    return(mapPiece);

                case ModelType.Object:
                    var obj = new Model.Object(br);
                    Objects.Add(obj);
                    return(obj);

                case ModelType.Enemy:
                    var enemy = new Model.Enemy(br);
                    Enemies.Add(enemy);
                    return(enemy);

                case ModelType.Player:
                    var player = new Model.Player(br);
                    Players.Add(player);
                    return(player);

                case ModelType.Collision:
                    var collision = new Model.Collision(br);
                    Collisions.Add(collision);
                    return(collision);

                default:
                    throw new NotImplementedException($"Unimplemented model type: {type}");
                }
            }
コード例 #6
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="spriteBatch">SpriteBatch instance</param>
 /// <param name="player">Player object</param>
 /// <param name="inputHandler">InputHandler instance</param>
 /// <param name="camera">Camera instance</param>
 public WorldMap(SpriteBatch spriteBatch, Model.Player player, InputHandler inputHandler, Camera camera)
 {
     this._player       = player;
     this._spriteBatch  = spriteBatch;
     this._inputHandler = inputHandler;
     this._camera       = camera;
 }
コード例 #7
0
ファイル: MainActivity.cs プロジェクト: dwaby/Log
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate (savedInstanceState);

            // Open up a connection to the database
            string path = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "ClashLedger.db");
            m_Database = new Data.DataAccess(path);

            // Load player data
            m_Player = new Model.Player(m_Database);

            // Load some test data
            AddTestData();
            AddTestData();

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            // Setup header
            UpdateHeader();

            // Setup the list of wars
            ListView warList = FindViewById<ListView>(Resource.Id.warList);
            warList.ItemClick += OnListItemClick;
            warList.Adapter = new WarListViewAdapter(this, m_Player.Wars);
        }
コード例 #8
0
ファイル: Player.cs プロジェクト: hunj/NineChronicles
        public void Set(Model.Player model, bool updateCurrentHP)
        {
            // NOTE: InitStats()를 호출한 후에 base.Set()을 호출합니다.
            // 이는 InitStats()내에서 Inventory가 할당되기 때문입니다.
            // base.Set()에서 updateCurrentHP 파라메터가 true일 때 내부적으로 InitializeHpBar()가 호출되는데,
            // 이때 Inventory가 채워져 있어야 하기 때문입니다.
            InitStats(model);
            base.Set(model, updateCurrentHP);

            _disposablesForModel.DisposeAllAndClear();
            CharacterModel = model;

            EquipCostumes(model.Costumes);
            EquipEquipmentsAndUpdateCustomize(model.armor, model.weapon);

            if (!SpeechBubble)
            {
                SpeechBubble = Widget.Create <SpeechBubble>();
            }

            SpeechBubble.speechBreakTime = GameConfig.PlayerSpeechBreakTime;
            if (!(this is EnemyPlayer))
            {
                Widget.Find <UI.Battle>().ComboText.comboMax = CharacterModel.AttackCountMax;
            }
        }
コード例 #9
0
        /// <summary>
        /// Method for drawing dialog boxes
        /// </summary>
        /// <param name="player">Player object</param>
        private void DrawDialogBoxes(Model.Player player)
        {
            //Trigger the drawing dialog boxes
            if (player.Target != null)
            {
                if (player.Target.GetType() == Model.GameModel.FRIENDLY_NPC)
                {
                    Model.NonPlayerCharacter npc = player.Target as Model.NonPlayerCharacter;

                    if (_inputHandler.DidGetTargetedByLeftClick(_camera.VisualizeRectangle(npc.ThisUnit.Bounds)) &&
                        npc.ThisUnit.Bounds.Intersects(player.CollisionArea) && npc.CanInterract)
                    {
                        _conversation.DrawDialog = true;
                    }
                    else if (!npc.ThisUnit.Bounds.Intersects(player.CollisionArea))
                    {
                        _conversation.DrawDialog = false;
                    }

                    bool isQuestNpc = false;

                    if (npc.UnitId == _gameModel.QuestSystem.ActiveNpc)
                    {
                        isQuestNpc = true;
                    }

                    if (_conversation.DrawDialog)
                    {
                        _conversation.DrawNPCText(player.Target, isQuestNpc);
                    }
                }
            }
        }
コード例 #10
0
 public bool Hit(Model.Player target, int from, int to) // from or to = 1 left | from or to = 2 right
 {
     if (from == 1 && !this.leftHand.Dead)
     {
         if (to == 1 && !target.leftHand.Dead)
         {
             int used = target.leftHand.UsedFingers + this.leftHand.UsedFingers;
             target.leftHand = new Hand(used);
             return(true);
         }
         else if (to == 2 && !target.rightHand.Dead)
         {
             int used = target.rightHand.UsedFingers + this.leftHand.UsedFingers;
             target.rightHand = new Hand(used);
             return(true);
         }
     }
     else if (from == 2 && !this.rightHand.Dead)
     {
         if (to == 1 && !target.leftHand.Dead)
         {
             int used = target.leftHand.UsedFingers + this.rightHand.UsedFingers;
             target.leftHand = new Hand(used);
             return(true);
         }
         else if (to == 2 && !target.rightHand.Dead)
         {
             int used = target.rightHand.UsedFingers + this.rightHand.UsedFingers;
             target.rightHand = new Hand(used);
             return(true);
         }
     }
     return(false);
 }
コード例 #11
0
        internal bool UnTarget()
        {
            Model.Player player = m_gameModel.m_playerSystem.m_player;

            return((m_inputHandler.DidLeftClick() && !m_inputHandler.MouseIsOverObject && !m_inputHandler.MouseIsOverInterface) && !m_conversation.DrawDialog ||
                   !player.Target.ThisUnit.Bounds.Intersects(m_camera.GetScreenRectangle));
        }
コード例 #12
0
 public void SelectPlayer(Model.Player player)
 {
     lock (Sync)
     {
         GameServer.SelectCharacter(player.Number);
         Wait(r => r is Result.EnterWorld);
     }
 }
コード例 #13
0
 public EndCondition(bool end, Model.Player winner, int first, int second, int third)
 {
     this.end    = end;
     this.winner = winner;
     this.first  = first;
     this.second = second;
     this.third  = third;
 }
コード例 #14
0
 //Constructor
 public ItemView(Model.GameModel a_gameModel, Camera a_camera, AnimationSystem a_animationSystem)
 {
     this.m_player          = a_gameModel.Player;
     this.m_level           = a_gameModel.TMXLevel;
     this.m_camera          = a_camera;
     this.m_animationSystem = a_animationSystem;
     this.m_trampolineWatch = new Stopwatch();
 }
コード例 #15
0
ファイル: Position.cs プロジェクト: alexisjojo/ktibiax
 /// <summary>
 /// Move the Player to Defined Location.
 /// </summary>
 public void Go(Location to)
 {
     Model.Player nPlayer = new Model.Player(Connection);
     Memory.Writer.Uint(Memory.Addresses.Player.GoTo_X, to.X, 2);
     Memory.Writer.Uint(Memory.Addresses.Player.GoTo_Y, to.Y, 2);
     Memory.Writer.Uint(Memory.Addresses.Player.GoTo_Z, to.Z, 1);
     nPlayer.IsWalking = true;
 }
コード例 #16
0
 public PlayerViewModel(Model.Player player) : this()
 {
     Name              = player.Name;
     IsOnline          = player.IsOnline;
     avatar            = player.Avatar;
     SteamAvailability = player.SteamAvailability;
     SteamId           = player.SteamId;
     LastLogOff        = player.LastLogOff.ToLocalTime().ToString();
 }
コード例 #17
0
ファイル: Attack.cs プロジェクト: alexisjojo/ktibiax
        /// <summary>
        /// Attack the Defined Creature.
        /// </summary>
        public void Creature(Creature target)
        {
            Model.Player nPlayer = new Model.Player(Connection);
            nPlayer.Target = target;

            PacketBuilder Builder = new PacketBuilder(0xA1, connection);
            Builder.Append(target.Id);
            Connection.Send(Builder.GetPacket());
        }
コード例 #18
0
        public IActionResult Create([FromBody] string name)
        {
            var e = new Model.Player()
            {
                Name = name, Points = 0
            };

            _service.AddPlayer(e);
            return(new NoContentResult());
        }
コード例 #19
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="spriteBatch">SpriteBatch instance</param>
        /// <param name="activeSpells">List of activ spells</param>
        /// <param name="player">Player object</param>
        /// <param name="questSystem">QuestSystem instance</param>
        /// <param name="camera">Camera instance</param>
        public ActionBar(SpriteBatch spriteBatch, List <Model.Spell> activeSpells, Model.Player player, Model.QuestSystem questSystem, Camera camera)
        {
            this._spriteBatch = spriteBatch;
            this._camera      = camera;
            this._player      = player;
            this._questSystem = questSystem;

            this._barPosition  = new Vector2[7];
            this._activeSpells = activeSpells;
        }
コード例 #20
0
ファイル: Player.cs プロジェクト: onesweetmullet/BattlePets
        public static void UpdatePlayer(string playerUserName, string playerName)
        {
            Model.Player _player = new Model.Player();
            _player.PlayerID = 1;
            _player.PlayerUsername = playerUserName;
            _player.PlayerName = playerName;
            _player.PlayerCreated = new DateTime(1970,1,1);
            _player.PlayerLastActive = DateTime.Now;

            SetPlayer(_player);
        }
コード例 #21
0
        public static Model.Player ConvertToPlayer(ProfileModel model)
        {
            var converted = new Model.Player()
            {
                UserName      = model.Username,
                HashId        = model.UserHashId,
                Picture       = model.Picture,
                PrincessTitle = model.PrincessTitle,
            };

            return(converted);
        }
コード例 #22
0
 public Model.Player getupdate(int?id)
 {
     try
     {
         DataContext  db = new DataContext();
         Model.Player q  = db.Players.SingleOrDefault(z => z.ID == id);
         return(q);
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #23
0
 public UnitView(Model.GameModel a_gameModel, SpriteBatch a_spriteBatch, Camera a_camera, InputHandler a_inputHandler, AnimationSystem a_animationSystem, View.Conversation a_conversation)
 {
     this.m_player          = a_gameModel.m_playerSystem.m_player;
     this.m_enemies         = a_gameModel.m_enemySystem.m_enemies;
     this.m_deadEnemies     = a_gameModel.m_enemySystem.m_spawnList;
     this.m_friends         = a_gameModel.m_friendSystem.m_friends;
     this.m_questSystem     = a_gameModel.m_questSystem;
     this.m_camera          = a_camera;
     this.m_spriteBatch     = a_spriteBatch;
     this.m_inputHandler    = a_inputHandler;
     this.m_animationSystem = a_animationSystem;
     this.m_conversation    = a_conversation;
 }
コード例 #24
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="gameModel">GameModel instance</param>
 /// <param name="spriteBatch">SpriteBatch instance</param>
 /// <param name="camera">Camera instance</param>
 /// <param name="inputHandler">InputHandler instance</param>
 /// <param name="animationSystem">AnimationSystem instance</param>
 /// <param name="dialog">Dialog instance</param>
 public UnitView(Model.GameModel gameModel, SpriteBatch spriteBatch, Camera camera, InputHandler inputHandler, AnimationSystem animationSystem, View.Dialog dialog)
 {
     this._player              = gameModel.PlayerSystem.Player;
     this._enemies             = gameModel.EnemySystem.Enemies;
     this._deadEnemies         = gameModel.EnemySystem.SpawnList;
     this._nonPlayerCharacters = gameModel.NpcSystem.NonPlayerCharacters;
     this._questSystem         = gameModel.QuestSystem;
     this._camera              = camera;
     this._spriteBatch         = spriteBatch;
     this._inputHandler        = inputHandler;
     this._animationSystem     = animationSystem;
     this._conversation        = dialog;
 }
コード例 #25
0
ファイル: frmMain.cs プロジェクト: felipemfp/king-of-numbers
        public frmMain()
        {
            InitializeComponent();
            player1 = new Model.Player("João");
            player2 = new Model.Player("Caetano");

            currentPlayer = 1;

            lbl1Name.Text = player1.Name;
            lbl2Name.Text = player2.Name;

            Update();
        }
コード例 #26
0
 private void deletePlayerToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (playerCount != 0)
     {
         player      = new Model.Player();
         playerCount = 0;
         MessageBox.Show("Player Deleted !", "Player Deletion", MessageBoxButtons.OK);
     }
     else
     {
         MessageBox.Show("There is no player to delete !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
コード例 #27
0
            internal override Model ReadEntry(BinaryReaderEx br)
            {
                ModelType type = br.GetEnum32 <ModelType>(br.Position + 8);

                switch (type)
                {
                case ModelType.MapPiece:
                    var mapPiece = new Model.MapPiece(br);
                    MapPieces.Add(mapPiece);
                    return(mapPiece);

                case ModelType.Object:
                    var obj = new Model.Object(br);
                    Objects.Add(obj);
                    return(obj);

                case ModelType.Enemy:
                    var enemy = new Model.Enemy(br);
                    Enemies.Add(enemy);
                    return(enemy);

                // Potential from mistake in m36 :trashcat:
                case ModelType.Item:
                    var item = new Model.Item(br);
                    Items.Add(item);
                    return(item);

                case ModelType.Player:
                    var player = new Model.Player(br);
                    Players.Add(player);
                    return(player);

                case ModelType.Collision:
                    var collision = new Model.Collision(br);
                    Collisions.Add(collision);
                    return(collision);

                case ModelType.Navmesh:
                    var navmesh = new Model.Navmesh(br);
                    Navmeshes.Add(navmesh);
                    return(navmesh);

                case ModelType.Other:
                    var other = new Model.Other(br);
                    Others.Add(other);
                    return(other);

                default:
                    throw new NotImplementedException($"Unsupported model type: {type}");
                }
            }
コード例 #28
0
        public void writeCurrentUserLine(Model.Player player)
        {
            if (String.Compare(player.getColor(), "whitePlayer") == 0)
            {
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("White Player : " + player.getName());
            }

            else
            {
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine("Black Player : " + player.getName());
            }
        }
コード例 #29
0
 public bool setupdate(int?id, int teamID)
 {
     try
     {
         DataContext  db = new DataContext();
         Model.Player q  = db.Players.SingleOrDefault(z => z.ID == id);
         q.IDTeam = teamID;
         db.SaveChanges();
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
コード例 #30
0
        public int predictRank(Model.Player player)
        {
            inputLayer.process(player.myValues);

            this.hiddenLayers[0].process(inputLayer.Output);

            for (int j = 1; j < this.nbHiddenLayers; j++)
            {
                this.hiddenLayers[j].process(this.hiddenLayers[j - 1].Output);
            }

            this.outputLayer.process(this.hiddenLayers[this.nbHiddenLayers - 1].Output);

            return((int)Math.Round(this.outputLayer.Output[0] * (Model.Player.NB_RANKS - 1) / Params.OUTPUT_MULTIPLIER) + 1);
        }
コード例 #31
0
            internal override Model ReadEntryBB(BinaryReaderEx br)
            {
                ModelType type = br.GetEnum32 <ModelType>(br.Position + 8);

                switch (type)
                {
                case ModelType.MapPiece:
                    var mapPiece = new Model.MapPiece(br, MSBVersion.MSBVersionBB);
                    MapPieces.Add(mapPiece);
                    return(mapPiece);

                case ModelType.Object:
                    var obj = new Model.Object(br, MSBVersion.MSBVersionBB);
                    Objects.Add(obj);
                    return(obj);

                case ModelType.Enemy:
                    var enemy = new Model.Enemy(br, MSBVersion.MSBVersionBB);
                    Enemies.Add(enemy);
                    return(enemy);

                case ModelType.Item:
                    var enemy2 = new Model.Enemy(br);
                    Enemies.Add(enemy2);
                    return(enemy2);

                case ModelType.Player:
                    var player = new Model.Player(br, MSBVersion.MSBVersionBB);
                    Players.Add(player);
                    return(player);

                case ModelType.Collision:
                    var collision = new Model.Collision(br, MSBVersion.MSBVersionBB);
                    Collisions.Add(collision);
                    return(collision);

                /*
                 * case ModelType.Other:
                 * var other = new Model.Other(br);
                 * Others.Add(other);
                 * return other;
                 */
                default:
                    return(null);

                    //throw new NotImplementedException($"Unsupported model type: {type}");
                }
            }
コード例 #32
0
        //Metod för utritning av Items på kartan samt sättande spelarens Itemtarget
        private void DrawItems(float a_elapsedTime)
        {
            List <Model.Item> items = m_gameModel.m_itemSystem.m_items;

            Model.Player player = m_gameModel.m_playerSystem.m_player;

            foreach (Model.Item item in items)
            {
                if (m_inputHandler.MouseIsOver(m_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                {
                    m_inputHandler.MouseIsOverLoot = true;
                }

                //Kontrollerar om spelaren har targetat ett item.
                if (m_inputHandler.DidGetTargetedByLeftClick(m_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                {
                    player.ItemTarget = item;
                }

                if (player.ItemTarget == item)
                {
                    if (m_inputHandler.DidGetTargetedByLeftClick(m_camera.VisualizeRectangle(item.ThisItem.Bounds)) &&
                        player.ItemTarget.ThisItem.Bounds.Intersects(player.CollisionArea) && !m_lootWatch.IsRunning)
                    {
                        item.WasLooted = true;
                    }
                    else
                    {
                        item.WasLooted = false;
                    }
                }

                if (item.GetType() == Model.GameModel.ARMOR)
                {
                    Model.Armor Armor = item as Model.Armor;

                    if (Armor.Type == Model.Armor.HEAD_ARMOR)
                    {
                        Vector2 position      = m_camera.VisualizeCordinates(Armor.ThisItem.Bounds.Location.X, Armor.ThisItem.Bounds.Location.Y);
                        int     itemAnimation = 0;

                        itemAnimation = AnimationSystem.FACING_CAMERA;

                        m_animationSystem.UpdateAndDraw(a_elapsedTime, Color.White, position, itemAnimation, AnimationSystem.ITEM_PURPLE_CHEST);
                    }
                }
            }
        }
コード例 #33
0
        public UIView(SpriteBatch a_spriteBatch, Camera a_camera, InputHandler a_inputHandler, Model.GameModel a_gameModel, Conversation a_conversation)
        {
            this.m_spriteBatch  = a_spriteBatch;
            this.m_keyPositions = new Vector2[7];
            this.m_camera       = a_camera;

            this.m_inputHandler = a_inputHandler;
            this.m_activeSpells = a_gameModel.m_playerSystem.m_spellSystem.ActiveSpells;
            this.m_player       = a_gameModel.m_playerSystem.m_player;
            this.m_questSystem  = a_gameModel.m_questSystem;
            this.m_worldItems   = a_gameModel.m_itemSystem.m_items;
            this.m_currentMap   = a_gameModel.m_level.CurrentMap();

            this.m_rightClickWatch = new Stopwatch();
            this.m_conversation    = a_conversation;
        }
コード例 #34
0
        /// <summary>
        /// Method for drawing of map Items as well as setting the players item targets
        /// </summary>
        /// <param name="elapsedTime">Elapsed time in milleseconds</param>
        private void DrawItems(float elapsedTime, Model.Player player)
        {
            List <Model.Item> items = _gameModel.ItemSystem._items;

            foreach (Model.Item item in items)
            {
                if (_inputHandler.MouseIsOver(_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                {
                    _inputHandler.MouseIsOverLoot = true;
                }

                //Checks if the player targeted an item
                if (_inputHandler.DidGetTargetedByLeftClick(_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                {
                    player.ItemTarget = item;
                }

                if (player.ItemTarget == item)
                {
                    if (_inputHandler.DidGetTargetedByLeftClick(_camera.VisualizeRectangle(item.ThisItem.Bounds)) &&
                        player.ItemTarget.ThisItem.Bounds.Intersects(player.CollisionArea) && !_lootWatch.IsRunning)
                    {
                        item.WasLooted = true;
                    }
                    else
                    {
                        item.WasLooted = false;
                    }
                }

                if (item.GetType() == Model.GameModel.ARMOR)
                {
                    Model.Armor Armor = item as Model.Armor;

                    if (Armor.Type == Model.Armor.HEAD_ARMOR)
                    {
                        Vector2     position      = _camera.VisualizeCordinates(Armor.ThisItem.Bounds.Location.X, Armor.ThisItem.Bounds.Location.Y);
                        Model.State itemAnimation = 0;

                        itemAnimation = Model.State.FACING_CAMERA;

                        _animationSystem.UpdateAndDraw(elapsedTime, Color.White, position, itemAnimation, AnimationSystem.Texture.ITEM_PURPLE_CHEST);
                    }
                }
            }
        }
コード例 #35
0
 private void ParsePlayersInfo(Response response)
 {
     if (response != null)
     {
         // Strip header
         byte header = response.GetNextByte();
         if (header == ResponseHeader)
         {
             byte numberOfPlayers = response.GetNextByte();
             for (byte i = 0; i < numberOfPlayers; i++)
             {
                 var player = new Model.Player();
                 player.Index = response.GetNextByte();
                 player.Name = response.GetNextString();
                 player.Score = response.GetNextInt();
                 player.Duration = TimeSpan.FromSeconds(response.GetNextFloat());
                 _ServerModel.Players.Add(player);
             }
         }
         else
             throw new ArgumentException("Expect 0x44");
     }
 }
コード例 #36
0
ファイル: Menus.cs プロジェクト: amrufathy/EscapeRunner
 private void deletePlayerToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (playerCount != 0)
     {
         player = new Model.Player();
         playerCount = 0;
         MessageBox.Show("Player Deleted !", "Player Deletion", MessageBoxButtons.OK);
     }
     else
     {
         MessageBox.Show("There is no player to delete !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
コード例 #37
0
        private void Init()
        {
            // add event handlers
            pbMap.MouseDown += new MouseEventHandler(mapPicBox_MouseDown);
            pbMap.MouseMove += new MouseEventHandler(mapPicBox_MouseMove);
            pbMap.MouseHover += new EventHandler(mapPicBox_MouseHover);
            pbMap.MouseUp += new MouseEventHandler(mapPicBox_MouseUp);
            this.KeyDown += new KeyEventHandler(MapEditor_KeyDown);
            this.KeyPreview = true;
            FormClosing += new FormClosingEventHandler(MapEditor_FormClosing);

            // create tooltips for tools
            ToolTip toolTips = new ToolTip();
            toolTips.AutoPopDelay = 5000;
            toolTips.InitialDelay = 1000;
            toolTips.ReshowDelay = 500;
            toolTips.ShowAlways = true;
            toolTips.SetToolTip(btnToolSelection, "Selection(S)");
            toolTips.SetToolTip(btnToolBrush, "Brush(B)");
            toolTips.SetToolTip(btnToolEraser, "Eraser(E)");
            toolTips.SetToolTip(btnToolFill, "Fill(F)");
            toolTips.SetToolTip(btnToolSelectTile, "Select Tile(T)");

            // initialized some variables
            grid_on = true;
            show_walkable_on = false;
            isIsometric = false;
            choosingPlayer = false;
            choosingPlayer = false;
            choosingBomb = false;
            choosingCoin = false;
            choosingBullet = false;

            selected_tile = null;
            selection = new Controller.SelectionTool();

            // select brush as default tool
            SelectTool(ToolType.selection);

            backup_map = new Model.Map();

            undo = new Stack<Model.HistoryNode>();
            undoToolStripMenuItem.Enabled = false;

            redo = new Stack<Model.HistoryNode>();
            redoToolStripMenuItem.Enabled = false;

            clipboard = new Model.Clipboard();
            pasteToolStripMenuItem.Enabled = false;

            saveMapToolStripMenuItem.Enabled = false;

            tile_library = new Model.Tile[0];

            playerCount = 0;
            monstersCount = 0;
            bombsCount = 0;
            coinsCount = 0;
            bulletsCount = 0;

            player = new Model.Player();
            monsters = new List<Model.Monster>();
            bombs = new List<Model.Bomb>();
            coins = new List<Model.CoinGift>();
            bullets = new List<Model.BulletGift>();

            codesGenerator = new Controller.CodesGenerator(map, map_name, map_width, map_height,
                tile_library, tile_width, tile_height,
                tbCode,
                player, monsters, coins, bullets, bombs);
        }
コード例 #38
0
        public void ClearMovables()
        {
            PlayerR = new Model.Player(true); //TODO Choose AI players
            PlayerG = new Model.Player(false);
            PlayerY = new Model.Player(false);
            PlayerB = new Model.Player(false);

            Forests = new List<Model.Forest>();
            Barricades = new List<Model.Barricade>();
            SelectableFields = new List<Model.Field>();
            SelectablePawns = new List<Model.Pawn>();

            SelectedBarricade = null;
            SelectedPawn = null;
        }
コード例 #39
0
ファイル: Api.cs プロジェクト: EligiusSantori/L2Apf.NET
		private void GameMainThread()
		{
			Packet.Packet packet = null;
			while (State >= State.Begun)
			{
				lock (IdleLock)
				{
					packet = Network.Read();
					if (packet == null)
					{
						IsIdle = true;
						Monitor.Wait(IdleLock);
						continue;
					}
				}

				if (packet is Packet.Server.KeyPacket)
				{
					var _packet = packet as Packet.Server.KeyPacket;
					Network.Crypt(_packet.Key);
				}
				else if (packet is Packet.Server.CharSelectInfo)
				{
					var _packet = packet as Packet.Server.CharSelectInfo;
					State = State.Lobby;

					if (Connected != null && _packet.List != null)
						Connected(_packet.List);
				}
				else if (packet is Packet.Server.CharMoveToLocation)
				{
					var _packet = packet as Packet.Server.CharMoveToLocation;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.Destination = _packet.Destination;
						creature.MoveTarget = 0;
						if (_packet.Position == _packet.Destination)
						{
							creature.IsMoving = false;
							if (FinishMoving != null)
								FinishMoving(creature);
						}
						else
						{
							creature.IsMoving = true;
							creature.LastMoveTime = System.DateTime.Now;
							if (StartMoving != null)
								StartMoving(creature);
						}
					}
					else
					{
						Logger.Warn("Creature not found");
					}
				}
				else if (packet is Packet.Server.CharInfo)
				{
					var _packet = packet as Packet.Server.CharInfo;
					var character = World[_packet.ObjectId] as Model.OtherPlayer;
					if (character == null)
						World.Add(character = new Model.OtherPlayer()
						{
							ObjectId = _packet.ObjectId
						});

					// mapping Packet => CharInfo
					character.Position = _packet.Position;
					character.Heading = _packet.Heading;
					character.ObjectId = _packet.ObjectId;
					character.Name = _packet.Name;
					character.Race = _packet.Race;
					character.Gender = _packet.Gender;
					character.ClassId = _packet.Class;
					character.Equipment = new Model.Equipment()
					{
						Underwear = _packet.Underwear,
						Head = _packet.Head,
						RightHand = _packet.RightHand,
						LeftHand = _packet.LeftHand,
						Gloves = _packet.Gloves,
						Chest = _packet.Chest,
						Legs = _packet.Legs,
						Feet = _packet.Feet,
						Back = _packet.Back,
						BothHand = _packet.BothHand,
						Hair = _packet.Hair,
					};
					character.InPvP = _packet.IsPvP;
					character.Karma = _packet.Karma;
					character.MAtkSpd = _packet.MAttackSpeed;
					character.PAtkSpd = _packet.PAttackSpeed;
					character.RunSpd = _packet.RunSpeed;
					character.WalkSpd = _packet.WalkSpeed;
					character.SwimRunSpd = _packet.SwimRunSpeed;
					character.SwimWalkSpd = _packet.SwimWalkSpeed;
					character.FlRunSpd = _packet.FlRunSpeed;
					character.FlWalkSpd = _packet.FlWalkSpeed;
					character.FlyRunSpd = _packet.FlyRunSpeed;
					character.FlyWalkSpd = _packet.FlyWalkSpeed;
					character.MoveSpdMult = _packet.MoveSpeedMult;
					character.AtkSpdMult = _packet.AttackSpeedMult;
					character.CollisionRadius = _packet.CollisionRadius;
					character.CollisionHeight = _packet.CollisionHeight;
					character.HairStyle = _packet.HairSytle;
					character.HairColor = _packet.HairColor;
					character.FaceType = _packet.FaceType;
					character.Title = _packet.Title;
					character.ClanId = _packet.ClanId;
					character.ClanCrestId = _packet.ClanCrestId;
					character.AllyId = _packet.AllyId;
					character.AllyCrestId = _packet.AllyCrestId;
					//ch_inf.SiegeFlags = cip.SiegeFlags;
					character.IsSitting = !_packet.IsStanding;
					character.IsRunning = _packet.IsRunning;
					character.IsInCombat = _packet.IsInCombat;
					character.IsAlikeDead = _packet.IsAlikeDead;
					character.IsInvisible = _packet.IsInvisible;
					character.MountType = _packet.MountType;
					character.PrivateStore = _packet.PrivateStore;
					character.Cubics = _packet.Cubics.Cast<int>().ToList<int>();
					character.IsFindParty = _packet.IsFindParty;
					character.AbnormalEffects = _packet.AbnormalEffects;
					character.RecLeft = _packet.RecommendLeft;
					character.RecAmount = _packet.RecommendAmount;
					character.MaxCp = _packet.MaxCp;
					character.Cp = _packet.Cp;
					character.Enchant = _packet.EnchantAmount;
					character.TeamCircle = _packet.TeamCircle;
					character.LargeCrestId = _packet.ClanLargeCrestId;
					character.IsHeroIcon = _packet.IsHeroIcon;
					character.IsHeroGlow = _packet.IsHeroGlow;
					character.IsFishing = _packet.IsFishing;
					character.Fish = _packet.Fish;
					character.NameColor = _packet.NameColor;

					if (CreatureInfo != null)
						CreatureInfo(character);
				}
				else if (packet is Packet.Server.UserInfo)
				{
					var _packet = packet as Packet.Server.UserInfo;
					Model.Player me = World.Me;
					if (me == null)
						World.Add(World.Me = me = new Model.Player());

					// mapping Packet => Model.Player
					me.Name = _packet.Name;
					me.Title = _packet.Title;
					me.Heading = _packet.Heading;
					me.ObjectId = _packet.ObjectId;
					me.NameColor = _packet.NameColor;
					me.Race = _packet.Race;
					me.ClassId = _packet.ClassId;
					me.BaseClassId = _packet.BaseClassId;
					me.Gender = _packet.Gender;
					me.MountType = _packet.MountType;
					me.PrivateStore = _packet.PrivateStore;
					me.ClanId = _packet.ClanId;
					me.ClanCrestId = _packet.ClanCrestId;
					me.AllyId = _packet.AllyId;
					me.AllyCrestId = _packet.AllyCrestId;
					me.LargeCrestId = _packet.LargeCrestId;
					me.MoveSpdMult = _packet.MoveSpdMult;
					me.AtkSpdMult = _packet.AtkSpdMult;
					me.CollisionRadius = _packet.CollisionRadius;
					me.CollisionHeight = _packet.CollisionHeight;
					me.HairStyle = _packet.HairStyle;
					me.HairColor = _packet.HairColor;
					me.FaceType = _packet.FaceType;
					me.Level = _packet.Level;
					me.MaxHp = _packet.MaxHp;
					me.Hp = _packet.Hp;
					me.MaxMp = _packet.MaxMp;
					me.Mp = _packet.Mp;
					me.MaxCp = _packet.MaxCp;
					me.Cp = _packet.Cp;
					me.Xp = _packet.Xp;
					me.Sp = _packet.Sp;
					me.Load = _packet.Load;
					me.MaxLoad = _packet.MaxLoad;
					me.PvP = _packet.PvP;
					me.Pk = _packet.Pk;
					me.PAtk = _packet.PAtk;
					me.PAtkSpd = _packet.PAtkSpd;
					me.PDef = _packet.PDef;
					me.Evasion = _packet.Evasion;
					me.Accuracy = _packet.Accuracy;
					me.Focus = _packet.Focus;
					me.MAtk = _packet.MAtk;
					me.MAtkSpd = _packet.MAtkSpd;
					me.MDef = _packet.MDef;
					me.Karma = _packet.Karma;
					me.RunSpd = _packet.RunSpd;
					me.WalkSpd = _packet.WalkSpd;
					me.SwimRunSpd = _packet.SwimRunSpd;
					me.SwimWalkSpd = _packet.SwimWalkSpd;
					me.FlRunSpd = _packet.FlRunSpd;
					me.FlWalkSpd = _packet.FlWalkSpd;
					me.FlyRunSpd = _packet.FlyRunSpd;
					me.FlyWalkSpd = _packet.FlyWalkSpd;
					me.InPvP = _packet.InPvP;
					me.IsFishing = _packet.IsFishing;
					me.IsHeroIcon = _packet.IsHeroIcon;
					me.IsHeroGlow = _packet.IsHeroGlow;
					me.IsFindParty = _packet.IsFindParty;
					me.IsClanLeader = _packet.IsClanLeader;
					me.HasDwarfCraft = _packet.HasDwarfCraft;
					me.Position = _packet.Position;
					me.Fish = _packet.Fish;
					me.INT = _packet.INT;
					me.STR = _packet.STR;
					me.CON = _packet.CON;
					me.MEN = _packet.MEN;
					me.DEX = _packet.DEX;
					me.WIT = _packet.WIT;

					((Model.Character)me).Equipment = new Model.Equipment()
					{
						Underwear = _packet.Underwear.ItemId,
						RightEaring = _packet.RightEaring.ItemId,
						LeftEaring = _packet.LeftEaring.ItemId,
						Neck = _packet.Neck.ItemId,
						RightFinger = _packet.RightFinger.ItemId,
						LeftFinger = _packet.LeftFinger.ItemId,
						Head = _packet.Head.ItemId,
						RightHand = _packet.RightHand.ItemId,
						LeftHand = _packet.LeftHand.ItemId,
						Gloves = _packet.Gloves.ItemId,
						Chest = _packet.Chest.ItemId,
						Legs = _packet.Legs.ItemId,
						Feet = _packet.Feet.ItemId,
						Back = _packet.Back.ItemId,
						BothHand = _packet.BothHand.ItemId,
						Hair = _packet.Hair.ItemId,
					};

					me.Equipment = new Model.Equipment()
					{
						Underwear = _packet.Underwear.ObjectId,
						RightEaring = _packet.RightEaring.ObjectId,
						LeftEaring = _packet.LeftEaring.ObjectId,
						Neck = _packet.Neck.ObjectId,
						RightFinger = _packet.RightFinger.ObjectId,
						LeftFinger = _packet.LeftFinger.ObjectId,
						Head = _packet.Head.ObjectId,
						RightHand = _packet.RightHand.ObjectId,
						LeftHand = _packet.LeftHand.ObjectId,
						Gloves = _packet.Gloves.ObjectId,
						Chest = _packet.Chest.ObjectId,
						Legs = _packet.Legs.ObjectId,
						Feet = _packet.Feet.ObjectId,
						Back = _packet.Back.ObjectId,
						BothHand = _packet.BothHand.ObjectId,
						Hair = _packet.Hair.ObjectId,
					};

					me.RecLeft = _packet.RecLeft;
					me.RecAmount = _packet.RecAmount;
					me.InventoryLimit = _packet.InventoryLimit;
					me.SpecialEffects = _packet.SpecialEffects;
					me.AbnormalEffects = _packet.AbnormalEffects;
					me.AccessLevel = _packet.AccessLevel;
					me.Enchant = _packet.Enchant;
					me.TeamCircle = _packet.TeamCircle;
					me.Cubics = _packet.Cubics;

					if (!World.Contains(World.Me.ObjectId))
						World.Add(World.Me);

					// Run event
					if (CreatureInfo != null)
						CreatureInfo(World.Me);
				}
				else if (packet is Packet.Server.Attack)
				{
					var _packet = packet as Packet.Server.Attack;
					int attackerId = _packet.AttackerId;
					int targetId = _packet.Hits[0].TargetId;

					//lets check who is attacking what and set things as needed
					var creature = World[attackerId] as Model.Creature;
					if (creature != null)
					{
						if (creature.TargetId == 0)
							creature.TargetId = targetId;
						creature.IsInCombat = true;

						if (Attack != null)
							Attack(creature);
					}
				}
				else if (packet is Packet.Server.Die)
				{
					var _packet = packet as Packet.Server.Die;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.Destination = creature.Position;
						creature.IsAlikeDead = true;
						creature.IsMoving = false;

						var npc = creature as Model.Npc;
						if (npc != null)
							npc.IsSpoiled = _packet.IsSpoiled;

						if (Die != null)
							Die(creature, creature == World.Me ?
								(Lineage.ReturnPoint?)_packet.Points : null);
					}
				}
				else if (packet is Packet.Server.Revive)
				{
					var _packet = packet as Packet.Server.Revive;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.IsAlikeDead = false;

						if (Revive != null)
							Revive(creature);
					}
				}
				else if (packet is Packet.Server.SpawnItem)
				{
					var _packet = packet as Packet.Server.SpawnItem;
					var item = World[_packet.ObjectId] as Model.Item;
					if (item == null)
						World.Add(item = new Model.Item()
						{
							ObjectId = _packet.ObjectId
						});

					item.ItemId = _packet.ItemId;
					item.Count = _packet.Count;
					item.Position = _packet.Position;
					item.IsStackable = _packet.IsStackable;

					if (ItemInfo != null)
						ItemInfo(item);
				}
				else if (packet is Packet.Server.DropItem)
				{
					var _packet = packet as Packet.Server.DropItem;
					var item = World[_packet.ObjectId] as Model.Item;
					if (item == null)
						World.Add(item = new Model.Item()
						{
							ObjectId = _packet.ObjectId
						});

					item.DroppedBy = _packet.DroppedBy;
					item.ItemId = _packet.ItemId;
					item.Position = _packet.Position;
					item.IsStackable =_packet.IsStackable;
					item.Count = _packet.Count;

					if (ItemInfo != null)
						ItemInfo(item);
				}
				else if (packet is Packet.Server.GetItem)
				{
					var _packet = packet as Packet.Server.GetItem;
					var item = World[_packet.ObjectId] as Model.Item;
					var creature = World[_packet.PlayerId] as Model.Creature;

					if (item != null)
					{
						if (Pickup != null)
							Pickup(item, creature, _packet.Position);

						if (creature != World.Me)
							World.Remove(item);
					}
				}
				else if (packet is Packet.Server.StatusUpdate)
				{
					var _packet = packet as Packet.Server.StatusUpdate;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						var me = World.Me;

						foreach (var pair in _packet.Attributes)
						{
							int key = pair.Key;
							int value = pair.Value;
							switch (key) // ToDo enum
							{
								case 0x01: creature.Level = value; break;
								case 0x02: me.Xp = value; break;
								case 0x03: me.STR = value; break;
								case 0x04: me.DEX = value; break;
								case 0x05: me.CON = value; break;
								case 0x06: me.INT = value; break;
								case 0x07: me.WIT = value; break;
								case 0x08: me.MEN = value; break;
								case 0x09: creature.Hp = value; break;
								case 0x0A: creature.MaxHp = value; break;
								case 0x0B: creature.Mp = value; break;
								case 0x0C: creature.MaxMp = value; break;
								case 0x0D: me.Sp = value; break;
								case 0x0E: me.Load = value; break;
								case 0x0F: me.MaxLoad = value; break;
								case 0x11: me.PAtk = value; break;
								case 0x12: creature.PAtkSpd = value; break;
								case 0x13: me.PDef = value; break;
								case 0x14: me.Evasion = value; break;
								case 0x15: me.Accuracy = value; break;
								case 0x16: me.Focus = value; break;
								case 0x17: me.MAtk = value; break;
								case 0x18: creature.MAtkSpd = value; break;
								case 0x19: me.MDef = value; break;
								case 0x1A: ((Model.Character)creature).InPvP = value != 0; break;
								case 0x1B: ((Model.Character)creature).Karma = value; break;
								case 0x21: creature.Cp = value; break;
								case 0x22: creature.MaxCp = value; break;
							}
						}

						if (CreatureUpdate != null)
							CreatureUpdate(creature);
					}
				}
				else if (packet is Packet.Server.NpcHtmlMessage)
				{
					var _packet = packet as Packet.Server.NpcHtmlMessage;
					//NPC_Chat.Npc_Chat(hmp.MessageId, hmp.Content);
				}
				else if (packet is Packet.Server.DeleteObject)
				{
					var _packet = packet as Packet.Server.DeleteObject;
					Model.Object obj = World[_packet.ObjectId];
					if (obj != null)
					{
						World.Remove(obj);

						if (ObjectRemoved != null)
							ObjectRemoved(obj);
					}
					else
						Logger.Warn("Object Removed, but not found");
				}
				else if (packet is Packet.Server.CharSelected)
				{
					var _packet = packet as Packet.Server.CharSelected;
					Model.Player me = World.Me;
					if (me == null)
						World.Add(World.Me = me = new Model.Player());

					// mapping Packet => Model.Player
					me.Name = _packet.Name;
					me.Title = _packet.Title;
					me.ObjectId = _packet.ObjectId;
					me.SessionId = _packet.SessionId;
					me.Position = _packet.Position;
					me.Gender = _packet.Gender;
					me.Race = _packet.Race;
					me.BaseClassId = _packet.BaseClassId;
					me.Hp = _packet.Hp;
					me.Mp = _packet.Mp;
					me.Sp = _packet.Sp;
					me.Xp = _packet.Xp;
					me.Level = _packet.Level;
					me.Karma = _packet.Karma;
					me.INT = _packet.INT;
					me.STR = _packet.STR;
					me.CON = _packet.CON;
					me.MEN = _packet.MEN;
					me.DEX = _packet.DEX;
					me.WIT = _packet.WIT;

					((Model.Character)me).Equipment = new Model.Equipment()
					{
						Underwear = _packet.Underwear.ItemId,
						RightEaring = _packet.RightEaring.ItemId,
						LeftEaring = _packet.LeftEaring.ItemId,
						Neck = _packet.Neck.ItemId,
						RightFinger = _packet.RightFinger.ItemId,
						LeftFinger = _packet.LeftFinger.ItemId,
						Head = _packet.Head.ItemId,
						RightHand = _packet.RightHand.ItemId,
						LeftHand = _packet.LeftHand.ItemId,
						Gloves = _packet.Gloves.ItemId,
						Chest = _packet.Chest.ItemId,
						Legs = _packet.Legs.ItemId,
						Feet = _packet.Feet.ItemId,
						Back = _packet.Back.ItemId,
						BothHand = _packet.BothHand.ItemId,
						Hair = _packet.Hair.ItemId
					};

					me.Equipment.Underwear = _packet.Underwear.ObjectId;
					me.Equipment.RightEaring = _packet.RightEaring.ObjectId;
					me.Equipment.LeftEaring = _packet.LeftEaring.ObjectId;
					me.Equipment.Neck = _packet.Neck.ObjectId;
					me.Equipment.RightFinger = _packet.RightFinger.ObjectId;
					me.Equipment.LeftFinger = _packet.LeftFinger.ObjectId;
					me.Equipment.Head = _packet.Head.ObjectId;
					me.Equipment.RightHand = _packet.RightHand.ObjectId;
					me.Equipment.LeftHand = _packet.LeftHand.ObjectId;
					me.Equipment.Gloves = _packet.Gloves.ObjectId;
					me.Equipment.Chest = _packet.Chest.ObjectId;
					me.Equipment.Legs = _packet.Legs.ObjectId;
					me.Equipment.Feet = _packet.Feet.ObjectId;
					me.Equipment.Back = _packet.Back.ObjectId;
					me.Equipment.BothHand = _packet.BothHand.ObjectId;
					me.Equipment.Hair = _packet.Hair.ObjectId;
					me.ClanId = _packet.ClanId;
					me.IsActive = _packet.IsActive;

					State = State.World;

					MoveThread.Start();

					RefreshManorList();
					RefreshQuestList();

					Network.Send(new Packet.Client.EnterWorld());

					RefreshSkillList();

					if (EnterWorld != null)
						EnterWorld();
				}
				else if (packet is Packet.Server.NpcInfo)
				{
					var _packet = packet as Packet.Server.NpcInfo;
					var npc = World[_packet.ObjectId] as Model.Npc;
					if (npc == null)
						World.Add(npc = new Model.Npc()
						{
							ObjectId = _packet.ObjectId
						});

					npc.NpcId = _packet.NpcId;
					npc.ObjectId = _packet.ObjectId;
					npc.Heading = _packet.Heading;
					npc.Name = _packet.Name;
					npc.Title = _packet.Title;
					npc.Position = _packet.Position;

					npc.MAtkSpd = _packet.MAtkSpd;
					npc.PAtkSpd = _packet.PAtkSpd;

					npc.RunSpd = _packet.RunSpd;
					npc.WalkSpd = _packet.WalkSpd;
					npc.SwimRunSpd = _packet.SwimRunSpd;
					npc.SwimWalkSpd = _packet.SwimWalkSpd;
					npc.FlRunSpd = _packet.FlRunSpd;
					npc.FlWalkSpd = _packet.FlWalkSpd;
					npc.FlyRunSpd = _packet.FlyRunSpd;
					npc.FlyWalkSpd = _packet.FlyWalkSpd;

					npc.RightHand = _packet.RightHand;
					npc.BothHand = _packet.BothHand;
					npc.LeftHand = _packet.LeftHand;

					npc.MoveSpdMult = _packet.MoveSpdMult;
					npc.AtkSpdMult = _packet.AtkSpdMult;
					npc.CollisionRadius = _packet.CollisionRadius;
					npc.CollisionHeight = _packet.CollisionHeight;

					npc.IsAttackable = _packet.IsAttackable;
					npc.IsSummoned = _packet.IsSummoned;
					npc.IsAlikeDead = _packet.IsAlikeDead;
					npc.IsInCombat = _packet.IsInCombat;
					npc.IsRunning = _packet.IsRunning;
					npc.IsShowName = _packet.IsShowName;

					if (CreatureInfo != null)
						CreatureInfo(npc);
				}
				else if (packet is Packet.Server.ItemList)
				{
					var _packet = packet as Packet.Server.ItemList;
					var items = new List<Tuple<Model.Item, ItemUpdate>>();
					foreach (var _item in _packet.Items)
					{
						var item = World[_item.ObjectId] as Model.Item;
						if (item == null)
							World.Add(item = new Model.Item()
							{
								ObjectId = _item.ObjectId
							});

						item.ObjectId = _item.ObjectId;
						item.ItemId = _item.ItemId;
						item.Count = _item.Count;
						item.Slot = _item.Slot;
						item.Enchant = _item.Enchant;
						item.IsEquipped = _item.IsEquipped;
						item.Type1 = _item.Type1;
						item.Type2 = _item.Type2;
						item.Type3 = _item.Type3;
						item.Type4 = _item.Type4;

						items.Add(new Tuple<Model.Item, ItemUpdate>(item, ItemUpdate.Append));
					}

					if (InventoryRefresh != null)
						InventoryRefresh(items);
				}
				else if (packet is Packet.Server.Sunrise)
				{
					var _packet = packet as Packet.Server.Sunrise;
					if (ChangeTime != null)
						ChangeTime(Lineage.DayTime.Night, null);
				}
				else if (packet is Packet.Server.Sunset)
				{
					var _packet = packet as Packet.Server.Sunset;
					if (ChangeTime != null)
						ChangeTime(Lineage.DayTime.Day, null);
				}
				else if (packet is Packet.Server.ActionFailed)
				{
					if (ActionFailed != null)
						ActionFailed();
				}
				else if (packet is Packet.Server.InventoryUpdate)
				{
					var _packet = packet as Packet.Server.InventoryUpdate;
					var items = new List<Tuple<Model.Item, ItemUpdate>>();
					foreach (var _item in _packet.Items)
					{
						var item = World[_item.ObjectId] as Model.Item;
						if (_item.Change == (int)ItemUpdate.Append ||
							_item.Change == (int)ItemUpdate.Modify)
						{
							if (item == null)
								World.Add(item = new Model.Item()
								{
									ObjectId = _item.ObjectId
								});

							item.ItemId = _item.ItemId;
							item.Count = _item.Count;
							item.Slot = _item.Slot;
							item.Enchant = _item.Enchant;
							item.IsEquipped = _item.IsEquipped;
							item.Type1 = _item.Type1;
							item.Type2 = _item.Type2;
							item.Type3 = _item.Type3;
							item.Type4 = _item.Type4;
						}

						// Если Drop, удалять объект нельзя
						// Тут ничего не делаем т.к. нахождение в инвентаре отслеживается по position, а та уже установлена

						items.Add(new Tuple<Model.Item, ItemUpdate>(item, (ItemUpdate)_item.Change));
					}

					if (InventoryUpdate != null)
						InventoryUpdate(items);
				}
				else if (packet is Packet.Server.TeleportToLocation)
				{
					var _packet = packet as Packet.Server.TeleportToLocation;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.Position = _packet.Position;
						if (creature.ObjectId == World.Me.ObjectId)
						{
							var me = World.Me;
							lock (World)
							{
								World.Clear();
								World.Add(me);
							}

							Network.Send(new Packet.Client.ValidatePosition()
							{
								Position = World.Me.Position,
								Angle = World.Me.Heading
							});

							Network.Send(new Packet.Client.Appearing());
						}

						if (Teleported != null)
							Teleported(creature);
					}
				}
				else if (packet is Packet.Server.TargetSelected)
				{
					var _packet = packet as Packet.Server.TargetSelected;
					var creature = World[_packet.ObjectId] as Model.Creature;
					var target = World[_packet.TargetId] as Model.Creature;

					if (creature != null && target != null)
						if (creature.TargetId != target.ObjectId)
						{
							creature.TargetId = target.ObjectId;

							if (TargetChanged != null)
								TargetChanged(creature, target);
						}
				}
				else if (packet is Packet.Server.TargetUnselected)
				{
					var _packet = packet as Packet.Server.TargetUnselected;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.TargetId = 0; // ToDo Target = null?

						if (TargetChanged != null)
							TargetChanged(creature, null);
					}
				}
				else if (packet is Packet.Server.AutoAttackStart)
				{
					var _packet = packet as Packet.Server.AutoAttackStart;
					var creature = World[_packet.TargetId] as Model.Creature;
					if (creature != null)
						creature.IsInCombat = true;
				}
				else if (packet is Packet.Server.AutoAttackStop)
				{
					var _packet = packet as Packet.Server.AutoAttackStop;
					var creature = World[_packet.TargetId] as Model.Creature;
					if (creature != null)
						creature.IsInCombat = false;
				}
				else if (packet is Packet.Server.SocialAction)
				{
					var _packet = packet as Packet.Server.SocialAction;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null && UsedSocialAction != null)
						UsedSocialAction(creature, _packet.Action);
				}
				else if (packet is Packet.Server.ChangeMoveType)
				{
					var _packet = packet as Packet.Server.ChangeMoveType;
					var character = World[_packet.ObjectId] as Model.Character;
					if (character != null)
						character.IsRunning = _packet.MoveType == Lineage.MoveType.Run;
				}
				else if (packet is Packet.Server.ChangeWaitType)
				{
					var _packet = packet as Packet.Server.ChangeWaitType;
					var character = World[_packet.ObjectId] as Model.Character;
					if (character != null)
						character.IsSitting = _packet.WaitType == Lineage.WaitType.Sit;
				}
				else if (packet is Packet.Server.AskJoinPledge)
				{
					var _packet = packet as Packet.Server.AskJoinPledge;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (QuestionAsked != null && creature != null)
						QuestionAsked(Lineage.Question.JoinClan, creature.Name, _packet.ClanName);
					else if (creature == null)
						Logger.Warn("Join a clan question author is not found.");
				}
				else if (packet is Packet.Server.AskJoinParty)
				{
					var _packet = packet as Packet.Server.AskJoinParty;
					if (QuestionAsked != null)
						QuestionAsked(Lineage.Question.JoinParty, _packet.LeaderName, _packet.PartyLoot.ToString());
				}
				else if (packet is Packet.Server.ShortcutInit)
				{
					var _packet = packet as Packet.Server.ShortcutInit;
					foreach (Model.Shortcut shortcut in _packet.List)
						World.Shortcut[shortcut.Page, shortcut.Slot] = shortcut;
				}
				else if (packet is Packet.Server.StopMove)
				{
					var _packet = packet as Packet.Server.StopMove;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.Position = _packet.Position;
						creature.Heading = _packet.Heading;
						creature.IsMoving = false;
					}
				}
				else if (packet is Packet.Server.MagicSkillUser)
				{
					var _packet = packet as Packet.Server.MagicSkillUser;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.Casting = new Model.Casting()
						{
							SkillId = _packet.SkillId,
							SkillLevel = _packet.SkillLevel,
							Start = DateTime.Now,
							Length = _packet.CastTime
						};

						if (creature == World.Me)
						{
							var skills = World.Me.Skills;
							lock (skills)
								if (skills.ContainsKey(_packet.SkillId))
								{
									var skill = skills[_packet.SkillId];

									if (_packet.ReuseDelay > TimeSpan.Zero)
									{
										skill.IsReady = false;

										if (skill.Reuse != null)
											skill.Reuse.Dispose();

										skill.Reuse = new System.Timers.Timer(_packet.ReuseDelay.TotalMilliseconds) { AutoReset = false };
										skill.Reuse.Elapsed += (object sender, System.Timers.ElapsedEventArgs args) =>
										{
											skill.IsReady = true;
											if (SkillReused != null)
												SkillReused(skill);
										};

										skill.Reuse.Start();
									}
								}
								else
									Logger.Warn(string.Format("Skill #{0} not found, but got in MagicSkillUser packet", _packet.SkillId));
						}

						if (SkillStarted != null)
							SkillStarted(creature);
					}
				}
				else if (packet is Packet.Server.MagicSkillCanceld)
				{
					var _packet = packet as Packet.Server.MagicSkillCanceld;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						if (SkillCanceled != null)
							SkillCanceled(creature);

						creature.Casting = null;
					}
				}
				else if (packet is Packet.Server.CreatureSay)
				{
					var _packet = packet as Packet.Server.CreatureSay;
					if (ChatMessage != null)
					{
						Model.Creature author = World[_packet.ObjectId] as Model.Creature;
						ChatMessage(_packet.Type, _packet.Message, _packet.Author, author);
					}
				}
				else if (packet is Packet.Server.PartySmallWindowAll)
				{
					var _packet = packet as Packet.Server.PartySmallWindowAll;
					var party = World.Party = new Model.Party()
					{
						Loot = _packet.Loot
					};

					foreach (var _member in _packet.Members)
					{
						var member = World[_member.ObjectId] as Model.Character;
						if (member == null)
							World.Add(member = new Model.OtherPlayer()
							{
								ObjectId = _member.ObjectId
							});

						lock (party.Members)
							party.Members.Add(member);
						if (member.ObjectId == _packet.LeaderId)
							party.Leader = member;

						member.Name = _member.Name;
						member.Cp = _member.Cp;
						member.MaxCp = _member.MaxCp;
						member.Hp = _member.Hp;
						member.MaxHp = _member.MaxHp;
						member.Mp = _member.Mp;
						member.MaxMp = _member.MaxMp;
						member.Level = _member.Level;
						member.ClassId = _member.Class;
					}

					lock (party.Members)
						party.Members.Add(World.Me);

					if (PartyInfo != null)
						PartyInfo(null);
				}
				else if (packet is Packet.Server.PartySmallWindowAdd)
				{
					var _packet = packet as Packet.Server.PartySmallWindowAdd;
					var member = World[_packet.ObjectId] as Model.Character;
					if (member == null)
						World.Add(member = new Model.OtherPlayer()
						{
							ObjectId = _packet.ObjectId
						});

					var party = World.Party;
					lock (party.Members)
						party.Members.Add(member);

					member.Name = _packet.Name;
					member.Cp = _packet.Cp;
					member.MaxCp = _packet.MaxCp;
					member.Hp = _packet.Hp;
					member.MaxHp = _packet.MaxHp;
					member.Mp = _packet.Mp;
					member.MaxMp = _packet.MaxMp;
					member.Level = _packet.Level;
					member.ClassId = _packet.Class;

					if (PartyAppend != null)
						PartyAppend(party, member);
				}
				else if (packet is Packet.Server.PartySmallWindowDeleteAll)
				{
					var _packet = packet as Packet.Server.PartySmallWindowDeleteAll;
					World.Party = null;

					if (PartyInfo != null)
						PartyInfo(null);
				}
				else if (packet is Packet.Server.PartySmallWindowDelete)
				{
					var _packet = packet as Packet.Server.PartySmallWindowDelete;
					var party = World.Party;
					var member = World[_packet.ObjectId] as Model.Character;
					if (member != null)
					{
						lock (party.Members)
							party.Members.Remove(member);

						if (PartyDelete != null)
							PartyDelete(party, member);
					}
				}
				else if (packet is Packet.Server.PartySmallWindowUpdate)
				{
					var _packet = packet as Packet.Server.PartySmallWindowUpdate;
					var member = World[_packet.ObjectId] as Model.Character;
					if (member != null)
					{
						member.Name = _packet.Name;
						member.Cp = _packet.Cp;
						member.MaxCp = _packet.MaxCp;
						member.Hp = _packet.Hp;
						member.MaxHp = _packet.MaxHp;
						member.Mp = _packet.Mp;
						member.MaxMp = _packet.MaxMp;
						member.Level = _packet.Level;
						member.ClassId = _packet.Class;

						if (PartyUpdate != null)
							PartyUpdate(World.Party, member);
					}
				}
				else if (packet is Packet.Server.PledgeShowMemberListAll)
				{
					var _packet = packet as Packet.Server.PledgeShowMemberListAll;
					Model.Ally ally = !_packet.InAlly ? null : new Model.Ally()
					{
						Id = _packet.AllyId,
						Name = _packet.AllyName,
						CrestId = _packet.AllyCrestId
					};

					Model.Clan clan = new Model.Clan()
					{
						Id = _packet.ClanId,
						Level = _packet.ClanLevel,
						CrestId = _packet.ClanCrestId,
						AllyId = _packet.InAlly ? _packet.AllyId : 0,
						Name = _packet.ClanName,
						Leader = _packet.LeaderName,
						InWar = _packet.InWar,
						HasCastle = _packet.HasCastle,
						HasClanhall = _packet.HasClanhall
					};

					clan.Members = new Model.ClanMember[_packet.Members.Length];
					for (int i = 0; i < _packet.Members.Length; i++)
					{
						clan.Members[i].ObjectId = _packet.Members[i].ObjectId;
						clan.Members[i].Name = _packet.Members[i].Name;
						clan.Members[i].Level = _packet.Members[i].Level;
						clan.Members[i].ClassId = _packet.Members[i].ClassId;
						clan.Members[i].IsOnline = _packet.Members[i].IsOnline;
					}

					if (ClanInfo != null)
						ClanInfo(clan, ally);
				}
				else if (packet is Packet.Server.SkillList)
				{
					var _packet = packet as Packet.Server.SkillList;
					var skills = World.Me.Skills;
					var list = new List<Model.Skill>();
					lock (skills)
						foreach (Packet.Server.SkillList.SkillItem _skill in _packet.List)
						{
							Model.Skill skill = null;
							if (skills.ContainsKey(_skill.Id))
								skill = skills[_skill.Id];
							else
								skills.Add(_skill.Id, skill = new Model.Skill());

							skill.SkillId = _skill.Id;
							skill.Level = _skill.Level;
							skill.IsActive = _skill.Active;
						}

					if (SkillList != null)
						SkillList(list);
				}
				else if (packet is Packet.Server.RestartResponse)
				{
					var _packet = packet as Packet.Server.RestartResponse;
					if (_packet.Reason == Packet.Server.RestartResponse.reason.Ok)
					{
						State = State.Lobby;
						if (Restarted != null)
							Restarted();
					}
					else
						throw new NotImplementedException();
				}
				else if (packet is Packet.Server.MoveToPawn)
				{
					var _packet = packet as Packet.Server.MoveToPawn;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.IsMoving = true;
						creature.MoveTarget = _packet.TargetId;
						creature.LastMoveTime = System.DateTime.Now;
					}
				}
				else if (packet is Packet.Server.ValidateLocation)
				{
					var _packet = packet as Packet.Server.ValidateLocation;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.Heading = _packet.Heading;
						creature.Position = new Library.Point(
							_packet.PositionX,
							_packet.PositionY,
							_packet.PositionZ
						);
					}
				}
				else if (packet is Packet.Server.SystemMessage)
				{
					var _packet = packet as Packet.Server.SystemMessage;

					if (_packet.MessageId == 46) //TODO MAGIC CONST
					{
						//use skill 
						//changing of bot state based on successful skill done elsewhere now
					}

					//Todo Spoiling failed / Spoiling condition has activated catch

					const int already_spoiled = 357; //TODO MAGIC CONST
					const int spoil_landed = 612; //TODO MAGIC CONST
					var npc = World[World.Me.TargetId] as Model.Npc;
					if (npc != null && (_packet.MessageId == already_spoiled || _packet.MessageId == spoil_landed))
						npc.IsSpoiled = true;

					//
					object[] arguments = new object[_packet.Arguments.Length];
					for (int i = 0; i < _packet.Arguments.Length; i++)
					{
						object argument = null;
						var pair = _packet.Arguments[i];
						switch (pair.Key)
						{
							case Packet.Server.SystemMessage.type.Text: argument = (string)pair.Value; break;
							case Packet.Server.SystemMessage.type.Number: argument = ((int)pair.Value).ToString(); break;
							case Packet.Server.SystemMessage.type.NpcName: argument = new Model.Npc() { NpcId = (int)pair.Value }; break;
							case Packet.Server.SystemMessage.type.ItemName: argument = new Model.Item() { ItemId = (int)pair.Value }; break;
							case Packet.Server.SystemMessage.type.SkillName: argument = new Model.Skill() { SkillId = (int)pair.Value }; break;
						}
						arguments[i] = argument;
					}

					//
					if (SystemMessage != null)
						SystemMessage(_packet.MessageId, arguments);
				}
				else if (packet is Packet.Server.PledgeCrest)
				{
					var _packet = packet as Packet.Server.PledgeCrest;
					//throw new NotImplementedException();
					//ToDo: Crests.Get_ClanCrest(buffe);
				}
				else if (packet is Packet.Server.ValidateLocationInVehicle)
				{
					var _packet = packet as Packet.Server.ValidateLocationInVehicle;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.Heading = _packet.Heading;
						creature.Position = new Library.Point(
							_packet.PositionX,
							_packet.PositionY,
							_packet.PositionZ
						);
					}
				}
				else if (packet is Packet.Server.MagicSkillLaunched)
				{
					var _packet = packet as Packet.Server.MagicSkillLaunched;
					var creature = World[_packet.ObjectId] as Model.Creature;

					if (creature != null)
					{
						if (SkillLaunched != null)
							SkillLaunched(creature);

						creature.Casting = null;
					}
				}
				else if (packet is Packet.Server.AskJoinFriend)
				{
					var _packet = packet as Packet.Server.AskJoinFriend;
					if (QuestionAsked != null)
						QuestionAsked(Lineage.Question.JoinFriend, _packet.PlayerName, null);
				}
				else if (packet is Packet.Server.Logout)
				{
					var _packet = packet as Packet.Server.Logout;
					Abort();

					if (LoggedOut != null)
						LoggedOut();
				}
				else if (packet is Packet.Server.PledgeInfo)
				{
					var _packet = packet as Packet.Server.PledgeInfo;
					lock (World.Clans)
					{
						Model.Clan clan = null;
						if (World.Clans.ContainsKey(_packet.ClanId))
							clan = World.Clans[_packet.ClanId];
						else
							World.Clans.Add(_packet.ClanId, clan = new Model.Clan());

						clan.Name = _packet.ClanName;
						clan.Ally = _packet.AllyName;
					}

					// Crests.Get_ClanCrest(buffe);
				}
				else if (packet is Packet.Server.PledgeShowInfoUpdate)
				{
					var _packet = packet as Packet.Server.PledgeShowInfoUpdate;
					Model.Clan clan = null;
					lock (World.Clans)
						if (World.Clans.ContainsKey(_packet.ClanId))
							clan = World.Clans[_packet.ClanId];
						else
							World.Clans.Add(_packet.ClanId, clan = new Model.Clan());

					clan.Id = _packet.ClanId;
					clan.CrestId = _packet.CrestId;
					clan.Level = _packet.ClanLevel;
					clan.HasCastle = _packet.HasCastle;
					clan.HasClanhall = _packet.HasClanhall;

					if (ClanUpdate != null)
						ClanUpdate(clan);
				}
				else if (packet is Packet.Server.MyTargetSelected)
				{
					var _packet = packet as Packet.Server.MyTargetSelected;
					var me = World.Me;
					var target = World[me.TargetId] as Model.Creature;
					if (target != null)
						target.NameColor = _packet.TargetColor;
					if (me.TargetId != _packet.ObjectId)
					{
						target = World[_packet.ObjectId] as Model.Creature;
						if (target != null && TargetChanged != null)
							TargetChanged(me, target);
					}
				}
				else if (packet is Packet.Server.PartyMemberPosition)
				{
					var _packet = packet as Packet.Server.PartyMemberPosition;
					foreach (var _member in _packet.Members)
					{
						var member = World[_member.ObjectId] as Model.Creature;
						if (member != null)
							member.Position = _member.Position;
					}
				}
				else if (packet is Packet.Server.AskJoinAlly)
				{
					var _packet = packet as Packet.Server.AskJoinAlly;
					if (QuestionAsked != null)
						QuestionAsked(Lineage.Question.JoinAlly, _packet.AllyName, null);
				}
				else if (packet is Packet.Server.AllyCrest)
				{
					var _packet = packet as Packet.Server.AllyCrest;
					//throw new NotImplementedException();
					//ToDo: Crests.Get_AllyCrest(buffe);
				}
				else if (packet is Packet.Server.HennaInfo)
				{
					var _packet = packet as Packet.Server.HennaInfo;
					var me = World.Me;
					me.INT = _packet.INT;
					me.STR = _packet.STR;
					me.CON = _packet.CON;
					me.MEN = _packet.MEN;
					me.DEX = _packet.DEX;
					me.WIT = _packet.WIT;
					me.Symbols = new int[_packet.Symbols.Length];
					for (int i = 0; i < me.Symbols.Length; i++)
						me.Symbols[i] = _packet.Symbols[i];

					if (HennaInfo != null)
						HennaInfo(me.Symbols);
				}
				else if (packet is Packet.Server.SignsSky)
				{
					var _packet = packet as Packet.Server.SignsSky;
					if (ChangeTime != null)
						ChangeTime(null, _packet.Sky);
				}
				else if (packet is Packet.Server.GameGuardVerfy)
				{
					var _packet = packet as Packet.Server.GameGuardVerfy;
					Network.Send(new Packet.Client.GameGuardReply());
				}
				else if (packet is Packet.Server.FriendRecvMsg)
				{
					var _packet = packet as Packet.Server.FriendRecvMsg;
					if (ChatMessage != null)
						ChatMessage(Lineage.Channel.Friend, _packet.Message, _packet.Sender, null);
				}
			}

			Dispose();
		}
コード例 #40
0
		public override void Parse(byte[] buffer)
		{
			Reader reader = new Reader(new MemoryStream(buffer));

			reader.ReadByte(); // Id
			int Count = reader.ReadInt32();

			List = new List<Model.Player>(Count);
			for(int i = 0; i < Count; i++)
			{
				var c = new Model.Player();
				c.Number = i;
				c.Name = reader.ReadString(Encoding.Unicode);
				c.ObjectId = reader.ReadInt32();
				c.Login = reader.ReadString(Encoding.Unicode);
				c.SessionId = reader.ReadInt32();
				c.ClanId = reader.ReadInt32();
					reader.ReadInt32();
				c.Gender = reader.ReadInt32() == 0 ?
					Lineage.Gender.Male :
					Lineage.Gender.Female;
				c.Race = reader.ReadInt32();
				c.BaseClassId = reader.ReadInt32();
				c.IsActive = reader.ReadInt32() != 0;
				c.Position = new Library.Point(
					reader.ReadInt32(),
					reader.ReadInt32(),
					reader.ReadInt32());
				c.Hp = reader.ReadDouble();
				c.Mp = reader.ReadDouble();
				c.Sp = reader.ReadInt32();
				c.Xp = reader.ReadInt32();
				c.Level = reader.ReadInt32();
				c.Karma = reader.ReadInt32();

				reader.ReadInt32();
				reader.ReadInt32();
				reader.ReadInt32();
				reader.ReadInt32();
				reader.ReadInt32();
				reader.ReadInt32();
				reader.ReadInt32();
				reader.ReadInt32();
				reader.ReadInt32();

				c.Equipment = new Model.Equipment()
				{
					Underwear = reader.ReadInt32(),
					RightEaring = reader.ReadInt32(),
					LeftEaring = reader.ReadInt32(),
					Neck = reader.ReadInt32(),
					RightFinger = reader.ReadInt32(),
					LeftFinger = reader.ReadInt32(),
					Head = reader.ReadInt32(),
					RightHand = reader.ReadInt32(),
					LeftHand = reader.ReadInt32(),
					Gloves = reader.ReadInt32(),
					Chest = reader.ReadInt32(),
					Legs = reader.ReadInt32(),
					Feet = reader.ReadInt32(),
					Back = reader.ReadInt32(),
					BothHand = reader.ReadInt32(),
					Hair = reader.ReadInt32(),
				};

				((Model.Character)c).Equipment = new Model.Equipment()
				{
					Underwear = reader.ReadInt32(),
					RightEaring = reader.ReadInt32(),
					LeftEaring = reader.ReadInt32(),
					Neck = reader.ReadInt32(),
					RightFinger = reader.ReadInt32(),
					LeftFinger = reader.ReadInt32(),
					Head = reader.ReadInt32(),
					RightHand = reader.ReadInt32(),
					LeftHand = reader.ReadInt32(),
					Gloves = reader.ReadInt32(),
					Chest = reader.ReadInt32(),
					Legs = reader.ReadInt32(),
					Feet = reader.ReadInt32(),
					Back = reader.ReadInt32(),
					BothHand = reader.ReadInt32(),
					Hair = reader.ReadInt32(),
				};

				c.HairStyle = reader.ReadInt32();
				c.HairColor = reader.ReadInt32();
				c.FaceType = reader.ReadInt32();

				c.MaxHp = (int)reader.ReadDouble();
				c.MaxMp = (int)reader.ReadDouble();

				c.ToRemove = reader.ReadInt32();
				c.ClassId = reader.ReadInt32();
				c.IsLastUsed = reader.ReadInt32() != 0;
				c.Enchant = reader.ReadByte();

				List.Add(c);
			}
		}
コード例 #41
0
ファイル: Game.cs プロジェクト: EdTrench/NoughtsAndCrosses
 public void Init()
 {
     _board = new Model.Board();
     _player1 = new Model.Player { Name = "Frederick", ShortName = 'X', Id = 1 };
     _player2 = new Model.Player { Name = "Edward", ShortName = 'O', Id = 2 };
     CreateTilesOnBoard();
 }