예제 #1
0
        void OnGetData(GetDataEventArgs e)
        {
            if (!e.Handled && e.MsgID == PacketTypes.Tile)
            {
                using (var reader = new BinaryReader(new MemoryStream(e.Msg.readBuffer, e.Index, e.Length)))
                {
                    byte   action = reader.ReadByte();
                    int    x      = reader.ReadInt16();
                    int    y      = reader.ReadInt16();
                    ushort type   = reader.ReadUInt16();

                    if (type == 127 && ActionTypes[e.Msg.whoAmI] != 0)
                    {
                        if (WorldGen.genRand == null)
                        {
                            WorldGen.genRand = new Random();
                        }

                        Actions[ActionTypes[e.Msg.whoAmI]].callback.Invoke(null,
                                                                           new IceWandEventArgs(x, y, TShock.Players[e.Msg.whoAmI], ActionData[e.Msg.whoAmI]));
                        TSPlayer.All.SendTileSquare(x, y, 1);
                        e.Handled = true;
                    }
                }
            }
        }
예제 #2
0
        private void OnNetGetData(GetDataEventArgs args)
        {
            if (!Config.GetConfig().deathPunish.Open)
            {
                return;
            }
            var player = TShock.Players[args.Msg.whoAmI];

            if (player != null && args.MsgID == PacketTypes.DeadPlayer)
            {
                Bank   bank   = Data.GetBank(player.Name);
                Random random = new Random();
                long   p      = random.Next((int)Config.GetConfig().deathPunish.DropMinValue,
                                            (int)Config.GetConfig().deathPunish.DropMaxValue);
                long del = bank.Money * p / 100;
                bank.Money -= del;
                bank.Save();
                player.SendErrorMessage("死亡惩罚已开启,您已被扣除" + del + "余额,您当前余额为" + bank.Money);
                //player.SendErrorMessage("The death punish is enable,your money had been deleted:" + del + ",your rest money is" + bank.Money);
                if (Config.GetConfig().deathPunish.Spwan)
                {
                    player.Spawn(PlayerSpawnContext.SpawningIntoWorld);
                }
            }
        }
예제 #3
0
        public ProjectileNewArgs(GetDataEventArgs args, MemoryStream data, PvPPlayer attacker)
        {
            Args     = args;
            Attacker = attacker;

            Identity  = data.ReadInt16();
            Position  = new Vector2(data.ReadSingle(), data.ReadSingle());
            Velocity  = new Vector2(data.ReadSingle(), data.ReadSingle());
            Knockback = data.ReadSingle();
            Damage    = data.ReadInt16();
            Owner     = data.ReadByte();
            Type      = data.ReadInt16();
            AiFlags   = (BitsByte)data.ReadByte();
            Ai0       = 0;
            Ai1       = 0;
            if (AiFlags[0])
            {
                Ai0 = data.ReadSingle();
            }
            if (AiFlags[1])
            {
                Ai1 = data.ReadSingle();
            }
            Ai = new float[Projectile.maxAI];

            Weapon = ProjectileUtils.GetProjectileWeapon(attacker, Type);
        }
예제 #4
0
 private void OnGetData(GetDataEventArgs e)
 {
     if (!e.Handled)
     {
         if (e.MsgID == PacketTypes.Tile)
         {
             using (BinaryReader br = new BinaryReader(new MemoryStream(e.Msg.readBuffer, e.Index, e.Length)))
             {
                 byte  action = br.ReadByte();
                 short x      = br.ReadInt16();
                 short y      = br.ReadInt16();
                 if (await1)
                 {
                     leftPoint = new Vector2(x * 16, y * 16);
                     await1    = false;
                     TShock.Players[who].SendInfoMessage("Point 1 set.");
                     who = 0;
                     return;
                 }
                 else if (await2)
                 {
                     rightPoint = new Vector2(x * 16, y * 16);
                     await2     = false;
                     TShock.Players[who].SendInfoMessage("Point 2 set.");
                     who = 0;
                 }
             }
         }
     }
 }
예제 #5
0
        public void OnGetData(GetDataEventArgs e)
        {
            if (!e.Handled)
            {
                MemoryStream stream;
                using (BinaryReader br = new BinaryReader(stream = new MemoryStream(e.Msg.readBuffer, e.Index, e.Length)))
                {
                    switch (e.MsgID)
                    {
                    case PacketTypes.PlayerTeam:
                        //  Team set
                        byte teamWho   = br.ReadByte();
                        byte team      = br.ReadByte();
                        int  teamCheck = GetPlayerTeam(Main.player[teamWho].name);
                        Utils.SetTeam(teamWho, teamCheck);
                        if (Delegates.Instance.kickOnSwitch && team != teamCheck && team != 0)
                        {
                            TShock.Players[teamWho].Disconnect("Kicked for switching teams.");
                        }
                        break;

                    case PacketTypes.GemLockToggle:
                        e.Handled = true;
                        int  lockPosX = br.ReadInt16();
                        int  lockPosY = br.ReadInt16();
                        bool lockOn   = br.ReadBoolean();
                        WorldGen.ToggleGemLock(lockPosX, lockPosY, lockOn);
                        break;

                    case PacketTypes.TileSendSection:
                        ushort size       = br.ReadUInt16();
                        byte   changeType = br.ReadByte();

                        /*
                         * int i = br.ReadInt16();
                         * int j = br.ReadInt16();
                         * for (int k = i; k < i + size; k++)
                         * {
                         *  for (int l = j; l < j + size; l++)
                         *  {
                         *      CheckModifiedTiles(k, l, stream);
                         *  }
                         * }*/
                        break;

                    case PacketTypes.Tile:
                        if (!ChatCommands.loaded)
                        {
                            return;
                        }
                        byte flag = br.ReadByte();
                        int  x    = br.ReadInt16();
                        int  y    = br.ReadInt16();
                        //byte dmg = br.ReadByte();
                        CheckModifiedTiles(x, y, stream);
                        break;
                    }
                }
            }
        }
예제 #6
0
        void OnGetData(GetDataEventArgs args)
        {
            if (Profiler.Input.HasFlag(ProfileInput.Get))
            {
                switch (Profiler.Mode)
                {
                case ProfileMode.Disabled:
                    return;

                case ProfileMode.Lock:
                    if (Profiler.Lock.Contains(args.MsgID))
                    {
                        Profiler.ProfileNetGet(args);
                    }
                    break;

                case ProfileMode.All:
                    Profiler.ProfileNetGet(args);
                    break;

                case ProfileMode.Block:
                    if (Profiler.Lock.Contains(args.MsgID))
                    {
                        args.Handled = true;
                    }
                    return;
                }
            }
        }
예제 #7
0
        private void OnNetGetData(GetDataEventArgs e)
        {
            if (e.Handled)
            {
                return;
            }

            using (var stream = new MemoryStream(e.Msg.readBuffer, e.Index, e.Length))
                using (var reader = new BinaryReader(stream))
                {
                    switch (e.MsgID)
                    {
                    case PacketTypes.PlayerHurtV2:
                        OnPlayerHurt(reader);
                        break;

                    case PacketTypes.PlayerUpdate:
                        OnPlayerUpdate(reader);
                        break;

                    case PacketTypes.ProjectileNew:
                        OnProjectileNew(reader);
                        break;

                    case PacketTypes.TogglePvp:
                        OnPlayerTogglePvp(reader);
                        break;
                    }
                }
        }
예제 #8
0
        public static void HandleData(GetDataEventArgs args, MemoryStream data, PvPPlayer player)
        {
            switch (args.MsgID)
            {
            case PacketTypes.PlayerHurtV2:
                PlayerHurt?.Invoke(typeof(DataHandler), new PlayerHurtArgs(args, data, player));
                return;

            case PacketTypes.TogglePvp:
                PvPToggled?.Invoke(typeof(DataHandler), new TogglePvPArgs(player));
                return;

            case PacketTypes.PlayerSlot:
                PlayerSlotUpdated?.Invoke(typeof(DataHandler), new PlayerSlotArgs(data, player));
                return;

            case PacketTypes.PlayerDeathV2:
                PlayerDied?.Invoke(typeof(DataHandler), new PlayerDeathArgs(player));
                return;

            case PacketTypes.ProjectileNew:
                ProjectileNew?.Invoke(typeof(DataHandler), new ProjectileNewArgs(args, data, player));
                return;

            case PacketTypes.ProjectileDestroy:
                ProjectileDestroyed?.Invoke(typeof(DataHandler), new ProjectileDestroyArgs(data));
                return;

            case PacketTypes.PlayerUpdate:
                PlayerUpdated?.Invoke(typeof(DataHandler), new PlayerUpdateArgs(data, player));
                return;
            }
        }
예제 #9
0
        private void GetData(GetDataEventArgs e)
        {
            PacketTypes type   = e.MsgID;
            var         player = TShock.Players[e.Msg.whoAmI];

            if (player == null)
            {
                e.Handled = true;
                return;
            }

            if (!player.ConnectionAlive)
            {
                e.Handled = true;
                return;
            }

            using (var data = new MemoryStream(e.Msg.readBuffer, e.Index, e.Length))
            {
                try
                {
                    if (GetDataHandlers.HandlerGetData(type, player, data))
                    {
                        e.Handled = true;
                    }
                }
                catch (Exception ex)
                {
                    TShock.Log.Error(ex.ToString());
                }
            }
        }
예제 #10
0
        private void FoldersTreeGetData(object sender, GetDataEventArgs e)
        {
            var folder = (ImagesFolder)e.Node;

            e.CellInfos[0].Text = folder.Name;
            e.CellInfos[1].Text = string.Format("{0}/{1}", folder.ImagesCount, folder.GetAllImagesCount());
        }
예제 #11
0
 /// <summary>
 /// 获取Exfo测试数据
 /// </summary>
 /// <param name="e"></param>
 protected virtual void onGetData_Exfo(GetDataEventArgs e)
 {
     if (GetData_Exfo != null)
     {
         GetData_Exfo(e);
     }
 }
예제 #12
0
 /// <summary>
 /// 获取 3D测试数据
 /// </summary>
 protected virtual void onGetData_3D(GetDataEventArgs e)
 {
     if (GetData_3D != null)
     {
         GetData_3D(e);
     }
 }
예제 #13
0
        void OnGetData(GetDataEventArgs e)
        {
            if (e.Handled)
            {
                return;
            }

            int ply = e.Msg.whoAmI;

            if (ply < 0 || ply > 255 || TShock.Players[ply] == null || !TShock.Players[ply].RealPlayer || !TShock.Players[ply].IsLoggedIn)
            {
                return;
            }

            #region Packet 31 - Get Chest Contents

            if (e.MsgID == PacketTypes.ChestGetContents && AwaitingOwner[ply])
            {
                Task.Run(() => GetDataHandlers.HandleGetChestContents(e));
                e.Handled = true;
            }

            #endregion

            #region Packet 34 - Place/Kill Chest

            else if (e.MsgID == PacketTypes.TileKill)
            {
                Task.Run(() => GetDataHandlers.HandleTileKill(e));
                e.Handled = true;
            }

            #endregion
        }
