Advertisement
Guest User

Untitled

a guest
Apr 12th, 2020
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.91 KB | None | 0 0
  1. @name STEN, SAKS, PAPIR | V1.0 | By Mic
  2. @inputs [EGP]:wirelink [User]:entity
  3. @outputs
  4. @persist [P1A, P2A]:array [Player1, Player2, Winner]:entity [WinnerPrice, GamePending, P1C, P2C]:number
  5. if ( first() | duped() | dupefinished() )
  6. {
  7. ##############
  8. ## CONFIG ##
  9. ##############
  10. WinnerPrice = 1000 # Vinderprisen for vinderen af et spil
  11.  
  12.  
  13. ##############
  14. ## DESIGN ##
  15. ##############
  16. function void doParent()
  17. {
  18.  
  19. # FORSIDE #
  20. EGP:egpBox(1, vec2(0,0), vec2(512,512))
  21. EGP:egpAlpha(1, 0)
  22. for ( I = 1, 5 )
  23. {
  24. EGP:egpParent( 11+I, 1 )
  25. }
  26.  
  27. # IDK #
  28. EGP:egpBox(2, vec2(0,0), vec2(512,512))
  29. EGP:egpAlpha(2, 0)
  30. for ( I = 1, 7 )
  31. {
  32. EGP:egpParent( 19+I, 2 )
  33. }
  34.  
  35. }
  36. function void drawForside()
  37. {
  38. EGP:egpBox(10, vec2(256,256), vec2(512,512))
  39. EGP:egpColor(10, 144,201,191,255)
  40.  
  41. EGP:egpText(11, "STEN, SAKS, PAPIR", vec2(256,0))
  42. EGP:egpColor(11, 95,123,61,200)
  43. EGP:egpSize(11, 50)
  44. EGP:egpFont(11, "Arial")
  45. EGP:egpAlign(11, 1, 0 )
  46.  
  47. EGP:egpBoxOutline(12, vec2(193-36,256), vec2(200,128))
  48. EGP:egpColor(12, 95,123,61,255)
  49. EGP:egpSize(12, 3)
  50. EGP:egpBoxOutline(13, vec2(319+36,256), vec2(200,128))
  51. EGP:egpColor(13, 95,123,61,255)
  52. EGP:egpSize(13, 3)
  53.  
  54. EGP:egpText(14, "AFVENTER SPILLER 1", vec2(256,180))
  55. EGP:egpColor(14, 95,123,61,255)
  56. EGP:egpAlign(14, 1, 1)
  57. EGP:egpSize(14, 25)
  58. EGP:egpFont(14, "Arial")
  59. EGP:egpText(15, "Tryk 'E' for at deltage", vec2(256,330))
  60. EGP:egpColor(15, 95,123,61,200)
  61. EGP:egpAlign(15, 1, 1)
  62. EGP:egpSize(15, 15)
  63. EGP:egpFont(15, "Arial")
  64.  
  65. EGP:egpText(17, "MANGLER SPILLER", vec2(0,0)) # MAX 14 !!!!!
  66. EGP:egpFont(17, "Arial")
  67. EGP:egpAlign(17, 1, 1)
  68. EGP:egpParent(17, 12)
  69. EGP:egpText(18, "MANGLER SPILLER", vec2(0,0)) # MAX 14 !!!!!
  70. EGP:egpFont(18, "Arial")
  71. EGP:egpAlign(18, 1, 1)
  72. EGP:egpParent(18, 13)
  73.  
  74. EGP:egpBox(16, vec2(256,256), vec2(512,512))
  75. EGP:egpAlpha(16, 0)
  76. }
  77. function void drawGame()
  78. {
  79. EGP:egpCircle(20, vec2(128,256), vec2(50,70))
  80. EGP:egpColor(20, 168,169,172,255)
  81. EGP:egpBox(21, vec2(256,256), vec2(100,100))
  82. EGP:egpColor(21, 227,104,60,255)
  83. EGP:egpMaterial(21, "data/stavox/images/mdicons_128_content_cut.png")
  84. EGP:egpBox(22, vec2(384,256), vec2(100,100))
  85. EGP:egpColor(22, 241,166,74,255)
  86. EGP:egpMaterial(22, "data/stavox/images/mdicons_128_description.png")
  87.  
  88. EGP:egpText(23, "{SPILLER 1 VS SPILLER 2}", vec2(256,120))
  89. EGP:egpColor(23, 95,123,61,200)
  90. EGP:egpAlign(23, 1, 1)
  91. EGP:egpSize(23, 21)
  92. EGP:egpFont(23, "Arial")
  93.  
  94. EGP:egpText(24, "I har begge modtaget en pm, som indholder \"custom\"", vec2(256,360))
  95. EGP:egpColor(24, 95,123,61,200)
  96. EGP:egpAlign(24, 1, 1)
  97. EGP:egpSize(24, 20)
  98. EGP:egpFont(24, "Arial")
  99. EGP:egpText(25, " commands, alts"+aa()+" i har ikke modtaget samme command", vec2(256,380))
  100. EGP:egpColor(25, 95,123,61,200)
  101. EGP:egpAlign(25, 1, 1)
  102. EGP:egpSize(25, 20)
  103. EGP:egpFont(25, "Arial")
  104. EGP:egpText(26, "til at v"+ae()+"lge sten fx.", vec2(256,400))
  105. EGP:egpColor(26, 95,123,61,200)
  106. EGP:egpAlign(26, 1, 1)
  107. EGP:egpSize(26, 20)
  108. EGP:egpFont(26, "Arial")
  109. }
  110.  
  111.  
  112. #################
  113. ## FUNCTIONS ##
  114. #################
  115. function number wirelink:egpButton(Index:number,Player:entity){
  116. Pos=This:egpPos(Index)
  117. Size=This:egpSize(Index)/2
  118. return inrange(This:egpCursor(Player),Pos-Size,Pos+Size)
  119. }
  120.  
  121. function void makePrivateThing()
  122. {
  123. 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")
  124. for ( I = 1, 3 )
  125. {
  126. N = randint(1,SNS:count())
  127. P1A:pushString( SNS[N, string] )
  128. SNS:remove(N)
  129. }
  130.  
  131. for ( I = 1, 3 )
  132. {
  133. N = randint(1,SNS:count())
  134. P2A:pushString( SNS[N, string] )
  135. SNS:remove(N)
  136. }
  137. 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")
  138. }
  139. function string whoWin()
  140. {
  141. if ( P1C == P2C )
  142. { return "TIE" }
  143. elseif ( P1C == 1 & P2C == 2 )
  144. { Winner = Player1, return "PLAYER1" }
  145. elseif ( P1C == 1 & P2C == 3 )
  146. { Winner = Player2, return "PLAYER2" }
  147. elseif ( P1C == 2 & P2C == 1 )
  148. { Winner = Player2, return "PLAYER2" }
  149. elseif ( P1C == 2 & P2C == 3 )
  150. { Winner = Player1, return "PLAYER1" }
  151. elseif ( P1C == 3 & P2C == 1 )
  152. { Winner = Player1, return "PLAYER1" }
  153. elseif ( P1C == 3 & P2C == 2 )
  154. { Winner = Player2, return "PLAYER2" }
  155. }
  156. #[
  157.  
  158. 1 = sten
  159. 2 = saks
  160. 3 = papir
  161.  
  162. ]#
  163.  
  164. ## STARTUP ##
  165. if ( ->EGP )
  166. {
  167.  
  168. EGP:egpClear()
  169. GamePending = 0
  170. GamePending = 1
  171.  
  172. runOnChat( 1 )
  173. timer( "DRAW", 100 )
  174.  
  175. }
  176.  
  177. }
  178.  
  179. ##############
  180. ## BUTTON ##
  181. ##############
  182. if ( ops() < 100 & User:keyUse() )
  183. {
  184.  
  185. if ( EGP:egpButton( 16, User ) )
  186. {
  187.  
  188. if ( GamePending == 1 )
  189. {
  190. if ( !Player1:isPlayer() )
  191. {
  192. Player1 = User
  193. sendMessage( Player1, "\n[S.S.P]\nDu er deltaget som spiller 1, vent p"+aa()+" en anden spiller deltager.")
  194. EGP:egpSetText(17, Player1:name() )
  195. }
  196. else
  197. {
  198. Player2 = User
  199. sendMessage( Player1, "\n[S.S.P]\nDu er deltaget som spiller 2\nSpillet starter nu :)")
  200. EGP:egpSetText(18, Player2:name() )
  201. timer( "GameStartPlayer1", 1000 )
  202. timer( "StartGame", 2500 )
  203. GamePending = 0
  204.  
  205. timer( "InGame_PMPlayer1", 3500 )
  206. timer( "InGame_PMPlayer2", 4500 )
  207.  
  208. timer( "TikTok", 1000 )
  209.  
  210. makePrivateThing()
  211.  
  212. }
  213. }
  214.  
  215. }
  216.  
  217. }
  218.  
  219. ############
  220. ## CHAT ##
  221. ############
  222.  
  223. if ( chatClk() )
  224. {
  225.  
  226. local A = lastSpoke():lastSaid():lower():explode(" ")
  227. if ( lastSpoke() == owner() )
  228. {
  229.  
  230. switch( A[1, string] )
  231. {
  232. case "!start",
  233. GamePending = 1
  234. print("Startede deltagelse af spillere..")
  235. break
  236. case "!stop",
  237. GamePending = 0
  238. print("Stoppede deltagelse af spillere..")
  239. break
  240. case "!price",
  241. case "!winnerprice",
  242. WinnerPrice = A[2, string]:toNumber()
  243. print("Vinder prisen blev sat til: " + WinnerPrice)
  244. break
  245. case "!reset",
  246. print("_-RESET-_")
  247. reset()
  248. break
  249. }
  250.  
  251. }
  252. if ( lastSpoke() == Player1 )
  253. {
  254. switch( A[1, string] )
  255. {
  256. case P1A[1, string],
  257. P1C = 1
  258. break
  259. case P1A[2, string],
  260. P1C = 2
  261. break
  262. case P1A[3, string],
  263. P1C = 3
  264. break
  265. }
  266. }
  267. if ( lastSpoke() == Player2 )
  268. {
  269. switch( A[1, string] )
  270. {
  271. case P2A[1, string],
  272. P2C = 1
  273. break
  274. case P2A[2, string],
  275. P2C = 2
  276. break
  277. case P2A[3, string],
  278. P2C = 3
  279. break
  280. }
  281. }
  282.  
  283. }
  284.  
  285.  
  286. ##############
  287. ## TIMERS ##
  288. ##############
  289. if ( clkName() )
  290. {
  291.  
  292. switch ( clkName() )
  293. {
  294.  
  295. case "DRAW",
  296.  
  297. drawForside()
  298. drawGame()
  299. doParent()
  300. EGP:egpPos(2, vec2(1024, 1024))
  301.  
  302. break
  303. case "GameStartPlayer1",
  304. sendMessage( Player1, "\n[S.S.P]\nSpiller 1 er nu deltaget {"+Player2:name()+"}\nStarter spillet.")
  305. break
  306. case "StartGame",
  307.  
  308. EGP:egpPos(1, vec2(1024, 1024))
  309. EGP:egpPos(2, vec2(0,0))
  310. EGP:egpSetText(23, Player1:name() + " VS " + Player2:name() )
  311.  
  312. break
  313. case "InGame_PMPlayer1",
  314. 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 '!'")
  315. break
  316. case "InGame_PMPlayer2",
  317. 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 '!'")
  318. break
  319. case "TikTok",
  320. if ( P1C > 0 & P2C > 0 )
  321. {
  322. EGP:egpSetText(23, "FINDER VINDER")
  323. timer("W1", 500)
  324. timer("W2", 1000)
  325. timer("W3", 1500)
  326. timer("ShowWinner", 2000)
  327. }
  328. else
  329. { timer( "TikTok", 1000 ) }
  330. break
  331. case "W1",
  332. EGP:egpSetText(23, ".FINDER VINDER.")
  333. break
  334. case "W2",
  335. EGP:egpSetText(23, "..FINDER VINDER..")
  336. break
  337. case "W3",
  338. EGP:egpSetText(23, "...FINDER VINDER...")
  339. break
  340. case "ShowWinner",
  341. if ( whoWin() == "TIE" )
  342. { EGP:egpSetText(23, "UAFGJORT" ) }
  343. elseif ( whoWin() == "PLAYER1" )
  344. { EGP:egpSetText(23, "1: " + Player1:name() ) }
  345. elseif ( whoWin() == "PLAYER2" )
  346. { EGP:egpSetText(23, "2: " + Player2:name() ) }
  347. if ( WinnerPrice > 0 & whoWin() != "TIE" ) { moneyGive( Winner, WinnerPrice ) }
  348. timer( "RESET", 2500 )
  349. break
  350. case "RESET",
  351.  
  352. Player1 = noentity()
  353. Player2 = noentity()
  354. GamePending = 1
  355. P1A:clear()
  356. P2A:clear()
  357. P1C = 0
  358. P2C = 0
  359. EGP:egpPos(1, vec2(0,0))
  360. EGP:egpPos(2, vec2(1024,1024))
  361. EGP:egpSetText(17, "MANGLER SPILLER")
  362. EGP:egpSetText(18, "MANGLER SPILLER")
  363.  
  364. break
  365.  
  366. }
  367.  
  368. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement