Example #1
0
        public static void HandleSaveProjectile(int index, ref byte[] data)
        {
            int        ProjectileNum;
            ByteStream buffer = new ByteStream(data);

            if (S_Players.GetPlayerAccess(index) < (byte)Enums.AdminType.Developer)
            {
                return;
            }

            ProjectileNum = buffer.ReadInt32();

            // Prevent hacking
            if (ProjectileNum < 0 || ProjectileNum > MAX_PROJECTILES)
            {
                return;
            }

            Projectiles[ProjectileNum].Name   = buffer.ReadString();
            Projectiles[ProjectileNum].Sprite = buffer.ReadInt32();
            Projectiles[ProjectileNum].Range  = (byte)buffer.ReadInt32();
            Projectiles[ProjectileNum].Speed  = buffer.ReadInt32();
            Projectiles[ProjectileNum].Damage = buffer.ReadInt32();

            // Save it
            SendUpdateProjectileToAll(ProjectileNum);
            SaveProjectile(ProjectileNum);
            modDatabase.Addlog(S_Players.GetPlayerLogin(index) + " saved Projectile #" + ProjectileNum + ".", S_Constants.ADMIN_LOG);
            buffer.Dispose();
        }
        public static void Packet_SaveAnimation(int index, ref byte[] data)
        {
            int        AnimNum;
            ByteStream buffer = new ByteStream(data);

            S_General.AddDebug("Recieved EMSG: SaveAnimation");

            AnimNum = buffer.ReadInt32();
            var loopTo = Information.UBound(Types.Animation[AnimNum].Frames);

            // Update the Animation
            for (var i = 0; i <= loopTo; i++)
            {
                Types.Animation[AnimNum].Frames[i] = buffer.ReadInt32();
            }
            var loopTo1 = Information.UBound(Types.Animation[AnimNum].LoopCount);

            for (int i = 0; i <= loopTo1; i++)
            {
                Types.Animation[AnimNum].LoopCount[i] = buffer.ReadInt32();
            }
            var loopTo2 = Information.UBound(Types.Animation[AnimNum].LoopTime);

            for (int i = 0; i <= loopTo2; i++)
            {
                Types.Animation[AnimNum].LoopTime[i] = buffer.ReadInt32();
            }

            Types.Animation[AnimNum].Name  = buffer.ReadString();
            Types.Animation[AnimNum].Sound = buffer.ReadString();

            if (Types.Animation[AnimNum].Name == null)
            {
                Types.Animation[AnimNum].Name = "";
            }
            if (Types.Animation[AnimNum].Sound == null)
            {
                Types.Animation[AnimNum].Sound = "";
            }
            var loopTo3 = Information.UBound(Types.Animation[AnimNum].Sprite);

            for (var i = 0; i <= loopTo3; i++)
            {
                Types.Animation[AnimNum].Sprite[i] = buffer.ReadInt32();
            }

            buffer.Dispose();

            // Save it
            SaveAnimation(AnimNum);
            SendUpdateAnimationToAll(AnimNum);
            modDatabase.Addlog(S_Players.GetPlayerLogin(index) + " saved Animation #" + AnimNum + ".", S_Constants.ADMIN_LOG);
        }
        public static void Packet_SaveResource(int index, ref byte[] data)
        {
            int        resourcenum;
            ByteStream buffer = new ByteStream(data);

            S_General.AddDebug("Recieved EMSG: SaveResource");

            // Prevent hacking
            if (S_Players.GetPlayerAccess(index) < (int)Enums.AdminType.Developer)
            {
                return;
            }

            resourcenum = buffer.ReadInt32();

            // Prevent hacking
            if (resourcenum <= 0 || resourcenum > Constants.MAX_RESOURCES)
            {
                return;
            }

            Types.Resource[resourcenum].Animation      = buffer.ReadInt32();
            Types.Resource[resourcenum].EmptyMessage   = buffer.ReadString();
            Types.Resource[resourcenum].ExhaustedImage = buffer.ReadInt32();
            Types.Resource[resourcenum].Health         = buffer.ReadInt32();
            Types.Resource[resourcenum].ExpReward      = buffer.ReadInt32();
            Types.Resource[resourcenum].ItemReward     = buffer.ReadInt32();
            Types.Resource[resourcenum].Name           = buffer.ReadString();
            Types.Resource[resourcenum].ResourceImage  = buffer.ReadInt32();
            Types.Resource[resourcenum].ResourceType   = buffer.ReadInt32();
            Types.Resource[resourcenum].RespawnTime    = buffer.ReadInt32();
            Types.Resource[resourcenum].SuccessMessage = buffer.ReadString();
            Types.Resource[resourcenum].LvlRequired    = buffer.ReadInt32();
            Types.Resource[resourcenum].ToolRequired   = buffer.ReadInt32();
            Types.Resource[resourcenum].Walkthrough    = Convert.ToBoolean(buffer.ReadInt32());

            // Save it
            SendUpdateResourceToAll(resourcenum);
            SaveResource(resourcenum);

            modDatabase.Addlog(S_Players.GetPlayerLogin(index) + " saved Resource #" + resourcenum + ".", S_Constants.ADMIN_LOG);

            buffer.Dispose();
        }
