Hop til indhold
Stavox

L E C T U M | Gunshop | Gratis


Trixx

Recommended Posts

Features:

- Plads til 6 våben

- Blacklist

- Smooth

- Crash Sikker (Ish)

- Commands | !help, !logout, !blacklist, !removeblacklist, !remain, !sold, !profit

 

Credits:

- Design:  @Hermione

- Func: @Trixx 

 

Spoiler

@name L E C T U M
@inputs EGP:wirelink User:entity [R1, R2, R3, R4, R5, R6]:entity
@outputs 
@persist [Set, Temp, W, Blacklist]:table [Profit, Sold, Earned]:number S Price CurUser:entity
@trigger 

if(chatClk() & lastSpoke() != owner()){exit()} ## lol

if(first())
{
    runOnChat(1)
    ## SETTINGS
    
    ## Her er et par ting i kan lave bedre... Det er ikke en optimalt maade at lave clk's paa. EGPbutton er lort. andre ting som i kan fixe :) Den virker - Trixx
 
    Profit = 2000   
    Set["blacklist-extra-price", number] = 10000
   
    function message(Str:string)
    {   
        printColor(vec(255),"[",vec(35,120,255),"L.E.C.T.U.M",vec(255),"]: ",Str)
    }

    function void entity:blacklist()
    {
        local M = Blacklist[This:steamID(), number] ? " er allerede blacklisted." : " er nu blacklisted."
        
        Blacklist[This:steamID(), number] = 1
        message(This:name()+M)
        
    }
    function void entity:whitelist()
    {
        local M = Blacklist[This:steamID(), number] ? " er ikke l"+ae()+"ngere blacklisted." : " er ikke blacklisted."
        
        Blacklist[This:steamID(), number] = 0
        message(This:name()+M)
    }
    function number entity:isBlacklisted()
    {
        return Blacklist[This:steamID(), number]
    }
    

    function number wirelink:egpButton(Idx:number,Ply:entity){ # I give you 500.000 if you can optimize this... Does not include Dynn, Mads Madsen, Emoyly. Hint (DoktorDim) - I know how but do you?
        TL = This:egpPos(Idx) - This:egpSize(Idx) / 2 * (0 ? 0 : 1)
        BR = This:egpPos(Idx) + This:egpSize(Idx) / (0 ? 1 : 2)
        Cur = This:egpCursor(Ply) return inrange(Cur, TL, BR) exit()
    }

    function number entity:getWepPrice()
    {
        return This:isShipment() ? This:shipmentPrice() + Profit + (Temp["Blacklisted", number] *  Set["blacklist-extra-price",number] ) : 0
    }
    
    function string entity:getWepName()
    {
        return This:isShipment() ? This:shipmentName() : "Udsolgt"
    }
    
    function void entity:r() #Lazy Trixx
    {
        W:pushArray(array(This:getWepName(), This:getWepPrice(), This, 0, This:isShipment()))
    }
    
    function void checkWeapon(Index)
    {
        local A = W[Index,array]
        if(!A[5,number] | !A[3,entity]:isShipment()){return} # The first check is just so i donno check many times yes yes?
        
        W[Index,array][4,number] = !W[Index,array][4,number]
        
        if(W[Index,array][4,number])
        {
            Price +=A[2,number]
        }else
        {
            Price -=A[2,number]
        }

        EGP:egpAlpha(50+Index, W[Index,array][4,number] ? 255 : 0)
        
        local Tx = Price >=1 ? Price+"" : "INTET VALGT"
        EGP:egpSetText(19,Tx)
    }
    
    function void updateShipments()
    {
        W:clear()
        R1:r()
        R2:r()
        R3:r()
        R4:r()
        R5:r()
        R6:r()
    }
    
    function void wirelink:drawLogin()
    {
        S=1
        CurUser=noentity()
        
        This:egpClear()
        This:egpBox(1, vec2(256,256), vec2(512,512)) This:egpColor(1, vec(36,36,36))
        This:egpText(3, "L E C T U M" , vec2(256,73)) This:egpAlign(3,1,1) This:egpFont(3,"Courier New",35)
        
        This:egpBox(5, vec2(256,400), vec2(220,70)) 
        This:egpText(6, "BEGYND", vec2(256,400)) This:egpAlign(6,1,1) This:egpFont(6,"Courier New",30) This:egpColor(6, vec(36,36,36))
        #Hey smatso, nummer?!
        
        This:egpBox(7, vec2(256,340), vec2(220,1)) This:egpColor(7, vec(13, 152, 186))
        
        This:egpText(8, "", vec2(256,332))
        This:egpSize(8, 25)
        This:egpAlign(8,1,1)
        This:egpFont(8, "Courier New")
        
        #Logo
        This:egpPoly(9, vec2(151,185), vec2(130,85), vec2(400,100), vec2(372,100)) This:egpColor(9, vec(13, 152, 186))
        This:egpPoly(10, vec2(141,20), vec2(150,53), vec2(372,53), vec2(372,100)) This:egpColor(10, vec(13, 152, 186))
        This:egpPoly(11, vec2(148,192), vec2(125,83), vec2(130,213), vec2(406,103))
        
        This:egpBox(12, vec2(456,236), vec2(10,400)) This:egpColor(12, vec(13, 152, 186))
        This:egpBox(13, vec2(56,236), vec2(10,400)) This:egpColor(13, vec(13, 152, 186))
    }
    
    function void wirelink:drawBuy()
    {
        Price=0
        updateShipments()
        timer("check-pos", 2500)
        
        S=2
        This:egpClear()
        This:egpBox(1, vec2(256,256), vec2(512,512)) This:egpColor(1, vec(36,36,36))
        This:egpBox(2, vec2(256,256), vec2(250,512))  This:egpColor(2, vec4(81,81,81,50))
        
        for(I=1, 6)
        {
            local Ar = W[I,array]
            local Y = 56 + 60 * I
            
            This:egpBox(30+I, vec2(256,Y), vec2(200,50)) This:egpColor(30+I, vec(13, 152, 186))
            
            This:egpText(40+I,Ar[1, string]+" - "+Ar[2, number], vec2(256,Y)) This:egpAlign(40+I,1,1) This:egpFont(40+I,"Courier New",20)
            
            This:egpBoxOutline(50+I, vec2(256,Y), vec2(200,50)) This:egpColor(50+I, 225, 225, 225, 0)
        }
        
        This:egpBox(17, vec2(256,56), vec2(250,35)) This:egpColor(17, vec4(36,36,36,150))
        This:egpText(16,"UDVALG", vec2(256,56)) This:egpAlign(16,1,1) This:egpFont(16,"Courier New",30)
        
        This:egpBox(18, vec2(256,486), vec2(200,50)) This:egpColor(18, vec4(178,34,34,150))
        
        This:egpText(19, "INTET VALGT", vec2(256,485)) This:egpAlign(19,1,1) This:egpFont(19,"Courier New",20)
        
        This:egpBox(20, vec2(385,256), vec2(5,520)) This:egpColor(20, vec(13,152,186))
        This:egpBox(21, vec2(130,256), vec2(5,520)) This:egpColor(21, vec(13,152,186))
    }
    
    EGP:drawLogin()
}
if(~User & User & ops() < 125)
{
    if(S==1 & !CurUser)
    {   
        CurUser = User
        S=-1
                
        Temp["Name", array] = CurUser:name():sub(0, 14):explode("")
        Temp["NameText", string] = " "
        Temp["NameCount", number] = Temp["Name", array]:count()
                
        Temp["Blacklisted", number] = CurUser:isBlacklisted()
                
        timer("fancy-login", 50)
        
        
    }elseif(CurUser == User)
    {
        if(S==2)
        {
            if(EGP:egpButton(18, User))
            {
                moneyRequest(User, Price, "Pornoblad")
            }else
            {
                for(I=1, 8)
                {
                    if(EGP:egpButton(30+I, User))
                    {
                        checkWeapon(I)
                        break   
                    }   
                }   
            }
            
            
        }   
    }

}elseif(clk("fancy-login"))
{
    LN = Temp["NameText", string]:length()
    if(LN <= Temp["NameCount", number])
    {
        Temp["NameText", string] = Temp["NameText", string] + Temp["Name", array][LN,string]
        EGP:egpSetText(8,Temp["NameText", string])
        
        timer("fancy-login", 120)
    }else
    {
        timer("draw-buy", 200)
    }
}elseif(clk("draw-buy"))
{
    EGP:drawBuy()   
}elseif(clk("check-pos"))
{         
    if(S==2)
    {
        if(CurUser:pos():distance(EGP:entity():pos())>125)
        {
            EGP:drawLogin()
        }
        else
        {
            timer("check-pos",4000)
        }   
    }
}
elseif(moneyClk("Pornoblad")) # Shit?
{
    for(I=1,W:count())
    {
        local A = W[I,array]
        if(A[4,number] >= 1) 
        {
            Sold++
            Earned+=Profit

            if(!A[3,entity]:ejectWeapon())
            {
                message("Fejl i at ejecte et v"+aa()+"ben: "+A[1,string])
            }

            W[I,array][4,number] = 0
        }
    }
    
    EGP:drawLogin()
}
elseif(moneyNoClk("Pornoblad") | moneyTimeout("Pornoblad"))
{
    EGP:drawLogin()
}
elseif(chatClk(owner()))
{
    local LS = lastSaid():explode(" ")
    local Ply = findPlayerByName(LS[2,string])
    local Arg = LS[2,string]:toNumber()
    
    switch(LS[1,string])
    {
        case "!profit",
            if(Arg)
            {
                Profit = Arg
                message("Satte Profitten til: "+Arg+" kr.")   
            }else
            {
                message("Profit: "+Profit)   
            }
        break,   
        
        case "!sold",
            message("Du har solgt "+Sold+" v"+aa()+"ven og tjent "+Earned+" kr.")
        break,
        
        case "!remain",
            if(R1:isShipment()){printColor(vec(255),R1:shipmentName()+" - "+R1:shipmentAmount())}
            if(R2:isShipment()){printColor(vec(255),R2:shipmentName()+" - "+R2:shipmentAmount())}
            if(R3:isShipment()){printColor(vec(255),R3:shipmentName()+" - "+R3:shipmentAmount())}
            if(R4:isShipment()){printColor(vec(255),R4:shipmentName()+" - "+R4:shipmentAmount())}
            if(R5:isShipment()){printColor(vec(255),R5:shipmentName()+" - "+R5:shipmentAmount())}
            if(R6:isShipment()){printColor(vec(255),R6:shipmentName()+" - "+R6:shipmentAmount())}   
        break,
        
        case "!blacklist", 
        
            if(Ply:isPlayer())
            {
                Ply:blacklist()
            }
            else
            {
                message("Brug !shop blacklist <Navn>")
            }
        
        break,
        
        case "!removeblacklist", 
            if(Ply:isPlayer())
            {
                Ply:whitelist()
            }else
            {
                message("Brug !shop whitelist <Navn>")
            }
        break,
        
        case "!logout",
            EGP:drawLogin()
            message("Loggede Cancer Barn UD!")
        break,
        
        case "!help",
            message("Commands: help - logout - blacklist - removeblacklist - remain - sold - profit")
        break,
        
        default,
        break,
        
    }   
}

 

 
 
 

E2'en er ikke testet lol.

Link til kommentar
Del på andre sites

Mit bedste bud på egpButton() funktionen er:

function number wirelink:egpButton(Player:entity,Index:number){
    Pos=This:egpPos(Index)
    Size=This:egpSize(Index)
    return inrange(This:egpCursor(Player),Pos-Size/2,Pos+Size/2)
}

Man kan godt fjerne "/2" tegnene, men så fanger den også, når man klikker lidt uden for EGP skærmen.

Link til kommentar
Del på andre sites

  • 2 months later...

Arkiveret

Dette emne er nu arkiveret og er lukket for yderligere svar

Gæst
Dette emne er nu 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.