Characters with no CharacterInfo can't be selected, fixed broken tickboxes in server settings, inventory log tweaking, one gap sound per hull, chat message "commands" changed from /d to d;
This commit is contained in:
@@ -100,8 +100,6 @@ namespace Barotrauma
|
||||
/// </summary>
|
||||
public override bool TryPutItem(Item item, List<LimbSlot> allowedSlots, bool createNetworkEvent = true)
|
||||
{
|
||||
bool alreadyInInventory = Array.Find(Items, i => i == item)!=null;
|
||||
|
||||
//try to place the item in LimBlot.Any slot if that's allowed
|
||||
if (allowedSlots.Contains(LimbSlot.Any))
|
||||
{
|
||||
@@ -109,7 +107,6 @@ namespace Barotrauma
|
||||
{
|
||||
if (Items[i] != null || limbSlots[i] != LimbSlot.Any) continue;
|
||||
|
||||
GameServer.Log(character.Name + " picked up " + item.Name, Color.Orange);
|
||||
PutItem(item, i, createNetworkEvent);
|
||||
item.Unequip(character);
|
||||
return true;
|
||||
@@ -144,7 +141,6 @@ namespace Barotrauma
|
||||
|
||||
if (placed)
|
||||
{
|
||||
if (!alreadyInInventory) GameServer.Log(character.Name + " picked up " + item.Name, Color.Orange);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -367,29 +363,66 @@ namespace Barotrauma
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void ReadNetworkData(NetworkEventType type, NetBuffer message, float sendingTime)
|
||||
public override void ReadNetworkData(NetworkEventType type, NetIncomingMessage message, float sendingTime)
|
||||
{
|
||||
if (sendingTime < lastUpdate) return;
|
||||
|
||||
character.ClearInput(InputType.Use);
|
||||
|
||||
List<Item> droppedItems = new List<Item>();
|
||||
List<Item> prevItems = new List<Item>(Items);
|
||||
|
||||
for (int i = 0; i<capacity; i++)
|
||||
{
|
||||
ushort itemId = message.ReadUInt16();
|
||||
if (itemId == 0)
|
||||
{
|
||||
if (Items[i] != null) Items[i].Drop(character, false);
|
||||
if (Items[i] != null)
|
||||
{
|
||||
droppedItems.Add(Items[i]);
|
||||
Items[i].Drop(character, false);
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Item item = Entity.FindEntityByID(itemId) as Item;
|
||||
if (item == null) continue;
|
||||
|
||||
Inventory existingInventory = item.ParentInventory;
|
||||
|
||||
if (Items[i] != item && Items[i] != null) Items[i].Drop(character, false);
|
||||
TryPutItem(item, i, false);
|
||||
|
||||
if (TryPutItem(item, i, false))
|
||||
{
|
||||
if (droppedItems.Contains(item))
|
||||
{
|
||||
droppedItems.Remove(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var sender = GameMain.Server.ConnectedClients.Find(c => c.Connection == message.SenderConnection);
|
||||
if (sender != null && sender.Character != null)
|
||||
{
|
||||
foreach (Item item in droppedItems)
|
||||
{
|
||||
GameServer.Log(sender.Character == character ?
|
||||
character.Name + " dropped " + item.Name :
|
||||
sender.Character + " removed " + item.Name+" from "+character+"'s inventory", Color.Orange);
|
||||
}
|
||||
|
||||
foreach (Item item in Items)
|
||||
{
|
||||
if (item == null || prevItems.Contains(item)) continue;
|
||||
GameServer.Log(sender.Character == character ?
|
||||
character.Name + " picked up " + item.Name :
|
||||
sender.Character + " placed " + item.Name + " in " + character + "'s inventory", Color.Orange);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
lastUpdate = sendingTime;
|
||||
}
|
||||
|
||||
|
||||
@@ -316,7 +316,16 @@ namespace Barotrauma.Items.Components
|
||||
}
|
||||
|
||||
item.SetTransform(newPos, 0.0f);
|
||||
if (!attached) Use(1.0f);
|
||||
if (!attached)
|
||||
{
|
||||
Use(1.0f);
|
||||
|
||||
var sender = GameMain.Server.ConnectedClients.Find(c => c.Connection == message.SenderConnection);
|
||||
if (sender != null && sender.Character != null)
|
||||
{
|
||||
Networking.GameServer.Log(sender.characterInfo.Name+" attached a "+item.Name+" on a wall", Color.Orange);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -172,7 +172,9 @@ namespace Barotrauma.Items.Components
|
||||
wireComponent.Connect(c, false);
|
||||
|
||||
var otherConnection = c.Wires[i].OtherConnection(c);
|
||||
Networking.GameServer.Log(c.Name + " -> " + (otherConnection == null ? "none" : otherConnection.Name), Color.Orange);
|
||||
Networking.GameServer.Log(
|
||||
item.Name+" ("+ c.Name + ") -> " +
|
||||
otherConnection.Item.Name+" ("+(otherConnection == null ? "none" : otherConnection.Name)+")", Color.Orange);
|
||||
}
|
||||
c.UpdateRecipients();
|
||||
}
|
||||
|
||||
@@ -361,11 +361,13 @@ namespace Barotrauma
|
||||
return true;
|
||||
}
|
||||
|
||||
public virtual void ReadNetworkData(NetworkEventType type, NetBuffer message, float sendingTime)
|
||||
public virtual void ReadNetworkData(NetworkEventType type, NetIncomingMessage message, float sendingTime)
|
||||
{
|
||||
if (sendingTime < lastUpdate) return;
|
||||
|
||||
List<ushort> newItemIDs = new List<ushort>();
|
||||
List<Item> droppedItems = new List<Item>();
|
||||
List<Item> prevItems = new List<Item>(Items);
|
||||
|
||||
byte count = message.ReadByte();
|
||||
for (int i = 0; i<count; i++)
|
||||
@@ -378,7 +380,9 @@ namespace Barotrauma
|
||||
if (Items[i] == null) continue;
|
||||
if (!newItemIDs.Contains(Items[i].ID))
|
||||
{
|
||||
droppedItems.Add(Items[i]);
|
||||
Items[i].Drop(null, false);
|
||||
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@@ -388,8 +392,26 @@ namespace Barotrauma
|
||||
if (item == null) continue;
|
||||
|
||||
TryPutItem(item, item.AllowedSlots, false);
|
||||
if (droppedItems.Contains(item)) droppedItems.Remove(item);
|
||||
}
|
||||
|
||||
|
||||
var sender = GameMain.Server.ConnectedClients.Find(c => c.Connection == message.SenderConnection);
|
||||
if (sender != null && sender.Character != null)
|
||||
{
|
||||
foreach (Item item in droppedItems)
|
||||
{
|
||||
GameServer.Log(sender.Character + " removed " + item.Name + " from " + Owner.ToString(), Color.Orange);
|
||||
}
|
||||
|
||||
foreach (Item item in Items)
|
||||
{
|
||||
if (item == null || prevItems.Contains(item)) continue;
|
||||
GameServer.Log(sender.Character + " placed " + item.Name + " in " + Owner.ToString(), Color.Orange);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
lastUpdate = sendingTime;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1125,7 +1125,7 @@ namespace Barotrauma
|
||||
// new NetworkEvent(NetworkEventType.DropItem, ID, true);
|
||||
|
||||
|
||||
if (dropper != null) GameServer.Log(dropper.Name + " dropped " + Name, Color.Orange);
|
||||
//if (dropper != null) GameServer.Log(dropper.Name + " dropped " + Name, Color.Orange);
|
||||
|
||||
foreach (ItemComponent ic in components) ic.Drop(dropper);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user