SHARE
TWEET

Untitled

a guest May 26th, 2019 58 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --[[
  2. __ __ __ ___ __ _ __ __ ____
  3. / / / / / / / _ | / / | | / / _/_/ / __/
  4. / /__/ /_/ / / __ | / / | |/ / _/_/ _\ \
  5. /____/\____/ /_/ |_| / / |___/ /_/ /___/
  6. /_/
  7. _____ _ _ _ _
  8. |_ _| | || | | | | |
  9. | | _ __ ___ | || | ___ __ _ _ __ __| | ___ | | ___
  10. | | | '__| / _ \ | || | / _ \ / _` || '_ \ / _` | / _ \ | | / _ \
  11. | | | | | (_) || || || __/| (_| || | | || (_| || (_) || || (_) |
  12. \_/ |_| \___/ |_||_| \___| \__,_||_| |_| \__,_| \___/ |_| \___/
  13. V4.5
  14. -------------------------------------------------------------------
  15. -------------------------------------------------------------------
  16. Commands:
  17. !skip - Skip the map
  18. !points - change the points for a team: !points team1 5
  19. !np @mapcode - Play a specific map
  20. !pause - Pause the game
  21. !team - add a player to a specific team before starting: !team1 Maxxxiee#0000
  22. !d number - Change the amount of points needed to win: !d 20
  23. !add team nick - Add player to the game: !add team1 Maxxxiee#0000
  24. !reset - Resets the game
  25. !kick TEAM NAME - Kick a player: !kick team1 Maxxxiee#0000
  26. !puntaje - no clue what this does, only for [SOLO EN MODO SOLO]
  27. --------------------------------------------------------------------
  28. ]]
  29. -----------------------------------------------------------------------------------
  30. -----------------------------------------------------------------------------------
  31. local Admin = "Maxxxiee#0000" -- Change this to your name!!!!!
  32. -----------------------------------------------------------------------------------
  33. -----------------------------------------------------------------------------------
  34. local WINS = 20 -- Change the amount of points needed to win.
  35. ------------------------------------------------------------------------------------
  36. system.disableChatCommandDisplay("np", true)
  37. system.disableChatCommandDisplay("pause", true)
  38. system.disableChatCommandDisplay("saltar", true)
  39. system.disableChatCommandDisplay("puntaje", true)
  40. tfm.exec.disablePhysicalConsumables()
  41. tfm.exec.disableAutoShaman()
  42. tfm.exec.disableAutoNewGame()
  43. tfm.exec.disableAutoTimeLeft()
  44. local teams = {
  45. [1] = {},
  46. [2] = {},
  47. [3] = {},
  48. [4] = {},
  49. }
  50. local points = {
  51. [1] = 0,
  52. [2] = 0,
  53. [3] = 0,
  54. [4] = 0,
  55. }
  56. local equipos = {}
  57. local puntos = {}
  58. local modob = "racing"
  59. local modo = "bootcamp"
  60. local modo2 = "Solo"
  61. local modo2b = "normal"
  62. local tiempo = 60
  63. tonumber(tiempo)
  64. local isfirst = true
  65. local gameRunning = false
  66. local winTime = false
  67. local playersInGame = {}
  68. local distanciax = 30
  69. local distanciay = 80
  70. local textarealugar = 300
  71. local textareaid = 0
  72. local mapasmix = {7102662,157805,157004,156720,153996,151655,150651,149422,124000,203664,375455,394132,170514,173816,171776,199210,562897,172951,171148,166430,169076,330933,179488,172621,168754,159145,163596,152733,410040,158909,261814,195453,281985,191205,159932,2176211,586901,285589,257324,236768,303151,270924,1324259,1225867,563436,424604,523270,172547,2693587,168204,2693344,193662,1788490,305680,149451,176253,342035,2466489,292808,176615,438333,394125,162482,304861,458528,159298,184648,268915,329318,373105,261298,302080,449496,159187,176710,161023,366260,1852910,201172,549759,257715,397478,261298,177652,408643,447805,155606,176619,460961,455271,172512,320607,166271,299942,186066,152260,155628,166805,178297,313138,167903,223947,191177,113156,150664,157203,163159,197229,204647,163531,232675,216173,166361,169059,271411,277824,306365,172520,247329,250610,2118599,445133,149853,212903,220737,397296,2617003,629731,329627,221767,422655,417816,164931,245152,371072,2458243,214788,274963,2439335,269534,8679,321268,398041,5591416,5650343,5650250,161730,4273207,4091580,5650303,5172709,5650469,214660,3579335,4003729,508451,314205,156510,5545443,606723,3946626,332467,1665516,1614563,3679884,414899,1531388,905496,3834905,3821104,1851411,3816991,2331474,313245,266854,193588,2141379,3738767,232791,285752,278506,406266,1976857,301315,180469,3693822,280896,403698,259604,418022,323366,594883,477603,437860,590641,3688419,3682405,645288,419374,664949,704015,398942,195720,314159,613985,3683383,3683201,3680223,3680221,363625,1693705,319524,3667358,1718723,1490438,3630433,3620542,3617674,3556489,3548406,3548376,3408247,2953315,2883986,2683170,2645615,2536577,2453022,2372538,2287914,2286056,2223685,2150335,2150335,2101747,2018511,2007205,1975684,1964752,1964700,1956555,1923785,1862800,1716949,1674534,1658171,1659639,1657360,1657021,1654105,1651658,1643157,1634741,1632706,1622737,1619934,1618110,1613550,1612796,1612436,1608638,6212895,1602654,1601492,1586439,1588884,1573997,1567620,1542618,1539791,1513407,1509474,1503393,1487161,1450554,1425101,1394120,1393405,1373000,1371239,1368222,1359797,1358446,1352534,1346440,1321664,1321417,1281981,1255130,1222899,1214182,1195842,1143815,1132357,1058681,979179,829657,813156,798953,749102,737841,627609,624721,608459,616373,594049,606719,586688,580031,564033,558790,551126,545493,536235,528428,511275,508106,501711,496945,496091,483924,472665,472379,447556,445133,444490,441047,438154,436447,436107,431373,430145,429822,428517,427300,425806,424795,422361,421302,420956,420806,418658,418600,416142,412316,410813,412211,410565,410532,410230,407457,407455,407230,407165,406982,406881,406486,405295,403910,401995,401945,401778,397938,397812,397296,396861,396645,391625,387270,387180,386046,385295,386029,379745,378826,379866,364998,359055,352885,352710,350251,344952,340069,339896,339643,337774,323600,319841,317754,309029,308711,308435,306213,292348,278916,277784,275514,270819,1017676,160762,2089069,234039,267187,263163,262144,330590,403698,396105,6538564,396105,419735,6547536,355658,6607378,191716,292348,6456247,5326916,6077025,356722,2564883,1450554,494706,254291,1503393,6467947,6263285,2953315,6114281,412752,4038817,5461992,319841,359901,191716,452016,1450554,397296,250610,499684,5848412,238791,2283,232274,1716693,330590,459349,6583596,455167,6460747,251459,244888,5755208,240973,235501,235034,234039,233398,232274,230510,216735,216439,216505,214037,212542,211565,198715,193936,191716,186604,180274,176263,178657,146801,145020,3154,2283,5382692,5249500,4412890,5163891,789128,2245005,2030343,5712914,372401,5087373,4953687,2369254,4853690,226069,422509,5436200,732880,4038817,400866,3730656,3985806,355658,5175727,5699298,5588646,3921436,3639993,3984750,508796,1985019,4734427,1703617,289068,197219,333666,6077025,5710586,322321,331572,4741601,158128,6310411,6312498,6310396,6312188,6473912,6389619,6854536,6854539,6312173,6315208,6312203,6310370,6310383,6853060,6310440,6547670,7062105,6545742,6985344,960547}
  73. local mapasbootcamp= {157960,157805,157004,156720,153996,151655,150651,149422,124000,203664,375455,394132,170514,173816,171776,199210,562897,172951,171148,166430,169076,330933,179488,172621,168754,159145,163596,152733,410040,158909,261814,195453,281985,191205,159932,2176211,586901,285589,257324,236768,303151,270924,1324259,1225867,563436,424604,523270,172547,2693587,168204,2693344,193662,1788490,305680,149451,176253,342035,2466489,292808,176615,438333,394125,162482,304861,458528,159298,184648,268915,329318,373105,261298,302080,449496,159187,176710,161023,366260,1852910,201172,549759,257715,397478,261298,177652,408643,447805,155606,176619,460961,455271,172512,320607,166271,299942,186066,152260,155628,166805,178297,313138,167903,223947,191177,113156,150664,157203,163159,197229,204647,163531,232675,216173,166361,169059,271411,277824,306365,172520}
  74. local mapasracing = {7025177,7173240,7046282,7047612,7049172,7053504,2283,2806,3154,72339,166705,237281,349389,103182,107544,112790,114122,117548,120152,122911,124359,130763,136966,138036,138678,407536,144468,144677,277731,146801,147436,148424,150692,152299,155168,156685,156847,6583596,159351,160762,161730,163682,164802,165112,165747,165843,5848412,167941,168776,380417,169892,171152,175205,176263,177236,177813,178545,178657,180191,180255,180274,180469,180509,180619,181312,184110,563303,185760,185774,186604,190026,191201,191716,191753,192391,192566,193009,193588,193936,195720,196433,196468,197219,197501,198549,198715,199219,201323,3679666,206810,208058,208162,208914,209315,209708,209799,210188,211528,211565,211885,212542,213331,213697,213933,214037,214660,214775,215938,216439,216505,216553,216735,217282,217881,217900,219548,220500,222098,223293,223810,223986,224441,225017,226069,226879,226883,227417,227851,228462,229814,229827,229830,229834,229835,229944,230510,230741,231254,231694,231905,232140,232274,232451,232699,232791,233230,233345,233398,233687,234039,234502,234959,235034,235501,235651,236146,237000,237041,237263,237269,237278,237321,237744,238380,238791,239626,239880,240544,240548,240973,241211,241295,242708,243279,244006,244699,244888,245223,246790,246973,247815,247818,248098,250610,251459,252759,252806,253883,254291,255098,255542,255893,258717,259604,259716,259833,260024,260292,260338,260377,260384,260678,261078,261172,261720,261959,262144,262212,262239,263163,263182,263624,263907,264132,264232,264348,235221,266704,266765,266807,266854,266913,266930,267187,267597,269337,270668,270819,271523,273434,274321,275017,275514,277687,277784,278506,278916,279100,279256,280382,280896,281730,282101,282434,282694,283526,283715,283874,284299,285752,286333,287268,289821,291628,292348,292614,293065,294522,294943,299002,299503,29971,300055,301315,302936,304356,305677,306213,308280,308435,308694,308711,308992,309029,309057,309169,309834,312713,313245,314159,314205,315801,316289,317696,317754,317779,318378,318813,319524,319841,321339,321712,321814,321906,322771,323115,323366,323600,324355,326585,327254,327266,330441,332210,332290,332467,333277,333656,333837,335507,337581,337774,339272,339418,339643,339896,340069,340901,341116,341239,344361,344865,344952,345257,245312,345943,348479,348801,349140,4581354,349984,350251,350519,352381,352710,352885,354616,354878,355658,355676,355769,355957,356722,356982,357328,357428,359055,359521,359901,360201,6414689,360273,360365,361382,362549,363411,363625,363638,363822,364186,364998,1512355,365464,365652,365774,365464,365652,365774,367520,369160,369230,370444,370850,371076,371078,372970,373511,375381,378826,379326,379550,379745,379866,381043,381287,381305,381569,381669,382977,384206,384869,385203,385295,386029,386046,386959,387012,387180,387270,387290,387638,388447,389582,391625,391693,391831,391868,391990,392446,392492,392913,393675,393851,394890,395459,395585,395607,396223,396332,396347,396645,396861,397296,397501,397812,397938,398011,398041,398081,398942,399633,399673,400429,400666,400866,5886096,401778,401945,401995,402214,402239,402453,402936,403698,403910,404440,404590,405075,405295,405339,405497,405679,405833,405955,406266,406486,406881,406982,407165,407230,407294,407455,407457,407488,407495,6127809,407686,407746,408978,409199,410230,410532,410565,410608,410736,410813,412211,412316,412657,412752,413408,414188,414460,414899,416015,416142,416552,418022,418196,418265,418293,418323,418337,418600,418606,418658,419374,419735,420806,420956,421302,421717,422361,422509,422580,422939,423062,423449,423517,423672,424361,424786,424795,425030,425044,425215,425349,425548,425600,425771,425797,425806,426638,427300,428517,429262,429822,429897,430145,430219,430736,431142,431373,431887,433937,434887,436041,436107,436447,437860,438154,440676,441047,441376,441598,443309,444490,444830,444964,445133,445219,447556,448281,452016,455167,459349,463195,463977,465205,468260,470687,470727,471053,472379,472665,475151,475790,477370,477603,480023,483924,484992,494706,496091,496945,499109,499682,499684,499687,500074,501428,501711,501916,504409,504461,504704,504951,505109,505963,506215,507308,507325,508106,508451,508796,509082,510194,511187,511275,512927,512291,514412,514510,514982,517005,517697,523046,528428,531569,536235,537776,538116,545493,549470,551126,556253,556426,558790,563183,563484,564033,566347,566438,571144,580031,583056,586622,586688,587458,590641,594049,594883,595447,603381,606719,606723,608459,610137,611320,613985,616373,616433,620996,624098,624721,627609,634945,645288,646800,658464,664949,667920,669031,670226,694900,704015,732880,734476,1445160,737841,749102,759128,763371,763378,789058,792062,798953,813156,824082,829657,838069,846805,849224,879616,905496,972616,976721,976786,979179,982242,1015436,1015582,1019378,1033170,1034035,1051378,1051384,1058681,1085530,1102815,1130728,1132639,1142116,1143815,1144548,1162611,1167734,1172426,1174107,1195842,1208798,1208979,1210037,1214182,1216253,1221661,1222899,1229246,1231216,1234914,1249601,1252122,1253523,1255130,1255148,1256845,1281700,1281981,1286910,1307880,1311059,1321417,1321664,1341396,1346440,1351308,1352534,1358446,1359797,1364063,1368222,1368233,1371239,1371294,1372941,1373000,1373748,1375345,1378209,1393405,1394120,1398732,1405249,1405496,1416040,1425101,1428436,1448760,1450554,1453667,1471124,1483155,1487161,1490438,1491022,1492120,1495344,1503393,1504586,1506007,1509474,1513407,1525272,1531388,1538895,1539515,1539791,1542618,1542736,1555532,1555862,1556661,1564762,1567620,1573213,1571997,1580508,1583655,1586439,1587904,1588884,1589026,1591471,1592767,1595600,1597594,1600443,1601492,1601786,1601857,1602654,1603050,1605364,1608259,1608638,1609978,1611631,1612436,1612796,1613550,1613927,1614563,1618110,1619934,1621611,1622737,1623300,1628732,1629164,1632294,1632541,1632706,1632746,1634741,1637638,1639996,1643157,1644638,1646120,1648583,1651658,1654096,1654105,1654841,1654903,1657021,1657360,1658171,1659639,1659716,1661852,1663380,1663415,1665249,1665516,1665775,1669046,1673174,1674534,1675083,1687268,1689382,1692628,1693705,1694602,1702169,1703617,1705316,1716693,1716949,1718723,1724289,1728943,1749434,1751944,1759287,1768347,1778687,1787232,1787239,1794287,1802907,1841744,1845710,1848032,1851411,1851568,1851968,1856349,1857829,1862800,1862823,1873736,1923785,1924227,1926831,1927270,1932796,1951856,1952851,1954369,1954898,1956002,1956555,1964700,1964752,1965819,1973574,1975275,1975286,1975684,1975753,1976007,1976857,1979131,1982476,1985019,1987990,2005559,2007170,2007205,2012147,2018511,2023552,2030343,3691622,2047177,2048474,2068543,2070768,2076632,2079190,2089069,2098621,2101747,2106576,2118599,2134537,2138401,2141379,2144010,2149382,2150335,2174319,2176620,2180790,2185089,2214661,2219308,2223685,2228834,2245005,2286056,2287914,2331474,2347666,2372538,2378820,2393139,2417713,2453022,2509175,2536577,2538131,2557885,2564883,2577060,2582610,2586491,2588032,2592421,5712914,2645615,2682985,2683170,2725924,2726034,5834732,2796001,2813487,2816067,2840770,2854246,2868414,2883986,2894072,3816991,2953315,2989266,2991507,3005251,3008155,3029580,3036416,3120368,3123384,3142015,3156569,3175920,3209087,3213562,6041399,3267620,3347209,3408247,3444803,3447108,3453351,3469987,3504036,3517347,3518418,3535192,3537419,3544895,3548376,3548378,3548406,3549484,3549840,3556405,3556489,3556690,3572407,3574927,3575034,3575108,3575170,3575216,3575293,3575425,3575463,3579335,3579476,3582577,3584275,3584689,3592471,3595900,3603799,3603802,3603809,3604799,3607846,3611702,3611885,3613029,3617674,3620542,3630433,3631748,3637041,3638794,3639993,3644272,3652003,3652102,3654416,3662698,3667358,3668754,3670084,3676141,3676555,3679397,3778128,3679884,3680180,3680220,3680221,3680223,3682405,3683201,3683224,3683294,3683383,3683393,3683520,3683600,3684229,3684455,3684457,3684465,3684784,6300149,3685352,3685382,3685486,3688419,3690578,3691609,3693822,3696662,3700684,3702767,3705931,3706599,3712183,3716560,3721990,3727755,3728013,3737576,3738767,3778389,3799507,3799857,3799951,3801780,3816622,3818249,3821104,3834905,3845214,3847244,3854268,3857914,3889414,3901403,3909339,3912540,3946626,3948683,3953320,3953425,3967150,3967250,3970909,3984750,3985806,3999981,3992276,3992671,3994471,4003729,5628991,4035194,4049042,6063528,4088129,4091580,6069537,4148332,4174318,4174320,1250021,5249500,6070140,4234556,4238784,5495901,4323335,4344186,5579236,5557858,4489653,4508416,4551993,4612295,3211576,4666540,4681759,5246345,4685111,2571671,4707191,5867478,6091192,4734427,5813480,4747722,4758350,5717620,4815404,6076351,4836483,4902526,5024682,6066715,5030579,5032745,5028454,5044309,5045485,5053907,6629634,6114281,5029395,5000090,2423312,289068,5242039,4953687,4946442,4118659,4914476,4911122,4853690,5972342,4778991,4645670,4477124,4468155,4412890,4273207,4220406,3631534,2951766,2700958,2546484,2369254,2263004,2113318,1999967,1132357,996947,789128,529844,5096937,345290,6152426,237297,5886041,116630,5087373,330590,5552418,2166693,5172709,571512,445167,156510,1330800,5272513,3921436,6456247,3746280,5813783,3669435,5922046,3699155,4488954,5710582,5833401,5309288,5810931,5339441,372401,4469588,5346212,4834093,4813927,2522826,5382687,5382692,1913728,3272722,5379646,5846953,4870958,5861874,5067265,5349806,5699298,4469627,1431107,4895634,3574879,4915220,5436200,4038817,5710586,5303681,5408572,5590554,3468601,1449069,5797575,5747655,5405469,3730656,5472330,2776889,3636268,4993931,5434934,5045922,5452432,5422102,5488573,5776685,5766011,5517312,5590592,646968,2464807,3397865,1242669,3530855,325172,2221510,5635990,1310092,5054601,5545443,5654008,5580742,5580210,5515862,5592108,5591416,5591545,5624841,5630711,6124317,6120147,6114810,6112855,6112594,6103361,6087539,6087537,6084110,6538564,6070592,6043771,6249811,5948714,6063434,327130,441339,4000001,6069526,6160319,6180353,6172897,3065912,744038,4945098,1017676,2252884,343971,6050338,4102732,329246,2580114,5258125,265354,326904,6226519,6100000,201442,6300594,6276662,6263285,5805021,6321670,6607378,6087548,6438169,1395321,5525195,5643435,5593912,6077025,6460747,396105,1000023,1003924,2412062,2918866,3734489,3822290,3873444,3972690,4120986,4221819,4379212,4394100,4559040,4741601,4775829,5106003,5126174,5128083,5219686,5326916,5461992,5519925,5755208,6149243,6172480,6212895,6271125,6287479,6292735,6292737,6305122,6326640,6371592,6467947,6520153,6572872,6530523,6532371,6542858,6547536,6561094,6563851,6571336,6580361,6147642,1220496,532300,6730473,313091,640766,3399991,6356583,6727662,6771291,6827953,7026694,6665146,6777679,6835898,195765,6814065,6906753,179339,6916252,6918114,128522,6606660,6612138,6972430,6975166,630046,1867520,5541145,6186416,6800926,158128,6310411,6312498,6310396,6312188,6473912,6389619,6854536,6854539,6312173,6315208,6312203,6310370,6310383,6853060,6310440,6547670,7062105,6545742,6985344,960547}
  75.  
  76. local maps = mapasracing
  77. local equipoc= {}
  78. local colors = {
  79. [1] = "000000",
  80. [2] = "0000FF",
  81. [3] = "FEFF00",
  82. [4] = "FF0000",
  83. }
  84. local queue = {}
  85. local nteam = 1
  86. local kapat = {}
  87. local posicion = {}
  88. local numeroposicion = 1
  89. function newMap()
  90. local mapcode = maps[math.random(#maps)]
  91. if #queue > 0 then
  92. mapcode = queue[1]
  93. table.remove(queue, 1)
  94. end
  95. tfm.exec.newGame(mapcode)
  96. for player, data in pairs(tfm.get.room.playerList) do
  97. if not playersInGame[player] then
  98. tfm.exec.killPlayer(player)
  99. end
  100. end
  101. tfm.exec.setGameTime(tiempo)
  102. borrarScoreSolo()
  103. end
  104. function eventPlayerWon(player)
  105. if not isfirst then
  106. isfirst = true
  107. tfm.exec.setGameTime(3)
  108. if modo2b == "Solo" then
  109. if puntos[player] >= WINS - 1 then
  110. gameRunning = false
  111. winTime = os.time()
  112. ui.addTextArea(29, string.format("<p align='center'><font size='37' color='#000000'>%s ganó\nLos otros son perdedores xdxdxd", player), nil, 3, 168, 800, 500, 0, 0, 0, true)
  113. ui.addTextArea(30, string.format("<p align='center'><font size='37'><font color='#cecece'><font color='#ff0000'>%s </font>ganó\nLos otros son perdedores xdxdxd", player), nil, 1, 170, 800, 500, 0, 0, 0, true)
  114. end
  115. tfm.exec.setGameTime(3)
  116. for i = 0, 3 do
  117. defaultEffect(9, {13}, math.random(800), math.random(400), 20)
  118. end
  119. puntos[player] = puntos[player]+1
  120. equipoc[player] = "0x115b17"
  121. displayScoreSolo()
  122. end
  123. if modo2b == "normal" then
  124. if table.contains(teams[1], player) then
  125. tfm.exec.setGameTime(3)
  126. for i = 0, 3 do
  127. defaultEffect(9, {13}, math.random(800), math.random(400), 20)
  128. end
  129. points[1] = points[1]+1
  130. elseif table.contains(teams[2], player) then
  131. tfm.exec.setGameTime(3)
  132. for i = 0, 3 do
  133. defaultEffect(9, {9}, math.random(800), math.random(400), 20)
  134. end
  135. points[2] = points[2]+1
  136. elseif table.contains(teams[3], player) then
  137. tfm.exec.setGameTime(3)
  138. for i = 0, 3 do
  139. defaultEffect(9, {9}, math.random(800), math.random(400), 20)
  140. end
  141. points[3] = points[3]+1
  142. elseif table.contains(teams[4], player) then
  143. tfm.exec.setGameTime(3)
  144. for i = 0, 3 do
  145. defaultEffect(9, {9}, math.random(800), math.random(400), 20)
  146. end
  147. points[4] = points[4]+1
  148. else
  149. isfirst = false
  150. end
  151. winner = false
  152. if points[1] >= WINS then
  153. winner = 1
  154. elseif points[2] >= WINS then
  155. winner = 2
  156. elseif points[3] >= WINS then
  157. winner = 3
  158. elseif points[4] >= WINS then
  159. winner = 4
  160. end
  161. if winner then
  162. gameRunning = false
  163. winTime = os.time()
  164. local names = {
  165. "Team White",
  166. "Team Blue",
  167. "Team Yellow",
  168. "Team Red",
  169. }
  170. ui.addTextArea(26, string.format("<p align='center'><font size='37' color='#000000'GG %s", names[winner]), nil, 0, 171, 800, 500, 0, 0, 0, true)
  171. ui.addTextArea(27, string.format("<p align='center'><font size='37' color='#000000'>GG %s", names[winner]), nil, 1, 170, 800, 500, 0, 0, 0, true)
  172. ui.addTextArea(28, string.format("<p align='center'><font size='37' color='#000000'>GG %s", names[winner]), nil, 2, 169, 800, 500, 0, 0, 0, true)
  173. ui.addTextArea(29, string.format("<p align='center'><font size='37' color='#000000'>GG %s", names[winner]), nil, 3, 168, 800, 500, 0, 0, 0, true)
  174. ui.addTextArea(30, string.format("<p align='center'><font size='37'><font color='#cecece'>GG <font color='#%s'>%s</font>", colors[winner], names[winner]), nil, 1, 170, 800, 500, 0, 0, 0, true)
  175. end
  176. displayScore()
  177. end
  178. end
  179. end
  180. function eventLoop(elapsed, remain)
  181. if gameRunning then
  182. remain = remain/1000
  183. if remain < 0 then
  184. remain = 100
  185. newMap()
  186. end
  187. else
  188. if winTime then
  189. if winTime > os.time()-30000 then
  190. for i = 0, 2 do
  191. defaultEffect(9, {11, 9, 0, 13}, math.random(800), math.random(400), 80)
  192. end
  193. else
  194. winTime = false
  195. ui.removeTextArea(26)
  196. ui.removeTextArea(27)
  197. ui.removeTextArea(28)
  198. ui.removeTextArea(29)
  199. ui.removeTextArea(30)
  200. displayTeams()
  201. teams = {
  202. [1] = {},
  203. [2] = {},
  204. [3] = {},
  205. [4] = {},
  206. }
  207. points = {
  208. [1] = 0,
  209. [2] = 0,
  210. [3] = 0,
  211. [4] = 0,
  212. }
  213. playersInGame = {}
  214. end
  215. end
  216. end
  217. end
  218. function string.title(s)
  219. return string.gsub(s, "%a", function(c)
  220. return string.upper(c)
  221. end, 1)
  222. end
  223. function resetmostrarjugadoresSolo()
  224. distanciax = 30
  225. distanciay = 80
  226. textarealugar = 302
  227. textareaid = 0
  228. end
  229. function eventChatCommand(player, command)
  230. if modo2b == "Solo" then
  231. args = string.split(command, " ")
  232. if args[1] == "puntaje" then
  233. resetmostrarjugadoresSolo()
  234. ui.addTextArea(300, "<p align='center'><V><a href='event:cerrarpuntaje'>X", player, 30, 50, 30, 16, FF0000, FF0000, 1, true)
  235. ui.addTextArea(301, string.format("<p align='center'><V>Solo a %s puntos",WINS), player, 80, 45, 180, 18, FF0000, FF0000, 1, true)
  236. for k,players in pairs(tfm.get.room.playerList) do
  237. if puntos[k] then
  238. equipos[k] = k
  239. playersInGame[k] = true
  240. if textareaid >= 32 then
  241. else
  242. ui.addTextArea(textarealugar, string.format("<p align='center'><V>%s - %s",k,puntos[k]), player, distanciax, distanciay, 140, 18, FF0000, FF0000, 1, true)
  243. distanciay = distanciay + 37
  244. textareaid = textareaid + 1
  245. textarealugar = textarealugar + 1
  246. if textareaid == 8 then
  247. distanciax = distanciax + 190
  248. distanciay = 80
  249. textareaid = 0
  250. end
  251. end
  252. end
  253. end
  254. end
  255. end
  256. if player:lower() == Admin:lower() then
  257. args = string.split(command, " ")
  258. if args[1] == "team1" then
  259. if modo2b == "normal" then
  260. table.remove(args, 1)
  261. teams[1] = {}
  262. points[1] = 0
  263. for index, player in pairs(args) do
  264. player = string.title(player)
  265. table.insert(teams[1], player)
  266. playersInGame[player] = true
  267. end
  268. displayTeams()
  269. end
  270. elseif args[1] == "team2" and modo2b == "normal" then
  271. table.remove(args, 1)
  272. teams[2] = {}
  273. points[2] = 0
  274. for index, player in pairs(args) do
  275. player = string.title(player)
  276. table.insert(teams[2], player)
  277. playersInGame[player] = true
  278. end
  279. displayTeams()
  280. elseif args[1] == "team3" and modo2b == "normal" then
  281. table.remove(args, 1)
  282. teams[3] = {}
  283. points[3] = 0
  284. for index, player in pairs(args) do
  285. player = string.title(player)
  286. table.insert(teams[3], player)
  287. playersInGame[player] = true
  288. end
  289. displayTeams()
  290. elseif args[1] == "team4" and modo2b == "normal" then
  291. table.remove(args, 1)
  292. teams[4] = {}
  293. points[4] = 0
  294. for index, player in pairs(args) do
  295. player = string.title(player)
  296. table.insert(teams[4], player)
  297. playersInGame[player] = true
  298. end
  299. displayTeams()
  300. elseif args[1] == "skip" then
  301. newMap()
  302. elseif args[1] == "np" then
  303. if args[2] then
  304. table.insert(queue, args[2])
  305. end
  306. elseif args[1] == "d" then
  307. if args[2] then
  308. WINS = tonumber(args[2])
  309. displayScore()
  310. end
  311. elseif args[1] == "add" and modo2b == "Solo" then
  312. if args[2] then
  313. table.remove(args, 1)
  314. for index, player in pairs(args) do
  315. equipos[player] = player
  316. puntos[player] = 0
  317. playersInGame[player] = true
  318. end
  319. end
  320. elseif args[1] == "add" and modo2b == "normal" then
  321. if args[2] and args[3] then
  322. if args[2] == "team1" and modo2b == "normal" then
  323. table.remove(args, 1)
  324. table.remove(args, 1)
  325. for index, player in pairs(args) do
  326. player = string.title(player)
  327. table.insert(teams[1], player)
  328. playersInGame[player] = true
  329. end
  330. end
  331. if args[2] == "team2" and modo2b == "normal" then
  332. table.remove(args, 1)
  333. table.remove(args, 1)
  334. for index, player in pairs(args, 3) do
  335. player = string.title(player)
  336. table.insert(teams[2], player)
  337. playersInGame[player] = true
  338. end
  339. end
  340. if args[2] == "team3" and modo2b == "normal" then
  341. table.remove(args, 1)
  342. table.remove(args, 1)
  343. for index, player in pairs(args) do
  344. player = string.title(player)
  345. table.insert(teams[3], player)
  346. playersInGame[player] = true
  347. end
  348. end
  349. if args[2] == "team4" and modo2b == "normal" then
  350. table.remove(args, 1)
  351. table.remove(args, 1)
  352. for index, player in pairs(args) do
  353. player = string.title(player)
  354. table.insert(teams[4], player)
  355. playersInGame[player] = true
  356. end
  357. end
  358. end
  359. elseif args[1] == "kick" then
  360. if args[2] then
  361. for index, player in pairs(args) do
  362. player = string.title(player)
  363. playersInGame[player] = false
  364. end
  365. end
  366. elseif args[1] == "reset" then
  367. teams[1] = {}
  368. points[1] = 0
  369. teams[2] = {}
  370. points[2] = 0
  371. teams[3] = {}
  372. points[3] = 0
  373. teams[4] = {}
  374. points[4] = 0
  375. displayTeams()
  376. elseif args[1] == "points" and modo2b == "normal" then
  377. if args[2] and args[3] then
  378. local team = tonumber(args[2]:match("team(%d+)") or 0)
  379. if team > 0 and team < 5 then
  380. local newScore = tonumber(args[3]) or points[team]
  381. points[team] = newScore
  382. displayScore()
  383. end
  384. end
  385. elseif args[1] == "pause" then
  386. gameRunning = not gameRunning
  387. if not gameRunning then
  388. ui.addTextArea(90, "", nil, 235, 200, 302, 22, FF0000, FF0000, 1, true)
  389. ui.addTextArea(91, "<p align='center'><V> Juego pausado ", nil, 235, 200, 300, 20, 0x324650, 0x324650, 1, true)
  390. tfm.exec.disableAutoTimeLeft(true)
  391. else
  392. ui.removeTextArea(90)
  393. ui.removeTextArea(91)
  394. tfm.exec.disableAutoTimeLeft(false)
  395. end
  396. end
  397. end
  398. end
  399. function eventNewGame()
  400. if modo2b == "normal" then
  401. if gameRunning then
  402. isfirst = false
  403. for i, p in pairs(teams[1]) do
  404. tfm.exec.setNameColor(p, "0x"..colors[1])
  405. end
  406. for i, p in pairs(teams[2]) do
  407. tfm.exec.setNameColor(p, "0x"..colors[2])
  408. end
  409. for i, p in pairs(teams[3]) do
  410. tfm.exec.setNameColor(p, "0x"..colors[3])
  411. end
  412. for i, p in pairs(teams[4]) do
  413. tfm.exec.setNameColor(p, "0x"..colors[4])
  414. end
  415. displayScore()
  416. end
  417. end
  418. if modo2b == "Solo" then
  419. if gameRunning then
  420. isfirst = false
  421. for k,players in pairs(tfm.get.room.playerList) do
  422. tfm.exec.setNameColor(k, "FF0000")
  423. equipoc[k] = "FF0000"
  424. end
  425. displayScore()
  426. end
  427. end
  428. ui.setMapName("")
  429. end
  430. function displayScore()
  431. if modo2b == "normal" then
  432. ui.addTextArea(25, string.format("<p align='center'><font size='20'><font color='#%s'>%s<N> x <font color='#%s'>%s <N> x <font color='#%s'>%s <N> x <font color='#%s'>%s <N> / <font color='FF0000'>%s", colors[1], points[1], colors[2], points[2], colors[3], points[3], colors[4], points[4], WINS), nil, 0, 22, 800, 30, 0, 0, 0, true)
  433. end
  434. end
  435. function displayScoreSolo()
  436. resetmostrarjugadoresSolo()
  437. ui.addTextArea(300, string.format("<p align='center'><V>Solo a %s puntos",WINS), nil, 80, 45, 180, 18, FF0000, FF0000, 1, true)
  438. for k,players in pairs(tfm.get.room.playerList) do
  439. if puntos[k] then
  440. equipos[k] = k
  441. playersInGame[k] = true
  442. if textareaid >= 32 then
  443. else
  444. ui.addTextArea(textarealugar, string.format("<p align='center'><V>%s - %s",k,puntos[k]), nil, distanciax, distanciay, 140, 18, equipoc[k], FF0000, 1, true)
  445. distanciay = distanciay + 37
  446. textareaid = textareaid + 1
  447. textarealugar = textarealugar + 1
  448. if textareaid == 8 then
  449. distanciax = distanciax + 190
  450. distanciay = 80
  451. textareaid = 0
  452. end
  453. end
  454. end
  455. end
  456. end
  457. function borrarScoreSolo()
  458. for i = 300, 340 do
  459. ui.removeTextArea(i)
  460. end
  461. end
  462. function displayTeams()
  463. ui.addTextArea(38, "", nil, 235, 30, 302, 22, FF0000, FF0000, 1, true)
  464. ui.addTextArea(37, "<p align='center'><V>Admin: "..Admin, nil, 235, 30, 300, 20, FF0000, FF0000, 1, true)
  465. --ui.addTextArea(1, "", nil, 400, 69, 400, 260, FF0000, FF0000, 1, true)
  466. ui.addTextArea(2, "", nil, 0, 71, 800, 290, FF0000, FF0000, 1, true)
  467. --ui.addTextArea(3, "", nil, 331, 70, 400, 260, FF0000, FF0000, 1, true)
  468. ui.addTextArea(4, "", nil, 57, 79, 142, 22, FF0000, FF0000, 1, true)
  469. ui.addTextArea(5, "<p align='center'><V>Team 1", nil, 58, 80, 140, 20, FF0000, FF0000, 1, true)
  470. ui.addTextArea(6, "", nil, 227, 79, 142, 22, FF0000, FF0000, 1, true)
  471. ui.addTextArea(7, "<p align='center'><V>Team 2", nil, 228, 80, 140, 20, FF0000, FF0000, 1, true)
  472. ui.addTextArea(8, "", nil, 417, 79, 142, 22, FF0000, FF0000, 1, true)
  473. ui.addTextArea(9, "<p align='center'><V>Team 3", nil, 418, 80, 140, 20, FF0000, FF0000, 1, true)
  474. ui.addTextArea(10, "", nil, 587, 79, 142, 22, FF0000, FF0000, 1, true)
  475. ui.addTextArea(11, "<p align='center'><V>Team 4", nil, 588, 80, 140, 20, FF0000, FF0000, 1, true)
  476. ui.addTextArea(12, "<p align='center'><font color='#FF0000'>|</font>", nil, 210, 102, 140, 200, 0, 0, 0, true)
  477. ui.addTextArea(39, "<p align='center'><font color='#FF0000'>|</font>", nil, 450, 102, 140, 200, 0, 0, 0, true)
  478. ui.addTextArea(40, "", nil, 59, 120, 140, 200, FF0000, FF0000, 1, true)
  479. ui.addTextArea(31, "<p align='center'><font color='#"..colors[1].."'>"..table.concat(teams[1], "\n"), nil, 60, 121, 138, 198, FF0000, FF0000, 1, true)
  480. ui.addTextArea(32, "", nil, 419, 120, 140, 200, FF0000, FF0000, 1, true)
  481. ui.addTextArea(33, "<p align='center'><font color='#"..colors[3].."'>"..table.concat(teams[3], "\n"), nil, 420, 121, 138, 198, FF0000, FF0000, 1, true)
  482. ui.addTextArea(34, "", nil, 589, 120, 140, 200, FF0000, FF0000, 1, true)
  483. ui.addTextArea(35, "<p align='center'><font color='#"..colors[4].."'>"..table.concat(teams[4], "\n"), nil, 590, 121, 138, 198, FF0000, FF0000, 1, true)
  484. ui.addTextArea(36, "", nil, 229, 120, 140, 200, FF0000, FF0000, 1, true)
  485. ui.addTextArea(13, "<p align='center'><font color='#"..colors[2].."'>"..table.concat(teams[2], "\n"), nil, 230, 121, 138, 198, FF0000, FF0000, 1, true)
  486. ui.addTextArea(14, "<p align='center'><font color='#FF0000'>____ ____</font>", nil, 325, 197, 140, 200, 0, 0, 0, true)
  487. ui.addTextArea(15, "", nil, 374, 202, 40, 20, FF0000, FF0000, 1, true)
  488. ui.addTextArea(16, "<p align='center'><V>VS", nil, 375, 203, 38, 18, FF0000, FF0000, 1, true)
  489. ui.addTextArea(42, "", Admin, 749, 81, 40, 20, FF0000, FF0000, 1, true)
  490. ui.addTextArea(41, "<p align='center'><V><a href='event:salir'>X", Admin, 750, 82, 38, 18, FF0000, FF0000, 1, true)
  491. ui.addTextArea(45, "", Admin, 744, 139, 52, 20, FF0000, FF0000, 1, true)
  492. ui.addTextArea(46, "<p align='center'><V><a href='event:reset'>Reset", Admin, 745, 140, 50, 18, FF0000, FF0000, 1, true)
  493. ui.addTextArea(47, "", Admin, 741, 173, 57, 20, FF0000, FF0000, 1, true)
  494. ui.addTextArea(54, "", Admin, 741, 209, 57, 20, FF0000, FF0000, 1, true)
  495. if modo2 == "Solo" then
  496. ui.addTextArea(51, "<p align='center'><V><a href='event:Solo'><font size='12'>"..modo2, Admin, 742, 210, 55, 18, FF0000, FF0000, 1, true)
  497. end
  498. verificarmodo()
  499. ui.addTextArea(53, "", Admin, 741, 245, 57, 20, FF0000, FF0000, 1, true)
  500. ui.addTextArea(52, "<p align='center'><V><a href='event:kapat'><font size='12'>Close", Admin, 742, 246, 55, 18, FF0000, FF0000, 1, true)
  501. ui.addTextArea(55, "", Admin, 741, 279, 57, 20, FF0000, FF0000, 1, true)
  502. ui.addTextArea(56, "<p align='center'><V><a href='event:Seç'><font size='12'>Random teams", Admin, 742, 280, 55, 18, FF0000, FF0000, 1, true)
  503. ui.addTextArea(16, "<p align='center'><V><a href='event:iniciarJogo'>GO", Admin, 375, 203, 38, 18, FF0000, FF0000, 1, true)
  504. end
  505. function verificarmodo()
  506. ui.addTextArea(50, string.format("<p align='center'><V>Modo %s - %s ",modob,modo2b),nil, 235, 375, 300, 17, FF0000, FF0000, 1, true)
  507. if modo2 == "normal" then
  508. ui.addTextArea(51, "<p align='center'><V><a href='event:normal'><font size='8'>"..modo2, Admin, 742, 210, 55, 18, FF0000, FF0000, 1, true)
  509. end
  510. if modo == "bootcamp" then
  511. ui.addTextArea(48, "<p align='center'><V><a href='event:bootcamp'><font size='9'>"..modo, Admin, 742, 174, 55, 18, FF0000, FF0000, 1, true)
  512. end
  513. if modo == "racing" then
  514. ui.addTextArea(48, "<p align='center'><V><a href='event:racing'><font size='9'>"..modo, Admin, 742, 174, 55, 18, FF0000, FF0000, 1, true)
  515. end
  516. if modo == "mix" then
  517. ui.addTextArea(48, "<p align='center'><V><a href='event:mix'><font size='9'>"..modo, Admin, 742, 174, 55, 18, FF0000, FF0000, 1, true)
  518. end
  519. end
  520. function contarjugadores()
  521. local players=0
  522. function eventNewPlayer(name)--Cuando un jugador entre a la sala...
  523. players=players+1--Sumamos 1 a nuestra tabla
  524. end
  525. function eventPlayerLeft(name)--Cuando un jugador salga de la sala...
  526. players=players-1--Restamos 1 a nuestra tabla
  527. end
  528. for name in pairs(tfm.get.room.playerList) do--Por cada jugador que esté en la sala...
  529. eventNewPlayer(name)--Le ejecutamos la función eventNewPlayer
  530. end
  531. end
  532. function eventTextAreaCallback(id, player, callback)
  533. if callback == 'iniciarJogo' then
  534. gameRunning = true
  535. for i = 1, 20 do
  536. ui.removeTextArea(i)
  537. end
  538. for i = 31, 56 do
  539. ui.removeTextArea(i)
  540. end
  541. borrarScoreSolo()
  542. defaultEffect(9, {9}, 400, 212, 80)
  543. newMap()
  544. end
  545. if callback == 'salir' then
  546. tfm.system.exit()
  547. end
  548.  
  549. if callback == 'Seç' then
  550. nteam = 1
  551. kapat = {}
  552. playersInGame = {}
  553.  
  554. teams = {
  555. [1] = {},
  556. [2] = {},
  557. [3] = {},
  558. [4] = {},
  559. }
  560. contarjugadores()
  561. for k,players in pairs(tfm.get.room.playerList) do
  562. if nteam > 4 then
  563. nteam = 1
  564. end
  565. table.insert(teams[nteam], k)
  566. playersInGame[k] = true
  567. nteam = nteam + 1
  568. displayTeams()
  569. end
  570. end
  571.  
  572. if callback == 'kapat' then
  573. nteam = 1
  574. kapat = {}
  575. playersInGame = {}
  576.  
  577. teams = {
  578. [1] = {},
  579. [2] = {},
  580. [3] = {},
  581. [4] = {},
  582. }
  583. contarjugadores()
  584.  
  585. for k,players in pairs(tfm.get.room.playerList) do
  586. kapat[k] = k
  587. playersInGame[k] = true
  588. end
  589.  
  590. for k,players in pairs(tfm.get.room.playerList) do
  591. if nteam > 4 then
  592. nteam = 1
  593. end
  594. if kapat[k] == k then
  595. jugador = kapat[math.random(#kapat)]
  596. table.insert(teams[players], jugador)
  597. kapat[k] = ""
  598. nteam = nteam + 1
  599. displayTeams()
  600. end
  601. end
  602.  
  603. end
  604.  
  605. if callback == 'reset' then
  606. teams[1] = {}
  607. points[1] = 0
  608. teams[2] = {}
  609. points[2] = 0
  610. teams[3] = {}
  611. points[3] = 0
  612. teams[4] = {}
  613. points[4] = 0
  614. displayTeams()
  615. end
  616. if callback == 'bootcamp' then
  617. tiempo = 150
  618. modob = "bootcamp"
  619. modo = "mix"
  620. verificarmodo()
  621. maps = mapasbootcamp
  622. end
  623. if callback == 'racing' then
  624.  
  625. tiempo = 60
  626. modob = "racing"
  627. modo = "bootcamp"
  628. verificarmodo()
  629. maps = mapasracing
  630. end
  631. if callback == 'mix' then
  632. tiempo = 90
  633. modob = "mix"
  634. modo = "racing"
  635. verificarmodo()
  636. maps = mapasmix
  637. end
  638. if callback == 'Solo' then
  639. modo2b = "Solo"
  640. modo2 = "normal"
  641. displayTeams()
  642. for i = 4, 15 do
  643. ui.removeTextArea(i)
  644. end
  645. for i = 31, 36 do
  646. ui.removeTextArea(i)
  647. end
  648. for i = 39, 40 do
  649. ui.removeTextArea(i)
  650. end
  651. contarjugadores()
  652. for k,players in pairs(tfm.get.room.playerList) do
  653. equipos[k] = k
  654. puntos[k] = 0
  655. equipoc[k] = "0x324650"
  656. playersInGame[k] = true
  657. if textareaid >= 32 then
  658. else
  659. ui.addTextArea(textarealugar, "<p align='center'><V>"..k, nil, distanciax, distanciay, 140, 18, FF0000, FF0000, 1, true)
  660. distanciay = distanciay + 37
  661. textareaid = textareaid + 1
  662. textarealugar = textarealugar + 1
  663. if textareaid == 8 then
  664. distanciax = distanciax + 190
  665. distanciay = 80
  666. textareaid = 0
  667. end
  668. ui.addTextArea(16, "<p align='center'><V><a href='event:iniciarJogo'>GO", Admin, 375, 203, 38, 18, FF0000, FF0000, 1, true)
  669. end
  670. end
  671. end
  672. if callback == 'normal' then
  673. modo2b = "normal"
  674. modo2 = "Solo"
  675. resetmostrarjugadoressolo()
  676. displayTeams()
  677. end
  678. if callback == 'cerrarpuntaje' then
  679. borrarScoreSolo()
  680. end
  681. end
  682. function string.split(s, pattern, n)
  683. local st = {}
  684. for sb in string.gmatch(s, "[^"..pattern.."]+") do
  685. if not n or n > -1 then
  686. table.insert(st,sb)
  687. else
  688. st[#st] = st[#st]..pattern..sb
  689. end
  690. n = n and n-1 or false
  691. end
  692. return st
  693. end
  694. function table.contains(tableT, element)
  695. for _, value in pairs(tableT) do
  696. if value == element then
  697. return true
  698. end
  699. end
  700. return false
  701. end
  702. defaultEffect=function(id,p,x,y,rand)
  703. local minDist = 1
  704. local outerBorder = 20
  705. local maxDist = 30
  706. local totalParticles = rand and 40 or (id == -1 and 35 or 75)
  707. for i = 1, totalParticles do
  708. if rand then
  709. id = p[math.random(#p)]
  710. end
  711. local dist = math.min(math.random(minDist, maxDist), outerBorder)
  712. local angle = math.random(0, 360)
  713. local r = math.rad(angle)
  714. local dx = math.cos(r)
  715. local dy = math.sin(r)
  716. local vx = dist * dx / 10
  717. local vy = dist * dy / 10
  718. local ax = -vx / dist / 15
  719. local ay = (-vy / dist / 15) + 0.05
  720. if id == -1 then
  721. tfm.exec.displayParticle(9, x + dx, y + dy, vx, vy, ax, ay, nil)
  722. tfm.exec.displayParticle(1, x + dx, y + dy, vx, vy, ax, ay, nil)
  723. else
  724. tfm.exec.displayParticle(id, x + dx, y + dy, vx, vy, ax, ay, nil)
  725. end
  726. end
  727. end
  728. displayTeams()
  729. function eventPlayerDied()
  730. local alive = 0
  731. for k,v in pairs(tfm.get.room.playerList) do
  732. if not v.isDead then
  733. alive = alive+1
  734. end
  735. end
  736. if alive == 0 then
  737. newMap()
  738. end
  739. end
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top