예제 #14
0
        private void DeathFix(GetDataEventArgs args)
        {
            if (args.MsgID == PacketTypes.PlayerDeathV2)
            {
                using (BinaryReader reader =
                           new BinaryReader(new MemoryStream(args.Msg.readBuffer, args.Index, args.Length)))
                {
                    reader.ReadByte();
                    PlayerDeathReason playerDeathReason = PlayerDeathReason.FromReader(reader);
                    var      dmg       = reader.ReadInt16();
                    var      direction = (byte)(reader.ReadByte() - 1);
                    BitsByte bits      = reader.ReadByte();
                    bool     pvp       = bits[0];


                    TShock.Players[args.Msg.whoAmI].TPlayer.KillMe(playerDeathReason, dmg, direction, pvp);
                    TShock.Players[args.Msg.whoAmI].Dead         = true;
                    TShock.Players[args.Msg.whoAmI].TPlayer.dead = true;

                    NetMessage.SendPlayerDeath(args.Msg.whoAmI, playerDeathReason, dmg, direction, pvp);
                    NetMessage.SendPlayerDeath(args.Msg.whoAmI, playerDeathReason, dmg, direction, pvp, args.Msg.whoAmI);

                    args.Handled = true;
                }
            }
        }
        public bool ExtractData(GetDataEventArgs args, MemoryStream data, PvPPlayer attacker, out ProjectileNewArgs arg)
        {
            arg = null;
            if (PresetData.ProjectileDummy.Contains(Type))
            {
                return(false);
            }

            arg = new ProjectileNewArgs {
                Args     = args,
                Attacker = attacker,

                Identity  = data.ReadInt16(),
                Position  = new Vector2(data.ReadSingle(), data.ReadSingle()),
                Velocity  = new Vector2(data.ReadSingle(), data.ReadSingle()),
                Knockback = data.ReadSingle(),
                Damage    = data.ReadInt16(),
                Owner     = data.ReadByte(),
                Type      = data.ReadInt16(),
                AiFlags   = (BitsByte)data.ReadByte(),
                Ai0       = AiFlags[0] ? Ai0 = data.ReadSingle() : 0,
                Ai1       = AiFlags[1] ? data.ReadSingle() : 0,

                Ai = new float[Projectile.maxAI],

                Proj   = new PvPProjectile(Type, Identity),
                Weapon = ProjectileUtils.GetProjectileWeapon(attacker, Type)
            };

            return(true);
        }
예제 #16
0
        private void OnGetData(GetDataEventArgs e)
        {
            if (!e.Handled)
            {
                if (e.MsgID == PacketTypes.PlayerDeathV2)
                {
                    using (BinaryReader br = new BinaryReader(new MemoryStream(e.Msg.readBuffer, e.Index, e.Length)))
                    {
                        byte   who    = br.ReadByte();
                        var    reason = PlayerDeathReason.FromReader(br);
                        int    damage = br.ReadInt16();
                        byte   dir    = br.ReadByte();
                        byte   flag   = br.ReadByte();
                        string d      = TShock.Players[who].UUID;
                        switch (flag)
                        {
                        case 0:
                            block(d).IncreaseValue("pveDeaths", 1);
                            break;

                        case 1:
                            block(d).IncreaseValue("pvpDeaths", 1);
                            block(TShock.Players[reason.SourcePlayerIndex].UUID).IncreaseValue("Kills", 1);
                            break;

                        default:
                            break;
                        }
                    }
                }
            }
        }
예제 #17
0
        private void GetData(GetDataEventArgs e)
        {
            if (e.MsgID == PacketTypes.ItemOwner && Players[e.Msg.whoAmI] != null)
            {
                var pingdata = Players[e.Msg.whoAmI];
                int ping     = pingdata.Summarize();

                e.Msg.reader.BaseStream.Position = e.Index;
                short ItemID    = e.Msg.reader.ReadInt16();
                byte  ItemOwner = e.Msg.reader.ReadByte();

                if (ItemID == pingdata.ID && ItemOwner == 255)
                {
                    Players[e.Msg.whoAmI] = null;
                    NetMessage.SendData(22, -1, -1, "", ItemID, 0f, 0f, 0f, 0);
                    bool Self = e.Msg.whoAmI == pingdata.ReportTo.Index;
                    if (pingdata.ReportTo != null && (pingdata.ReportTo.Active || !pingdata.ReportTo.RealPlayer))
                    {
                        pingdata.ReportTo.SendInfoMessage(string.Format("{1} ping is {0}ms.", ping, Self ? "Your" : (TShock.Players[e.Msg.whoAmI].Name + "'s")));
                    }
                    return;
                }
                e.Msg.reader.BaseStream.Position = e.Index;
            }
        }
예제 #18
0
        private void GetData(GetDataEventArgs args)
        {
            if (args.MsgID == PacketTypes.ItemDrop)
            {
                var num     = args.Index;
                var TPlayer = Main.player[args.Msg.whoAmI];
                int ItemID  = BitConverter.ToInt16(args.Msg.readBuffer, num);
                if (ItemID == 400)
                {
                    if (Exceeded.Contains(args.Msg.whoAmI))
                    {
                        args.Handled = true;
                        return;
                    }

                    if (Thresholds[args.Msg.whoAmI] > Threshold)
                    {
                        Exceeded.Add(args.Msg.whoAmI);
                        Thresholds[args.Msg.whoAmI] = 0;
                        args.Handled = true;
                    }
                    else
                    {
                        Thresholds[args.Msg.whoAmI]++;
                    }
                }
            }
            else if (args.MsgID == PacketTypes.UpdateItemDrop)
            {
                TShock.Utils.Kick(TShock.Players[args.Msg.whoAmI], "Item Cheat", true);
                args.Handled = true;
            }
        }
예제 #19
0
        public void GetData(GetDataEventArgs e)
        {
            if (e.MsgID == PacketTypes.SignNew)
            {
                if (enabled)
                {
                    try
                    {
                        using (var data = new MemoryStream(e.Msg.readBuffer, e.Index, e.Length))
                        {
                            var reader = new BinaryReader(data);
                            int x      = reader.ReadInt16();
                            int y      = reader.ReadInt16();
                            reader.Close();

                            int      id     = Terraria.Sign.ReadSign(x, y);
                            TSPlayer player = TShock.Players[e.Msg.whoAmI];

                            if (!player.Group.HasPermission("signprotect.edit"))
                            {
                                player.SendErrorMessage("[SignProtect] You do not have permission to edit this sign.");
                                e.Handled = true;
                                return;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex);
                    }
                }
            }
        }
예제 #20
0
파일: NetHooks.cs 프로젝트: untuned/Raptor
        internal static bool InvokeGetData(object messageBuffer, int index, int length)
        {
            var args = new GetDataEventArgs((MessageBuffer)messageBuffer, index, length);

            GetData?.Invoke(null, args);
            return(args.Handled);
        }
예제 #21
0
        /// <summary>
        /// Passes on packets received to the DataHandlers to be processed if necessary
        /// </summary>
        /// <param name="args"></param>
        private void GetData(GetDataEventArgs args)
        {
            var type   = args.MsgID;
            var player = Players[args.Msg.whoAmI];

            if (player == null)
            {
                return;
            }

            if (!player.TshockPlayer.ConnectionAlive)
            {
                args.Handled = true;
                return;
            }

            using (var data = new MemoryStream(args.Msg.readBuffer, args.Index, args.Length))
            {
                try
                {
                    if (GetDataHandler.HandlerGetData(type, player, data))
                    {
                        args.Handled = true;
                    }
                }
                catch (Exception ex)
                {
                    TShock.Log.ConsoleError(ex.ToString());
                }
            }
        }
예제 #22
0
 //Voids
 public void OnGetData(GetDataEventArgs args)
 {
     if (!Enable)
     {
         return;
     }
 }
예제 #23
0
        /// <summary>
        /// Occurs when the server has received a message from the client.
        /// </summary>
        protected void NetHooks_GetData(GetDataEventArgs args)
        {
            byte[]          bufferSegment = null;
            Terraria.Player player        = null;

            if ((player = Terraria.Main.player.ElementAtOrDefault(args.Msg.whoAmI)) == null)
            {
                return;
            }

            bufferSegment = new byte[args.Length];
            System.Array.Copy(args.Msg.readBuffer, args.Index, bufferSegment, 0, args.Length);

            if (args.MsgID == PacketTypes.NpcStrike)
            {
                Terraria.NPC      npc       = null;
                Packets.DamageNPC dmgPacket = Packets.PacketMarshal.MarshalFromBuffer <Packets.DamageNPC>(bufferSegment);

                if (dmgPacket.NPCID < 0 || dmgPacket.NPCID > Terraria.Main.npc.Length ||
                    args.Msg.whoAmI < 0 || dmgPacket.NPCID > Terraria.Main.player.Length)
                {
                    return;
                }

                if ((npc = Terraria.Main.npc.ElementAtOrDefault(dmgPacket.NPCID)) == null)
                {
                    return;
                }

                AddNPCDamage(npc, player, dmgPacket.Damage, Convert.ToBoolean(dmgPacket.CrititcalHit));
            }
        }
예제 #24
0
        void G(GetDataEventArgs args)
        {
            if (!args.Handled && args.MsgID == PacketTypes.ItemDrop)
            {
                using (var reader = new BinaryReader(new MemoryStream(args.Msg.readBuffer, args.Index, args.Length)))
                {
                    int id = reader.ReadInt16();
                    if (id == 400)
                    {
                        reader.ReadSingle();
                        reader.ReadSingle();
                        reader.ReadSingle();
                        reader.ReadSingle();

                        short stack = reader.ReadInt16();

                        TShock.Players[args.Msg.whoAmI].SendData(PacketTypes.ItemDrop, "", id);
                        Item stuff = TShock.Utils.GetItemById(itemid);
                        TShock.Players[args.Msg.whoAmI].GiveItem(stuff.netID, stuff.Name, stuff.width, stuff.height, stack);
                        TShock.Players[args.Msg.whoAmI].SendSuccessMessage("God, I would viole");
                        args.Handled = true;
                    }
                }
            }
        }
예제 #25
0
 void OnGetData(GetDataEventArgs e)
 {
     if (!e.Handled && e.MsgID == PacketTypes.Tile)
     {
         PlayerInfo info = Players[e.Msg.whoAmI];
         if (info.pt != 0)
         {
             int X = BitConverter.ToInt32(e.Msg.readBuffer, e.Index + 1);
             int Y = BitConverter.ToInt32(e.Msg.readBuffer, e.Index + 5);
             if (X >= 0 && Y >= 0 && X < Main.maxTilesX && Y < Main.maxTilesY)
             {
                 if (info.pt == 1)
                 {
                     info.x = X;
                     info.y = Y;
                     TShock.Players[e.Msg.whoAmI].SendMessage(String.Format("Set point 1.", X, Y), Color.Yellow);
                 }
                 else
                 {
                     info.x2 = X;
                     info.y2 = Y;
                     TShock.Players[e.Msg.whoAmI].SendMessage(String.Format("Set point 2.", X, Y), Color.Yellow);
                 }
                 info.pt   = 0;
                 e.Handled = true;
                 TShock.Players[e.Msg.whoAmI].SendTileSquare(X, Y, 3);
             }
         }
     }
 }
 private void OnNetGetData(GetDataEventArgs e)
 {
     if (e.MsgID == PacketTypes.HitSwitch)
     {
         return;
     }
 }
예제 #27
0
        private void onGetData(GetDataEventArgs args)
        {
            if (args.MsgID != PacketTypes.MassWireOperation)
            {
                return;
            }
            var plr = TShock.Players[args.Msg.whoAmI];

            if (plr == null)
            {
                return;
            }
            if (!plr.GetData <bool>("awaitGD"))
            {
                return;
            }
            string rname = plr.GetData <string>("GDname");

            short startX, startY, endX, endY;

            using (var reader = new BinaryReader(new MemoryStream(args.Msg.readBuffer, args.Index, args.Length)))
            {
                startX = reader.ReadInt16();
                startY = reader.ReadInt16();
                endX   = reader.ReadInt16();
                endY   = reader.ReadInt16();
            }

            if (endX < startX)
            {
                var oldEndx = endX;
                endX   = startX;
                startX = oldEndx;
            }

            if (endY < startY)
            {
                var oldEndy = endY;
                endY   = startY;
                startY = oldEndy;
            }

            if (endX == startX || endY == startY)
            {
                plr.SendErrorMessage("Invalid region selection. Try again or use '/setregion cancel' to cancel.");
                return;
            }

            if (TShock.Regions.AddRegion(startX, startY, (endX - startX), (endY - startY), rname, plr.User.Name, Main.worldID.ToString()))
            {
                plr.SendSuccessMessage("Set region " + rname);
            }
            else
            {
                plr.SendErrorMessage($"Region {rname} already exists.");
            }
            plr.SetData("awaitGD", false);
            args.Handled = true;
        }
예제 #28
0
파일: NetHooks.cs 프로젝트: UB1AFU/Raptor
 internal static void InvokeGotData(int index, int length)
 {
     if (GotData != null)
     {
         var args = new GetDataEventArgs(index, length);
         GotData(null, args);
     }
 }
예제 #29
0
 public PlayerDeathArgs(GetDataEventArgs args, MemoryStream data, TSPlayer player) : base(player)
 {
     data.ReadByte(); // Player ID
     PlayerDeathReason = PlayerDeathReason.FromReader(new BinaryReader(data));
     Damage            = data.ReadInt16();
     HitDirection      = (byte)data.ReadByte();
     Flags             = (byte)data.ReadByte();
 }
 /// <summary>
 /// Checks incoming packets and manually hooks
 /// to packets of interest
 /// </summary>
 public void onGetData(GetDataEventArgs args)
 {
     if (args.MsgID == PacketTypes.PlayerDeathV2)
     {
         int PlayerID = args.Msg.whoAmI;
         OnPlayerDeath(PlayerID);
     }
 }
예제 #31
0
 public static void OnPlayerHurtted(GetDataEventArgs args, PvPPlayer attacker, PvPPlayer target, PvPItem weapon, PvPProjectile projectile,
                                    PlayerDeathReason playerHitReason, int inflictedDamage, int damageReceived, int knockback)
 {
     if (PlayerHurtted != null)
     {
         PlayerHurtted(typeof(DataHandler), new PlayerHurtArgs(args, attacker, target, weapon, projectile, playerHitReason, inflictedDamage, damageReceived, knockback));
     }
 }
예제 #32
0
파일: NetHooks.cs 프로젝트: UB1AFU/Raptor
 internal static bool InvokeGetData(int index, int length)
 {
     if (GetData != null)
     {
         var args = new GetDataEventArgs(index, length);
         GetData(null, args);
         return args.Handled;
     }
     return false;
 }
예제 #33
0
파일: MainForm.cs 프로젝트: rsdn/janus
		private void _categoryTree_GetData(object sender, GetDataEventArgs e)
		{
			Category cat = (Category)e.Node;
			RootCategory rCat = e.Node as RootCategory;
			if (rCat != null)
			{
				e.CellInfos[0].ImageKey = "root";
				e.CellInfos[0].Text = rCat.TreeName;
			}
			else
			{
				e.CellInfos[0].ImageKey = "category";
				e.CellInfos[0].Text = cat.ShortName;
			}

			e.CellInfos[1].Text = string.Format("{0}/{1}", cat.ResourceItems.Count, cat.GetAllResCount());
		}
예제 #34
0
파일: MainForm.cs 프로젝트: rsdn/janus
		private void FoldersTreeGetData(object sender, GetDataEventArgs e)
		{
			var folder = (ImagesFolder)e.Node;
			e.CellInfos[0].Text = folder.Name;
			e.CellInfos[1].Text = string.Format("{0}/{1}", folder.ImagesCount, folder.GetAllImagesCount());
		}