sync
This commit is contained in:
parent
6159b35e72
commit
e2740b6a36
3 changed files with 63 additions and 165 deletions
|
|
@ -2589,12 +2589,12 @@ namespace TShockAPI
|
||||||
if (OnPlayerSlot(args.Player, args.Data, plr, slot, stack, prefix, type) || plr != args.Player.Index || slot < 0 ||
|
if (OnPlayerSlot(args.Player, args.Data, plr, slot, stack, prefix, type) || plr != args.Player.Index || slot < 0 ||
|
||||||
slot > NetItem.MaxInventory)
|
slot > NetItem.MaxInventory)
|
||||||
return true;
|
return true;
|
||||||
if (args.Player.IgnoreSSCPackets)
|
// if (args.Player.IgnoreSSCPackets)
|
||||||
{
|
// {
|
||||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerSlot rejected ignore ssc packets"));
|
// TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerSlot rejected ignore ssc packets"));
|
||||||
args.Player.SendData(PacketTypes.PlayerSlot, "", args.Player.Index, slot, prefix);
|
// args.Player.SendData(PacketTypes.PlayerSlot, "", args.Player.Index, slot, prefix);
|
||||||
return true;
|
// return true;
|
||||||
}
|
// }
|
||||||
|
|
||||||
// Garabage? Or will it cause some internal initialization or whatever?
|
// Garabage? Or will it cause some internal initialization or whatever?
|
||||||
var item = new Item();
|
var item = new Item();
|
||||||
|
|
@ -3855,12 +3855,18 @@ namespace TShockAPI
|
||||||
|
|
||||||
private static bool HandleTeleport(GetDataHandlerArgs args)
|
private static bool HandleTeleport(GetDataHandlerArgs args)
|
||||||
{
|
{
|
||||||
|
return false;
|
||||||
BitsByte flag = (BitsByte)args.Data.ReadByte();
|
BitsByte flag = (BitsByte)args.Data.ReadByte();
|
||||||
short id = args.Data.ReadInt16();
|
short id = args.Data.ReadInt16();
|
||||||
var x = args.Data.ReadSingle();
|
Vector2 position = args.Data.ReadVector2();
|
||||||
var y = args.Data.ReadSingle();
|
|
||||||
byte style = args.Data.ReadInt8();
|
byte style = args.Data.ReadInt8();
|
||||||
|
|
||||||
|
Console.WriteLine($"--- Packet 65 Debug ---");
|
||||||
|
Console.WriteLine($"Raw BitsByte: {((byte)flag).ToString("X2")} (Hex)");
|
||||||
|
Console.WriteLine($"Entity ID: {id}");
|
||||||
|
Console.WriteLine($"Position: X:{position.X:F2}, Y:{position.Y:F2}");
|
||||||
|
Console.WriteLine($"Style: {style}");
|
||||||
|
|
||||||
int type = 0;
|
int type = 0;
|
||||||
bool isNPC = type == 1;
|
bool isNPC = type == 1;
|
||||||
int extraInfo = -1;
|
int extraInfo = -1;
|
||||||
|
|
@ -3883,7 +3889,7 @@ namespace TShockAPI
|
||||||
extraInfo = args.Data.ReadInt32();
|
extraInfo = args.Data.ReadInt32();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (OnTeleport(args.Player, args.Data, id, flag, x, y, style, extraInfo))
|
if (OnTeleport(args.Player, args.Data, id, flag, position.X, position.Y, style, extraInfo))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
//Rod of Discord teleport (usually (may be used by modded clients to teleport))
|
//Rod of Discord teleport (usually (may be used by modded clients to teleport))
|
||||||
|
|
@ -3920,6 +3926,11 @@ namespace TShockAPI
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (type == 3)
|
||||||
|
{
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -257,8 +257,8 @@ namespace TShockAPI
|
||||||
throw new ArgumentNullException("str");
|
throw new ArgumentNullException("str");
|
||||||
|
|
||||||
string[] comp = str.Split(',');
|
string[] comp = str.Split(',');
|
||||||
if (comp.Length != 3)
|
if (comp.Length != 4)
|
||||||
throw new FormatException("String does not contain three sections.");
|
throw new FormatException("String does not contain 4 sections.");
|
||||||
|
|
||||||
int netId = Int32.Parse(comp[0]);
|
int netId = Int32.Parse(comp[0]);
|
||||||
int stack = Int32.Parse(comp[1]);
|
int stack = Int32.Parse(comp[1]);
|
||||||
|
|
|
||||||
|
|
@ -531,166 +531,47 @@ namespace TShockAPI
|
||||||
NetMessage.SendData((int)PacketTypes.SyncLoadout, remoteClient: player.Index, number: player.Index, number2: player.TPlayer.CurrentLoadoutIndex);
|
NetMessage.SendData((int)PacketTypes.SyncLoadout, remoteClient: player.Index, number: player.Index, number2: player.TPlayer.CurrentLoadoutIndex);
|
||||||
NetMessage.SendData((int)PacketTypes.SyncLoadout, ignoreClient: player.Index, number: player.Index, number2: player.TPlayer.CurrentLoadoutIndex);
|
NetMessage.SendData((int)PacketTypes.SyncLoadout, ignoreClient: player.Index, number: player.Index, number2: player.TPlayer.CurrentLoadoutIndex);
|
||||||
|
|
||||||
float slot = 0f;
|
|
||||||
for (int k = 0; k < NetItem.InventorySlots; k++)
|
for (int index2 = 0; index2 < 59; ++index2)
|
||||||
{
|
NetMessage.TrySendData(5, number: player.Index, number2: (float) (PlayerItemSlotID.Inventory0 + index2));
|
||||||
NetMessage.SendData(5, -1, -1, NetworkText.FromLiteral(Main.player[player.Index].inventory[k].Name), player.Index, slot, (float)Main.player[player.Index].inventory[k].prefix);
|
TrySendingItemArray(player.Index, player.TPlayer.armor, PlayerItemSlotID.Armor0);
|
||||||
slot++;
|
TrySendingItemArray(player.Index, player.TPlayer.dye, PlayerItemSlotID.Dye0);
|
||||||
}
|
TrySendingItemArray(player.Index, player.TPlayer.miscEquips, PlayerItemSlotID.Misc0);
|
||||||
for (int k = 0; k < NetItem.ArmorSlots; k++)
|
TrySendingItemArray(player.Index, player.TPlayer.miscDyes, PlayerItemSlotID.MiscDye0);
|
||||||
{
|
TrySendingItemArray(player.Index, player.TPlayer.bank.item, PlayerItemSlotID.Bank1_0);
|
||||||
NetMessage.SendData(5, -1, -1, NetworkText.FromLiteral(Main.player[player.Index].armor[k].Name), player.Index, slot, (float)Main.player[player.Index].armor[k].prefix);
|
TrySendingItemArray(player.Index, player.TPlayer.bank2.item, PlayerItemSlotID.Bank2_0);
|
||||||
slot++;
|
NetMessage.TrySendData(5, number: player.Index, number2: (float) PlayerItemSlotID.TrashItem);
|
||||||
}
|
TrySendingItemArray(player.Index, player.TPlayer.bank3.item, PlayerItemSlotID.Bank3_0);
|
||||||
for (int k = 0; k < NetItem.DyeSlots; k++)
|
TrySendingItemArray(player.Index, player.TPlayer.bank4.item, PlayerItemSlotID.Bank4_0);
|
||||||
{
|
TrySendingItemArray(player.Index, player.TPlayer.Loadouts[0].Armor, PlayerItemSlotID.Loadout1_Armor_0);
|
||||||
NetMessage.SendData(5, -1, -1, NetworkText.FromLiteral(Main.player[player.Index].dye[k].Name), player.Index, slot, (float)Main.player[player.Index].dye[k].prefix);
|
TrySendingItemArray(player.Index, player.TPlayer.Loadouts[0].Dye, PlayerItemSlotID.Loadout1_Dye_0);
|
||||||
slot++;
|
TrySendingItemArray(player.Index, player.TPlayer.Loadouts[1].Armor, PlayerItemSlotID.Loadout2_Armor_0);
|
||||||
}
|
TrySendingItemArray(player.Index, player.TPlayer.Loadouts[1].Dye, PlayerItemSlotID.Loadout2_Dye_0);
|
||||||
for (int k = 0; k < NetItem.MiscEquipSlots; k++)
|
TrySendingItemArray(player.Index, player.TPlayer.Loadouts[2].Armor, PlayerItemSlotID.Loadout3_Armor_0);
|
||||||
{
|
TrySendingItemArray(player.Index, player.TPlayer.Loadouts[2].Dye, PlayerItemSlotID.Loadout3_Dye_0);
|
||||||
NetMessage.SendData(5, -1, -1, NetworkText.FromLiteral(Main.player[player.Index].miscEquips[k].Name), player.Index, slot, (float)Main.player[player.Index].miscEquips[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.MiscDyeSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, -1, -1, NetworkText.FromLiteral(Main.player[player.Index].miscDyes[k].Name), player.Index, slot, (float)Main.player[player.Index].miscDyes[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.PiggySlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, -1, -1, NetworkText.FromLiteral(Main.player[player.Index].bank.item[k].Name), player.Index, slot, (float)Main.player[player.Index].bank.item[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.SafeSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, -1, -1, NetworkText.FromLiteral(Main.player[player.Index].bank2.item[k].Name), player.Index, slot, (float)Main.player[player.Index].bank2.item[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
NetMessage.SendData(5, -1, -1, NetworkText.FromLiteral(Main.player[player.Index].trashItem.Name), player.Index, slot++, (float)Main.player[player.Index].trashItem.prefix);
|
|
||||||
for (int k = 0; k < NetItem.ForgeSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, -1, -1, NetworkText.FromLiteral(Main.player[player.Index].bank3.item[k].Name), player.Index, slot, (float)Main.player[player.Index].bank3.item[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.VoidSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, -1, -1, NetworkText.FromLiteral(Main.player[player.Index].bank4.item[k].Name), player.Index, slot, (float)Main.player[player.Index].bank4.item[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.LoadoutArmorSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, -1, -1, NetworkText.FromLiteral(Main.player[player.Index].Loadouts[0].Armor[k].Name), player.Index, slot, (float)Main.player[player.Index].Loadouts[0].Armor[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.LoadoutDyeSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, -1, -1, NetworkText.FromLiteral(Main.player[player.Index].Loadouts[0].Dye[k].Name), player.Index, slot, (float)Main.player[player.Index].Loadouts[0].Dye[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.LoadoutArmorSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, -1, -1, NetworkText.FromLiteral(Main.player[player.Index].Loadouts[1].Armor[k].Name), player.Index, slot, (float)Main.player[player.Index].Loadouts[1].Armor[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.LoadoutDyeSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, -1, -1, NetworkText.FromLiteral(Main.player[player.Index].Loadouts[1].Dye[k].Name), player.Index, slot, (float)Main.player[player.Index].Loadouts[1].Dye[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.LoadoutArmorSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, -1, -1, NetworkText.FromLiteral(Main.player[player.Index].Loadouts[2].Armor[k].Name), player.Index, slot, (float)Main.player[player.Index].Loadouts[2].Armor[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.LoadoutDyeSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, -1, -1, NetworkText.FromLiteral(Main.player[player.Index].Loadouts[1].Dye[k].Name), player.Index, slot, (float)Main.player[player.Index].Loadouts[2].Dye[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
NetMessage.SendData(4, -1, -1, NetworkText.FromLiteral(player.Name), player.Index, 0f, 0f, 0f, 0);
|
NetMessage.SendData(4, -1, -1, NetworkText.FromLiteral(player.Name), player.Index, 0f, 0f, 0f, 0);
|
||||||
NetMessage.SendData(42, -1, -1, NetworkText.Empty, player.Index, 0f, 0f, 0f, 0);
|
NetMessage.SendData(42, -1, -1, NetworkText.Empty, player.Index, 0f, 0f, 0f, 0);
|
||||||
NetMessage.SendData(16, -1, -1, NetworkText.Empty, player.Index, 0f, 0f, 0f, 0);
|
NetMessage.SendData(16, -1, -1, NetworkText.Empty, player.Index, 0f, 0f, 0f, 0);
|
||||||
|
|
||||||
slot = 0f;
|
for (var index2 = 0; index2 < 59; ++index2)
|
||||||
for (int k = 0; k < NetItem.InventorySlots; k++)
|
NetMessage.TrySendData(5,remoteClient:player.Index, number: player.Index, number2: (PlayerItemSlotID.Inventory0 + index2));
|
||||||
{
|
TrySendingItemArray(player.Index, player.TPlayer.armor, PlayerItemSlotID.Armor0, player.Index);
|
||||||
NetMessage.SendData(5, player.Index, -1, NetworkText.FromLiteral(Main.player[player.Index].inventory[k].Name), player.Index, slot, (float)Main.player[player.Index].inventory[k].prefix);
|
TrySendingItemArray(player.Index, player.TPlayer.dye, PlayerItemSlotID.Dye0,player.Index);
|
||||||
slot++;
|
TrySendingItemArray(player.Index, player.TPlayer.miscEquips, PlayerItemSlotID.Misc0,player.Index);
|
||||||
}
|
TrySendingItemArray(player.Index, player.TPlayer.miscDyes, PlayerItemSlotID.MiscDye0,player.Index);
|
||||||
for (int k = 0; k < NetItem.ArmorSlots; k++)
|
TrySendingItemArray(player.Index, player.TPlayer.bank.item, PlayerItemSlotID.Bank1_0,player.Index);
|
||||||
{
|
TrySendingItemArray(player.Index, player.TPlayer.bank2.item, PlayerItemSlotID.Bank2_0,player.Index);
|
||||||
NetMessage.SendData(5, player.Index, -1, NetworkText.FromLiteral(Main.player[player.Index].armor[k].Name), player.Index, slot, (float)Main.player[player.Index].armor[k].prefix);
|
NetMessage.TrySendData(5,remoteClient:player.Index, number: player.Index, number2: PlayerItemSlotID.TrashItem);
|
||||||
slot++;
|
TrySendingItemArray(player.Index, player.TPlayer.bank3.item, PlayerItemSlotID.Bank3_0,player.Index);
|
||||||
}
|
TrySendingItemArray(player.Index, player.TPlayer.bank4.item, PlayerItemSlotID.Bank4_0,player.Index);
|
||||||
for (int k = 0; k < NetItem.DyeSlots; k++)
|
TrySendingItemArray(player.Index, player.TPlayer.Loadouts[0].Armor, PlayerItemSlotID.Loadout1_Armor_0,player.Index);
|
||||||
{
|
TrySendingItemArray(player.Index, player.TPlayer.Loadouts[0].Dye, PlayerItemSlotID.Loadout1_Dye_0,player.Index);
|
||||||
NetMessage.SendData(5, player.Index, -1, NetworkText.FromLiteral(Main.player[player.Index].dye[k].Name), player.Index, slot, (float)Main.player[player.Index].dye[k].prefix);
|
TrySendingItemArray(player.Index, player.TPlayer.Loadouts[1].Armor, PlayerItemSlotID.Loadout2_Armor_0,player.Index);
|
||||||
slot++;
|
TrySendingItemArray(player.Index, player.TPlayer.Loadouts[1].Dye, PlayerItemSlotID.Loadout2_Dye_0,player.Index);
|
||||||
}
|
TrySendingItemArray(player.Index, player.TPlayer.Loadouts[2].Armor, PlayerItemSlotID.Loadout3_Armor_0,player.Index);
|
||||||
for (int k = 0; k < NetItem.MiscEquipSlots; k++)
|
TrySendingItemArray(player.Index, player.TPlayer.Loadouts[2].Dye, PlayerItemSlotID.Loadout3_Dye_0,player.Index);
|
||||||
{
|
|
||||||
NetMessage.SendData(5, player.Index, -1, NetworkText.FromLiteral(Main.player[player.Index].miscEquips[k].Name), player.Index, slot, (float)Main.player[player.Index].miscEquips[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.MiscDyeSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, player.Index, -1, NetworkText.FromLiteral(Main.player[player.Index].miscDyes[k].Name), player.Index, slot, (float)Main.player[player.Index].miscDyes[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.PiggySlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, player.Index, -1, NetworkText.FromLiteral(Main.player[player.Index].bank.item[k].Name), player.Index, slot, (float)Main.player[player.Index].bank.item[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.SafeSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, player.Index, -1, NetworkText.FromLiteral(Main.player[player.Index].bank2.item[k].Name), player.Index, slot, (float)Main.player[player.Index].bank2.item[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
NetMessage.SendData(5, player.Index, -1, NetworkText.FromLiteral(Main.player[player.Index].trashItem.Name), player.Index, slot++, (float)Main.player[player.Index].trashItem.prefix);
|
|
||||||
for (int k = 0; k < NetItem.ForgeSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, player.Index, -1, NetworkText.FromLiteral(Main.player[player.Index].bank3.item[k].Name), player.Index, slot, (float)Main.player[player.Index].bank3.item[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.VoidSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, player.Index, -1, NetworkText.FromLiteral(Main.player[player.Index].bank4.item[k].Name), player.Index, slot, (float)Main.player[player.Index].bank4.item[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.LoadoutArmorSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, player.Index, -1, NetworkText.FromLiteral(Main.player[player.Index].Loadouts[0].Armor[k].Name), player.Index, slot, (float)Main.player[player.Index].Loadouts[0].Armor[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.LoadoutDyeSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, player.Index, -1, NetworkText.FromLiteral(Main.player[player.Index].Loadouts[0].Dye[k].Name), player.Index, slot, (float)Main.player[player.Index].Loadouts[0].Dye[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.LoadoutArmorSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, player.Index, -1, NetworkText.FromLiteral(Main.player[player.Index].Loadouts[1].Armor[k].Name), player.Index, slot, (float)Main.player[player.Index].Loadouts[1].Armor[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.LoadoutDyeSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, player.Index, -1, NetworkText.FromLiteral(Main.player[player.Index].Loadouts[1].Dye[k].Name), player.Index, slot, (float)Main.player[player.Index].Loadouts[1].Dye[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.LoadoutArmorSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, player.Index, -1, NetworkText.FromLiteral(Main.player[player.Index].Loadouts[2].Armor[k].Name), player.Index, slot, (float)Main.player[player.Index].Loadouts[2].Armor[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
for (int k = 0; k < NetItem.LoadoutDyeSlots; k++)
|
|
||||||
{
|
|
||||||
NetMessage.SendData(5, player.Index, -1, NetworkText.FromLiteral(Main.player[player.Index].Loadouts[2].Dye[k].Name), player.Index, slot, (float)Main.player[player.Index].Loadouts[2].Dye[k].prefix);
|
|
||||||
slot++;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -733,5 +614,11 @@ namespace TShockAPI
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void TrySendingItemArray(int plr, Item[] array, int slotStartIndex,int remoteClient = -1, int ignoreClient = -1)
|
||||||
|
{
|
||||||
|
for (int index = 0; index < array.Length; ++index)
|
||||||
|
NetMessage.TrySendData(5, number: plr, number2: (float) (slotStartIndex + index));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue