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(); }
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); }
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(); }