Decontrol

Untitled

Jul 26th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --[[
  2. ____ _____
  3. |___ \ |_ _| ___ __ _ _ __ ___ ___
  4. __) | | | / _ \ / _` | | '_ ` _ \ / __|
  5. / __/ | | | __/ | (_| | | | | | | | \__ \
  6. |_____| |_| \___| \__,_| |_| |_| |_| |___/
  7. __ __
  8. \ \ / / ___
  9. \ \ / / / __|
  10. \ V / \__ \
  11. \_/ |___/
  12. _____ _ _ _ _
  13. |_ _| | || | | | | |
  14. | | _ __ ___ | || | ___ __ _ _ __ __| | ___ | | ___
  15. | | | '__| / _ \ | || | / _ \ / _` || '_ \ / _` | / _ \ | | / _ \
  16. | | | | | (_) || || || __/| (_| || | | || (_| || (_) || || (_) |
  17. \_/ |_| \___/ |_||_| \___| \__,_||_| |_| \__,_| \___/ |_| \___/
  18. V5.0
  19. -----------------------------------------------------------------------------------]]
  20. local ADMINISTRADOR = "Stuckerrs" -- change 'Stuckerrs' with your nick
  21. -----------------------------------------------------------------------------------]]
  22. --[[
  23. Commands:
  24. !skip - for change the map
  25. !points - for change the points of a team !points team3 0
  26. !np @codigo - for place a new map in the queue
  27. !team - for assign a team. eg !team1 trolleandolo roseyeux nikoolar4
  28. !d NUMERO - assign the score for win eg !d 10
  29. !add team nick - add a player to a team, ej: !add team4 Trolleandolo
  30. !reset - reset the game
  31. !quit NOMBRE - ban a player for the game
  32. !autojoin yes/no - if a new player join in the room this command decides if enter or no in azar team
  33. --------------------------------------------------------------------
  34. ]]
  35. -----------------------------------------------------------------------------------
  36. local WINS = 15 -- score for win
  37. ------------------------------------------------------------------------------------
  38.  
  39. --[[
  40. ____ _ _ _ _ _ ____ _____ ____
  41. / ___| | | | | / \ | \ | | / ___| | ____| / ___|
  42. | | | |_| | / _ \ | \| | | | _ | _| \___ \
  43. | |___ | _ | / ___ \ | |\ | | |_| | | |___ ___) |
  44. \____| |_| |_| /_/ \_\ |_| \_| \____| |_____| |____/
  45. ___________________________________________________________
  46.  
  47. - Added [First Counter in the score bar]
  48. - Added [Button AutoJoin]
  49. - Added [Command !autojoin yes/no]
  50. - Optimized
  51. - Bugs Correcteds
  52. ]]
  53.  
  54. system.disableChatCommandDisplay("np", true)
  55. system.disableChatCommandDisplay("pause", true)
  56. system.disableChatCommandDisplay("skip", true)
  57. tfm.exec.disableAutoScore()
  58. tfm.exec.disablePhysicalConsumables()
  59. tfm.exec.disableAutoShaman()
  60. tfm.exec.disableAutoNewGame()
  61. tfm.exec.disableAutoTimeLeft()
  62. local teams = {
  63. [1] = {},
  64. [2] = {},
  65. }
  66. local points = {
  67. [1] = 0,
  68. [2] = 0,
  69. }
  70. local automatico = true
  71. local modob = "racing"
  72. local modo = "bootcamp"
  73. local tiempo = 60
  74. tonumber(tiempo)
  75. local isfirst = false
  76. local gameRunning = false
  77. local winTime = false
  78. local playersInGame = {}
  79. local distanciax = 30
  80. local distanciay = 80
  81. local textarealugar = 300
  82. local textareaid = 0
  83. local jugadores = 0
  84. local equipo = {}
  85. local jugador = ""
  86. local teamc = 1
  87. local mapasmix = {203664,375455,394132,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,150664,186066,152260,155628,166805,178297,313138,167903,223947,191177,185873,113156,156720,163159,197229,204647,163531,232675,216173,166361,169059,271411,277824,306365,172520,157098,225744,608368,215933,266398,343875,327354,331344,333002,223174,332130,254785,295487,184817,159691,235717,169228,191203,503679,506032,2747525,192255,208056,171480,182681,219956,270143,2887929,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}
  88. local mapasbootcamp= {227093,842019,157203,3200001,3668866,2858882,2692883,222910,2718406,3242049,2933390,403940,3000006,4488666,183139,2176211,4627777,4644584,315800,6041917,206396,319443,2466489,2208924,834297,2024960,560583,3199998,2738370,7062569,177652,191177,2040569,3043779,361500,4333895,3999979,184868,1580356,506613,5522262,397467,506940,2574960,157960,184817,729863,331988,166805,284134,1802528,6533602,220352,186855,2967631,455271,497965,478236,1523082,3380788,5092739,392861,4093488,178297,1601992,261814,373105,263819,208940,564198,3659983,3338283,165186,4311255,257324,419369,596239,1384078,591528,182370,1531604,3560999,503679,172976,2130169,3089270,505619,168754,163172,166361,156720,155628,149422,155606,150664,149451,192519,912356,152260,299942,815336,292808,3907267,179488,511136,296020,1678634,3969628,655207,281948,166271,173816,394132,159932,171148,1636814,4398794,185289,2427910,277631,2432090,375455,4595576,1225867,3848147,3860578,4660408,1526894,4313858,2925531,1705006,2996951,5598943,4594304,692650,3182006,1962695,6642996,6675248,6600067,5000126,3888888,2252731,4445580,3333223,2989803,2636519,2423300,1807217,1788490,1647131,1615949,1435902,1427980,1390405,1255359,7001001,7000066,4000010,5914063,2605186,658960,6621953,2998268,621850,1852910,3734984,3838020,6609034,4337732,6304911,3866660,3734998,3734996,3734989,3484437,3428069,2933011,4889180,2901717,2854813,2682583,2636207,2239788,2484316,1952415,1296299,720672,554154,305680,281985,249760,167333,3734999,692740,543010,541693,439092}
  89. local mapasracing = {7025177,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,7062105,6545742,6985344,960547}
  90. local maps = mapasracing
  91. local equipoc= {}
  92. local colors = {
  93. [1] = "d733a6",
  94. [2] = "48D4D4",
  95. }
  96. local queue = {}
  97. local nteam = 1
  98. function newMap()
  99. local mapcode = maps[math.random(#maps)]
  100. if #queue > 0 then
  101. mapcode = queue[1]
  102. table.remove(queue, 1)
  103. end
  104. tfm.exec.newGame(mapcode)
  105. for player, data in pairs(tfm.get.room.playerList) do
  106. if not playersInGame[player] then
  107. tfm.exec.killPlayer(player)
  108. end
  109. end
  110. tfm.exec.setGameTime(tiempo)
  111. end
  112. function eventPlayerWon(player)
  113. if not isfirst then
  114. tfm.exec.setPlayerScore(player, 1 ,true)
  115. isfirst = true
  116. tfm.exec.setGameTime(3)
  117. if table.contains(teams[1], player) then
  118. tfm.exec.setGameTime(3)
  119.  
  120. points[1] = points[1]+1
  121. elseif table.contains(teams[2], player) then
  122. tfm.exec.setGameTime(3)
  123.  
  124. points[2] = points[2]+1
  125. else
  126. isfirst = false
  127. end
  128. winner = false
  129. if points[1] >= WINS then
  130. winner = 1
  131. elseif points[2] >= WINS then
  132. winner = 2
  133. end
  134. if winner then
  135. gameRunning = false
  136. winTime = os.time()
  137. local names = {
  138. "Pink",
  139. "Blue",
  140. }
  141. ui.addTextArea(7, string.format("<p align='center'><font size='37' color='#000000'>Team %s win\n.%s made the last point.", names[winner], player), nil, 3, 168, 800, 500, 0, 0, 0, true)
  142. ui.addTextArea(8, string.format("<p align='center'><font size='37'><font color='#cecece'>Team <font color='#%s'>%s</font> win\n.%s made the last point.", colors[winner], names[winner], player), nil, 1, 170, 800, 500, 0, 0, 0, true)
  143. ui.addTextArea(9, "<p align='center'><font color='#225066' size='18' face='Tw Cen MT Condensed'><a href='event:iniciarJogo'>REPLAY", ADMINISTRADOR, 350, 270, 100, 20, 0xFFFFFF, 0xFFFFFF, 1, true)
  144. end
  145. displayScore()
  146. end
  147. end
  148. function eventLoop(elapsed, remain)
  149. if gameRunning then
  150. remain = remain/1000
  151. if remain < 0 then
  152. remain = 100
  153. newMap()
  154. end
  155. else
  156. if winTime then
  157. if winTime > os.time()-30000 then
  158. else
  159. winTime = false
  160. ui.removeTextArea(7)
  161. ui.removeTextArea(8)
  162. ui.removeTextArea(9)
  163. displayTeams()
  164. teams = {
  165. [1] = {},
  166. [2] = {},
  167. }
  168. points = {
  169. [1] = 0,
  170. [2] = 0,
  171. }
  172. playersInGame = {}
  173. end
  174. end
  175. end
  176. end
  177. function string.title(s)
  178. return string.gsub(s, "%a", function(c)
  179. return string.upper(c)
  180. end, 1)
  181. end
  182. function eventChatCommand(player, command)
  183. if player:lower() == ADMINISTRADOR:lower() or player:lower() == "trolleandolo" then
  184. args = string.split(command, " ")
  185. if string.upper(args[1]) == "TEAM1" then
  186. table.remove(args, 1)
  187. teams[1] = {}
  188. points[1] = 0
  189. for index, player in pairs(args) do
  190. player = string.title(player)
  191. table.insert(teams[1], player)
  192. playersInGame[player] = true
  193. end
  194. displayTeams()
  195. elseif string.upper(args[1]) == "TEAM2" then
  196. table.remove(args, 1)
  197. teams[2] = {}
  198. points[2] = 0
  199. for index, player in pairs(args) do
  200. player = string.title(player)
  201. table.insert(teams[2], player)
  202. playersInGame[player] = true
  203. end
  204. displayTeams()
  205. elseif string.upper(args[1]) == "SKIP" then
  206. newMap()
  207. elseif string.upper(args[1]) == "NP" then
  208. if args[2] then
  209. table.insert(queue, args[2])
  210. end
  211. elseif string.upper(args[1]) == "D" then
  212. if args[2] then
  213. WINS = tonumber(args[2])
  214. displayScore()
  215. end
  216. elseif string.upper(args[1]) == "ADD" then
  217. if args[2] and args[3] then
  218. string.upper(args[2])
  219. if string.upper(args[2]) == "TEAM1" then
  220. table.remove(args, 1)
  221. table.remove(args, 1)
  222. for index, player in pairs(args) do
  223. player = string.title(player)
  224. table.insert(teams[1], player)
  225. playersInGame[player] = true
  226. end
  227. elseif string.upper(args[2]) == "TEAM2" then
  228. table.remove(args, 1)
  229. table.remove(args, 1)
  230. for index, player in pairs(args) do
  231. player = string.title(player)
  232. table.insert(teams[2], player)
  233. playersInGame[player] = true
  234. end
  235. end
  236. end
  237. elseif string.upper(args[1]) == "QUIT" then
  238. if args[2] then
  239. for index, player in pairs(args) do
  240. player = string.title(player)
  241. playersInGame[player] = false
  242. end
  243. end
  244. elseif string.upper(args[1]) == "AUTOJOIN" then
  245. if args[2] then
  246. if string.upper(args[2]) == "YES" then
  247. automatico = true
  248. elseif string.upper(args[2]) == "NO" then
  249. automatico = false
  250. end
  251. end
  252. elseif string.upper(args[1]) == "RESET" then
  253. teams[1] = {}
  254. points[1] = 0
  255. teams[2] = {}
  256. points[2] = 0
  257. modob = "racing"
  258. modo = "bootcamp"
  259. displayTeams()
  260. elseif string.upper(args[1]) == "POINTS" then
  261. if args[2] and args[3] then
  262. local team = tonumber(args[2]:match("team(%d+)") or 0)
  263. if team > 0 and team < 5 then
  264. local newScore = tonumber(args[3]) or points[team]
  265. points[team] = newScore
  266. displayScore()
  267. end
  268. end
  269. end
  270. end
  271. end
  272. function eventNewGame()
  273. if gameRunning then
  274. isfirst = false
  275. for i, p in pairs(teams[1]) do
  276. tfm.exec.setNameColor(p, "0x"..colors[1])
  277. end
  278. for i, p in pairs(teams[2]) do
  279. tfm.exec.setNameColor(p, "0x"..colors[2])
  280. end
  281. displayScore()
  282. end
  283. end
  284. function displayScore()
  285. ui.addTextArea(12, string.format("<p align='center'><font size='18'><font color='#%s'>%s<N> x <font color='#%s'>%s <N> / <font color='#111111'>%s", colors[1], points[1], colors[2], points[2], WINS), nil, 0, 22, 800, 30, 0, 0, 0.3, true)
  286. end
  287. function displayTeams()
  288. ui.addTextArea(13, "", nil, 235, 30, 302, 22, 0x324650, 0x5A7A8B, 1, true)
  289. ui.addTextArea(14, "<p align='center'><V>Administrator: "..ADMINISTRADOR, nil, 235, 30, 300, 20, 0x324650, 0x324650, 1, true)
  290. ui.addTextArea(15, "", nil, 225, 63, 320, 275, 0x0E1417, 0x0E1417, 1, true)
  291. ui.addTextArea(15, "", ADMINISTRADOR, 225, 71, 320, 290, 0x0E1417, 0x0E1417, 1, true)
  292. ui.addTextArea(16, "", nil, 231, 79, 142, 22, 0x324650, 0x5A7A8B, 1, true)
  293. ui.addTextArea(17, "<p align='center'><V>Team 1", nil, 232, 80, 140, 20, 0x324650, 0x324650, 1, true)
  294. ui.addTextArea(18, "", nil, 399, 79, 142, 22, 0x324650, 0x5A7A8B, 1, true)
  295. ui.addTextArea(19, "<p align='center'><V>Team 2", nil, 400, 80, 140, 20, 0x324650, 0x324650, 1, true)
  296. ui.addTextArea(20, "", nil, 231, 120, 140, 200, 0x5A7A8B, 0x5A7A8B, 1, true)
  297. ui.addTextArea(21, "<p align='center'><font color='#"..colors[1].."'>"..table.concat(teams[1], "\n"), nil, 232, 121, 138, 198, 0x324650, 0x324650, 1, true)
  298. ui.addTextArea(22, "", nil, 399, 120, 140, 200, 0x5A7A8B, 0x5A7A8B, 1, true)
  299. ui.addTextArea(23, "<p align='center'><font color='#"..colors[2].."'>"..table.concat(teams[2], "\n"), nil, 400, 121, 138, 198, 0x324650, 0x324650, 1, true)
  300. ui.addTextArea(24, "<p align='center'><font color='#5A7A8B'>____ ____</font>", nil, 320, 197, 140, 200, 0, 0, 0, true)
  301. ui.addTextArea(25, "", nil, 367, 202, 40, 20, 0x5A7A8B, 0x5A7A8B, 1, true)
  302. ui.addTextArea(26, "<p align='center'><V>VS", nil, 368, 203, 38, 18, 0x324650, 0x324650, 1, true)
  303. ui.addTextArea(27, "", ADMINISTRADOR, 229, 334, 40, 20, 0x5A7A8B, 0x5A7A8B, 1, true)
  304. ui.addTextArea(28, "<p align='center'><V><a href='event:salir'>X", ADMINISTRADOR, 230, 335, 38, 18, 0x324650, 0x324650, 1, true)
  305. ui.addTextArea(29, "", ADMINISTRADOR, 489, 334, 52, 20, 0x5A7A8B, 0x5A7A8B, 1, true)
  306. ui.addTextArea(30, "<p align='center'><V><a href='event:reset'>Auto Fill", ADMINISTRADOR, 490, 335, 50, 18, 0x324650, 0x324650, 1, true)
  307. ui.addTextArea(31, "", ADMINISTRADOR, 354, 334, 57, 20, 0x5A7A8B, 0x5A7A8B, 1, true)
  308. ui.addTextArea(32, string.format("<p align='center'><V>Modo %s ",modob),nil, 235, 375, 300, 17, 0x324650, 0x324650, 1, true)
  309. ui.addTextArea(33, "<p align='center'><V><a href='event:iniciarJogo'>GO", ADMINISTRADOR, 368, 203, 38, 18, 0x324650, 0x324650, 1, true)
  310. verificarmodo2()
  311. automatic()
  312. end
  313. function contarjugadores()
  314. local players=0
  315. function eventPlayerLeft(name)--Cuando un jugador salga de la sala...
  316. players=players-1--Restamos 1 a nuestra tabla
  317. end
  318. for name in pairs(tfm.get.room.playerList) do--Por cada jugador que esté en la sala...
  319. players=players+1--Le ejecutamos la función eventNewPlayer
  320. tfm.exec.setPlayerScore(name, 0 ,false)
  321. end
  322. end
  323.  
  324. function eventNewPlayer(name)--Cuando un jugador entre a la sala...
  325. local cant1 = 0
  326. local cant2 = 0
  327. if gameRunning and automatico and not playersInGame[name] then
  328. for k,v in pairs(teams[1]) do
  329. cant1 = cant1 + 1
  330. end
  331. for k,v in pairs(teams[2]) do
  332. cant2 = cant2 + 1
  333. end
  334. if cant1 == cant2 then
  335. table.insert(teams[1], name)
  336. playersInGame[name] = true
  337. elseif cant1 > cant2 then
  338. table.insert(teams[2], name)
  339. playersInGame[name] = true
  340. elseif cant1 < cant2 then
  341. table.insert(teams[1], name)
  342. playersInGame[name] = true
  343. end
  344. end
  345. end
  346. function eventTextAreaCallback(id, player, callback)
  347. if callback == 'iniciarJogo' then
  348. gameRunning = true
  349. for i = 13, 38 do
  350. ui.removeTextArea(i)
  351. end
  352. newMap()
  353. points[1] = 0
  354. points[2] = 0
  355. displayScore()
  356. elseif callback == 'salir' then
  357. print("Trolleandolo Lua - 2VS2 AZAR")
  358. system.exit()
  359. elseif callback == 'reset' then
  360. teams[1] = {}
  361. points[1] = 0
  362. teams[2] = {}
  363. points[2] = 0
  364. equipos = {}
  365. puntos = {}
  366. modob = "racing"
  367. modo = "bootcamp"
  368. jugadores = 0
  369. equipo = {}
  370. jugador = ""
  371. teamc = 1
  372. llenarteams()
  373. displayTeams()
  374. elseif callback == 'bootcamp' then
  375. tiempo = 150
  376. modob = "bootcamp"
  377. modo = "mix"
  378. verificarmodo2()
  379. maps = mapasbootcamp
  380. elseif callback == 'racing' then
  381.  
  382. tiempo = 60
  383. modob = "racing"
  384. modo = "bootcamp"
  385. verificarmodo2()
  386. maps = mapasracing
  387. elseif callback == 'mix' then
  388. tiempo = 90
  389. modob = "mix"
  390. modo = "racing"
  391. verificarmodo2()
  392. maps = mapasmix
  393. elseif callback == 'auto' then
  394. if automatico then
  395. automatico = false
  396. automatic()
  397. elseif not automatico then
  398. automatico = true
  399. automatic()
  400. end
  401. end
  402. end
  403.  
  404. function verificarmodo2()
  405. ui.addTextArea(32, string.format("<p align='center'><V>%s mode",modob),nil, 235, 375, 300, 17, 0x324650, 0x324650, 1, true)
  406. if modo == "bootcamp" then
  407. ui.addTextArea(37, "<p align='center'><V><a href='event:bootcamp'><font size='9'>"..modo, ADMINISTRADOR, 290, 335, 55, 18, 0x324650, 0x324650, 1, true)
  408. elseif modo == "racing" then
  409. ui.addTextArea(37, "<p align='center'><V><a href='event:racing'><font size='9'>"..modo, ADMINISTRADOR, 290, 335, 55, 18, 0x324650, 0x324650, 1, true)
  410. elseif modo == "mix" then
  411. ui.addTextArea(37, "<p align='center'><V><a href='event:mix'><font size='9'>"..modo, ADMINISTRADOR, 290, 335, 55, 18, 0x324650, 0x324650, 1, true)
  412. end
  413. end
  414. function automatic()
  415. if automatico then
  416. ui.addTextArea(38, "<p align='center'><V><a href='event:auto'><font size='10'>AutoJoin Yes", ADMINISTRADOR, 380, 335, 95, 18, 0x324650, 0x324650, 1, true)
  417. elseif not automatico then
  418. ui.addTextArea(38, "<p align='center'><V><a href='event:auto'><font size='10'>AutoJoin No", ADMINISTRADOR, 380, 335, 95, 18, 0x324650, 0x324650, 1, true)
  419. end
  420. end
  421. function string.split(s, pattern, n)
  422. local st = {}
  423. for sb in string.gmatch(s, "[^"..pattern.."]+") do
  424. if not n or n > -1 then
  425. table.insert(st,sb)
  426. else
  427. st[#st] = st[#st]..pattern..sb
  428. end
  429. n = n and n-1 or false
  430. end
  431. return st
  432. end
  433. function table.contains(tableT, element)
  434. for _, value in pairs(tableT) do
  435. if value == element then
  436. return true
  437. end
  438. end
  439. return false
  440. end
  441. function eventPlayerDied()
  442. local alive = 0
  443. for k,v in pairs(tfm.get.room.playerList) do
  444. if not v.isDead then
  445. alive = alive+1
  446. end
  447. end
  448. if alive == 0 then
  449. newMap()
  450. end
  451. end
  452. function llenarteams()
  453. for k,v in pairs(tfm.get.room.playerList) do
  454. if teamc == 1 then
  455. table.insert(teams[1], k)
  456. playersInGame[k] = true
  457. teamc = 2
  458. elseif teamc == 2 then
  459. table.insert(teams[2], k)
  460. playersInGame[k] = true
  461. teamc = 1
  462. end
  463. end
  464. end
  465. print("Trolleandolo Lua - 2 Teams")
  466. contarjugadores()
  467. displayTeams()
Add Comment
Please, Sign In to add comment