Merge branch 'inventory_refactor' into develop

# Conflicts:
#	FFXIVClassic Map Server/Database.cs
#	FFXIVClassic Map Server/FFXIVClassic Map Server.csproj
#	FFXIVClassic Map Server/WorldManager.cs
#	FFXIVClassic Map Server/actors/area/Area.cs
#	FFXIVClassic Map Server/actors/area/Zone.cs
#	FFXIVClassic Map Server/actors/chara/Character.cs
#	FFXIVClassic Map Server/actors/chara/npc/Npc.cs
#	FFXIVClassic Map Server/actors/chara/player/Inventory.cs
#	FFXIVClassic Map Server/actors/chara/player/Player.cs
#	FFXIVClassic Map Server/dataobjects/ZoneConnection.cs
#	FFXIVClassic Map Server/lua/LuaEngine.cs
#	FFXIVClassic Map Server/packets/send/Actor/AddActorPacket.cs
#	FFXIVClassic Map Server/packets/send/Actor/DeleteAllActorsPacket.cs
#	FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs
#	FFXIVClassic Map Server/packets/send/Actor/SetActorStatePacket.cs
#	FFXIVClassic Map Server/packets/send/Actor/SetActorStatusAllPacket.cs
#	FFXIVClassic Map Server/packets/send/Actor/SetActorStatusPacket.cs
#	FFXIVClassic Map Server/packets/send/Actor/_0x132Packet.cs
#	FFXIVClassic Map Server/packets/send/Actor/battle/BattleAction.cs
#	FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX10Packet.cs
#	FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionX18Packet.cs
#	FFXIVClassic Map Server/packets/send/Actor/battle/CommandResultX00Packet.cs
#	FFXIVClassic Map Server/packets/send/Actor/events/SetEmoteEventCondition.cs
#	FFXIVClassic Map Server/packets/send/Actor/inventory/InventoryRemoveX08Packet.cs
#	data/scripts/commands/gm/giveitem.lua
This commit is contained in:
Filip Maj 2019-05-06 15:59:09 -04:00
commit bcb609e4f6
202 changed files with 2713 additions and 1040 deletions

View file

