Hop til indhold
Stavox

Phantom Gunshop


West

Recommended Posts

Phantom Gunshop

Jeg har valgt at give denne E2 ud gratis, da jeg mener i skal belønnes for at være så gode medlemmer.

-> Det her var en af de første E2'er jeg lavede efter mit unban, så derfor kan koden godt virke lidt DUSTY & RUSTY.

 

Billeder

f4d863cda8e9822af3bc0a833c7a7524.png

 

25761e97d734c879d60f429f813d84fd.png

 

Kommandoer

646d29c175be695e8df8caa22d84ec74.png

 

Koden

Spoiler

@name Phantom 1.0
@inputs E:wirelink [U, R1, R2, R3, R4, R5, R6]:entity
@outputs
@persist [Set, Temp, Stats, Blacklist]:table
@trigger

local CLK = clkName()

if(first() | ~E & E){
    
    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]
    }
    
    Set = table(
    "Name" = "P H A N T O M",
    "Message" = "Betaling...",
    "BlacklistMessage" = "Unblacklist",
    "BlacklistCMD" = "!sorrybro",
    "BlacklistPrice" = 10000,
    "Profit" = 2000
    )
    
    Stats = table(
    "Earned" = 0,
    "Turnover" = 0,
    "Sales" = 0,
    "Customers" = 0,
    "TotalValue" = 0,
    "Weapons" = 0,
    "StartTime" = getTime()
    )
    
    runOnAllChat(1)
    
    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 wirelink:egpRemoveArray(IDs:array){
        foreach(K,V:number=IDs){
            This:egpRemove(V)
        }
    }
    
    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()+Set["Profit",number] : 0
    }
    
    function string entity:getRemainInfo(){
        return This:isShipment() ? This:getWepName()+" - "+This:shipmentAmount() : "Manglende shipment!"
    }
    
    function void msg1(S:string){
        printColor(vec(0,127,127),"PHANTOM",vec(255)," - "+S)
    }
    
    function void msg2(S:string){
        printColor(vec(255),S)
    }
    
    function void tempReset(){
        for(I=1,6){
            Temp["Gun"+I,number] = 0
        }
        Temp["Price",number] = 0
        Temp["CurUser",entity] = noentity()
    }
    
    function string mf(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 void wirelink:drawSetup(){
        This:egpClear()
        This:egpBox(1,vec2(256,256),vec2(512,512)) This:egpColor(1,65,65,65,255)
        
        for(ID=1,4){
            
            local Y = 156 + (ID * -86) + 76
            This:egpBox(1+ID,vec2(106,Y),vec2(766,472)) This:egpAngle(1+ID,-35)
            
        }
        
        This:egpColor(2,0,157,157,255)
        This:egpColor(3,0,127,127,255)
        This:egpColor(4,0,97,97,255)
        This:egpColor(5,0,67,67,255)
        
        This:egpBox(6,vec2(356,256),vec2(512,322)) This:egpMaterial(6,"vgui/gradient-d") This:egpAngle(6,90) This:egpColor(6,13,13,13,191)
        This:egpBox(7,vec2(256,156),vec2(512,322)) This:egpMaterial(7,"vgui/gradient-d") This:egpAngle(7,180) This:egpColor(7,13,13,13,191)
        This:egpBox(8,vec2(156,256),vec2(512,322)) This:egpMaterial(8,"vgui/gradient-d") This:egpAngle(8,270) This:egpColor(8,13,13,13,191)
        This:egpBox(9,vec2(256,356),vec2(512,322)) This:egpMaterial(9,"vgui/gradient-d") This:egpColor(9,13,13,13,191)
        
        This:egpText(10,Set["Name",string],vec2(256,156)) This:egpAlign(10,1,1) This:egpFont(10,"Roboto",40)
        This:egpBox(11,vec2(256,176),vec2(256,1))
        
        This:egpPoly(12,vec2(304/1-0,90/1+126),vec2(304/1-0,110/1+126),vec2(256/1-0,159/1+126),vec2(256/1-0,139/1+126))
        This:egpPoly(13,vec2(256/1-0,159/1+126),vec2(256/1-0,139/1+126),vec2(208/1-0,90/1+126),vec2(208/1-0,110/1+126))
        This:egpPoly(14,vec2(208/1-0,90/1+126),vec2(224/1-0,126/1+126),vec2(224/1-0,191/1+126),vec2(208/1-0,206/1+126))
        This:egpPoly(15,vec2(208/1-0,213/1+126),vec2(208/1-0,233/1+126),vec2(304/1-0,138/1+126),vec2(304/1-0,118/1+126))
        This:egpPoly(16,array(vec2(0,0),vec2(0,15),vec2(3,12),vec2(5,15),vec2(7,15),vec2(6,11),vec2(10,10))) This:egpColor(16,0,0,0,217) This:egpParentToCursor(16)
        Temp["Page",number] = 1
    }
    
    function void wirelink:drawSelection(){
        This:egpRemoveArray(array(12,13,14,15,16))
        This:egpBox(12,vec2(50,86),vec2(100,32)) This:egpColor(12,16,16,16,255)
        This:egpText(13,"TILBAGE",vec2(50,86)) This:egpAlign(13,1,1) This:egpFont(13,"Roboto",20)
        This:egpBox(14,vec2(256,456),vec2(256,30)) This:egpColor(14,26,26,26,215)
        This:egpBox(15,vec2(256,471),vec2(256,1))
        This:egpText(16,mf(Temp["Price",number]),vec2(256,456)) This:egpAlign(16,1,1) This:egpFont(16,"Roboto",20)
        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("Guns1",300)
        timer("Guns2",600)
        Temp["Page",number] = 2
    }
    
    E:drawSetup()
    timer("Distance",4000)
}

if(~U & U & ops()<125){
    if(Temp["Page",number] == 1){
        if(E:egpButton(1,U)){
            if(!U:isBlacklisted()){
                E:drawSelection()
                Temp["CurUser",entity] = U
            }
            else{
                sendMessage(U,"Hey! Du er blevet blacklistet her!
Brug "+Set["BlacklistCMD",string]+" for at k"+oe()+"be adgang her til igen.")
            }
        }
    }
    elseif(Temp["Page",number] == 2){
        if(E:egpButton(12,Temp["CurUser",entity])){
            E:drawSetup()
            tempReset()
        }
        elseif(E:egpButton(17,Temp["CurUser",entity]) & R1:isShipment()){
            if(!Temp["Gun1",number]){
                Temp["Gun1",number] = 1
                Temp["Price",number] = Temp["Price",number] + R1:getWepPrice()
                E:egpColor(20,6,204,113,255)
                E:egpSetText(16,mf(Temp["Price",number]))
            }
            else{
                Temp["Gun1",number] = 0
                Temp["Price",number] = Temp["Price",number] - R1:getWepPrice()
                E:egpColor(20,255,255,255,255)
                E:egpSetText(16,mf(Temp["Price",number]))
            }
        }
        elseif(E:egpButton(18,Temp["CurUser",entity]) & R2:isShipment()){
            if(!Temp["Gun2",number]){
                Temp["Gun2",number] = 1
                Temp["Price",number] = Temp["Price",number] + R2:getWepPrice()
                E:egpColor(21,6,204,113,255)
                E:egpSetText(16,mf(Temp["Price",number]))
            }
            else{
                Temp["Gun2",number] = 0
                Temp["Price",number] = Temp["Price",number] - R2:getWepPrice()
                E:egpColor(21,255,255,255,255)
                E:egpSetText(16,mf(Temp["Price",number]))
            }
        }
        elseif(E:egpButton(19,Temp["CurUser",entity]) & R3:isShipment()){
            if(!Temp["Gun3",number]){
                Temp["Gun3",number] = 1
                Temp["Price",number] = Temp["Price",number] + R3:getWepPrice()
                E:egpColor(22,6,204,113,255)
                E:egpSetText(16,mf(Temp["Price",number]))
            }
            else{
                Temp["Gun3",number] = 0
                Temp["Price",number] = Temp["Price",number] - R3:getWepPrice()
                E:egpColor(22,255,255,255,255)
                E:egpSetText(16,mf(Temp["Price",number]))
            }
        }
        elseif(E:egpButton(26,Temp["CurUser",entity]) & R4:isShipment()){
            if(!Temp["Gun4",number]){
                Temp["Gun4",number] = 1
                Temp["Price",number] = Temp["Price",number] + R4:getWepPrice()
                E:egpColor(29,6,204,113,255)
                E:egpSetText(16,mf(Temp["Price",number]))
            }
            else{
                Temp["Gun4",number] = 0
                Temp["Price",number] = Temp["Price",number] - R4:getWepPrice()
                E:egpColor(29,255,255,255,255)
                E:egpSetText(16,mf(Temp["Price",number]))
            }
        }
        elseif(E:egpButton(27,Temp["CurUser",entity]) & R5:isShipment()){
            if(!Temp["Gun5",number]){
                Temp["Gun5",number] = 1
                Temp["Price",number] = Temp["Price",number] + R5:getWepPrice()
                E:egpColor(30,6,204,113,255)
                E:egpSetText(16,mf(Temp["Price",number]))
            }
            else{
                Temp["Gun5",number] = 0
                Temp["Price",number] = Temp["Price",number] - R5:getWepPrice()
                E:egpColor(30,255,255,255,255)
                E:egpSetText(16,mf(Temp["Price",number]))
            }
        }
        elseif(E:egpButton(28,Temp["CurUser",entity]) & R6:isShipment()){
            if(!Temp["Gun6",number]){
                Temp["Gun6",number] = 1
                Temp["Price",number] = Temp["Price",number] + R6:getWepPrice()
                E:egpColor(31,6,204,113,255)
                E:egpSetText(16,mf(Temp["Price",number]))
            }
            else{
                Temp["Gun6",number] = 0
                Temp["Price",number] = Temp["Price",number] - R6:getWepPrice()
                E:egpColor(31,255,255,255,255)
                E:egpSetText(16,mf(Temp["Price",number]))
            }
        }
        elseif(E:egpButton(14,Temp["CurUser",entity]) & Temp["Price",number] > 0){
            moneyRequest(Temp["CurUser",entity],Temp["Price",number],Set["Message",string])
        }
    }
}

if(clk(CLK)){
    switch(CLK){
        case "Guns1",
            if(Temp["Page",number] > 1){
                E:egpBox(17,vec2(136,256),vec2(100,80)) E:egpColor(17,26,26,26,215)
                E:egpBox(18,vec2(256,256),vec2(100,80)) E:egpColor(18,26,26,26,215)
                E:egpBox(19,vec2(376,256),vec2(100,80)) E:egpColor(19,26,26,26,215)
                E:egpBox(20,vec2(136,296),vec2(100,1))
                E:egpBox(21,vec2(256,296),vec2(100,1))
                E:egpBox(22,vec2(376,296),vec2(100,1))
                E:egpText(23,R1:getWepName(),vec2(136,256)) E:egpAlign(23,1,1) E:egpFont(23,"Roboto",15)
                E:egpText(24,R2:getWepName(),vec2(256,256)) E:egpAlign(24,1,1) E:egpFont(24,"Roboto",15)
                E:egpText(25,R3:getWepName(),vec2(376,256)) E:egpAlign(25,1,1) E:egpFont(25,"Roboto",15)
                E:egpPoly(35,array(vec2(0,0),vec2(0,15),vec2(3,12),vec2(5,15),vec2(7,15),vec2(6,11),vec2(10,10))) E:egpColor(35,0,0,0,217) E:egpParentToCursor(35)
            }
            else{
                stopAllTimers()
            }
        break
        
        case "Guns2",
            if(Temp["Page",number] > 1){
                E:egpBox(26,vec2(136,356),vec2(100,80)) E:egpColor(26,26,26,26,215)
                E:egpBox(27,vec2(256,356),vec2(100,80)) E:egpColor(27,26,26,26,215)
                E:egpBox(28,vec2(376,356),vec2(100,80)) E:egpColor(28,26,26,26,215)
                E:egpBox(29,vec2(136,396),vec2(100,1))
                E:egpBox(30,vec2(256,396),vec2(100,1))
                E:egpBox(31,vec2(376,396),vec2(100,1))
                E:egpText(32,R4:getWepName(),vec2(136,356)) E:egpAlign(32,1,1) E:egpFont(32,"Roboto",15)
                E:egpText(33,R5:getWepName(),vec2(256,356)) E:egpAlign(33,1,1) E:egpFont(33,"Roboto",15)
                E:egpText(34,R6:getWepName(),vec2(376,356)) E:egpAlign(34,1,1) E:egpFont(34,"Roboto",15)
                E:egpPoly(36,array(vec2(0,0),vec2(0,15),vec2(3,12),vec2(5,15),vec2(7,15),vec2(6,11),vec2(10,10))) E:egpColor(36,0,0,0,217) E:egpParentToCursor(36)
            }
            else{
                stopAllTimers()
            }
        break
        
        case "Setup",
            E:drawSetup()
            tempReset()
        break
        
        case "Distance",
            if(ops()<125){
                if(Temp["Page",number] > 1){
                    if(Temp["CurUser",entity]:pos():distance(E:entity():pos())>125){
                        msg1("Loggede "+Temp["CurUser",entity]:name()+" ud pga. distancen!")
                        E:drawSetup()
                        tempReset()
                    }
                }
            }
            timer("Distance",4000)
        break
    }
}

if(chatClk(owner())){
    LastSaid = lastSaid():lower():explode(" ")
    switch(LastSaid[1,string]){
        case "!profit",
            Set["Profit",number] = LastSaid[2,string]:toNumber()
            msg1("Profit sat til: "+mf(Set["Profit",number]))
            hideChat(1)
        break
        
        case "!remain",
            msg1("V"+aa()+"benliste:")
            if(R1:isShipment()){
                msg2("1. "+R1:getRemainInfo())
            }
            if(R2:isShipment()){
                msg2("2. "+R2:getRemainInfo())
            }
            if(R3:isShipment()){
                msg2("3. "+R3:getRemainInfo())
            }
            if(R4:isShipment()){
                msg2("4. "+R4:getRemainInfo())
            }
            if(R5:isShipment()){
                msg2("5. "+R5:getRemainInfo())
            }
            if(R6:isShipment()){
                msg2("6. "+R6:getRemainInfo())
            }
            hideChat(1)
        break
        
        case "!logout",
            if(Temp["Page",number] > 1){
                msg1("Loggede "+Temp["CurUser",entity]:name()+" ud!")
                E:drawSetup()
                tempReset()
                hideChat(1)
            }
            else{
                msg1("Ingen at logge ud!")
                hideChat(1)
            }
        break
        
        case "!stats",
            Stats["TotalValue",number] = R1:getWepPrice()*R1:shipmentAmount()+R2:getWepPrice()*R2:shipmentAmount()+R3:getWepPrice()*R3:shipmentAmount()+R4:getWepPrice()*R4:shipmentAmount()+R5:getWepPrice()*R5:shipmentAmount()+R6:getWepPrice()*R6:shipmentAmount()
            Stats["Weapons",number] = R1:shipmentAmount()+R2:shipmentAmount()+R3:shipmentAmount()+R4:shipmentAmount()+R5:shipmentAmount()+R6:shipmentAmount()
            hideChat(1)
            msg1("Stats:
Tjent: "+mf(Stats["Earned",number])+"
Omsat: "+mf(Stats["Turnover",number])+"
Salg: "+Stats["Sales",number]+"
Kunder: "+Stats["Customers",number]+"
V"+aa()+"ben: "+Stats["Weapons",number]+"
V"+aa()+"ben v"+ae()+"rdi: "+mf(Stats["TotalValue",number])+"
Startet op: "+Stats["StartTime",string])
        break
        
        case "!blacklist",
            local Ply = findPlayerByName(LastSaid[2,string])
            if(Ply:isPlayer()){
                Ply:addBlacklist()
                msg1(Ply:name()+" er nu blacklisted!")
                if(Temp["CurUser",entity] == Ply){
                    E:drawSetup()
                    tempReset()
                }
                hideChat(1)
            }
            else{
                msg1("Ingen spiller med dette navn!")
                hideChat(1)
            }
        break
        
        case "!unblacklist",
            local Ply = findPlayerByName(LastSaid[2,string])
            if(Ply:isPlayer() & Ply:isBlacklisted()){
                Ply:removeBlacklist()
                msg1(Ply:name()+" er nu ikke l"+ae()+"ngere blacklisted!")
                hideChat(1)
            }
            else{
                msg1("Denne person er ikke blacklistet!")
                hideChat(1)
            }
        break
        
        case "!blacklistprice",
            Set["BlacklistPrice",number] = LastSaid[2,string]:toNumber()
            msg1("Den nye unblacklist pris er sat til: "+mf(Set["BlacklistPrice",number]))
            hideChat(1)
        break
        
        case "!help",
            msg1("Kommandoliste:
Profit -> "+aeL()+"ndrer m"+ae()+"ngden af profit.
Remain -> Udprinter liste af aktive v"+aa()+"ben.
Logout -> Logger spilleren ud af E2en.
Stats -> Udprinter statistikker.
Blacklist -> Blacklist en spiller
Unblacklist -> Fjern en spillers blacklist
Blacklistprice -> "+aeL()+"ndrer prisen p"+aa()+" unblacklist")
            hideChat(1)
        break
    }
}

if(chatClk()){
    if(lastSaid()==Set["BlacklistCMD",string]){
        if(lastSpoke():isBlacklisted()){
            moneyRequest(lastSpoke(),Set["BlacklistPrice",number],Set["BlacklistMessage",string])
        }
    }
}

if(moneyClk(Set["Message",string])){
    msg1(moneyClkPlayer():name()+" k"+oe()+"bte f"+oe()+"lgende v"+aa()+"ben:")
    if(Temp["Gun1",number]){
        msg2("- "+R1:getWepName())
        R1:ejectWeapon()
        Stats["Sales",number] = Stats["Sales",number] + 1
        Stats["Earned",number] = Stats["Earned",number] + Set["Profit",number]
    }
    if(Temp["Gun2",number]){
        msg2("- "+R2:getWepName())
        R2:ejectWeapon()
        Stats["Sales",number] = Stats["Sales",number] + 1
        Stats["Earned",number] = Stats["Earned",number] + Set["Profit",number]
    }
    if(Temp["Gun3",number]){
        msg2("- "+R3:getWepName())
        R3:ejectWeapon()
        Stats["Sales",number] = Stats["Sales",number] + 1
        Stats["Earned",number] = Stats["Earned",number] + Set["Profit",number]
    }
    if(Temp["Gun4",number]){
        msg2("- "+R4:getWepName())
        R4:ejectWeapon()
        Stats["Sales",number] = Stats["Sales",number] + 1
        Stats["Earned",number] = Stats["Earned",number] + Set["Profit",number]
    }
    if(Temp["Gun5",number]){
        msg2("- "+R5:getWepName())
        R5:ejectWeapon()
        Stats["Sales",number] = Stats["Sales",number] + 1
        Stats["Earned",number] = Stats["Earned",number] + Set["Profit",number]
    }
    if(Temp["Gun6",number]){
        msg2("- "+R6:getWepName())
        R6:ejectWeapon()
        Stats["Sales",number] = Stats["Sales",number] + 1
        Stats["Earned",number] = Stats["Earned",number] + Set["Profit",number]
    }
    Stats["Turnover",number] = Stats["Turnover",number] + Temp["Price",number]
    Stats["Customers",number] = Stats["Customers",number] + 1
    timer("Setup",500)
}

elseif(moneyClk(Set["BlacklistMessage",string])){
    moneyClkPlayer():removeBlacklist()
    Stats["Earned",number] = Stats["Earned",number] + Set["BlacklistPrice",number]
    msg1(moneyClkPlayer():name()+" har k"+oe()+"bt unblacklist!")
}

 

Link til kommentar
Del på andre sites

20 minutter siden, Tyndfed skrev:

det er jo helt bims at du ikke bare har linket en pastebin i stedet for at skrive det hele herinde

Har ændret det til en spoiler nu, istedet for en kodesektion.

Link til kommentar
Del på andre sites

Arkiveret

Dette emne er nu arkiveret og er lukket for yderligere svar

×
×
  • Tilføj...

COOKIE- OG PRIVATLIVSPOLITIK PÅ STAVOX.DK

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privatlivspolitik - Vilkår for brug.