Example #4
0
        public static void Packet_SaveQuest(int index, ref byte[] data)
        {
            int        QuestNum;
            ByteStream buffer = new ByteStream(data);

            // Prevent hacking
            if (S_Players.GetPlayerAccess(index) < (byte)Enums.AdminType.Developer)
            {
                return;
            }

            QuestNum = buffer.ReadInt32();
            if (QuestNum < 0 || QuestNum > MAX_QUESTS)
            {
                return;
            }

            // Update the Quest
            Quest[QuestNum].Name       = buffer.ReadString();
            Quest[QuestNum].QuestLog   = buffer.ReadString();
            Quest[QuestNum].Repeat     = (byte)buffer.ReadInt32();
            Quest[QuestNum].Cancelable = (byte)buffer.ReadInt32();

            Quest[QuestNum].ReqCount         = buffer.ReadInt32();
            Quest[QuestNum].Requirement      = new int[Quest[QuestNum].ReqCount + 1];
            Quest[QuestNum].RequirementIndex = new int[Quest[QuestNum].ReqCount + 1];
            var loopTo = Quest[QuestNum].ReqCount;

            for (var I = 1; I <= loopTo; I++)
            {
                Quest[QuestNum].Requirement[I]      = buffer.ReadInt32();
                Quest[QuestNum].RequirementIndex[I] = buffer.ReadInt32();
            }

            Quest[QuestNum].QuestGiveItem        = buffer.ReadInt32();
            Quest[QuestNum].QuestGiveItemValue   = buffer.ReadInt32();
            Quest[QuestNum].QuestRemoveItem      = buffer.ReadInt32();
            Quest[QuestNum].QuestRemoveItemValue = buffer.ReadInt32();

            for (var I = 1; I <= 3; I++)
            {
                Quest[QuestNum].Chat[I] = buffer.ReadString();
            }

            Quest[QuestNum].RewardCount      = buffer.ReadInt32();
            Quest[QuestNum].RewardItem       = new int[Quest[QuestNum].RewardCount + 1];
            Quest[QuestNum].RewardItemAmount = new int[Quest[QuestNum].RewardCount + 1];
            var loopTo1 = Quest[QuestNum].RewardCount;

            for (var i = 1; i <= loopTo1; i++)
            {
                Quest[QuestNum].RewardItem[i]       = buffer.ReadInt32();
                Quest[QuestNum].RewardItemAmount[i] = buffer.ReadInt32();
            }

            Quest[QuestNum].RewardExp = buffer.ReadInt32();

            Quest[QuestNum].TaskCount = buffer.ReadInt32();
            Quest[QuestNum].Task      = new TaskRec[Quest[QuestNum].TaskCount + 1];
            var loopTo2 = Quest[QuestNum].TaskCount;

            for (var I = 1; I <= loopTo2; I++)
            {
                Quest[QuestNum].Task[I].Order    = buffer.ReadInt32();
                Quest[QuestNum].Task[I].NPC      = buffer.ReadInt32();
                Quest[QuestNum].Task[I].Item     = buffer.ReadInt32();
                Quest[QuestNum].Task[I].Map      = buffer.ReadInt32();
                Quest[QuestNum].Task[I].Resource = buffer.ReadInt32();
                Quest[QuestNum].Task[I].Amount   = buffer.ReadInt32();
                Quest[QuestNum].Task[I].Speech   = buffer.ReadString();
                Quest[QuestNum].Task[I].TaskLog  = buffer.ReadString();
                Quest[QuestNum].Task[I].QuestEnd = (byte)buffer.ReadInt32();
                Quest[QuestNum].Task[I].TaskType = buffer.ReadInt32();
            }

            buffer.Dispose();

            // Save it
            SendQuests(index);              // editor
            SendUpdateQuestToAll(QuestNum); // players
            SaveQuest(QuestNum);
            modDatabase.Addlog(S_Players.GetPlayerLogin(index) + " saved Quest #" + QuestNum + ".", S_Constants.ADMIN_LOG);
        }
Example #5
0
        public static void Packet_SaveItem(int index, ref byte[] data)
        {
            int        n;
            ByteStream buffer = new ByteStream(data);

            S_General.AddDebug("Recieved EMSG: SaveItem");

            // Prevent hacking
            if (S_Players.GetPlayerAccess(index) < (int)Enums.AdminType.Developer)
            {
                return;
            }

            n = buffer.ReadInt32();

            if (n < 0 || n > Constants.MAX_ITEMS)
            {
                return;
            }

            // Update the item
            Types.Item[n].AccessReq = buffer.ReadInt32();

            for (var i = 0; i <= (int)Enums.StatType.Count - 1; i++)
            {
                Types.Item[n].Add_Stat[i] = (byte)buffer.ReadInt32();
            }

            Types.Item[n].Animation = buffer.ReadInt32();
            Types.Item[n].BindType  = (byte)buffer.ReadInt32();
            Types.Item[n].ClassReq  = buffer.ReadInt32();
            Types.Item[n].Data1     = buffer.ReadInt32();
            Types.Item[n].Data2     = buffer.ReadInt32();
            Types.Item[n].Data3     = buffer.ReadInt32();
            Types.Item[n].TwoHanded = buffer.ReadInt32();
            Types.Item[n].LevelReq  = buffer.ReadInt32();
            Types.Item[n].Mastery   = (byte)buffer.ReadInt32();
            Types.Item[n].Name      = Microsoft.VisualBasic.Strings.Trim(buffer.ReadString());
            Types.Item[n].Paperdoll = buffer.ReadInt32();
            Types.Item[n].Pic       = buffer.ReadInt32();
            Types.Item[n].Price     = buffer.ReadInt32();
            Types.Item[n].Rarity    = (byte)buffer.ReadInt32();
            Types.Item[n].Speed     = buffer.ReadInt32();

            Types.Item[n].Randomize = (byte)buffer.ReadInt32();
            Types.Item[n].RandomMin = (byte)buffer.ReadInt32();
            Types.Item[n].RandomMax = (byte)buffer.ReadInt32();

            Types.Item[n].Stackable   = (byte)buffer.ReadInt32();
            Types.Item[n].Description = Microsoft.VisualBasic.Strings.Trim(buffer.ReadString());

            for (var i = 0; i <= (int)Enums.StatType.Count - 1; i++)
            {
                Types.Item[n].Stat_Req[i] = (byte)buffer.ReadInt32();
            }

            Types.Item[n].Type    = (byte)buffer.ReadInt32();
            Types.Item[n].SubType = (byte)buffer.ReadInt32();

            Types.Item[n].ItemLevel = (byte)buffer.ReadInt32();

            // Housing
            Types.Item[n].FurnitureWidth  = buffer.ReadInt32();
            Types.Item[n].FurnitureHeight = buffer.ReadInt32();

            for (var a = 0; a <= 3; a++)
            {
                for (var b = 0; b <= 3; b++)
                {
                    Types.Item[n].FurnitureBlocks[a, b] = buffer.ReadInt32();
                    Types.Item[n].FurnitureFringe[a, b] = buffer.ReadInt32();
                }
            }

            Types.Item[n].KnockBack      = (byte)buffer.ReadInt32();
            Types.Item[n].KnockBackTiles = (byte)buffer.ReadInt32();

            Types.Item[n].Projectile = buffer.ReadInt32();
            Types.Item[n].Ammo       = buffer.ReadInt32();

            // Save it
            SendUpdateItemToAll(n);
            SaveItem(n);
            modDatabase.Addlog(S_Players.GetPlayerLogin(index) + " saved item #" + n + ".", S_Constants.ADMIN_LOG);
            buffer.Dispose();
        }