@ -1,9 +1,5 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.WorldPackets.Receive
{

View file

@ -0,0 +1,31 @@
using System;
using System.IO;
namespace FFXIVClassic_Map_Server.packets.WorldPackets.Receive
{
class LinkshellResultPacket
{
public int resultCode;
public bool invalidPacket = false;
public LinkshellResultPacket(byte[] data)
{
using (MemoryStream mem = new MemoryStream(data))
{
using (BinaryReader binReader = new BinaryReader(mem))
{
try
{
resultCode = binReader.ReadInt32();
}
catch (Exception)
{
invalidPacket = true;
}
}
}
}
}
}

View file

@ -1,10 +1,5 @@
using FFXIVClassic_Map_Server.actors.group;
using System;
using System.Collections.Generic;
using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.WorldPackets.Receive
{

View file

@ -1,9 +1,5 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.WorldPackets.Receive
{

View file

@ -1,9 +1,5 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.WorldPackets.Receive
{

View file

@ -1,7 +1,6 @@
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
@ -20,6 +19,7 @@ namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
using (BinaryWriter binWriter = new BinaryWriter(mem))
{
binWriter.Write(Encoding.ASCII.GetBytes(name), 0, Encoding.ASCII.GetByteCount(name) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(name));
binWriter.BaseStream.Seek(0x20, SeekOrigin.Begin);
binWriter.Write((UInt16)crest);
binWriter.Write((UInt32)master);
}

View file

@ -1,6 +1,5 @@
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.dataobjects;
using System;
using System.IO;
using System.Text;

View file

@ -1,11 +1,7 @@
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
{

View file

@ -1,8 +1,5 @@
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.Actors;
using FFXIVClassic_Map_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

View file

@ -1,11 +1,5 @@
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
{

View file

@ -1,11 +1,8 @@
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
{

View file

@ -1,8 +1,6 @@
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.Actors;
using FFXIVClassic_Map_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

View file

@ -1,8 +1,6 @@
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.Actors;
using FFXIVClassic_Map_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

View file

@ -1,11 +1,8 @@
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
{

View file

@ -1,10 +1,7 @@
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.Actors;
using FFXIVClassic_Map_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send.Group
{

View file

@ -1,8 +1,6 @@
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.Actors;
using FFXIVClassic_Map_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

View file

@ -1,10 +1,6 @@
using FFXIVClassic.Common;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.WorldPackets.Send
{

View file

@ -1,9 +1,6 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.receive
{

View file

@ -0,0 +1,29 @@
using System;
using System.IO;
namespace FFXIVClassic_Map_Server.packets.receive
{
class UpdateItemPackagePacket
{
public bool invalidPacket = false;
public uint actorID;
public uint packageId;
public UpdateItemPackagePacket(byte[] data)
{
using (MemoryStream mem = new MemoryStream(data))
{
using (BinaryReader binReader = new BinaryReader(mem))
{
try{
actorID = binReader.ReadUInt32();
packageId = binReader.ReadUInt32();
}
catch (Exception){
invalidPacket = true;
}
}
}
}
}
}

View file

@ -1,6 +1,6 @@
using FFXIVClassic.Common;
namespace FFXIVClassic_Map_Server.packets.send.actor
namespace FFXIVClassic_Map_Server.packets.send.actor
{
class AddActorPacket
{

View file

@ -1,6 +1,6 @@
using FFXIVClassic.Common;
namespace FFXIVClassic_Map_Server.packets.send.actor
namespace FFXIVClassic_Map_Server.packets.send.actor
{
class DeleteAllActorsPacket
{

View file

@ -1,9 +1,5 @@
using FFXIVClassic.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.actor
{

View file

@ -2,7 +2,7 @@
using System.IO;
using System.Text;
namespace FFXIVClassic_Map_Server.packets.send.actor
namespace FFXIVClassic_Map_Server.packets.send.actor
{
class PlayBGAnimation
{

View file

@ -5,7 +5,7 @@ using System.Linq;
using System.Reflection;
using System.Text;
namespace FFXIVClassic_Map_Server.packets.send.actor
namespace FFXIVClassic_Map_Server.packets.send.actor
{
class SetActorPropetyPacket
{
@ -110,6 +110,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
{
string[] split = name.Split('.');
int arrayIndex = 0;
if (!(split[0].Equals("work") || split[0].Equals("charaWork") || split[0].Equals("playerWork") || split[0].Equals("npcWork") || split[0].Equals("guildleveWork")))
return false;

View file

@ -1,7 +1,7 @@
using FFXIVClassic.Common;
using System;
namespace FFXIVClassic_Map_Server.packets.send.actor
namespace FFXIVClassic_Map_Server.packets.send.actor
{
class SetActorStatePacket
{

View file

@ -2,7 +2,7 @@
using System;
using System.IO;
namespace FFXIVClassic_Map_Server.packets.send.actor
namespace FFXIVClassic_Map_Server.packets.send.actor
{
class SetActorStatusAllPacket
{

View file

@ -2,7 +2,7 @@
using System;
using System.IO;
namespace FFXIVClassic_Map_Server.packets.send.actor
namespace FFXIVClassic_Map_Server.packets.send.actor
{
class SetActorStatusPacket
{

View file

@ -3,7 +3,7 @@ using System;
using System.IO;
using System.Text;
namespace FFXIVClassic_Map_Server.packets.send.actor
namespace FFXIVClassic_Map_Server.packets.send.actor
{
class _0x132Packet
{

View file

@ -0,0 +1,12 @@
namespace FFXIVClassic_Map_Server.packets.send.actor.battle
{
class BattleAction
{
public uint targetId;
public ushort amount;
public ushort worldMasterTextId;
public uint effectId;
public byte param;
public byte unknown;
}
}

View file

@ -0,0 +1,59 @@
using FFXIVClassic.Common;
using System;
using System.IO;
namespace FFXIVClassic_Map_Server.packets.send.actor.battle
{
class BattleActionX10Packet
{
public const ushort OPCODE = 0x013A;
public const uint PACKET_SIZE = 0xD8;
public static SubPacket BuildPacket(uint playerActorID, uint sourceActorId, uint animationId, ushort commandId, BattleAction[] actionList)
{
byte[] data = new byte[PACKET_SIZE - 0x20];
using (MemoryStream mem = new MemoryStream(data))
{
using (BinaryWriter binWriter = new BinaryWriter(mem))
{
binWriter.Write((UInt32)sourceActorId);
binWriter.Write((UInt32)animationId);
//Missing... last value is float, string in here as well?
binWriter.Seek(0x20, SeekOrigin.Begin);
binWriter.Write((UInt32) actionList.Length); //Num actions (always 1 for this)
binWriter.Write((UInt16)commandId);
binWriter.Write((UInt16)810); //?
binWriter.Seek(0x20, SeekOrigin.Begin);
foreach (BattleAction action in actionList)
binWriter.Write((UInt32)action.targetId);
binWriter.Seek(0x50, SeekOrigin.Begin);
foreach (BattleAction action in actionList)
binWriter.Write((UInt16)action.amount);
binWriter.Seek(0x64, SeekOrigin.Begin);
foreach (BattleAction action in actionList)
binWriter.Write((UInt16)action.worldMasterTextId);
binWriter.Seek(0x78, SeekOrigin.Begin);
foreach (BattleAction action in actionList)
binWriter.Write((UInt32)action.effectId);
binWriter.Seek(0xA0, SeekOrigin.Begin);
foreach (BattleAction action in actionList)
binWriter.Write((Byte)action.param);
binWriter.Seek(0xAA, SeekOrigin.Begin);
foreach (BattleAction action in actionList)
binWriter.Write((Byte)action.unknown);
}
}
return new SubPacket(OPCODE, sourceActorId, data);
}
}
}

View file

@ -0,0 +1,59 @@
using FFXIVClassic.Common;
using System;
using System.IO;
namespace FFXIVClassic_Map_Server.packets.send.actor.battle
{
class BattleActionX18Packet
{
public const ushort OPCODE = 0x013B;
public const uint PACKET_SIZE = 0x148;
public static SubPacket BuildPacket(uint playerActorID, uint sourceActorId, uint animationId, ushort commandId, BattleAction[] actionList)
{
byte[] data = new byte[PACKET_SIZE - 0x20];
using (MemoryStream mem = new MemoryStream(data))
{
using (BinaryWriter binWriter = new BinaryWriter(mem))
{
binWriter.Write((UInt32)sourceActorId);
binWriter.Write((UInt32)animationId);
//Missing... last value is float, string in here as well?
binWriter.Seek(0x20, SeekOrigin.Begin);
binWriter.Write((UInt32) actionList.Length); //Num actions (always 1 for this)
binWriter.Write((UInt16)commandId);
binWriter.Write((UInt16)810); //?
binWriter.Seek(0x58, SeekOrigin.Begin);
foreach (BattleAction action in actionList)
binWriter.Write((UInt32)action.targetId);
binWriter.Seek(0xA0, SeekOrigin.Begin);
foreach (BattleAction action in actionList)
binWriter.Write((UInt16)action.amount);
binWriter.Seek(0xC4, SeekOrigin.Begin);
foreach (BattleAction action in actionList)
binWriter.Write((UInt16)action.worldMasterTextId);
binWriter.Seek(0xE8, SeekOrigin.Begin);
foreach (BattleAction action in actionList)
binWriter.Write((UInt32)action.effectId);
binWriter.Seek(0x130, SeekOrigin.Begin);
foreach (BattleAction action in actionList)
binWriter.Write((Byte)action.param);
binWriter.Seek(0x142, SeekOrigin.Begin);
foreach (BattleAction action in actionList)
binWriter.Write((Byte)action.unknown);
}
}
return new SubPacket(OPCODE, sourceActorId, data);
}
}
}

View file

@ -2,7 +2,7 @@
using System;
using System.IO;
namespace FFXIVClassic_Map_Server.packets.send.actor.battle
namespace FFXIVClassic_Map_Server.packets.send.actor.battle
{
class CommandResultX00Packet
{

View file

@ -4,7 +4,7 @@ using System;
using System.IO;
using System.Text;
namespace FFXIVClassic_Map_Server.packets.send.actor.events
namespace FFXIVClassic_Map_Server.packets.send.actor.events
{
class SetEmoteEventCondition
{

View file

@ -7,16 +7,13 @@ namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
public const ushort OPCODE = 0x016D;
public const uint PACKET_SIZE = 0x28;
public static SubPacket BuildPacket(uint sourceActorId, uint targetActorId)
public static SubPacket BuildPacket(uint playerActorID, bool clearItemPackage = false)
{
byte[] data = new byte[8];
data[0] = 2;
return new SubPacket(OPCODE, sourceActorId, data);
}
public static SubPacket BuildPacket(uint playerActorID)
{
byte[] data = new byte[8];
if (clearItemPackage)
data[0] = 2;
return new SubPacket(OPCODE, playerActorID, data);
}
}

View file

@ -3,7 +3,7 @@ using System;
using System.Collections.Generic;
using System.IO;
namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
namespace FFXIVClassic_Map_Server.packets.send.actor.inventory
{
class InventoryRemoveX08Packet
{

View file

@ -13,7 +13,7 @@ namespace FFXIVClassic_Map_Server.packets.send.events
public const ushort OPCODE = 0x012F;
public const uint PACKET_SIZE = 0x90;
public static SubPacket BuildPacket(uint sourcePlayerActorId, uint targetEventActorId, string conditionName, List<LuaParam> luaParams)
public static SubPacket BuildPacket(uint sourcePlayerActorId, uint targetEventActorId, uint unknown, string conditionName, List<LuaParam> luaParams)
{
byte[] data = new byte[PACKET_SIZE - 0x20];
@ -23,10 +23,7 @@ namespace FFXIVClassic_Map_Server.packets.send.events
{
binWriter.Write((UInt32)sourcePlayerActorId);
binWriter.Write((UInt32)targetEventActorId);
int test = 0x75dc1705; //This will crash if set to 0 on pushCommand but not for mining which has to be 0????
binWriter.Write((UInt32)test);
binWriter.Write((UInt32)unknown);
binWriter.Write((UInt32)0x30400000);
binWriter.Write(Encoding.ASCII.GetBytes(conditionName), 0, Encoding.ASCII.GetByteCount(conditionName) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(conditionName));

View file

@ -2,9 +2,6 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.group
{

View file

@ -2,9 +2,6 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.group
{

View file

@ -2,9 +2,6 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.group
{

View file

@ -2,9 +2,6 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.group
{

View file

@ -1,12 +1,8 @@
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.actors.group;
using FFXIVClassic_Map_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.group
{

View file

@ -1,12 +1,8 @@
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.actors.group;
using FFXIVClassic_Map_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.group
{

View file

@ -1,11 +1,7 @@
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.actors.group;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.groups
{

View file

@ -1,12 +1,8 @@
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.actors.group;
using FFXIVClassic_Map_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.group
{

View file

@ -1,6 +1,4 @@
using FFXIVClassic.Common;
namespace FFXIVClassic_Map_Server.packets.send.group
namespace FFXIVClassic_Map_Server.packets.send.group
{
class GroupMember
{

View file

@ -1,12 +1,7 @@
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.actors.group;
using FFXIVClassic_Map_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.group
{

View file

@ -1,12 +1,7 @@
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.actors.group;
using FFXIVClassic_Map_Server.dataobjects;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.group
{

View file

@ -2,9 +2,7 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.group
{

View file

@ -2,9 +2,7 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.group
{

View file

@ -2,9 +2,7 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.group
{

View file

@ -2,9 +2,7 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.group
{

View file

@ -1,12 +1,10 @@
using FFXIVClassic.Common;
using FFXIVClassic_Map_Server.actors.group;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.groups
{

View file

@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.search
namespace FFXIVClassic_Map_Server.packets.send.search
{
class ItemSearchResult
{

View file

@ -1,6 +1,4 @@
using System.IO;
using System.Text;

using FFXIVClassic.Common;
namespace FFXIVClassic_Map_Server.packets.send.search

View file

@ -1,5 +1,4 @@
using System.IO;
using System.Text;
using System;
using FFXIVClassic.Common;
using System.Collections.Generic;

View file

@ -1,6 +1,4 @@
using System.IO;
using System.Text;

using FFXIVClassic.Common;
namespace FFXIVClassic_Map_Server.packets.send.search