@name PostNord E2 - Helper @inputs DeliveryTruck:entity @persist [Data, Depot]:table CompanyID:string if(first()){ dsSetScope(0) dsJoinGroup("PostNord") function printLayout(Text:string){ printColor(vec(0, 160, 214), "PostNord - ", vec(255), Text) } DeliveryCompanys = getDeliveryCompanyIDs() foreach(K, V:string = DeliveryCompanys){ DeliveryCompany = getDeliveryCompany(V) if(DeliveryCompany["OwnerEntity", entity] == owner()){ CompanyID = V } } timer("check.parcelDelivered", 50) timer("check.depot", 2000) timer("check.prices", 30000) } if(clk(clkName())){ switch(clkName()){ case "check.parcelDelivered", Employees = getMailEmployees() Parcels = array() Drivers = array() foreach(K, V:entity = Employees){ if(V:inVehicle()){ continue } Ent = V:aimEntity() if(!Ent:isParcel() ?: Data:exists(Ent:getParcelId()) ?: V:pos():distance(Ent:getParcelDestination():pos()) > 750){ continue } Data[Ent:getParcelId(), number] = 1 Drivers:pushEntity(V) Parcels:pushEntity(Ent) } if(Parcels:count()){ dsSend("parcelDelivered", "PostNord", table(Drivers, Parcels)) } timer("check.parcelDelivered", 500) break case "check.depot", OldDepot = Depot:clone() Depot = getParcelsInDepot() if(OldDepot[1, table]["ParcelID", string] == Depot[1, table]["ParcelID", string] & OldDepot[Depot:count(), table]["ParcelID", string] == Depot[OldDepot:count(), table]["ParcelID", string]){ } else { print("Something has changed in the depot!") dsSend("newParcel", "PostNord", Depot) } timer("check.depot", 2500) break case "check.prices", DeliveryCompanys = getDeliveryCompanyIDs() Company = getDeliveryCompany(CompanyID) CompanyPrice = Company["Prices", table]["FromPerson", number] + Company["Prices", table]["FromWeb", number] + Company["Prices", table]["ToHouse", number] + Company["Prices", table]["ToBox", number] if(DeliveryCompanys:count() == 1 & CompanyPrice != 4000){ printLayout("TIP: Du har i " + oe() + "jeblikket ingen konkurrenter. Overvej at h" + ae() + "ve dine priser.") exit() } BestPrice = 0 OfferPrice = 0 foreach(K, V:string = DeliveryCompanys){ CompanyPrices = getDeliveryCompany(V)["Prices", table] OfferPrice = CompanyPrices["FromPerson", number] + CompanyPrices["FromWeb", number] + CompanyPrices["ToHouse", number] + CompanyPrices["ToBox", number] if(BestPrice > OfferPrice){ BestPrice = OfferPrice } } if(CompanyPrice > OfferPrice){ printLayout("TIP: En af dine konkurrenter har lavere priser end dig. Overvej at s" + ae()+ "nke dine priser.") } timer("check.prices", 150000) } }