Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @name STEN, SAKS, PAPIR | V1.0 | By Mic
- @inputs [EGP]:wirelink [User]:entity
- @outputs
- @persist [P1A, P2A]:array [Player1, Player2, Winner]:entity [WinnerPrice, GamePending, P1C, P2C]:number
- if ( first() | duped() | dupefinished() )
- {
- ##############
- ## CONFIG ##
- ##############
- WinnerPrice = 1000 # Vinderprisen for vinderen af et spil
- ##############
- ## DESIGN ##
- ##############
- function void doParent()
- {
- # FORSIDE #
- EGP:egpBox(1, vec2(0,0), vec2(512,512))
- EGP:egpAlpha(1, 0)
- for ( I = 1, 5 )
- {
- EGP:egpParent( 11+I, 1 )
- }
- # IDK #
- EGP:egpBox(2, vec2(0,0), vec2(512,512))
- EGP:egpAlpha(2, 0)
- for ( I = 1, 7 )
- {
- EGP:egpParent( 19+I, 2 )
- }
- }
- function void drawForside()
- {
- EGP:egpBox(10, vec2(256,256), vec2(512,512))
- EGP:egpColor(10, 144,201,191,255)
- EGP:egpText(11, "STEN, SAKS, PAPIR", vec2(256,0))
- EGP:egpColor(11, 95,123,61,200)
- EGP:egpSize(11, 50)
- EGP:egpFont(11, "Arial")
- EGP:egpAlign(11, 1, 0 )
- EGP:egpBoxOutline(12, vec2(193-36,256), vec2(200,128))
- EGP:egpColor(12, 95,123,61,255)
- EGP:egpSize(12, 3)
- EGP:egpBoxOutline(13, vec2(319+36,256), vec2(200,128))
- EGP:egpColor(13, 95,123,61,255)
- EGP:egpSize(13, 3)
- EGP:egpText(14, "AFVENTER SPILLER 1", vec2(256,180))
- EGP:egpColor(14, 95,123,61,255)
- EGP:egpAlign(14, 1, 1)
- EGP:egpSize(14, 25)
- EGP:egpFont(14, "Arial")
- EGP:egpText(15, "Tryk 'E' for at deltage", vec2(256,330))
- EGP:egpColor(15, 95,123,61,200)
- EGP:egpAlign(15, 1, 1)
- EGP:egpSize(15, 15)
- EGP:egpFont(15, "Arial")
- EGP:egpText(17, "MANGLER SPILLER", vec2(0,0)) # MAX 14 !!!!!
- EGP:egpFont(17, "Arial")
- EGP:egpAlign(17, 1, 1)
- EGP:egpParent(17, 12)
- EGP:egpText(18, "MANGLER SPILLER", vec2(0,0)) # MAX 14 !!!!!
- EGP:egpFont(18, "Arial")
- EGP:egpAlign(18, 1, 1)
- EGP:egpParent(18, 13)
- EGP:egpBox(16, vec2(256,256), vec2(512,512))
- EGP:egpAlpha(16, 0)
- }
- function void drawGame()
- {
- EGP:egpCircle(20, vec2(128,256), vec2(50,70))
- EGP:egpColor(20, 168,169,172,255)
- EGP:egpBox(21, vec2(256,256), vec2(100,100))
- EGP:egpColor(21, 227,104,60,255)
- EGP:egpMaterial(21, "data/stavox/images/mdicons_128_content_cut.png")
- EGP:egpBox(22, vec2(384,256), vec2(100,100))
- EGP:egpColor(22, 241,166,74,255)
- EGP:egpMaterial(22, "data/stavox/images/mdicons_128_description.png")
- EGP:egpText(23, "{SPILLER 1 VS SPILLER 2}", vec2(256,120))
- EGP:egpColor(23, 95,123,61,200)
- EGP:egpAlign(23, 1, 1)
- EGP:egpSize(23, 21)
- EGP:egpFont(23, "Arial")
- EGP:egpText(24, "I har begge modtaget en pm, som indholder \"custom\"", vec2(256,360))
- EGP:egpColor(24, 95,123,61,200)
- EGP:egpAlign(24, 1, 1)
- EGP:egpSize(24, 20)
- EGP:egpFont(24, "Arial")
- EGP:egpText(25, " commands, alts"+aa()+" i har ikke modtaget samme command", vec2(256,380))
- EGP:egpColor(25, 95,123,61,200)
- EGP:egpAlign(25, 1, 1)
- EGP:egpSize(25, 20)
- EGP:egpFont(25, "Arial")
- EGP:egpText(26, "til at v"+ae()+"lge sten fx.", vec2(256,400))
- EGP:egpColor(26, 95,123,61,200)
- EGP:egpAlign(26, 1, 1)
- EGP:egpSize(26, 20)
- EGP:egpFont(26, "Arial")
- }
- #################
- ## FUNCTIONS ##
- #################
- 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 makePrivateThing()
- {
- SNS = array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z")
- for ( I = 1, 3 )
- {
- N = randint(1,SNS:count())
- P1A:pushString( SNS[N, string] )
- SNS:remove(N)
- }
- for ( I = 1, 3 )
- {
- N = randint(1,SNS:count())
- P2A:pushString( SNS[N, string] )
- SNS:remove(N)
- }
- SNS = array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z")
- }
- function string whoWin()
- {
- if ( P1C == P2C )
- { return "TIE" }
- elseif ( P1C == 1 & P2C == 2 )
- { Winner = Player1, return "PLAYER1" }
- elseif ( P1C == 1 & P2C == 3 )
- { Winner = Player2, return "PLAYER2" }
- elseif ( P1C == 2 & P2C == 1 )
- { Winner = Player2, return "PLAYER2" }
- elseif ( P1C == 2 & P2C == 3 )
- { Winner = Player1, return "PLAYER1" }
- elseif ( P1C == 3 & P2C == 1 )
- { Winner = Player1, return "PLAYER1" }
- elseif ( P1C == 3 & P2C == 2 )
- { Winner = Player2, return "PLAYER2" }
- }
- #[
- 1 = sten
- 2 = saks
- 3 = papir
- ]#
- ## STARTUP ##
- if ( ->EGP )
- {
- EGP:egpClear()
- GamePending = 0
- GamePending = 1
- runOnChat( 1 )
- timer( "DRAW", 100 )
- }
- }
- ##############
- ## BUTTON ##
- ##############
- if ( ops() < 100 & User:keyUse() )
- {
- if ( EGP:egpButton( 16, User ) )
- {
- if ( GamePending == 1 )
- {
- if ( !Player1:isPlayer() )
- {
- Player1 = User
- sendMessage( Player1, "\n[S.S.P]\nDu er deltaget som spiller 1, vent p"+aa()+" en anden spiller deltager.")
- EGP:egpSetText(17, Player1:name() )
- }
- else
- {
- Player2 = User
- sendMessage( Player1, "\n[S.S.P]\nDu er deltaget som spiller 2\nSpillet starter nu :)")
- EGP:egpSetText(18, Player2:name() )
- timer( "GameStartPlayer1", 1000 )
- timer( "StartGame", 2500 )
- GamePending = 0
- timer( "InGame_PMPlayer1", 3500 )
- timer( "InGame_PMPlayer2", 4500 )
- timer( "TikTok", 1000 )
- makePrivateThing()
- }
- }
- }
- }
- ############
- ## CHAT ##
- ############
- if ( chatClk() )
- {
- local A = lastSpoke():lastSaid():lower():explode(" ")
- if ( lastSpoke() == owner() )
- {
- switch( A[1, string] )
- {
- case "!start",
- GamePending = 1
- print("Startede deltagelse af spillere..")
- break
- case "!stop",
- GamePending = 0
- print("Stoppede deltagelse af spillere..")
- break
- case "!price",
- case "!winnerprice",
- WinnerPrice = A[2, string]:toNumber()
- print("Vinder prisen blev sat til: " + WinnerPrice)
- break
- case "!reset",
- print("_-RESET-_")
- reset()
- break
- }
- }
- if ( lastSpoke() == Player1 )
- {
- switch( A[1, string] )
- {
- case P1A[1, string],
- P1C = 1
- break
- case P1A[2, string],
- P1C = 2
- break
- case P1A[3, string],
- P1C = 3
- break
- }
- }
- if ( lastSpoke() == Player2 )
- {
- switch( A[1, string] )
- {
- case P2A[1, string],
- P2C = 1
- break
- case P2A[2, string],
- P2C = 2
- break
- case P2A[3, string],
- P2C = 3
- break
- }
- }
- }
- ##############
- ## TIMERS ##
- ##############
- if ( clkName() )
- {
- switch ( clkName() )
- {
- case "DRAW",
- drawForside()
- drawGame()
- doParent()
- EGP:egpPos(2, vec2(1024, 1024))
- break
- case "GameStartPlayer1",
- sendMessage( Player1, "\n[S.S.P]\nSpiller 1 er nu deltaget {"+Player2:name()+"}\nStarter spillet.")
- break
- case "StartGame",
- EGP:egpPos(1, vec2(1024, 1024))
- EGP:egpPos(2, vec2(0,0))
- EGP:egpSetText(23, Player1:name() + " VS " + Player2:name() )
- break
- case "InGame_PMPlayer1",
- sendMessage( Player1, "\n[S.S.P]\n"+P1A[1, string]+" = sten\n"+P1A[2, string]+" = saks\n"+P1A[3, string]+" = papir\nS"+aa()+" skriver du bare dit valg i din local chat, ikke noget '!'")
- break
- case "InGame_PMPlayer2",
- sendMessage( Player2, "\n[S.S.P]\n"+P2A[1, string]+" = sten\n"+P2A[2, string]+" = saks\n"+P2A[3, string]+" = papir\nS"+aa()+" skriver du bare dit valg i din local chat, ikke noget '!'")
- break
- case "TikTok",
- if ( P1C > 0 & P2C > 0 )
- {
- EGP:egpSetText(23, "FINDER VINDER")
- timer("W1", 500)
- timer("W2", 1000)
- timer("W3", 1500)
- timer("ShowWinner", 2000)
- }
- else
- { timer( "TikTok", 1000 ) }
- break
- case "W1",
- EGP:egpSetText(23, ".FINDER VINDER.")
- break
- case "W2",
- EGP:egpSetText(23, "..FINDER VINDER..")
- break
- case "W3",
- EGP:egpSetText(23, "...FINDER VINDER...")
- break
- case "ShowWinner",
- if ( whoWin() == "TIE" )
- { EGP:egpSetText(23, "UAFGJORT" ) }
- elseif ( whoWin() == "PLAYER1" )
- { EGP:egpSetText(23, "1: " + Player1:name() ) }
- elseif ( whoWin() == "PLAYER2" )
- { EGP:egpSetText(23, "2: " + Player2:name() ) }
- if ( WinnerPrice > 0 & whoWin() != "TIE" ) { moneyGive( Winner, WinnerPrice ) }
- timer( "RESET", 2500 )
- break
- case "RESET",
- Player1 = noentity()
- Player2 = noentity()
- GamePending = 1
- P1A:clear()
- P2A:clear()
- P1C = 0
- P2C = 0
- EGP:egpPos(1, vec2(0,0))
- EGP:egpPos(2, vec2(1024,1024))
- EGP:egpSetText(17, "MANGLER SPILLER")
- EGP:egpSetText(18, "MANGLER SPILLER")
- break
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement