Advertisement
suxonov

Untitled

Jan 18th, 2016
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.74 KB | None | 0 0
  1. --DARKROOM--
  2.  
  3. tfm.exec.disableAutoScore(true)
  4. tfm.exec.disableAutoShaman(true)
  5. tfm.exec.disableAfkDeath(true)
  6. tfm.exec.disableAutoNewGame(true)
  7.  
  8. local mapcr={"Kaysha","Ilyasport"}
  9. local admins={"Aviener"}
  10.  
  11. maplist={"@1257258", "@6459786", "@6465008", "@6464994", "@4043664", "@5925567"}
  12. maps=maplist[math.random(#maplist)]
  13.  
  14. imagelist={"15250377fc3.png", "1525037a4c0.png", "1525037c672.png", "1525037e340.png", "1525037ff9a.png"}
  15. skin=imagelist[math.random(#imagelist)]
  16.  
  17. lang=string.upper(tfm.get.room.community);
  18. if lang=="XX" then
  19. lang = "EN";
  20. end
  21.  
  22. messages = {
  23. RU=
  24. {
  25. welcome='<BV>%s<N>, привет! Добро пожаловать в <BV>#darkroom!<N> Попробуй найти выход из лабиринта. Напиши в чат <J>!help<N> для более подробной информации.';
  26. help='<BV>Суть игры<N>: найдите <BV>выход из <N>лабиринта! Напишите в чат <J>!cont<N>, чтобы получить контакты для связи \n<BV>Основной концепт<N> придуман игроком Defoster\n <BV>Игра сделана<N> игроком Aviener';
  27. cont='<BV>Администратор<N>: Aviener\n<BV>Map Crew<N>: '..table.concat(mapcr, ", ");
  28. win='<CH>%s<N> выиграл <J>игру!'
  29. };
  30. EN=
  31. {
  32. welcome='<BV>%s<N>, hello! Welcome to <BV>#darkroom!<N> Try to find hole. Type <J>!help<N> for more information.';
  33. help='<BV>Point of game<N>: Find <BV> the hole from labyrinth <N>Type <J>!cont<N> for contacts \n<BV>Original idea<N> by Defoster\n <BV>Game made by<N> Aviener';
  34. cont='<BV>Admin<N>: Aviener\n<BV>Map Crew<N>: '..table.concat(mapcr, ", ");
  35. win='<CH>%s<N> won the <J>game!'
  36. }
  37. }
  38. --start game
  39. tfm.exec.newGame(maplist[math.random(#maplist)])
  40.  
  41. function isarray(val,arr)
  42. local flag=true
  43. for i,v in pairs(arr) do
  44. if v==val then
  45. flag=false;
  46. break
  47. end
  48. end
  49. return flag
  50. end
  51.  
  52. function xmlToobj(xmlS)
  53. local obj={}
  54. local i=1
  55. local blacklist={"0","1","2","4","5","6","7","8","10","12","13","14","15","16","17","18","19","20","21","22","23","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","40","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99","100","101","102","103","104","105","106","107","108","109","110","111","112","113","114","115","116","117","118","119","120","121","122","123","124","125","126","127","128","129","130","131"}
  56. for w in string.gmatch(xmlS, "<P.-T.->") do
  57. local tmps=string.sub(w, string.find(w, 'X="[-]?%d+"'))
  58. xO=string.sub(tmps,string.find(tmps,"[-]?%d+"))
  59. tmps=string.sub(w, string.find(w, 'Y="[-]?%d+"'))
  60. yO=string.sub(tmps,string.find(tmps,"[-]?%d+"))
  61. idO=string.gsub(string.sub(w, string.find(w, 'T="%d+"')),"%D","")
  62. if isarray(idO,blacklist) then
  63. print("Found object [" .. tostring(i) .. "] x:" .. tostring(xO) .. "," .. tostring(yO))
  64. obj[i]={x=xO;y=yO;id=idO}
  65. i=i+1
  66. end
  67. end
  68. -- table.insert(obj,{x=tonumber(xO);y=tonumber(yO);id=tonumber(idO)})
  69. return obj
  70. end
  71.  
  72.  
  73. function eventNewGame()
  74. if tfm.get.room.xmlMapInfo.xml then
  75. local myVar = xmlToobj(tfm.get.room.xmlMapInfo.xml);
  76. local index = math.random(#myVar)
  77. print("Choose location:" .. tostring(index))
  78. local tmpO=myVar[index]
  79. tfm.exec.addShamanObject (27, tmpO.x, tmpO.y-50, 0, 0, 0, ghost)
  80. tfm.exec.addShamanObject (26, 818, 363, 0, 0, 0, false)
  81. for _,playrName in pairs(tfm.get.room.playerList) do
  82. tfm.exec.addImage("1525037ff9a.png", "%playerName", 0, 0)
  83. ui.removeTextArea (1, playerName)
  84. ui.removeTextArea (22, playerName)
  85. end
  86. end
  87. end
  88.  
  89. --ChatCommands
  90. function eventChatCommand(playername, cmd)
  91. if cmd == "help" then
  92. tfm.exec.chatMessage(messages[lang].help, playername)
  93. elseif cmd== "cont" then
  94. tfm.exec.chatMessage(messages[lang].cont, playername)
  95. end
  96. end
  97.  
  98. function eventPlayerDied(playerName)
  99. ui.addTextArea(22,"",playerName,0,0,800,400,0x030303,0x030303,1,true)
  100. end
  101.  
  102. function eventNewPlayer(playerName)
  103. ui.addTextArea(1,"",playerName,0,0,800, 400,0x030303,0x030303,1,true)
  104. tfm.exec.chatMessage(string.format(messages[lang].welcome, playerName), playerName)
  105. end
  106.  
  107. function eventPlayerWon(playerName)
  108. ui.addTextArea(1,"",playerName,0,0,800, 400,0x030303,0x030303,1,true)
  109. for name,player in pairs(tfm.get.room.playerList) do
  110. tfm.exec.chatMessage(string.format(messages[lang].win, playerName), name)
  111. tfm.exec.newGame(maplist[math.random(#maplist)])
  112. end
  113. end
  114.  
  115. function eventLoop(t1, t2)
  116. if t2<=0 then
  117. tfm.exec.newGame(maplist[math.random(#maplist)])
  118. end
  119. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement