Hop til indhold
Stavox

[E2 - GRATIS] S T O N K S | V1.2


Xean -.-

Recommended Posts

Har du heller ikke rigtigt styr på hvor mange penge du tjener/mister?🤔

Brug denne episke E2, som du helt klart har set et eller andet sted.

E2'en her er lavet med formålet om at være lidt mere flink mod serveren, da de E2'er jeg har set burger 80+ OPS konstant! :why:👿

Hvilket serverejer Jimboe og serverejer Emoyly ikke så godt kan li'

Men den kan stadig det samme? 😲(Work In Progress)

 

Spoiler

Commands:

!help / !hjælp - Printer en liste over commands du kan bruge.

!refresh - Opdatere informationen på skærmen

!info / !!information - Printer de samme informationer som du kan få på skærmen, hvis du ikke lige er i nærheden af den.

!save / !gæm / !savedata - Gæmmer det nødvendige data i en fil, som du så kan loade igen med !load (Gæmmer Tid Startet, Dato og Penge Start)

!load / !uploaddata - Loader dine gæmte informationer fra en fil.

!autosave / !autobackup - Slår automatisk backup til/fra (Gæmmer hvert 5 min.)

 

Work In Progress:

Andre ideer? Som jeg kan tilføje er åben for alt muligt, skriv til mig privat på forummet her eller in-game 🙂

 

KODEN

@name S T O N K S | V1.2
@inputs [EGP]:wirelink [User]:entity
@persist [CNeg, CPos, CNeu]:vector4 [StartUpTime, FileName, StartDate]:string [StartMoney, CurMoney, MoneyEarned, AutoBackup]:number
#[
    INFORMATION:
    Denne E2 er lavet af Mic og oplagt paa forummet (stavox.dk obv.)
    Lad vaere med at saelge den, ellers faar du bank.
    S T O N K S funktionen paa skaermen er Work In Progress
]#

