Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 37.14 KB | None | 0 0
  1. --[[
  2. __ __ __ ___ __ _ __ __ ____
  3. / / / / / / / _ | / / | | / / _/_/ / __/
  4. / /__/ /_/ / / __ | / / | |/ / _/_/ _\ \
  5. /____/\____/ /_/ |_| / / |___/ /_/ /___/
  6. /_/
  7. _____ _ _ _ _
  8. |_ _| | || | | | | |
  9. | | _ __ ___ | || | ___ __ _ _ __ __| | ___ | | ___
  10. | | | '__| / _ \ | || | / _ \ / _` || '_ \ / _` | / _ \ | | / _ \
  11. | | | | | (_) || || || __/| (_| || | | || (_| || (_) || || (_) |
  12. \_/ |_| \___/ |_||_| \___| \__,_||_| |_| \__,_| \___/ |_| \___/
  13. V4.5
  14. -------------------------------------------------------------------
  15. No olvides cambiar tu nombre desde "local ADMINISTRADOR"
  16. -------------------------------------------------------------------
  17. Comandos:
  18. !geç - Para cambiar de mapa
  19. !puntos - Para cambiar el puntaje, ej: !puntos team1 5
  20. !np @codigo - Para poner cualquier mapa
  21. !pausa - Para pausar el juego
  22. !team - Para asignar jugadores a un equipo, ej: !team1 Gurbetana
  23. !d NUMERO - Asigna el puntaje para ganar, ej: !d 20
  24. !ekle team nick - Añade un jugador a el equipo especificado, ej: !añadir team4 Gurbetana
  25. !reset - Resetea el juego
  26. !quitar TEAM NOMBRE - saca a un jugador del equipo
  27. !puntaje - para ver el puntaje [SOLO EN MODO SOLO]
  28. --------------------------------------------------------------------
  29. ]]
  30. -----------------------------------------------------------------------------------
  31. -----------------------------------------------------------------------------------
  32. local Admin = "Flash#0758" -- Cambia tu nombre para ser ADMINISTRADOR
  33. -----------------------------------------------------------------------------------
  34. -----------------------------------------------------------------------------------
  35. local WINS = 20 -- Puntaje para ganar.
  36. ------------------------------------------------------------------------------------
  37. system.disableChatCommandDisplay("np", true)
  38. system.disableChatCommandDisplay("pause", true)
  39. system.disableChatCommandDisplay("saltar", true)
  40. system.disableChatCommandDisplay("puntaje", true)
  41. tfm.exec.disablePhysicalConsumables()
  42. tfm.exec.disableAutoShaman()
  43. tfm.exec.disableAutoNewGame()
  44. tfm.exec.disableAutoTimeLeft()
  45. local teams = {
  46. [1] = {},
  47. [2] = {},
  48. [3] = {},
  49. [4] = {},
  50. }
  51. local points = {
  52. [1] = 0,
  53. [2] = 0,
  54. [3] = 0,
  55. [4] = 0,
  56. }
  57. local equipos = {}
  58. local puntos = {}
  59. local modob = "racing"
  60. local modo = "bootcamp"
  61. local modo2 = "Solo"
  62. local modo2b = "normal"
  63. local tiempo = 60
  64. tonumber(tiempo)
  65. local isfirst = true
  66. local gameRunning = false
  67. local winTime = false
  68. local playersInGame = {}
  69. local distanciax = 30
  70. local distanciay = 80
  71. local textarealugar = 300
  72. local textareaid = 0
  73. 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}
  74. 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}
  75. local mapasracing = {7102662,7046282,7047612,7102662,7053504,2283,2806,3154,72339,166705,237281,349389,103182,107544,112790,114122,7149567,120152,122911,124359,130763,136966,138036,138678,7132532,144468,144677,7102662,277731,147436,148424,150692,152299,155168,156685,156847,6583596,7149567,160762,161730,163682,164802,165112,165747,165843,5848412,167941,168776,380417,169892,171152,175205,176263,177236,177813,178545,178657,180191,7149567,180274,180469,180509,180619,181312,184110,563303,185760,185774,186604,190026,191201,7149567,191753,7132532,7149567,193009,193588,7149567,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,7132532,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,7149567,241211,241295,242708,243279,244006,244699,244888,245223,246790,246973,247815,247818,248098,250610,251459,252759,252806,7149567,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,7149555,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,7149555,292348,292614,293065,294522,294943,299002,299503,29971,300055,301315,302936,304356,305677,306213,308280,308435,308694,308711,308992,309029,309057,309169,7149567,312713,313245,314159,314205,315801,316289,317696,317754,317779,318378,318813,319524,319841,321339,321712,321814,321906,322771,323115,323366,323600,7149567,326585,327254,327266,330441,332210,332290,332467,333277,7149567,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,7149567,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,7149555,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,7149567,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,7149555,428517,429262,429822,429897,430145,430219,430736,431142,431373,431887,433937,434887,436041,436107,436447,437860,438154,440676,441047,441376,441598,443309,444490,444830,7149567,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}
  76. local maps = mapasracing
  77. local equipoc= {}
  78. local colors = {
  79. [1] = "FFFFFF",
  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 Ocs %s BY\nGURBETANA", 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 Ocs %s BY\nGURBETANA", 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 Ocs %s BY\nGURBETANA", 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 Ocs %s BY\nGURBETANA", 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 Ocs <font color='#%s'>%s</font> BY\nGURBETANA", 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] == "geç" 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] == "ekle" 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] == "ekle" 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] == "quitar" 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] == "puntos" 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] == "pausa" 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. end
  429. function displayScore()
  430. if modo2b == "normal" then
  431. 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)
  432. end
  433. end
  434. function displayScoreSolo()
  435. resetmostrarjugadoresSolo()
  436. ui.addTextArea(300, string.format("<p align='center'><V>Solo a %s puntos",WINS), nil, 80, 45, 180, 18, FF0000, FF0000, 1, true)
  437. for k,players in pairs(tfm.get.room.playerList) do
  438. if puntos[k] then
  439. equipos[k] = k
  440. playersInGame[k] = true
  441. if textareaid >= 32 then
  442. else
  443. ui.addTextArea(textarealugar, string.format("<p align='center'><V>%s - %s",k,puntos[k]), nil, distanciax, distanciay, 140, 18, equipoc[k], FF0000, 1, true)
  444. distanciay = distanciay + 37
  445. textareaid = textareaid + 1
  446. textarealugar = textarealugar + 1
  447. if textareaid == 8 then
  448. distanciax = distanciax + 190
  449. distanciay = 80
  450. textareaid = 0
  451. end
  452. end
  453. end
  454. end
  455. end
  456. function borrarScoreSolo()
  457. for i = 300, 340 do
  458. ui.removeTextArea(i)
  459. end
  460. end
  461. function displayTeams()
  462. ui.addTextArea(38, "", nil, 235, 30, 302, 22, FF0000, FF0000, 1, true)
  463. ui.addTextArea(37, "<p align='center'><V>Admin: "..Admin, nil, 235, 30, 300, 20, FF0000, FF0000, 1, true)
  464. --ui.addTextArea(1, "", nil, 400, 69, 400, 260, FF0000, FF0000, 1, true)
  465. ui.addTextArea(2, "", nil, 0, 71, 800, 290, FF0000, FF0000, 1, true)
  466. --ui.addTextArea(3, "", nil, 331, 70, 400, 260, FF0000, FF0000, 1, true)
  467. ui.addTextArea(4, "", nil, 57, 79, 142, 22, FF0000, FF0000, 1, true)
  468. ui.addTextArea(5, "<p align='center'><V>Team 1", nil, 58, 80, 140, 20, FF0000, FF0000, 1, true)
  469. ui.addTextArea(6, "", nil, 227, 79, 142, 22, FF0000, FF0000, 1, true)
  470. ui.addTextArea(7, "<p align='center'><V>Team 2", nil, 228, 80, 140, 20, FF0000, FF0000, 1, true)
  471. ui.addTextArea(8, "", nil, 417, 79, 142, 22, FF0000, FF0000, 1, true)
  472. ui.addTextArea(9, "<p align='center'><V>Team 3", nil, 418, 80, 140, 20, FF0000, FF0000, 1, true)
  473. ui.addTextArea(10, "", nil, 587, 79, 142, 22, FF0000, FF0000, 1, true)
  474. ui.addTextArea(11, "<p align='center'><V>Team 4", nil, 588, 80, 140, 20, FF0000, FF0000, 1, true)
  475. ui.addTextArea(12, "<p align='center'><font color='#FF0000'>|</font>", nil, 210, 102, 140, 200, 0, 0, 0, true)
  476. ui.addTextArea(39, "<p align='center'><font color='#FF0000'>|</font>", nil, 450, 102, 140, 200, 0, 0, 0, true)
  477. ui.addTextArea(40, "", nil, 59, 120, 140, 200, FF0000, FF0000, 1, true)
  478. ui.addTextArea(31, "<p align='center'><font color='#"..colors[1].."'>"..table.concat(teams[1], "\n"), nil, 60, 121, 138, 198, FF0000, FF0000, 1, true)
  479. ui.addTextArea(32, "", nil, 419, 120, 140, 200, FF0000, FF0000, 1, true)
  480. ui.addTextArea(33, "<p align='center'><font color='#"..colors[3].."'>"..table.concat(teams[3], "\n"), nil, 420, 121, 138, 198, FF0000, FF0000, 1, true)
  481. ui.addTextArea(34, "", nil, 589, 120, 140, 200, FF0000, FF0000, 1, true)
  482. ui.addTextArea(35, "<p align='center'><font color='#"..colors[4].."'>"..table.concat(teams[4], "\n"), nil, 590, 121, 138, 198, FF0000, FF0000, 1, true)
  483. ui.addTextArea(36, "", nil, 229, 120, 140, 200, FF0000, FF0000, 1, true)
  484. ui.addTextArea(13, "<p align='center'><font color='#"..colors[2].."'>"..table.concat(teams[2], "\n"), nil, 230, 121, 138, 198, FF0000, FF0000, 1, true)
  485. ui.addTextArea(14, "<p align='center'><font color='#FF0000'>____ ____</font>", nil, 325, 197, 140, 200, 0, 0, 0, true)
  486. ui.addTextArea(15, "", nil, 374, 202, 40, 20, FF0000, FF0000, 1, true)
  487. ui.addTextArea(16, "<p align='center'><V>VS", nil, 375, 203, 38, 18, FF0000, FF0000, 1, true)
  488. ui.addTextArea(42, "", Admin, 749, 81, 40, 20, FF0000, FF0000, 1, true)
  489. ui.addTextArea(41, "<p align='center'><V><a href='event:salir'>X", Admin, 750, 82, 38, 18, FF0000, FF0000, 1, true)
  490. ui.addTextArea(45, "", Admin, 744, 139, 52, 20, FF0000, FF0000, 1, true)
  491. ui.addTextArea(46, "<p align='center'><V><a href='event:reset'>Reset", Admin, 745, 140, 50, 18, FF0000, FF0000, 1, true)
  492. ui.addTextArea(47, "", Admin, 741, 173, 57, 20, FF0000, FF0000, 1, true)
  493. ui.addTextArea(54, "", Admin, 741, 209, 57, 20, FF0000, FF0000, 1, true)
  494. if modo2 == "Solo" then
  495. ui.addTextArea(51, "<p align='center'><V><a href='event:Solo'><font size='12'>"..modo2, Admin, 742, 210, 55, 18, FF0000, FF0000, 1, true)
  496. end
  497. verificarmodo()
  498. ui.addTextArea(53, "", Admin, 741, 245, 57, 20, FF0000, FF0000, 1, true)
  499. ui.addTextArea(52, "<p align='center'><V><a href='event:kapat'><font size='12'>kapat", Admin, 742, 246, 55, 18, FF0000, FF0000, 1, true)
  500. ui.addTextArea(55, "", Admin, 741, 279, 57, 20, FF0000, FF0000, 1, true)
  501. ui.addTextArea(56, "<p align='center'><V><a href='event:Seç'><font size='12'>Seç", Admin, 742, 280, 55, 18, FF0000, FF0000, 1, true)
  502. ui.addTextArea(16, "<p align='center'><V><a href='event:iniciarJogo'>GO", Admin, 375, 203, 38, 18, FF0000, FF0000, 1, true)
  503. end
  504. function verificarmodo()
  505. ui.addTextArea(50, string.format("<p align='center'><V>Modo %s - %s ",modob,modo2b),nil, 235, 375, 300, 17, FF0000, FF0000, 1, true)
  506. if modo2 == "normal" then
  507. ui.addTextArea(51, "<p align='center'><V><a href='event:normal'><font size='8'>"..modo2, Admin, 742, 210, 55, 18, FF0000, FF0000, 1, true)
  508. end
  509. if modo == "bootcamp" then
  510. ui.addTextArea(48, "<p align='center'><V><a href='event:bootcamp'><font size='9'>"..modo, Admin, 742, 174, 55, 18, FF0000, FF0000, 1, true)
  511. end
  512. if modo == "racing" then
  513. ui.addTextArea(48, "<p align='center'><V><a href='event:racing'><font size='9'>"..modo, Admin, 742, 174, 55, 18, FF0000, FF0000, 1, true)
  514. end
  515. if modo == "mix" then
  516. ui.addTextArea(48, "<p align='center'><V><a href='event:mix'><font size='9'>"..modo, Admin, 742, 174, 55, 18, FF0000, FF0000, 1, true)
  517. end
  518. end
  519. function contarjugadores()
  520. local players=0
  521. function eventNewPlayer(name)--Cuando un jugador entre a la sala...
  522. players=players+1--Sumamos 1 a nuestra tabla
  523. end
  524. function eventPlayerLeft(name)--Cuando un jugador salga de la sala...
  525. players=players-1--Restamos 1 a nuestra tabla
  526. end
  527. for name in pairs(tfm.get.room.playerList) do--Por cada jugador que esté en la sala...
  528. eventNewPlayer(name)--Le ejecutamos la función eventNewPlayer
  529. end
  530. end
  531. function eventTextAreaCallback(id, player, callback)
  532. if callback == 'iniciarJogo' then
  533. gameRunning = true
  534. for i = 1, 20 do
  535. ui.removeTextArea(i)
  536. end
  537. for i = 31, 56 do
  538. ui.removeTextArea(i)
  539. end
  540. borrarScoreSolo()
  541. defaultEffect(9, {9}, 400, 212, 80)
  542. newMap()
  543. end
  544. if callback == 'salir' then
  545. tfm.system.exit()
  546. end
  547.  
  548. if callback == 'Seç' then
  549. nteam = 1
  550. kapat = {}
  551. playersInGame = {}
  552.  
  553. teams = {
  554. [1] = {},
  555. [2] = {},
  556. [3] = {},
  557. [4] = {},
  558. }
  559. contarjugadores()
  560. for k,players in pairs(tfm.get.room.playerList) do
  561. if nteam > 4 then
  562. nteam = 1
  563. end
  564. table.insert(teams[nteam], k)
  565. playersInGame[k] = true
  566. nteam = nteam + 1
  567. displayTeams()
  568. end
  569. end
  570.  
  571. if callback == 'kapat' then
  572. nteam = 1
  573. kapat = {}
  574. playersInGame = {}
  575.  
  576. teams = {
  577. [1] = {},
  578. [2] = {},
  579. [3] = {},
  580. [4] = {},
  581. }
  582. contarjugadores()
  583.  
  584. for k,players in pairs(tfm.get.room.playerList) do
  585. kapat[k] = k
  586. playersInGame[k] = true
  587. end
  588.  
  589. for k,players in pairs(tfm.get.room.playerList) do
  590. if nteam > 4 then
  591. nteam = 1
  592. end
  593. if kapat[k] == k then
  594. jugador = kapat[math.random(#kapat)]
  595. table.insert(teams[players], jugador)
  596. kapat[k] = ""
  597. nteam = nteam + 1
  598. displayTeams()
  599. end
  600. end
  601.  
  602. end
  603.  
  604. if callback == 'reset' then
  605. teams[1] = {}
  606. points[1] = 0
  607. teams[2] = {}
  608. points[2] = 0
  609. teams[3] = {}
  610. points[3] = 0
  611. teams[4] = {}
  612. points[4] = 0
  613. displayTeams()
  614. end
  615. if callback == 'bootcamp' then
  616. tiempo = 150
  617. modob = "bootcamp"
  618. modo = "mix"
  619. verificarmodo()
  620. maps = mapasbootcamp
  621. end
  622. if callback == 'racing' then
  623.  
  624. tiempo = 60
  625. modob = "racing"
  626. modo = "bootcamp"
  627. verificarmodo()
  628. maps = mapasracing
  629. end
  630. if callback == 'mix' then
  631. tiempo = 90
  632. modob = "mix"
  633. modo = "racing"
  634. verificarmodo()
  635. maps = mapasmix
  636. end
  637. if callback == 'Solo' then
  638. modo2b = "Solo"
  639. modo2 = "normal"
  640. displayTeams()
  641. for i = 4, 15 do
  642. ui.removeTextArea(i)
  643. end
  644. for i = 31, 36 do
  645. ui.removeTextArea(i)
  646. end
  647. for i = 39, 40 do
  648. ui.removeTextArea(i)
  649. end
  650. contarjugadores()
  651. for k,players in pairs(tfm.get.room.playerList) do
  652. equipos[k] = k
  653. puntos[k] = 0
  654. equipoc[k] = "0x324650"
  655. playersInGame[k] = true
  656. if textareaid >= 32 then
  657. else
  658. ui.addTextArea(textarealugar, "<p align='center'><V>"..k, nil, distanciax, distanciay, 140, 18, FF0000, FF0000, 1, true)
  659. distanciay = distanciay + 37
  660. textareaid = textareaid + 1
  661. textarealugar = textarealugar + 1
  662. if textareaid == 8 then
  663. distanciax = distanciax + 190
  664. distanciay = 80
  665. textareaid = 0
  666. end
  667. ui.addTextArea(16, "<p align='center'><V><a href='event:iniciarJogo'>GO", Admin, 375, 203, 38, 18, FF0000, FF0000, 1, true)
  668. end
  669. end
  670. end
  671. if callback == 'normal' then
  672. modo2b = "normal"
  673. modo2 = "Solo"
  674. resetmostrarjugadoressolo()
  675. displayTeams()
  676. end
  677. if callback == 'cerrarpuntaje' then
  678. borrarScoreSolo()
  679. end
  680. end
  681. function string.split(s, pattern, n)
  682. local st = {}
  683. for sb in string.gmatch(s, "[^"..pattern.."]+") do
  684. if not n or n > -1 then
  685. table.insert(st,sb)
  686. else
  687. st[#st] = st[#st]..pattern..sb
  688. end
  689. n = n and n-1 or false
  690. end
  691. return st
  692. end
  693. function table.contains(tableT, element)
  694. for _, value in pairs(tableT) do
  695. if value == element then
  696. return true
  697. end
  698. end
  699. return false
  700. end
  701. defaultEffect=function(id,p,x,y,rand)
  702. local minDist = 1
  703. local outerBorder = 20
  704. local maxDist = 30
  705. local totalParticles = rand and 40 or (id == -1 and 35 or 75)
  706. for i = 1, totalParticles do
  707. if rand then
  708. id = p[math.random(#p)]
  709. end
  710. local dist = math.min(math.random(minDist, maxDist), outerBorder)
  711. local angle = math.random(0, 360)
  712. local r = math.rad(angle)
  713. local dx = math.cos(r)
  714. local dy = math.sin(r)
  715. local vx = dist * dx / 10
  716. local vy = dist * dy / 10
  717. local ax = -vx / dist / 15
  718. local ay = (-vy / dist / 15) + 0.05
  719. if id == -1 then
  720. tfm.exec.displayParticle(9, x + dx, y + dy, vx, vy, ax, ay, nil)
  721. tfm.exec.displayParticle(1, x + dx, y + dy, vx, vy, ax, ay, nil)
  722. else
  723. tfm.exec.displayParticle(id, x + dx, y + dy, vx, vy, ax, ay, nil)
  724. end
  725. end
  726. end
  727. displayTeams()
  728. function eventPlayerDied()
  729. local alive = 0
  730. for k,v in pairs(tfm.get.room.playerList) do
  731. if not v.isDead then
  732. alive = alive+1
  733. end
  734. end
  735. if alive == 0 then
  736. newMap()
  737. end
  738. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement