public override void PostServerLoad() { base.PostServerLoad(); NPCVendingMachine nPCVendingMachine = this; base.Invoke(new Action(nPCVendingMachine.InstallFromVendingOrders), 1f); }
public override void ServerInit() { base.ServerInit(); this.skinID = (ulong)861142659; base.SendNetworkUpdate(BasePlayer.NetworkQueue.Update); NPCVendingMachine nPCVendingMachine = this; base.Invoke(new Action(nPCVendingMachine.InstallFromVendingOrders), 1f); }
private void AddVendingOrders(NPCVendingMachine vending, bool def = false) { if (vending == null || vending.IsDestroyed) { Puts("Null or destroyed machine..."); return; } if (!def) { if (data.VendingMachinesOrders.ContainsKey(vending.vendingOrders.name)) { return; } } List <Order> orders = new List <Order>(); foreach (var order in vending.vendingOrders.orders) { orders.Add(new Order { _comment = $"Sell {order.sellItem.displayName.english} x {order.sellItemAmount} for {order.currencyItem.displayName.english} x {order.currencyAmount}", sellAmount = order.currencyAmount, currencyAmount = order.sellItemAmount, sellId = order.sellItem.itemid, sellAsBP = order.sellItemAsBP, currencyId = order.currencyItem.itemid, weight = 100, refillAmount = 100, refillDelay = 10.0f }); } if (def) { if (orders == null) { return; } Puts($"Trying to save default vendingOrders for {vending.vendingOrders.name}"); if (defaultOrders == null) { defaultOrders = new StorageData(); } if (defaultOrders.VendingMachinesOrders.ContainsKey(vending.vendingOrders.name)) { return; } defaultOrders.VendingMachinesOrders.Add(vending.vendingOrders.name, orders.ToArray()); } else { data.VendingMachinesOrders.Add(vending.vendingOrders.name, orders.ToArray()); } Puts($"Added Vending Machine: {vending.vendingOrders.name} to data file!"); dataChanged = true; }
void OnLootEntityEnd(BasePlayer player, NPCVendingMachine entity) { Timer timer; if (!timeoutTimers.ContainsKey(player.userID) || !timeoutTimers.TryGetValue(player.userID, out timer) || timer == null) { return; } timer.Destroy(); }
private object OnNpcGiveSoldItem(NPCVendingMachine vending, Item soldItem, BasePlayer buyer) { if (soldItem.skin > 0) { VehicleInfo vehicle = VehicleInfo.FindBySkinID(soldItem.skin); if (vehicle != null) { vehicle.Give(buyer, _config.vehicleShortPrefabName, "npcvending"); return(true); } } return(null); }
void OnOpenVendingShop(NPCVendingMachine machine, BasePlayer player) { if (!permission.UserHasPermission(player.UserIDString, bypass)) { if (!timeoutTimers.ContainsKey(player.userID)) { timeoutTimers.Add(player.userID, null); } timeoutTimers[player.userID] = timer.Once(config.timeoutSeconds, () => { if (player != null) { player.EndLooting(); } }); } }
private NPCVendingOrder.Entry[] GetNewOrders(NPCVendingMachine vending) { List <NPCVendingOrder.Entry> temp = new List <NPCVendingOrder.Entry>(); foreach (var order in data.VendingMachinesOrders[vending.vendingOrders.name]) { temp.Add(new NPCVendingOrder.Entry { currencyAmount = order.sellAmount, currencyAsBP = order.currencyAsBP, currencyItem = ItemManager.FindItemDefinition(order.currencyId), sellItem = ItemManager.FindItemDefinition(order.sellId), sellItemAmount = order.currencyAmount, sellItemAsBP = order.sellAsBP }); } return(temp.ToArray()); }
private void UpdateVending(NPCVendingMachine vending) { if (vending == null || vending.IsDestroyed) { return; } AddVendingOrders(vending); if (disableCompoundVendingMachines) { vending.ClearSellOrders(); vending.inventory.Clear(); } else if (allowCustomCompoundVendingMachines) { vending.vendingOrders.orders = GetNewOrders(vending); vending.InstallFromVendingOrders(); } }
private void AddVendingOrders(NPCVendingMachine vending) { if (vending == null || vending.IsDestroyed || data.VendingMachinesOrders.ContainsKey(vending.vendingOrders.name)) { return; } List <Order> orders = new List <Order>(); foreach (var order in vending.vendingOrders.orders) { orders.Add(new Order { _comment = $"Sell {order.sellItem.displayName.english} x {order.sellItemAmount} for {order.currencyItem.displayName.english} x {order.currencyAmount}", sellAmount = order.currencyAmount, currencyAmount = order.sellItemAmount, sellId = order.sellItem.itemid, sellAsBP = order.sellItemAsBP, currencyId = order.currencyItem.itemid }); } data.VendingMachinesOrders.Add(vending.vendingOrders.name, orders.ToArray()); Puts($"Added Vending Machine: {vending.vendingOrders.name} to data file!"); dataChanged = true; }