Dette er et populært indlæg Xean -.- Skrevet Juli 18, 2021 Dette er et populært indlæg Del Skrevet Juli 18, 2021 (rettet) Efter jeg har lagt alle mine E2'er op på forum har jeg set mange bruge Abstract, flere har også sagt til mig de godt kunne lide at bruge den. Så har lavet en version 1.2 Jeg har tilføjet nogle features, optimeret den lidt og gjort den "noob" friendly. Alt du behøver at vide er !help !help ranger / !help våben !help opsæt Jeg er blevet spurgt mange gange om hvorfor der kun er 1 ranger, så der er forklaring på. Hvis du har svært ved at læse hvad der står via. !help i chatten står det også i console lidt pænere. Citat @name Abstract Gunshop | V1.2 | By Xean @inputs [EGP]:wirelink [User, Ranger]:entity [EMITTER]:wirelink @outputs FadingDoor @persist [FONT, HEADER, PREFIX]:string [LOGO, BLACKLISTPROFIT, PROFIT, GANGRABAT]:number @persist [B]:table [W, S, HELP]:array [LoginPlayer]:entity [Page, CurProfit, ToPay, GiveLPDiscount]:number #[ COMMANDS - OBS: Alle commands starter med "!" (Google "aa", "oe", "ae" - hvis du ikke forstaar det) hjaelp/help [Optional: (commands/command), (ranger/vaaben), (opsaet) - (command printer en liste over commands, ranger giver dig en forklaring paa hvordan ranger systemet virker) profit [Antal] - (Saetter profitten) forcelogout/fl - (Logger den nuvaerende spiller ud af E2'en) blacklist [Navn/SteamID] [Grund:] - (Tilfoejer person til blacklist) whitelist/unblacklist [Navn/SteamID] - (Fjerner person fra blacklist) addweapon/add [KIG PAA VAABEN] - (Tilfoejer det vaaben du kigger paa til E2'en) removeweapon/remove [KIG PAA VAABEN] - (Fjerner det vaaben du kigger paa til E2'en) update/refresh - (Opdatere vaabenlisten vist paa skaermen) list - (Printer liste over tilfoejede vaaben) blacklistprofit/blprofit [Antal] - Saetter profitten for blacklistede personer. 0 goer saa de ikke kan logge ind) gangrabat [Antal] - (Giver dine gangmedlemmer rabat, 0 = fra) drawsign/sign - (Tegner emitter/skilt) ]# if(first() | dupefinished()) { ## ## ## ## ## CONFIG ## ## ## ## ## #-- SYSTEM PREFIX = "!" # The prefix of your commands. If "!" your commands will look like "!help" PROFIT = 3500 # The profit of the weapons GANGRABAT = 0 # Give your gang members some discount. (10 = 10%, 50 = 50%) - 0 = off (no discount) [(PriceOfWeapon + PROFIT) * (1 - GANGRABAT/100)] BLACKLISTPROFIT = 0 # The profit for blacklisted people. If "0" blacklisted people will not be able to login at all. #-- DESIGN FONT = "Courier New" # The texts font. HEADER = "~ A B S T R A C T ~" # The top text. LOGO = 5 # The logo shown on the font page - 1 to 5 #-- Help Texts HELP[1, string] = "Liste over commands (OBS: Alle commands starter med \"" + PREFIX + "\") hj"+ae()+"lp/help [optional: (commands/command), (ranger/v"+aa()+"ben), (ops"+ae()+"t)] profit [Antal] - (S"+ae()+"tter profitten) forcelogout/fl - (Logger den nuv"+ae()+"rende spiller ud af E2'en) blacklist [Navn/SteamID] [Grund:] - (Blacklister person fra E2'en) whitelist/unblacklist [Navn/SteamID] - (Fjerner person fra blacklist) addweapon/add [KIG P"+aaL()+" V"+aaL()+"BEN] - (Tilf"+oe()+"jer det v"+aa()+"ben du kigger p"+aa()+" til E2'en) removeweapon/remove [KIG P"+aaL()+" V"+aaL()+"BEN] - (Fjerner det v"+aa()+"ben du kigger p"+aa()+" fra E2'en) update/refresh - (Opdatere v"+aa()+"benlisten vist p"+aa()+" sk"+ae()+"rmen) list - (Printer en liste over de tilf"+oe()+"jede v"+aa()+"ben) blacklistprofit/blprofit [Antal] - (S"+ae()+"tter profitten for blacklistede personer, 0 g"+oe()+"r s"+aa()+" de ikke kan logge ind) gangrabat [Antal] - (Giver dine gangmedlemmer rabat p"+aa()+" v"+aa()+"bene, 0 = fra) drawsign/sign - (Tegner emitter, hvis det er wiret til) OBS: Nogle sp"+oe()+"rgsm"+aa()+"l eller ideer kontakt Xean [stavox.dk/forums/profile/2541-xean]" HELP[2, string] = "Forklaring p"+aa()+" rangersystemet: Hvis du er tvivl om hvordan ranger/v"+aa()+"ben systemet virker p"+aa()+", er der en kort forklaring her.\n Der er ingen users, fordi stavox har tilf"+oe()+"jet en funktion som g"+oe()+"r de ikke er n"+oe()+"dvendige.\n Der er kun 1 ranger til systemet, fordi E2'en h"+aa()+"ndtere alle v"+aa()+"bene med et array. Du beh"+oe()+"ver slet ikke en ranger, du kan ogs"+aa()+" bare n"+oe()+"jes med chat-commands! Skriv \"!addweapon\" (IMENS DU KIGGER P"+aaL()+" ET SHIPMENT) for at tilf"+oe()+"je shipment. Skriv \"!removeweapon\" (IMENS DU KIGGER P"+aaL()+" ET SHIPMENT) for at fjerne et shipment. Begge commands giver dig en besked i chatten. Du kan ogs"+aa()+" g"+oe()+"re det endu nemmere for dig selv og spawne en ranger. Det eneste du skal g"+oe()+"re er at k"+oe()+"re dit shipment over rangeren og s"+aa()+" er det tilf"+oe()+"jet. Giver besked i chatten. OBS: Hvis du respawner shipmentet skal det tif"+oe()+"jes igen! OBS: Du skal selv have spawnet shipmentet fra din inventory f"+oe()+"r systemet virker!" HELP[3, string] = "Guide til ops"+ae()+"tning af E2'en: Hvis du er i tvivl om hvordan man ops"+ae()+"tter E2'en, er der en kort forklaring her. Du ved allerede hvordan man spawner E2'en, ellers ville du ikke l"+ae()+"se dette. Wire tool'et kan findes under \"Wire\" og det hedder ogs"+aa()+" \"Wire\" EGP V3: Under \"Wire\" find tool'et \"EGP V3\", v"+ae()+"lg den sk"+ae()+"rm du bedst kan li' Venstreklik for at s"+ae()+"tte den. Wire fra E2'en \"EGP [WIRELINK]\" til sk"+ae()+"rmen \"wirelink [WIRELINK]\" Wire fra E2'en \"User [ENTITY]\" til sk"+ae()+"rmen \"user [ENTITY]\" Hvis sk"+ae()+"rmen ikke viser noget reset E2'en. (Tryk R p"+aa()+" E2'en med \"Expression 2\" tool'et. Ranger: Under \"Wire\" find tool'et \"Ranger\", \"Ourput Entity+EntID\" skal v"+ae()+"re til. Venstreklik for at s"+ae()+"tte rangeren. Wire fra E2'en \"Ranger [ENTITY]\" til rangeren \"entity [ENTITY]\" Emitter: Under \"Wire\" find tool'et \"EGP V3\", s"+ae()+"t \"Screen Type\" til \"Emitter\", venstreklik for at s"+ae()+"tte. Wire fra E2'en \"EMITTER [WIRELINK]\" til emitteren \"wirelink [WIRELINK]\" Skriv \"!drawsign\" for at f"+aa()+" noget op p"+aa()+" den. Du kan ogs"+aa()+" ops"+ae()+"tte en d"+oe()+"r til kunderne, det er ikke n"+oe()+"dvendigt, men bare en neat feature. Fading Door: Find en prop du kan lide fra din \"Spawnlist\" af, s"+ae()+"t den. Under \"Tools\", under \"Construction\", v"+ae()+"lg tool'et \"Fading Door\", venstreklik p"+aa()+" din valgte prop. Wire fra proppen du har valg skal v"+ae()+"re en fadingdoor \"Fade\", til E2'en \"FadingDoor\" OBS: Mit Garry's Mod er p"+aa()+" engelsk, hvis du ikke selv kan over"+ae()+"tte s"+aa()+" brug Google Overs"+ae()+"t." ## ## ## ## ## FUNCTIONS ## ## ## ## ## #-- SYSTEM function string returnTime() { local TIME = date() local HOUR = TIME["hour", number]:toString() local MIN = TIME["min", number]:toString() if(TIME["hour", number] < 10) { HOUR = "0"+HOUR } if(TIME["min", number] < 10) { MIN = "0"+MIN } return HOUR + ":" + MIN } function string moneyFormat(M:number) { local Q = M < 1000000 local P = Q ? "^(-?%d+)(%d%d%d)" : "^(-?%d+)(%d%d%d)(%d%d%d)" local N = Q ? "%1.%2" : "%1.%2.%3" return round(M):toString():replaceRE(P, N) } 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 void p(Message:string) { printColor(vec(103,7,34),"[",vec(255,255,255),returnTime(),vec(103,7,34)," - ABSTRACT] ",vec(255,255,255),Message) } function void entity:sendM(Message:string) { sendMessage(This, "[" + returnTime() + " - Abstract]\n" + Message) } #-- DESIGN RELATED function number entity:price() { return GiveLPDiscount ? ((This:shipmentPrice() + CurProfit) * (1 - GANGRABAT/100)) : (This:shipmentPrice() + CurProfit) } function string entity:wep() { if(This:isShipment()) { return This:shipmentName() + " - " + moneyFormat(This:price()) + ",-" } return "UDSOLGT" } function void toPay() { EGP:egpSetText(51, moneyFormat(ToPay) + ",-") if(ToPay <= 0) { ToPay = 0 EGP:egpSetText(51, "V"+aeL()+"LG V"+aaL()+"BEN") } } function void selectN(N:number) { if(EGP:egpColor(62+N) != vec(174,26,58)) { EGP:egpColor(62+N, 174,26,58,180) EGP:egpColor(72+N, 7,11,85,180) ToPay -= entity(W[N, number]):price() return } EGP:egpColor(62+N, 255,255,255,180) EGP:egpColor(72+N, 255,255,255,180) ToPay += entity(W[N, number]):price() } function void updateList() { for(I = 10, 1, -1) { EGP:egpSetText(82+I, entity(W[I, number]):wep()) } } function void unselectAll() { for(I = 1, S:count()) { S[I, number] = 0 EGP:egpColor(62+I, 174,26,58,180) EGP:egpColor(72+I, 7,11,85,180) } } function void logout() { if(Page > 1) { #[MOVE:]# EGP:egpPos(1, vec2(0,0)), EGP:egpPos(2, vec2(1024,1024)) stoptimer("DistanceCheck") LoginPlayer = noentity() FadingDoor = 1 Page = 1 CurProfit = PROFIT GiveLPDiscount = 0 ToPay = 0 unselectAll() toPay() } } #-- SHIPMENT function number entity:isWeaponAdded() { for(I = W:count(), 1, -1) { if(This:id() == W[I, number]) { return 1 } } return 0 } function void entity:addWeapon() { if(This:isWeaponAdded()) { p("Dette v"+aa()+"ben er allerede tilf"+oe()+"jet.") return } if(W:count() < 11) { W:pushNumber(This:id()) p("Tilf"+oe()+"jede " + This:shipmentAmount() + "x " + This:shipmentName()) return } p("Du kan maksimalt have 10 v"+aa()+"ben tilf"+oe()+"jet.") } function void entity:removeWeapon() { for(I = W:count(), 1, -1) { if(This:id() == W[I, number]) { p("Fjernede " + This:shipmentName() + ".") W:removeNumber(I) return } } p("Dette v"+aa()+"ben er ikke tilf"+oe()+"jet.") } function void updateWeapons() { for(I = W:count(), 1, -1) { if(entity(W[I, number]):isShipment() == 0) { W:removeNumber(I) } } } #-- PLAYER function entity findPlayerByString(String:string) { local Ply = findPlayerByName(String) if(Ply:isPlayer()) { return Ply } Ply = findPlayerBySteamID(String) if(Ply:isPlayer()) { return Ply } return entity() } function void entity:blacklist(Reason:string) { if(Reason == ""){Reason = "Ubegrundet"} B[This:steamID(), string] = Reason p("Blacklistede \"" + This:name() + "\" med grunden \"" + Reason + "\"") if(This == LoginPlayer) { logout() sendMessage(This, "Du blev logget ud, da du blev blacklisted.\nGrund: " + Reason) } } function void entity:unblacklist() { p("Unblacklistede \"" + This:name() + "\"") B:remove(This:steamID()) } function number entity:isBlacklisted() { if(B[This:steamID(), string]) { return 1 } return 0 } function string entity:returnBlacklistReason() { return B[This:steamID(), string] } ## ## ## ## ## DESIGN ## ## ## ## ## function void drawBackground() { EGP:egpBoxOutline(5, vec2(256,256), vec2(512,512)) EGP:egpBox(6, vec2(256,256), vec2(730,730)) EGP:egpMaterial(6, "gui/gradient") EGP:egpAngle(6, -45) EGP:egpColor(6, 7,11,85,180) EGP:egpBox(7, vec2(256,256), vec2(730,730)) EGP:egpMaterial(7, "gui/gradient") EGP:egpAngle(7, 135) EGP:egpColor(7, 174,26,58,180) } function void wirelink:drawLogo() { # X = 56 -> | 512-56(456) <- # Y = 30 ^ | 30+360(390) V switch(LOGO) { case 1, This:egpPoly(10, vec2(222,77), vec2(68,385), vec2(222,131)) This:egpPoly(11, vec2(95,385), vec2(68,385), vec2(222,131)) This:egpPoly(12, vec2(95,385), vec2(107,361), vec2(159,385)) This:egpPoly(13, vec2(172,361), vec2(107,361), vec2(159,385)) This:egpPoly(14, vec2(222,77), vec2(349,385), vec2(222,131)) This:egpPoly(15, vec2(222,77), vec2(349,385), vec2(376,385)) This:egpPoly(16, vec2(431,385), vec2(361,361), vec2(376,385)) This:egpPoly(17, vec2(431,385), vec2(361,361), vec2(418,361)) This:egpPoly(18, vec2(431,385), vec2(266,109), vec2(404,385)) This:egpPoly(19, vec2(431,385), vec2(266,109), vec2(279,81)) This:egpPoly(20, vec2(230,188), vec2(154,340), vec2(243,214)) This:egpPoly(21, vec2(180,340), vec2(154,340), vec2(243,214)) This:egpPoly(22, vec2(180,340), vec2(192,315), vec2(304,340)) This:egpPoly(23, vec2(291,315), vec2(192,315), vec2(304,340)) break case 2, This:egpPoly(10, vec2(236,126), vec2(322,358), vec2(258,358)) This:egpPoly(11, vec2(236,126), vec2(162,126), vec2(258,358)) This:egpPoly(12, vec2(137,126), vec2(162,126), vec2(187,186)) This:egpPoly(13, vec2(137,126), vec2(81,238), vec2(187,186)) This:egpPoly(14, vec2(161,238), vec2(81,238), vec2(187,186)) This:egpPoly(15, vec2(161,238), vec2(81,238), vec2(81,289)) This:egpPoly(16, vec2(161,238), vec2(209,289), vec2(81,289)) This:egpPoly(17, vec2(161,238), vec2(209,289), vec2(187,238)) This:egpPoly(18, vec2(256,126), vec2(343,126), vec2(343,358)) This:egpPoly(19, vec2(432,358), vec2(343,126), vec2(343,358)) break case 3, This:egpPoly(10, vec2(378,158+40), vec2(403,190+40), vec2(345,190+40)) This:egpPoly(11, vec2(378,158+40), vec2(356,158+40), vec2(345,190+40)) This:egpPoly(12, vec2(347,158+40), vec2(300,158+40), vec2(285,212+40)) This:egpPoly(13, vec2(347,158+40), vec2(309,273+40), vec2(285,212+40)) This:egpPoly(14, vec2(260,289+40), vec2(309,273+40), vec2(285,212+40)) This:egpPoly(15, vec2(260,289+40), vec2(309,273+40), vec2(321,289+40)) This:egpPoly(16, vec2(260,289+40), vec2(285,320+40), vec2(321,289+40)) This:egpPoly(17, vec2(358,320+40), vec2(285,320+40), vec2(321,289+40)) This:egpPoly(18, vec2(358,320+40), vec2(397,289+40), vec2(321,289+40)) This:egpPoly(19, vec2(87,320+40), vec2(300,158+40), vec2(285,212+40)) This:egpPoly(20, vec2(87,320+40), vec2(191,288+40), vec2(285,212+40)) This:egpPoly(21, vec2(87,320+40), vec2(191,288+40), vec2(215,320+40)) break case 4, This:egpPoly(10, vec2(445,328-10), vec2(362,328-10), vec2(278,56-10)) This:egpPoly(11, vec2(278,191-10), vec2(362,328-10), vec2(278,56-10)) This:egpPoly(12, vec2(278,191-10), vec2(68,397-10), vec2(278,56-10)) This:egpPoly(13, vec2(278,191-10), vec2(68,397-10), vec2(189,334-10)) This:egpPoly(14, vec2(152,397-10), vec2(68,397-10), vec2(189,334-10)) This:egpPoly(15, vec2(152,397-10), vec2(240,312-10), vec2(189,334-10)) This:egpPoly(16, vec2(152,397-10), vec2(240,312-10), vec2(278,312-10)) This:egpPoly(17, vec2(152,397-10), vec2(278,328-10), vec2(278,312-10)) This:egpPoly(18, vec2(278,247-10), vec2(254,285-10), vec2(300,285-10)) break case 5, This:egpPoly(10, vec2(223,226+20), vec2(326,167+20), vec2(289,161+20)) This:egpPoly(11, vec2(263,37+20), vec2(326,167+20), vec2(289,161+20)) This:egpPoly(12, vec2(263,37+20), vec2(263,97+20), vec2(289,161+20)) This:egpPoly(13, vec2(263,37+20), vec2(263,97+20), vec2(82,362+20)) This:egpPoly(14, vec2(150,290+20), vec2(263,97+20), vec2(82,362+20)) This:egpPoly(15, vec2(150,290+20), vec2(334,193+20), vec2(82,362+20)) This:egpPoly(16, vec2(320,241+20), vec2(334,193+20), vec2(82,362+20)) This:egpPoly(17, vec2(320,241+20), vec2(334,193+20), vec2(417,348+20)) This:egpPoly(18, vec2(320,241+20), vec2(354,315+20), vec2(417,348+20)) This:egpPoly(19, vec2(218,348+20), vec2(354,315+20), vec2(417,348+20)) break } } function void drawForside() { # Logo creation EGP:drawLogo() EGP:egpText(24, HEADER, vec2(250,410)) EGP:egpAlign(24,1,1) EGP:egpFont(24, FONT) EGP:egpSize(24, 40) EGP:egpText(25, "TRYK \"E\" FOR AT FORTS"+aeL()+"TTE", vec2(250,430)) EGP:egpAlign(25,1,1) EGP:egpFont(25, FONT) EGP:egpSize(25, 15) #[LOGIN BOX]# EGP:egpBox(26, vec2(256,256), vec2(512,512)), EGP:egpAlpha(26, 0) } function void drawGunshop1() { EGP:egpText(50, HEADER, vec2(256,18)) EGP:egpAlign(50,1,0) EGP:egpFont(50, FONT) EGP:egpSize(50, 40) EGP:egpText(51, "V"+aeL()+"LG V"+aaL()+"BEN", vec2(256,512)) EGP:egpAlign(51,1,2) EGP:egpFont(51, FONT) EGP:egpSize(51, 25) EGP:egpBox(52, vec2(256,512), vec2(200,50)) EGP:egpAlpha(52, 0) # GUNSHOP SYSTEM # for ( I = 1, 10 ) { EGP:egpBox(52+I, vec2(256,50+(I*40)), vec2(300,30)) EGP:egpColor(52+I, 12,12,13,180) } } function void drawGunshop2() { for ( I = 1, 10 ) { EGP:egpBox(62+I, vec2(256,64+(I*40)), vec2(300,2)) EGP:egpMaterial(62+I,"gui/gradient") EGP:egpColor(62+I,174,26,58,180) EGP:egpBox(72+I, vec2(256,64+(I*40)), vec2(300,2)) EGP:egpMaterial(72+I,"gui/gradient") EGP:egpColor(72+I,7,11,85,180) EGP:egpAngle(72+I,180) } for (I = 1, 10 ) { EGP:egpText(82+I, "UDSOLGT", vec2(256,50+(I*40))) EGP:egpAlign(82+I, 1, 1) EGP:egpFont(82+I, FONT) EGP:egpSize(82+I, 25) } #93 #[BUY BOX]# EGP:egpBox(93, vec2(256,512), vec2(200,50)), EGP:egpAlpha(93, 0) #[BACK BOX]# EGP:egpBox(94, vec2(256,35), vec2(400, 40)), EGP:egpAlpha(94, 0) } function void drawEmitter() { EMITTER:egpText(1, "~ A B S T R A C T ~", vec2(256,395)) EMITTER:egpFont(1, FONT, 34) EMITTER:egpAlign(1, 1, 1) EMITTER:egpText(2, "GUNSHOP", vec2(256,415)) EMITTER:egpFont(2, FONT, 25) EMITTER:egpAlign(2, 1, 1) EMITTER:drawLogo() } function void doParent1(){#[FORSIDE:]# EGP:egpBox(1, vec2(0,0), vec2(0,0)),for(I = 10, 26){EGP:egpParent(I, 1)}} function void doParent2(){#[GUNSHOP:]# EGP:egpBox(2, vec2(0,0), vec2(0,0)),for(I = 50, 94){EGP:egpParent(I, 2)}} ## ## ## ## ## STARTUP ## ## ## ## ## timer("StartUp", 100) } ## ## ## ## ## SYSTEM ## ## ## ## ## local OPS = ops() local CLKNAME = clkName() #: IF OPS < 100 :# if(OPS < 100) { #: CHAT :# if(chatClk(owner())) { local A = lastSaid():lower():explode(" ") if(A[1, string]:sub(1,1) == PREFIX) { switch(A[1, string]:sub(2)) { case "help", case "hj"+ae()+"lp", hideChat(1) local HELPTO = A[2, string] switch(HELPTO) { default, case "command", p(HELP[1, string]) print(_HUD_PRINTCONSOLE,"\n\nABSTRACT CONSOLE HELP: " + HELP[1, string]) break case "ranger", case "v"+aa()+"ben", p(HELP[2, string]) print(_HUD_PRINTCONSOLE,"\n\nABSTRACT CONSOLE HELP: " + HELP[2, string]) break case "ops"+ae()+"t", p(HELP[3, string]) print(_HUD_PRINTCONSOLE,"\n\nABSTRACT CONSOLE HELP: " + HELP[3, string]) break } break case "profit", hideChat(1) PROFIT = A[2, string]:toNumber() p("Satte profitten til " + moneyFormat(PROFIT)) break case "forcelogout", case "fl", hideChat(1) if(LoginPlayer:isPlayer()) { p("Loggede \"" + LoginPlayer:name() + "\" ud af E2'en") logout() } else { p("Ingen spiller logget ind.") } break case "blacklist", hideChat(1) local Player = findPlayerByString(A[2, string]) if(Player:isPlayer()) { if(!Player:isBlacklisted()) { local R = lastSaid():sub((3+A[1, string]:length() + A[2, string]:length())) Player:blacklist(R) } else { p("\"" + Player:name() + "\" er allerede blacklisted.") } } else { p("Kunne ikke finde spiller via. \"" + A[2, string] + "\"") } break case "whitelist", case "unblacklist", hideChat(1) local Player = findPlayerByString(A[2, string]) if(Player:isPlayer()) { if(Player:isBlacklisted()) { Player:unblacklist() } else { p("\"" + Player:name() + "\" er ikke blacklisted.") } } else { p("\"" + Player:name() + "\" er allerede blacklisted.") } break case "addweapon", case "add", hideChat(1) local AE = lastSpoke():aimEntity() if(AE:isShipment()) { AE:addWeapon() updateWeapons() } else { p("Du skal kigge p"+aa()+" et shipment.") } break case "removeweapon", case "remove", hideChat(1) local AE = lastSpoke():aimEntity() if(AE:isShipment()) { AE:removeWeapon() updateWeapons() } else { p("Du skal kigge p"+aa()+" et shipment.") } break case "update", case "refresh", hideChat(1) updateWeapons() updateList() if(LoginPlayer:isPlayer() & Page > 1) { ToPay = 0 unselectAll() toPay() } p("Opdaterede v"+aa()+"benlisten.") break case "list", hideChat(1) if(W:count() > 0) { local WepString = "" for(I = 1, W:count()) { local ENT = entity(W[I, number]) WepString += ENT:shipmentAmount() + "x " + ENT:shipmentName() + "\n" } p("V"+aa()+"benlist:\n" + WepString:sub(0,-2)) } else { p("Ingen v"+aa()+"ben tilf"+oe()+"jet.") } break case "blacklistprofit", case "blprofit", hideChat(1) BLACKLISTPROFIT = A[2, string]:toNumber() if(BLACKLISTPROFIT > 0) { p("Satte blacklist profitten til: " + moneyFormat(BLACKLISTPROFIT) + ",-") } else { p("Blacklistede personer kan nu ikke logge ind.") } break case "gangrabat", hideChat(1) GANGRABAT = A[2, string]:toNumber() if(GANGRABAT > 0) { p("Satte gang rabatten til: " + GANGRABAT + "%") } else { p("Slog gangrabat fra.") } break case "drawsign", case "sign", hideChat(1) EMITTER:egpClear() drawEmitter() p("Skilt opsat.") break } } } #: BUTTON :# elseif(User:keyUse()) { switch(Page) { case 1, if(EGP:egpButton(26, User)) { if(!User:isBlacklisted() | (BLACKLISTPROFIT > 0 & User:isBlacklisted())) { if(User:isBlacklisted()) { CurProfit = BLACKLISTPROFIT User:sendM("Din profit er blevet h"+ae()+"vet til \"" + moneyFormat(BLACKLISTPROFIT) + "\" pga. du er blevet blacklisted med grunden: " + User:returnBlacklistReason()) } if((User:getGangID() == owner():getGangID()) & GANGRABAT > 0) { GiveLPDiscount = 1 } updateList() #[MOVE:]# EGP:egpPos(1, vec2(1024,1024)), EGP:egpPos(2, vec2(0,0)) timer("DistanceCheck", 3000) LoginPlayer = User FadingDoor = 0 Page = 2 } else { User:sendM("Du er blevet blacklisted med grunden:\n\"" + User:returnBlacklistReason() + "\"") } } break case 2, if(EGP:egpButton(53, LoginPlayer) & entity(W[1, number]):isShipment()) { S[1, number] = !S[1, number] selectN(1) toPay() } elseif(EGP:egpButton(54, LoginPlayer) & entity(W[2, number]):isShipment()) { S[2, number] = !S[2, number] selectN(2) toPay() } elseif(EGP:egpButton(55, LoginPlayer) & entity(W[3, number]):isShipment()) { S[3, number] = !S[3, number] selectN(3) toPay() } elseif(EGP:egpButton(56, LoginPlayer) & entity(W[4, number]):isShipment()) { S[4, number] = !S[4, number] selectN(4) toPay() } elseif(EGP:egpButton(57, LoginPlayer) & entity(W[5, number]):isShipment()) { S[5, number] = !S[5, number] selectN(5) toPay() } elseif(EGP:egpButton(58, LoginPlayer) & entity(W[6, number]):isShipment()) { S[6, number] = !S[6, number] selectN(6) toPay() } elseif(EGP:egpButton(59, LoginPlayer) & entity(W[7, number]):isShipment()) { S[7, number] = !S[7, number] selectN(7) toPay() } elseif(EGP:egpButton(60, LoginPlayer) & entity(W[8, number]):isShipment()) { S[8, number] = !S[8, number] selectN(8) toPay() } elseif(EGP:egpButton(61, LoginPlayer) & entity(W[9, number]):isShipment()) { S[9, number] = !S[9, number] selectN(9) toPay() } elseif(EGP:egpButton(62, LoginPlayer) & entity(W[10, number]):isShipment()) { S[10, number] = !S[10, number] selectN(10) toPay() } #--PAY elseif (EGP:egpButton(93, LoginPlayer) & ToPay > 0) { moneyRequest(LoginPlayer, ToPay, "Abstract Betaling") } #--LOGOUT elseif(EGP:egpButton(94, LoginPlayer)) { logout() } break } } #: RANGER :# elseif(Ranger:isShipment()) { Ranger:addWeapon() updateWeapons() } } ## ## ## ## ## MONEY CLK ## ## ## ## ## if(moneyClk("Abstract Betaling")) { local Player = moneyClkPlayer() #: Eject Weapons local BoughtString = Player:name() + " k"+oe()+"bte:" for(I = 1, S:count()) { if(S[I, number]) { local Ent = entity(W[I, number]) Ent:ejectWeapon() BoughtString += " " + Ent:shipmentName() + "," } } p(BoughtString:sub(0, -2)) #: Logout the player logout() } ## ## ## ## ## TIMERS ## ## ## ## ## if(CLKNAME) { switch(CLKNAME) { case "StartUp", runOnChat(1) FadingDoor = 1 CurProfit = PROFIT S = array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0) if(->EGP) { EGP:egpClear() for(I = 1, 5) { timer("P"+I, 500*I) } } else { p("Du mangler at wire en EGP sk"+ae()+"rm til E2'en.") } break case "P1", drawBackground() drawForside() break case "P2", drawGunshop1() break case "P3", drawGunshop2() break case "P4", doParent1() break case "P5", doParent2() EGP:egpPos(2, vec2(1024,1024)) Page = 1 break case "DistanceCheck", if((LoginPlayer:pos():distance(EGP:entity():pos()) > 150) | LoginPlayer:isPlayer() == 0) { logout() exit() } timer("DistanceCheck", 2000) break } } #[ Ide list: !blacklist gang/player !rabat gang/player ]# Hvis du finder fejl eller har ideer skriv til mig her eller privat. Redigeret Juli 20, 2021 af Xean -.- !profit tilføjet. 9 Link til kommentar
Deagle Mester Besvaret Juli 19, 2021 Del Besvaret Juli 19, 2021 hvad er commanden til profit? Link til kommentar
Mike Hansen Besvaret Juli 19, 2021 Del Besvaret Juli 19, 2021 (rettet) 17 timer siden, Dealge Mester skrev: hvad er commanden til profit? Hejsa. For at gøre det nemt citere jeg lige gunshop koden igen herunder. I denne version er det muligt at bruge !profit <Beløb> ~ SNIP KODEN ER FIXET ~ Redigeret Juli 20, 2021 af Mike Hansen 1 Link til kommentar
Xean -.- Besvaret Juli 20, 2021 Forfatter Del Besvaret Juli 20, 2021 8 timer siden, Dealge Mester skrev: hvad er commanden til profit? Havde glemt at tilføje den, har tilføjet det nu 🙂 2 Link til kommentar
Deagle Mester Besvaret Juli 21, 2021 Del Besvaret Juli 21, 2021 kan man tilføje en person extra så man er 2 eller 3 der kan bruge samme e2 til gunshoppen? Link til kommentar
Recommended Posts