public async Task PlayerSearchTakeItem(ClassicPlayer player, int givenTargetCharId, string itemName, string itemLocation, int itemAmount) { try { if (player == null || !player.Exists || givenTargetCharId <= 0 || itemName == "" || itemAmount <= 0 || itemLocation == "") { return; } int charId = player.CharacterId; if (charId <= 0) { return; } if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 5000, "Wie willst du das mit Handschellen/Fesseln machen?"); return; } var targetPlayer = Alt.Server.GetPlayers().ToList().FirstOrDefault(x => x.GetCharacterMetaId() == (ulong)givenTargetCharId); int targetCharId = (int)targetPlayer.GetCharacterMetaId(); if (targetCharId != givenTargetCharId) { return; } if (targetPlayer == null || !targetPlayer.Exists) { return; } if (!player.Position.IsInRange(targetPlayer.Position, 3f)) { HUDHandler.SendNotification(player, 3, 5000, "Fehler: Du bist zuweit vom Spieler entfernt."); return; } if (!targetPlayer.HasPlayerHandcuffs() && !targetPlayer.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 5000, "Der Spieler ist nicht gefesselt."); return; } if (!ServerItems.IsItemDroppable(itemName) || !ServerItems.IsItemGiveable(itemName)) { HUDHandler.SendNotification(player, 3, 5000, "Fehler: Diesen Gegenstand kannst du nicht entfernen."); return; } if (!CharactersInventory.ExistCharacterItem(targetCharId, itemName, itemLocation)) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Dieser Gegenstand existiert nicht mehr."); return; } if (CharactersInventory.IsItemActive(targetPlayer, itemName)) { HUDHandler.SendNotification(player, 3, 5000, "Ausgerüstete Gegenstände können nicht entwendet werden."); return; } if (CharactersInventory.GetCharacterItemAmount(targetCharId, itemName, itemLocation) < itemAmount) { HUDHandler.SendNotification(player, 3, 5000, "Fehler: Soviele Gegenstände hat der Spieler davon nicht."); return; } float itemWeight = ServerItems.GetItemWeight(itemName) * itemAmount; float invWeight = CharactersInventory.GetCharacterItemWeight(charId, "inventory"); float backpackWeight = CharactersInventory.GetCharacterItemWeight(charId, "backpack"); if (invWeight + itemWeight > 15f && backpackWeight + itemWeight > Characters.GetCharacterBackpackSize(Characters.GetCharacterBackpack(charId))) { HUDHandler.SendNotification(player, 3, 5000, $"Du hast nicht genug Platz in deinen Taschen."); return; } CharactersInventory.RemoveCharacterItemAmount(targetCharId, itemName, itemAmount, itemLocation); if (invWeight + itemWeight <= 15f || itemName == "Bargeld" || itemWeight == 0f) { HUDHandler.SendNotification(player, 2, 5000, $"Du hast der Person {itemName} ({itemAmount}x) entwendet. (Lagerort: Inventar)."); HUDHandler.SendNotification(targetPlayer, 2, 5000, $"Dir wurde der Gegenstand {itemName} ({itemAmount}x) aus dem Inventar entwendet."); CharactersInventory.AddCharacterItem(charId, itemName, itemAmount, "inventory"); return; } if (Characters.GetCharacterBackpack(charId) != "None" && backpackWeight + itemWeight <= Characters.GetCharacterBackpackSize(Characters.GetCharacterBackpack(charId))) { HUDHandler.SendNotification(player, 2, 5000, $"Du hast der Person {itemName} ({itemAmount}x) entwendet. (Lagerort: Rucksack/Tasche)."); HUDHandler.SendNotification(targetPlayer, 2, 5000, $"Dir wurde der Gegenstand {itemName} ({itemAmount}x) aus dem Rucksack entwendet."); CharactersInventory.AddCharacterItem(charId, itemName, itemAmount, "backpack"); return; } } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task DropItem(ClassicPlayer player, string itemname, int itemAmount, string fromContainer) { try { if (player == null || !player.Exists || itemname == "" || itemAmount <= 0 || fromContainer == "" || User.GetPlayerOnline(player) == 0) { return; } if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 5000, "Wie willst du das mit Handschellen/Fesseln machen?"); return; } string normalItemName = ServerItems.ReturnNormalItemName(itemname); if (ServerItems.IsItemDroppable(itemname) == false) { HUDHandler.SendNotification(player, 4, 5000, $"Diesen Gegenstand kannst du nicht wegwerfen ({itemname})."); return; } int charId = player.CharacterId; if (charId <= 0 || CharactersInventory.ExistCharacterItem(charId, itemname, fromContainer) == false) { return; } if (CharactersInventory.GetCharacterItemAmount(charId, itemname, fromContainer) < itemAmount) { HUDHandler.SendNotification(player, 4, 5000, $"Die angegebene wegzuwerfende Anzahl ist nicht vorhanden ({itemname})."); return; } if (itemname == "Smartphone") { if (Characters.IsCharacterPhoneEquipped(charId)) { HUDHandler.SendNotification(player, 3, 2500, "Du musst dein Handy erst ausschalten / ablegen."); return; } } else if (itemname == "Rucksack") { if (Characters.GetCharacterBackpack(charId) == "Rucksack") { if (CharactersInventory.GetCharacterItemAmount(charId, "Rucksack", "inventory") == itemAmount) { HUDHandler.SendNotification(player, 3, 5000, "Du musst deinen Rucksack erst ablegen, bevor du diesen wegwerfen kannst."); return; } else { CharactersInventory.RemoveCharacterItemAmount(charId, itemname, itemAmount, fromContainer); InventoryAnimation(player, "drop", 0); HUDHandler.SendNotification(player, 2, 5000, $"Der Gegenstand {itemname} ({itemAmount}) wurde erfolgreich weggeworfen ({fromContainer})."); return; } } else { CharactersInventory.RemoveCharacterItemAmount(charId, itemname, itemAmount, fromContainer); InventoryAnimation(player, "drop", 0); HUDHandler.SendNotification(player, 2, 5000, $"Der Gegenstand {itemname} ({itemAmount}) wurde erfolgreich weggeworfen ({fromContainer})."); return; } } else if (itemname == "Tasche") { if (Characters.GetCharacterBackpack(charId) == "Tasche") { if (CharactersInventory.GetCharacterItemAmount(charId, "Tasche", "inventory") == itemAmount) { HUDHandler.SendNotification(player, 3, 5000, "Du musst zuerst deine Tasche ablegen, bevor du diese wegwerfen kannst."); return; } else { CharactersInventory.RemoveCharacterItemAmount(charId, itemname, itemAmount, fromContainer); InventoryAnimation(player, "drop", 0); HUDHandler.SendNotification(player, 2, 5000, $"Der Gegenstand {itemname} ({itemAmount}) wurde erfolgreich weggeworfen ({fromContainer})."); RequestInventoryItems(player); return; } } else { CharactersInventory.RemoveCharacterItemAmount(charId, itemname, itemAmount, fromContainer); InventoryAnimation(player, "drop", 0); HUDHandler.SendNotification(player, 2, 5000, $"Der Gegenstand {itemname} ({itemAmount}) wurde erfolgreich weggeworfen ({fromContainer})."); RequestInventoryItems(player); return; } } else if (ServerItems.GetItemType(itemname) == "weapon") { if ((string)Characters.GetCharacterWeapon(player, "PrimaryWeapon") == normalItemName || (string)Characters.GetCharacterWeapon(player, "SecondaryWeapon") == normalItemName || (string)Characters.GetCharacterWeapon(player, "SecondaryWeapon2") == normalItemName || (string)Characters.GetCharacterWeapon(player, "FistWeapon") == normalItemName) { if (CharactersInventory.GetCharacterItemAmount(charId, normalItemName, fromContainer) == itemAmount) { HUDHandler.SendNotification(player, 3, 5000, "Du musst zuerst deine Waffe ablegen."); return; } } } CharactersInventory.RemoveCharacterItemAmount(charId, itemname, itemAmount, fromContainer); InventoryAnimation(player, "drop", 0); HUDHandler.SendNotification(player, 2, 5000, $"Der Gegenstand {itemname} ({itemAmount}) wurde erfolgreich weggeworfen ({fromContainer})."); RequestInventoryItems(player); } catch (Exception e) { Alt.Log($"{e}"); } }