if(first())
{
    ##  CONFIG  ##
    AutoBackup = 1  # Gaemmer automatisk din data (hvert 5 min), 1 = til, 0 = fra
    
    ##  DESGIN  ##
    function void drawBase()
    {
        # Background
        EGP:egpBox(10, vec2(256,256), vec2(512,512))
        EGP:egpColor(10, 255,255,255,255)
        EGP:egpBox(11, vec2(256,256), vec2(510,510))
        EGP:egpColor(11, 20,26,40,255)
        
        # Top Text
        EGP:egpText(12, "S T O N K S", vec2(256,2))
        EGP:egpAlign(12, 1, 0)
        EGP:egpSize(12, 50)
        EGP:egpFont(12, "Courier New")
        
        CNeg = vec4(240,18,24,255)
        CPos = vec4(11,231,42,255)
        CNeu = vec4(255,255,255,255)
        # STONKS Background
        EGP:egpLine(14, vec2(55,238), vec2(93,288)) EGP:egpSize(14, 4) EGP:egpColor(14, 248,136,1,120)
        EGP:egpLine(15, vec2(136,264), vec2(93,288)) EGP:egpSize(15, 4) EGP:egpColor(15, 248,136,1,120)
        EGP:egpLine(16, vec2(136,264), vec2(175,326)) EGP:egpSize(16, 4) EGP:egpColor(16, 248,136,1,120)
        EGP:egpLine(17, vec2(214,294), vec2(175,326)) EGP:egpSize(17, 4) EGP:egpColor(17, 248,136,1,120)
        EGP:egpLine(18, vec2(214,294), vec2(290,390)) EGP:egpSize(18, 4) EGP:egpColor(18, 248,136,1,120)
        EGP:egpLine(19, vec2(392,196), vec2(290,390)) EGP:egpSize(19, 4) EGP:egpColor(19, 248,136,1,120)
        EGP:egpLine(20, vec2(392,196), vec2(437,183)) EGP:egpSize(20, 4) EGP:egpColor(20, 248,136,1,120)
        EGP:egpLine(21, vec2(475,204), vec2(437,183)) EGP:egpSize(21, 4) EGP:egpColor(21, 248,136,1,120)
        
        EGP:egpCircle(22, vec2(93,288), vec2(4,4)) EGP:egpColor(22, CNeg)
        EGP:egpCircle(23, vec2(136,264), vec2(4,4)) EGP:egpColor(23, CPos)
        EGP:egpCircle(24, vec2(175,326), vec2(4,4)) EGP:egpColor(24, CNeg)
        EGP:egpCircle(25, vec2(214,294), vec2(4,4)) EGP:egpColor(25, CPos)
        EGP:egpCircle(26, vec2(290,390), vec2(4,4)) EGP:egpColor(26, CNeg)
        EGP:egpCircle(27, vec2(392,196), vec2(4,4)) EGP:egpColor(27, CPos)
        EGP:egpCircle(28, vec2(437,183), vec2(4,4)) EGP:egpColor(28, CPos)
        EGP:egpCircle(29, vec2(475,204), vec2(4,4)) EGP:egpColor(29, CNeg)
        
        # "Overlay" box
        EGP:egpBox(30, vec2(265,280), vec2(430,250))
        EGP:egpColor(30, 20,26,40,200)
        
        # Info boxes background
        EGP:egpBox(31, vec2(148,140), vec2(150,100))
        EGP:egpColor(31, 15,15,15,150)
        EGP:egpBox(32, vec2(364,140), vec2(150,100))
        EGP:egpColor(32, 15,15,15,150)
        
        EGP:egpBox(33, vec2(148,270), vec2(150,100))
        EGP:egpColor(33, 15,15,15,150)
        EGP:egpBox(34, vec2(364,270), vec2(150,100))
        EGP:egpColor(34, 15,15,15,150)
        
        EGP:egpBox(35, vec2(148,400), vec2(150,100))
        EGP:egpColor(35, 15,15,15,150)
        EGP:egpBox(36, vec2(364,400), vec2(150,100))
        EGP:egpColor(36, 15,15,15,150)
    }
    function void drawText()
    {
        # Info boxes text
        EGP:egpText(37, "TID STARTET", vec2(148,140))
        EGP:egpAlign(37, 1, 2)
        EGP:egpFont(37, "Courier New")
        EGP:egpSize(37, 20)
        EGP:egpText(38, "00:00", vec2(148,140))
        EGP:egpAlign(38, 1, 0)
        EGP:egpFont(38, "Courier New")
        EGP:egpSize(38, 20)
        
        EGP:egpText(39, "TID NU", vec2(364,140))
        EGP:egpAlign(39, 1, 2)
        EGP:egpFont(39, "Courier New")
        EGP:egpSize(39, 20)
        EGP:egpText(40, "00:00", vec2(364,140))
        EGP:egpAlign(40, 1, 0)
        EGP:egpFont(40, "Courier New")
        EGP:egpSize(40, 20)
        
        EGP:egpText(41, "PENGE START", vec2(148,270))
        EGP:egpAlign(41, 1, 2)
        EGP:egpFont(41, "Courier New")
        EGP:egpSize(41, 20)
        EGP:egpText(42, "0", vec2(148,270))
        EGP:egpAlign(42, 1, 0)
        EGP:egpFont(42, "Courier New")
        EGP:egpSize(42, 20)
        
        EGP:egpText(43, "PENGE NU", vec2(364,270))
        EGP:egpAlign(43, 1, 2)
        EGP:egpFont(43, "Courier New")
        EGP:egpSize(43, 20)
        EGP:egpText(44, "0", vec2(364,270))
        EGP:egpAlign(44, 1, 0)
        EGP:egpFont(44, "Courier New")
        EGP:egpSize(44, 20)
        
        EGP:egpText(45, "PENGE TJENT", vec2(148,400))
        EGP:egpAlign(45, 1, 2)
        EGP:egpFont(45, "Courier New")
        EGP:egpSize(45, 20)
        EGP:egpText(46, "0", vec2(148,400))
        EGP:egpAlign(46, 1, 0)
        EGP:egpFont(46, "Courier New")
        EGP:egpSize(46, 20)
        EGP:egpColor(46, CNeu)
        
        EGP:egpText(47, "S T O N K S", vec2(364,400))
        EGP:egpAlign(47, 1, 2)
        EGP:egpFont(47, "Courier New")
        EGP:egpSize(47, 20)
        EGP:egpText(48, "Tegner Graf", vec2(364,400))
        EGP:egpAlign(48, 1, 0)
        EGP:egpFont(48, "Courier New")
        EGP:egpSize(48, 15)
    }
    
    ##  FUNCTIONS  ##
    #: System
    function void sp( M:string )
    {
        printColor( vec(20,26,40), "S T O N K S : ",vec(255,255,255), M )
    }
    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 void playsound(Sound:string)
    {
        concmd("play " + Sound)
    }
    
    function void updateInfo()
    {
        EGP:egpSetText(40, returnTime())
        CurMoney = getMoney()
        EGP:egpSetText(44, moneyFormat(CurMoney))
        MoneyEarned = CurMoney - StartMoney
        EGP:egpSetText(46, moneyFormat(MoneyEarned))
        if( MoneyEarned > 0 )
        { EGP:egpColor(46, CPos) }
        elseif( MoneyEarned < 0 )
        { EGP:egpColor(46, CNeg) }
        else
        { EGP:egpColor(46, CNeu) }
    }
    
    function void printInfo()
    {
        CurMoney = getMoney()
        MoneyEarned = CurMoney - StartMoney
        local CurColor = vec4(0,0,0,0)
        if( MoneyEarned > 0 )
        { CurColor = CPos }
        elseif( MoneyEarned < 0 )
        { CurColor = CNeg }
        else
        { CurColor = CNeu }
        printColor( vec(248,136,1),"INFORMATIONER:\n",vec(115,115,115),"TID STARTET: ",vec(255,255,255),StartUpTime,vec(115,115,115),"\nTID NU: ",vec(255,255,255),returnTime(),vec(115,115,115),"\nPENGE START: ",vec(255,255,255),moneyFormat(StartMoney),vec(115,115,115),"\nPENGE NU: ",vec(255,255,255),moneyFormat(CurMoney),vec(115,115,115),"\nPENGE TJENT: ",vec(CurColor),moneyFormat(MoneyEarned))
    }
    
    #: BACKUP
    function void backupSave()
    {
        if(fileCanWrite())
        {
            fileWrite(FileName, StartUpTime + "\n" + StartDate + "\n" + StartMoney)
            sp("G"+ae()+"mte din data.")
        }
        else
        {
            playsound("ambient/levels/canals/drip3.wav")
            hint("Kunne ikke skrive i fil lige nu, pr" + oe() + "v igen om ~10 sekunder.", 8)
            sp("Kunne ikke skrive i fil lige nu, pr" + oe() + "v igen om ~10 sekunder.")
        }
    }
    function void backupLoad()
    {
        if(fileCanLoad())
        {
            fileLoad(FileName)
            sp("Loadede data.")
        }
        else
        {
            playsound("ambient/levels/canals/drip3.wav")
            hint("Kunne ikke loade fil lige nu, pr" + oe() + "v igen om ~10 sekunder.", 8)
            sp("Kunne ikke loade fil lige nu, pr" + oe() + "v igen om ~10 sekunder.")
        }
    }
    
    # STARTUP #
    runOnChat(1)
    runOnFile(1)
    if(->EGP)
    {
        StartUpTime = returnTime()
        StartMoney = getMoney()
        CurMoney = getMoney()
        MoneyEarned = 0
        
        local Month = (time("month")<10) ? "0" + time("month") : ""+time("month")
        local Date = (time("day")<10) ? "0" + time("day") : ""+time("day")
        StartDate = Date + "/" + Month
        
        EGP:egpClear()
        timer("D1", 500)
        timer("D2", 1000)
        timer("Startup", 2500)
        timer("RefreshInfo", 10000)
        
        FileName = "stonks e2/stonks_data.txt"
        
        if(AutoBackup == 1)
        {
            timer("AutoBackup", 300000)
            sp("Automatisk backup er sl"+aa()+"et til.")
        }
    }
}


##############
##  SYSTEM  ##
local ClkName = clkName()
local OPS = ops()


#: OPS < 100 :#
if(OPS < 100)
{
    if(chatClk())
    {
        A = lastSaid():lower():explode(" ")
        switch(A[1, string])
        {
            case "!refresh",
                hideChat(1)
                updateInfo()
                timer("RefreshInfo", 30000)
                sp("Opdaterede Informationer")
                break
            case "!info",
            case "!information",
                hideChat(1)
                printInfo()
                break
            case "!hj"+ae()+"lp",
            case "!help",
                hideChat(1)
                sp( "\n!info  :  Printer samme info som st"+aa()+"r p"+aa()+" sk"+ae()+"rmen\n!refresh  :  Opdatere Informationer\n!save  :  G"+ae()+"mmer din data i en fil.\n!load  :  Loader din g"+ae()+"mte data fra fil.\n!autosave  :  Sl"+aa()+"r automatisk backup til/fra." )
                break
            case "!save",
            case "!g"+ae()+"m",
            case "!savedata",
                hideChat(1)
                backupSave()
                break
            case "!load",
            case "!uploaddata",
                hideChat(1)
                backupLoad()
                break
            case "!autosave",
            case "!autobackup",
                hideChat(1)
                switch(AutoBackup)
                {
                    case 0,
                        AutoBackup = 1
                        sp("Slog automatisk backup til.")
                        timer("AutoBackup", 300000)
                        break
                    case 1,
                        AutoBackup = 0
                        sp("Slog automatisk backup fra.")
                        stoptimer("AutoBackup")
                        break
                }
                break
        }
    }
}


#: TIMERS :#
if(ClkName)
{
    switch(ClkName)
    {
        case "D1",
            drawBase()
            break
        case "D2",
            drawText()
            break
        case "Startup",
            EGP:egpSetText(38, StartUpTime)
            EGP:egpSetText(40, returnTime())
            EGP:egpSetText(42, moneyFormat(StartMoney))
            EGP:egpSetText(44, moneyFormat(CurMoney))
            break
        case "RefreshInfo",
            updateInfo()
            timer("RefreshInfo", 30000)
            break
        case "AutoBackup",
            backupSave()
            sp("Gemte data. [" + returnTime() + "]")
            timer("AutoBackup", 300000)
            break
    }
}


#: FILE :#
if(fileClk())
{
    if(fileClk(FileName))
    {
        local FileRead = fileRead():explode("\n")
        StartUpTime = FileRead[1, string]
        StartDate = FileRead[2, string]
        StartMoney = FileRead[3, string]:toNumber()
        updateInfo()
        EGP:egpSetText(42, moneyFormat(StartMoney))
        EGP:egpSetText(38, StartDate + " " + StartUpTime)
        sp("Loadede backup og opdaterede information p"+aa()+" sk"+ae()+"rm.")
    }
}

 

 

LIj8CYM.png.c0c93045c26ab7b420efca195914cbd9.png

 

Link til kommentar
  • 4 weeks later...

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.