Dette er et populært indlæg West Skrevet August 1, 2021 Dette er et populært indlæg Del Skrevet August 1, 2021 Hej. For godt og vel et år siden begyndte jeg at sælge den første version af Zitech Gunshop. Det var en meget anderledes E2 for mig, da det var første gang jeg eksperimenterede med at smide våben ind i et table, i stedet for at lade dem sidde på en aktiv ranger. Pludseligt valgte jeg at skifte fra et system med 1 ranger til at gå helt væk fra rangers. I denne gunshop E2 skal man blot kigge på et våben og klikke 'G' for at tilføje dem til kataloget. Våbnet skal komme fra ens inventory, men ellers det er der ikke mange begrænsninger. Version 1.3 har nye chat-commands, flottere design og bedre optimering. Det skal siges katalog-siden ligner Xitex en del, fordi jeg stjal designet dengang jeg begyndte på Zitech. Var meget sikker på Xitex var et dødt projekt, men det er sgu en del af spillet når man ikke udgiver sine e2er lidt hurtigere ;)))) Skidt på. Billeder Koden https://pastebin.com/ffTQ10qA Spoiler @name Zitech 1.3 @inputs E:wirelink U:entity C:wirelink @persist [Temp,Blacklist]:table local CLK = clkName() if(first() | duped() | dupefinished()){ ########################################################################################## # # # Designed by Bims # # Code by Bims # # # # Don't sell this to anyone without my permission! # # If you do it, I will hunt you down # # # ########################################################################################## Temp = table( "Guns" = table(), "Profit" = 2000, "Status" = 1, "Earned" = 0, "Turnover" = 0, "Customers" = 0, "Sales" = 0, "UnblacklistPrice" = 10000, "LastCustomer" = "Ingen", "Keys" = array("g") ) runOnAllChat(1) runOnKeys(owner(),1,Temp["Keys",array]) function number wirelink:egpButton(Index:number,Player:entity){ Pos=This:egpPos(Index) Size=This:egpSize(Index)/2 return inrange(This:egpCursor(Player),Pos-Size,Pos+Size) } function string moneyFormat(Amount:number){ Formatted=Amount:toString() LastFormatted="None" while(1){ Formatted=Formatted:replaceRE("(-?%d+)(%d%d%d)","%1.%2") if(Formatted==LastFormatted){ return Formatted+" kr" } LastFormatted=Formatted } } function string getTime(){ Date=date() Date["hour",string]=Date["hour",number]>9 ? ""+Date["hour",number] : "0"+Date["hour",number] Date["min",string]=Date["min",number]>9 ? ""+Date["min",number] : "0"+Date["min",number] return Date["hour",string]+":"+Date["min",string] } function void entity:addBlacklist(){ Blacklist[This:steamID(),entity] = This } function void entity:removeBlacklist(){ Blacklist:remove(This:steamID()) } function entity entity:isBlacklisted(){ return Blacklist[This:steamID(),entity] } function string entity:getWepName(){ return This:isShipment() ? This:shipmentName() : "Udsolgt" } function number entity:getWepPrice(){ return This:isShipment() ? This:shipmentPrice()+Temp["Profit",number] : 0 } function void message(N:number,S:string){ switch(N){ case 1, printColor(vec(142,68,173),"Zitech [",vec(255),getTime(),vec(142,68,173),"]",vec(255),": "+S) break case 2, printColor(vec(255),S) break } } function void wirelink:drawSetup(){ This:egpClear() This:egpBox(1,vec2(256,256),vec2(512,512)) This:egpMaterial(1,"console/background02") This:egpBox(2,vec2(256,256),vec2(768,768)) This:egpMaterial(2,"gui/gradient_down") This:egpAngle(2,45) This:egpColor(2,41,128,185,255) This:egpBox(3,vec2(256,256),vec2(768,768)) This:egpMaterial(3,"gui/gradient_up") This:egpAngle(3,135) This:egpColor(3,142,68,173,225) This:egpBox(4,vec2(256,161),vec2(192,1)) This:egpBox(5,vec2(352,256),vec2(1,192)) This:egpBox(6,vec2(256,352),vec2(192,1)) This:egpBox(7,vec2(161,176),vec2(1,32)) This:egpBox(8,vec2(161,336),vec2(1,32)) This:egpText(9,"Stavox",vec2(159,216)) This:egpAlign(9,0,1) This:egpFont(9,"Roboto",40) This:egpText(10,"Gunshop",vec2(159,246)) This:egpAlign(10,0,1) This:egpFont(10,"Roboto",40) This:egpBox(11,vec2(230,291),vec2(166,36)) This:egpText(12,"Z I T E C H 1.3",vec2(230,291)) This:egpAlign(12,1,1) This:egpFont(12,"Roboto",22) This:egpColor(12,26,26,26,255) This:egpText(13,"",vec2(256,416)) This:egpAlign(13,1,1) This:egpFont(13,"Roboto",20) This:egpPoly(14,array(vec2(0,0),vec2(0,15),vec2(3,12),vec2(5,15),vec2(7,15),vec2(6,11),vec2(10,10))) This:egpColor(14,0,0,0,217) This:egpParentToCursor(14) Temp["Page",number] = 1 } function void wirelink:drawName(){ This:egpClear() This:egpBox(1,vec2(256,256),vec2(512,512)) This:egpMaterial(1,"console/background02") This:egpBox(2,vec2(256,256),vec2(768,768)) This:egpMaterial(2,"gui/gradient_down") This:egpAngle(2,45) This:egpColor(2,41,128,185,255) This:egpBox(3,vec2(256,256),vec2(768,768)) This:egpMaterial(3,"gui/gradient_up") This:egpAngle(3,135) This:egpColor(3,142,68,173,225) This:egpText(4,"-",vec2(256,256)) This:egpAlign(4,1,1) This:egpFont(4,"Roboto",40) This:egpPoly(5,array(vec2(0,0),vec2(0,15),vec2(3,12),vec2(5,15),vec2(7,15),vec2(6,11),vec2(10,10))) This:egpColor(5,0,0,0,217) This:egpParentToCursor(5) Temp["Page",number] = 2 } function void updateStocks(){ for(I=1,Temp["Guns",table]:count()){ if(!Temp["Guns",table][I,table]["Gun",entity]:isValid()){ Temp[Temp["Guns",table][I,table]["Gun",entity]:id(),number] = 0 Temp["Guns",table]:remove(I) timer("Return.Safe",0) } } } function void drawStocks(){ for(I=1,Temp["Guns",table]:count()){ if(Temp["Guns",table][I,table]){ E:egpBox(11+I,vec2(256,76 + (I*60)),vec2(200,45)) E:egpColor(11+I,231,76,60,125) E:egpText(17+I,Temp["Guns",table][I,table]["Gun",entity]:getWepName()+" - "+moneyFormat(Temp["Guns",table][I,table]["Gun",entity]:getWepPrice()),vec2(256,76 + (I*60))) E:egpAlign(17+I,1,1) E:egpFont(17+I,"Roboto") } } } function void updateCart(){ local K = 0 for(I=1,Temp["Guns",table]:count()){ if(Temp["G"+I,number]){ K++ E:egpText(23+I,Temp["Guns",table][I,table]["Gun",entity]:getWepName(),vec2(64,176 + (K*20))) E:egpAlign(23+I,1,1) E:egpFont(23+I,"Roboto",15) } else{ E:egpRemove(23+I) } } } function void wirelink:drawShop(){ This:egpClear() This:egpBox(1,vec2(256,256),vec2(512,512)) This:egpMaterial(1,"console/background02") This:egpBox(2,vec2(256,256),vec2(768,768)) This:egpMaterial(2,"gui/gradient_down") This:egpAngle(2,45) This:egpColor(2,41,128,185,255) This:egpBox(3,vec2(256,256),vec2(768,768)) This:egpMaterial(3,"gui/gradient_up") This:egpAngle(3,135) This:egpColor(3,142,68,173,225) This:egpBox(4,vec2(256,256),vec2(256,490)) This:egpColor(4,36,36,36,185) This:egpBox(5,vec2(256,56),vec2(256,40)) This:egpColor(5,142,68,173,255) This:egpText(6,"Z I T E C H",vec2(256,56)) This:egpAlign(6,1,1) This:egpFont(6,"Roboto",30) This:egpBox(7,vec2(64,306),vec2(86,346)) This:egpColor(7,36,36,36,185) This:egpBox(8,vec2(64,156),vec2(86,26)) This:egpColor(8,142,68,173,255) This:egpText(9,"K U R V",vec2(64,156)) This:egpAlign(9,1,1) This:egpFont(9,"Roboto",18) This:egpBox(10,vec2(64,461),vec2(86,36)) This:egpColor(10,155,89,182,255) This:egpText(11,moneyFormat(Temp["Price",number]),vec2(64,461)) This:egpAlign(11,1,1) This:egpFont(11,"Roboto",20) updateCart() timer("drawStocks",1000) E:egpPoly(30,array(vec2(0,0),vec2(0,15),vec2(3,12),vec2(5,15),vec2(7,15),vec2(6,11),vec2(10,10))) E:egpColor(30,0,0,0,217) E:egpParentToCursor(30) Temp["Page",number] = 3 } function void wirelink:drawControlWait(){ This:egpClear() This:egpBox(1,vec2(256,256),vec2(512,512)) This:egpMaterial(1,"console/background02") This:egpBox(2,vec2(256,256),vec2(768,768)) This:egpMaterial(2,"gui/gradient_down") This:egpAngle(2,45) This:egpColor(2,41,128,185,255) This:egpBox(3,vec2(256,256),vec2(768,768)) This:egpMaterial(3,"gui/gradient_up") This:egpAngle(3,135) This:egpColor(3,142,68,173,225) This:egpText(4,"Z I T E C H",vec2(256,256)) This:egpAlign(4,1,1) This:egpFont(4,"Roboto",40) This:egpText(5,"Bims",vec2(510,504)) This:egpAlign(5,2,1) This:egpFont(5,"Roboto",15) This:egpAlpha(5,25) This:egpPoly(6,array(vec2(0,0),vec2(0,15),vec2(3,12),vec2(5,15),vec2(7,15),vec2(6,11),vec2(10,10))) This:egpColor(6,0,0,0,217) This:egpParentToCursor(6) } function void wirelink:drawControl(){ This:egpText(4,"Z I T E C H",vec2(256,126)) This:egpAlign(4,1,1) This:egpFont(4,"Roboto",40) This:egpBox(5,vec2(256,271),vec2(384,190)) This:egpColor(5,36,36,36,125) This:egpBoxOutline(6,vec2(256,271),vec2(384,190)) This:egpText(7,"Tjent: "+moneyFormat(Temp["Earned",number]),vec2(76,196)) This:egpAlign(7,0,1) This:egpFont(7,"Roboto",20) This:egpText(8,"Omsat: "+moneyFormat(Temp["Turnover",number]),vec2(76,221)) This:egpAlign(8,0,1) This:egpFont(8,"Roboto",20) This:egpText(9,"Kunder: "+Temp["Customers",number],vec2(76,246)) This:egpAlign(9,0,1) This:egpFont(9,"Roboto",20) This:egpText(10,"Salg: "+Temp["Sales",number],vec2(76,271)) This:egpAlign(10,0,1) This:egpFont(10,"Roboto",20) This:egpText(11,"Sidste kunde: "+Temp["LastCustomer",string],vec2(76,296)) This:egpAlign(11,0,1) This:egpFont(11,"Roboto",20) This:egpText(12,"Startet op: "+getTime(),vec2(76,321)) This:egpAlign(12,0,1) This:egpFont(12,"Roboto",20) This:egpText(13,"Gundealer: "+owner():name(),vec2(76,346)) This:egpAlign(13,0,1) This:egpFont(13,"Roboto",20) This:egpText(14,"Profit: "+moneyFormat(Temp["Profit",number]),vec2(432,196)) This:egpAlign(14,2,1) This:egpFont(14,"Roboto",20) This:egpText(15,"Blacklist: "+moneyFormat(Temp["UnblacklistPrice",number]),vec2(432,221)) This:egpAlign(15,2,1) This:egpFont(15,"Roboto",20) This:egpText(16,"Bims",vec2(510,504)) This:egpAlign(16,2,1) This:egpFont(16,"Roboto",15) This:egpAlpha(16,25) This:egpPoly(17,array(vec2(0,0),vec2(0,15),vec2(3,12),vec2(5,15),vec2(7,15),vec2(6,11),vec2(10,10))) This:egpColor(17,0,0,0,217) This:egpParentToCursor(17) } timer("Update.Entity",3000) timer("Draw.Control",5000) E:drawSetup() C:drawControlWait() } if(keyClk(owner())){ local Aim = owner():aimEntity() if(ops() < 95){ if(Aim:isShipment()){ if(!Temp[Aim:id(),number]){ if(Temp["Guns",table]:count() < 6){ local GunsCount = Temp["Guns",table]:count() + 1 Temp["Guns",table]:pushTable(table("Gun" = Aim)) Temp[Aim:id(),number] = 1 message(1,"Du har tilf"+oe()+"jet nyt shipment ("+Aim:shipmentName()+" - x"+Aim:shipmentAmount()+")") } } } } else{ message(1,"For h"+oe()+"j OPS!") } } if(~U & U){ if(ops() <= 125){ if(Temp["Page",number] == 1){ if(E:egpButton(1,U)){ if(U:isBlacklisted()){ E:egpSetText(13,"Du er blacklistet her! Brug !unblacklist") timer("Reset.Text",800) } else{ if(Temp["Status",number]){ updateStocks() if(Temp["Guns",table]:count()){ Temp["CurUser",entity] = U E:drawName() timer("Draw.Name",250) hint(Temp["CurUser",entity]:name()+" loggede ind!",1) } else{ E:egpSetText(13,"Vi mangler v"+aa()+"ben!") timer("Reset.Text",800) } } else{ E:egpSetText(13,"Vi har desv"+ae()+"rre lukket!") timer("Reset.Text",800) } } } } elseif(Temp["Page",number] == 3){ if(E:egpButton(5,Temp["CurUser",entity])){ timer("Return.Safe",0) } elseif(E:egpButton(10,Temp["CurUser",entity]) & Temp["Price",number] > 0){ moneyRequest(Temp["CurUser",entity],Temp["Price",number],"Betaling") } elseif(E:egpButton(12,Temp["CurUser",entity])){ if(Temp["G1",number]){ Temp["G1",number] = 0 Temp["Price",number] = Temp["Price",number] - Temp["Guns",table][1,table]["Gun",entity]:getWepPrice() E:egpColor(12,231,76,60,125) } else{ Temp["G1",number] = 1 Temp["Price",number] = Temp["Price",number] + Temp["Guns",table][1,table]["Gun",entity]:getWepPrice() E:egpColor(12,41,128,185,125) } E:egpSetText(11,moneyFormat(Temp["Price",number])) updateCart() } elseif(E:egpButton(13,Temp["CurUser",entity])){ if(Temp["G2",number]){ Temp["G2",number] = 0 Temp["Price",number] = Temp["Price",number] - Temp["Guns",table][2,table]["Gun",entity]:getWepPrice() E:egpColor(13,231,76,60,125) } else{ Temp["G2",number] = 1 Temp["Price",number] = Temp["Price",number] + Temp["Guns",table][2,table]["Gun",entity]:getWepPrice() E:egpColor(13,41,128,185,125) } E:egpSetText(11,moneyFormat(Temp["Price",number])) updateCart() } elseif(E:egpButton(14,Temp["CurUser",entity])){ if(Temp["G3",number]){ Temp["G3",number] = 0 Temp["Price",number] = Temp["Price",number] - Temp["Guns",table][3,table]["Gun",entity]:getWepPrice() E:egpColor(14,231,76,60,125) } else{ Temp["G3",number] = 1 Temp["Price",number] = Temp["Price",number] + Temp["Guns",table][3,table]["Gun",entity]:getWepPrice() E:egpColor(14,41,128,185,125) } E:egpSetText(11,moneyFormat(Temp["Price",number])) updateCart() } elseif(E:egpButton(15,Temp["CurUser",entity])){ if(Temp["G4",number]){ Temp["G4",number] = 0 Temp["Price",number] = Temp["Price",number] - Temp["Guns",table][4,table]["Gun",entity]:getWepPrice() E:egpColor(15,231,76,60,125) } else{ Temp["G4",number] = 1 Temp["Price",number] = Temp["Price",number] + Temp["Guns",table][4,table]["Gun",entity]:getWepPrice() E:egpColor(15,41,128,185,125) } E:egpSetText(11,moneyFormat(Temp["Price",number])) updateCart() } elseif(E:egpButton(16,Temp["CurUser",entity])){ if(Temp["G5",number]){ Temp["G5",number] = 0 Temp["Price",number] = Temp["Price",number] - Temp["Guns",table][5,table]["Gun",entity]:getWepPrice() E:egpColor(16,231,76,60,125) } else{ Temp["G5",number] = 1 Temp["Price",number] = Temp["Price",number] + Temp["Guns",table][5,table]["Gun",entity]:getWepPrice() E:egpColor(16,41,128,185,125) } E:egpSetText(11,moneyFormat(Temp["Price",number])) updateCart() } elseif(E:egpButton(17,Temp["CurUser",entity])){ if(Temp["G6",number]){ Temp["G6",number] = 0 Temp["Price",number] = Temp["Price",number] - Temp["Guns",table][6,table]["Gun",entity]:getWepPrice() E:egpColor(17,231,76,60,125) } else{ Temp["G6",number] = 1 Temp["Price",number] = Temp["Price",number] + Temp["Guns",table][6,table]["Gun",entity]:getWepPrice() E:egpColor(17,41,128,185,125) } E:egpSetText(11,moneyFormat(Temp["Price",number])) updateCart() } } } } if(clk(CLK)){ switch(CLK){ case "Draw.Name", if(Temp["Draw",number] <= Temp["CurUser",entity]:name():length()){ Temp["Draw",number] = Temp["Draw",number] + 1 E:egpSetText(4,Temp["CurUser",entity]:name():sub(1,Temp["Draw",number])) timer("Draw.Name",135) } else{ Temp["Draw",number] = 0 timer("drawShop",800) } break case "Update.Entity", if(ops()<95){ updateStocks() if(Temp["Page",number] == 3){ if(Temp["CurUser",entity]:pos():distance(E:entity():pos())>135){ message(1,"Loggede "+Temp["CurUser",entity]:name()+" ud pga. distancen!") timer("Return.Safe",1500) } } } timer("Update.Entity",3000) break case "Return.Safe", E:drawSetup() Temp["CurUser",entity] = noentity() Temp["Price",number] = 0 Temp["Draw",number] = 0 for(I=1,6){ Temp["G"+I,number] = 0 } stoptimer("Draw.Name") stoptimer("Draw.Shop") break case "Update.Stats", C:egpSetText(7,"Tjent: "+moneyFormat(Temp["Earned",number])) C:egpSetText(8,"Omsat: "+moneyFormat(Temp["Turnover",number])) C:egpSetText(9,"Kunder: "+Temp["Customers",number]) C:egpSetText(10,"Salg: "+Temp["Sales",number]) C:egpSetText(11,"Sidste kunde: "+Temp["LastCustomer",string]) break case "Draw.Control", C:drawControl() break case "Reset.Text", E:egpSetText(13,"") break case "drawStocks", if(Temp["Page",number] == 3){ drawStocks() E:egpRemove(30) E:egpPoly(31,array(vec2(0,0),vec2(0,15),vec2(3,12),vec2(5,15),vec2(7,15),vec2(6,11),vec2(10,10))) E:egpColor(31,0,0,0,217) E:egpParentToCursor(31) } break case "drawShop", E:drawShop() break } } if(moneyClk("Betaling")){ message(1,moneyClkPlayer():name()+" k"+oe()+"bte for "+moneyFormat(Temp["Price",number])) foreach(I:number,V:table = Temp["Guns",table]){ if(Temp["G"+I,number]){ V["Gun",entity]:ejectWeapon() Temp["Earned",number] = Temp["Earned",number] + Temp["Profit",number] Temp["Sales",number] = Temp["Sales",number] + 1 message(2,"- "+Temp["Guns",table][I,table]["Gun",entity]:getWepName()) } } Temp["Turnover",number] = Temp["Turnover",number] + Temp["Price",number] Temp["Customers",number] = Temp["Customers",number] + 1 Temp["LastCustomer",string] = moneyClkPlayer():name() timer("Return.Safe",500) timer("Update.Stats",1000) } elseif(moneyClk("Unblacklist")){ moneyClkPlayer():removeBlacklist() sendMessage(moneyClkPlayer(),"Du er ikke l"+ae()+"ngere blacklisted!") message(1,moneyClkPlayer():name()+" har k"+oe()+"bt sig til unblacklist!") Temp["Earned",number] = Temp["Earned",number] + Temp["UnblacklistPrice",number] Temp["Turnover",number] = Temp["Turnover",number] + Temp["UnblacklistPrice",number] C:egpSetText(7,"Tjent: "+moneyFormat(Temp["Earned",number])) C:egpSetText(8,"Omsat: "+moneyFormat(Temp["Turnover",number])) } if(chatClk() & ops() < 105){ local LastSaid = lastSaid():lower():explode(" ") if(LastSaid[1,string] == "!unblacklist"){ if(lastSpoke():isBlacklisted()){ moneyRequest(lastSpoke(),Temp["UnblacklistPrice",number],"Unblacklist") } } if(lastSpoke() == owner()){ switch(LastSaid[1,string]){ case "!logout", if(Temp["Page",number] == 3){ timer("Return.Safe",0) message(1,"Du loggede "+Temp["CurUser",entity]:name()+" ud!") hideChat(1) } else{ message(1,"Ingen at logge ud!") hideChat(1) } break case "!profit", Temp["Profit",number] = round(LastSaid[2,string]:toNumber()) message(1,"Den nye profit er sat til: "+moneyFormat(Temp["Profit",number])) C:egpSetText(14,"Profit: "+moneyFormat(Temp["Profit",number])) hideChat(1) break case "!blacklist", local Ply = findPlayerByName(LastSaid[2,string]) if(Ply:isPlayer() & !Ply:isBlacklisted()){ Ply:addBlacklist() message(1,Ply:name()+" er nu blacklistet!") hideChat(1) if(Ply == Temp["CurUser",entity]){ timer("Return.Safe",0) } } else{ message(1,"Dette er ikke en spiller ellers er personen allerede blacklistet!") hideChat(1) } break case "!unblacklist", local Ply = findPlayerByName(LastSaid[2,string]) if(Ply:isPlayer() & Ply:isBlacklisted()){ Ply:removeBlacklist() message(1,Ply:name()+" er nu unblacklistet!") hideChat(1) } else{ message(1,"Dette er ikke en spiller ellers er personen ikke blacklistet!") hideChat(1) } break case "!blacklistprice", Temp["UnblacklistPrice",number] = round(LastSaid[2,string]:toNumber()) message(1,"Man skal nu betale "+moneyFormat(Temp["UnblacklistPrice",number])+" for at blive unblacklistet!") C:egpSetText(15,"Blacklist: "+moneyFormat(Temp["UnblacklistPrice",number])) hideChat(1) break case "!remain", hideChat(1) message(1,"V"+aa()+"benliste:") for(I=1,Temp["Guns",table]:count()){ message(2,I+". "+Temp["Guns",table][I,table]["Gun",entity]:getWepName()+" - x"+Temp["Guns",table][I,table]["Gun",entity]:shipmentAmount()) } break case "!status", if(Temp["Status",number]){ Temp["Status",number] = 0 message(1,"Du har nu lukket butikken!") hideChat(1) if(Temp["Page",number] == 3){ timer("Return.Safe",0) } } else{ Temp["Status",number] = 1 message(1,"Du har nu "+aa()+"bnet butikken!") hideChat(1) } break case "!help", message(1,"!logout - !profit - !blacklist - !unblacklist - !blacklistprice - !remain - !status - !un/blacklistgang") hideChat(1) break case "!blacklistgang", hideChat(1) local Gang = findPlayerByName(LastSaid[2,string]) if(Gang:isPlayer()){ foreach(K,V:entity = players()){ if(V:getGang() == Gang:getGang()){ V:addBlacklist() } } message(1,"Du har blacklistet alle fra samme gang som "+Gang:name()) } else{ message(1,"Kunne ikke finde spilleren du ledte efter!") } break case "!unblacklistgang", hideChat(1) local Gang = findPlayerByName(LastSaid[2,string]) if(Gang:isPlayer()){ foreach(K,V:entity = players()){ if(V:getGang() == Gang:getGang()){ V:removeBlacklist() } } message(1,"Du har unblacklistet alle fra samme gang som "+Gang:name()) } else{ message(1,"Kunne ikke finde spilleren du ledte efter!") } break } } } Jeg har ikke planer om at hjælpe folk med at opsætte E2en eller foretage ydeligere rettelser i den. Dog kan det være @Matti 🐐 vil 😉 Kærlig hilsen, Impastasauce 13 1 1 1 Link til kommentar
Dette er et populært indlæg Matti 🐐 Besvaret August 1, 2021 Dette er et populært indlæg Del Besvaret August 1, 2021 Det skal jeg nok 🙂 1 5 Link til kommentar
Recommended Posts