mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-06-12 23:44:34 +02:00
More trade work.
This commit is contained in:
parent
c7e38b8b00
commit
94491903f7
5 changed files with 93 additions and 2 deletions
|
@ -14,13 +14,14 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
class Inventory
|
||||
{
|
||||
public const ushort NORMAL = 0; //Max 0xC8
|
||||
public const ushort TRADE = 1; //Max 0x96
|
||||
public const ushort UNKNOWN = 1; //Max 0x96
|
||||
public const ushort LOOT = 4; //Max 0xA
|
||||
public const ushort MELDREQUEST = 5; //Max 0x04
|
||||
public const ushort BAZAAR = 7; //Max 0x0A
|
||||
public const ushort CURRENCY_CRYSTALS = 99; //Max 0x140
|
||||
public const ushort KEYITEMS = 100; //Max 0x500
|
||||
public const ushort EQUIPMENT = 0x00FE; //Max 0x23
|
||||
public const ushort EQUIPMENT = 0x00FE; //Max 0x23
|
||||
public const ushort TRADE = 0x00FD; //Max 0x04
|
||||
public const ushort EQUIPMENT_OTHERPLAYER = 0x00F9; //Max 0x23
|
||||
|
||||
public enum INV_ERROR {
|
||||
|
@ -293,6 +294,18 @@ namespace FFXIVClassic_Map_Server.actors.chara.player
|
|||
}
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
for (int i = 0; i < endOfListIndex; i++)
|
||||
{
|
||||
list[i] = null;
|
||||
isDirty[i] = true;
|
||||
}
|
||||
endOfListIndex = 0;
|
||||
|
||||
SendUpdatePackets();
|
||||
}
|
||||
|
||||
public void ChangeDurability(uint slot, uint durabilityChange)
|
||||
{
|
||||
isDirty[slot] = true;
|
||||
|
|
|
@ -108,6 +108,10 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||
private Dictionary<ushort, Inventory> inventories = new Dictionary<ushort, Inventory>();
|
||||
private Equipment equipment;
|
||||
|
||||
//Trading
|
||||
private Player otherTrader = null;
|
||||
private Inventory myOfferings;
|
||||
|
||||
//GC Related
|
||||
public byte gcCurrent;
|
||||
public byte gcRankLimsa;
|
||||
|
@ -257,6 +261,8 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||
|
||||
Database.LoadPlayerCharacter(this);
|
||||
lastPlayTimeUpdate = Utils.UnixTimeStampUTC();
|
||||
|
||||
|
||||
}
|
||||
|
||||
public List<SubPacket> Create0x132Packets()
|
||||
|
@ -1775,5 +1781,61 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||
}
|
||||
}
|
||||
|
||||
public void StartTradeTransaction(Player otherPlayer)
|
||||
{
|
||||
myOfferings = new Inventory(this, 4, Inventory.TRADE, true);
|
||||
Inventory otherPlayerOfferings = new Inventory(otherPlayer, 4, Inventory.TRADE, true);
|
||||
|
||||
QueuePacket(InventoryBeginChangePacket.BuildPacket(actorId));
|
||||
QueuePacket(InventorySetBeginPacket.BuildPacket(actorId, 4, Inventory.TRADE));
|
||||
|
||||
QueuePacket(EquipmentListX01Packet.BuildPacket(actorId, 1, 1));
|
||||
|
||||
QueuePacket(InventorySetEndPacket.BuildPacket(actorId));
|
||||
QueuePacket(InventoryEndChangePacket.BuildPacket(actorId));
|
||||
|
||||
myOfferings.SendFullInventory(this);
|
||||
|
||||
otherTrader = otherPlayer;
|
||||
}
|
||||
|
||||
public void Test()
|
||||
{
|
||||
QueuePacket(InventoryBeginChangePacket.BuildPacket(actorId));
|
||||
QueuePacket(InventorySetBeginPacket.BuildPacket(actorId, 4, Inventory.TRADE));
|
||||
|
||||
QueuePacket(InventoryRemoveX01Packet.BuildPacket(actorId, 1));
|
||||
|
||||
QueuePacket(InventorySetEndPacket.BuildPacket(actorId));
|
||||
QueuePacket(InventoryEndChangePacket.BuildPacket(actorId));
|
||||
}
|
||||
public void Test2()
|
||||
{
|
||||
QueuePacket(InventoryBeginChangePacket.BuildPacket(actorId));
|
||||
QueuePacket(InventorySetBeginPacket.BuildPacket(actorId, 4, Inventory.TRADE));
|
||||
|
||||
QueuePacket(EquipmentListX01Packet.BuildPacket(actorId, 1, 1));
|
||||
|
||||
QueuePacket(InventorySetEndPacket.BuildPacket(actorId));
|
||||
QueuePacket(InventoryEndChangePacket.BuildPacket(actorId));
|
||||
}
|
||||
|
||||
|
||||
public Inventory GetTradeOfferings()
|
||||
{
|
||||
return myOfferings;
|
||||
}
|
||||
|
||||
public void FinishTradeTransaction()
|
||||
{
|
||||
myOfferings = null;
|
||||
otherTrader = null;
|
||||
}
|
||||
|
||||
public void CancelTradeTransaction()
|
||||
{
|
||||
myOfferings = null;
|
||||
otherTrader = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue