West Skrevet Maj 31, 2022 Del Skrevet Maj 31, 2022 Remake af Zitech, små fix's og design changes @name Protein 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),"Protein [",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,"data/stavox/images/e2imgs_7b8ed67b83e7e60812169eabd3aeb866_usr.png") 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) local Asset = 50 This:egpBox(4,vec2(256,161+Asset),vec2(192,1)) This:egpBox(5,vec2(352,256+Asset),vec2(1,192)) This:egpBox(6,vec2(256,352+Asset),vec2(192,1)) This:egpBox(7,vec2(161,176+Asset),vec2(1,32)) This:egpBox(8,vec2(161,336+Asset),vec2(1,32)) This:egpText(9,"Stavox",vec2(159,216+Asset)) This:egpAlign(9,0,1) This:egpFont(9,"Roboto",40) This:egpText(10,"Gunshop",vec2(159,246+Asset)) This:egpAlign(10,0,1) This:egpFont(10,"Roboto",40) This:egpBox(11,vec2(230,291+Asset),vec2(166,36)) This:egpText(12,"P R O T E I N",vec2(230,291+Asset)) This:egpAlign(12,1,1) This:egpFont(12,"Roboto",22) This:egpColor(12,26,26,26,255) This:egpText(13,"",vec2(256,446)) 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,"data/stavox/images/e2imgs_7b8ed67b83e7e60812169eabd3aeb866_usr.png") 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,"data/stavox/images/e2imgs_7b8ed67b83e7e60812169eabd3aeb866_usr.png") 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,"P R O T E I N",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,"data/stavox/images/e2imgs_7b8ed67b83e7e60812169eabd3aeb866_usr.png") 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,"P R O T E I N",vec2(256,256)) This:egpAlign(4,1,1) This:egpFont(4,"Roboto",40) This:egpText(5,"Breezy",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,"P R O T E I N",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,"Breezy",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 } } } 3 Link til kommentar
Recommended Posts