Advertisement
Guest User

[Mapcheck] 1.2 LOG

a guest
May 25th, 2014
372
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.83 KB | None | 0 0
  1. local admins = {"Nickname"}
  2. local maps = {"@код", "@код", "@код"}
  3. log={}
  4. --[[
  5. PageUp - следующая карта
  6. PageDown - предыдущая карта
  7. Insert - добавить карту
  8. Delete - удалить карту
  9. End - вывести список карт
  10. ]]--
  11.  
  12. local maxnMaps = table.maxn(maps) -- количество карт
  13. print("<VP>Количество карт:<N>"..maxnMaps)
  14.  
  15. local nextMap = false -- флаг что нужно переключить карту
  16. local delete = false -- флаг что карту хотят удалить
  17. local timeMap = 3 -- нельзя менять карты первые три секунды
  18. local Map = 1 -- текущая карта
  19.  
  20. tfm.exec.disableAutoNewGame(true)
  21. tfm.exec.disableAfkDeath(true)
  22.  
  23. local keyCode = {33, 34, 35, 45, 46, 76}
  24. for _,name in pairs(admins) do
  25.         for __, k in pairs(keyCode) do
  26.                 tfm.exec.bindKeyboard(name, k, true, true)
  27.         end
  28. end
  29. local oldNewGame = eventNewGame
  30.  
  31. function Log(element)
  32. abr=table.maxn(log) --получает число элементов в таблице
  33. if abr<=23 then --если кол-во элементов не превышает 23
  34. table.insert(log, element) -- добавляет событие в таблицу
  35. elseif abr>=24 then -- если же превышает
  36. table.remove(log,1) --то удаляет последний элемент
  37. table.insert(log,element) -- и добавляет новый
  38. end
  39. end
  40. function next_map()
  41.         if maxnMaps == 0 then
  42.                 print("<R>Карты закончились!")
  43.                 tfm.exec.disableAutoNewGame(false)
  44.                 eventNewGame = oldNewGame
  45.                 tfm.exec.newGame()
  46.                 return
  47.         end
  48.         if Map > maxnMaps then
  49.                 Map = 1
  50.         elseif Map < 1 then
  51.                 Map = maxnMaps
  52.         end
  53.         tfm.exec.newGame(maps[Map])
  54. end
  55. function eventLoop(a, timeLeft)
  56.         timeMap = timeMap-0.5
  57.         if timeMap <= 0 and nextMap == true then
  58.                 nextMap = false
  59.                 delete = false
  60.                 timeMap = 3
  61.                 next_map()
  62.         end
  63. end
  64. function newEventNewGame()
  65.         delete = false
  66.         nextMap = false
  67.         timeMap = 3
  68.         print("<N>===================")
  69.         print("<VP>Карта:<J>@"..tfm.get.room.xmlMapInfo.mapCode)
  70.         print("<J>P"..tfm.get.room.xmlMapInfo.permCode)
  71.         print("<VP>Номер карты в списке:<J>"..Map)
  72.         print("<N>===================")
  73. end
  74. eventNewGame = newEventNewGame
  75.  
  76. function eventKeyboard(playerName, keyCode, down, xPosition, yPosition)
  77.         if maxnMaps > 0 then
  78.                 if keyCode==33 and nextMap == false then
  79.                         nextMap=true
  80.                         Map=Map+1
  81.                         Log(playerName.." поставил следующую карту")
  82.                 elseif keyCode==34 and nextMap == false then
  83.                         nextMap=true
  84.                         Map=Map-1
  85.                         Log(playerName.." поставил пердыдующую карту")
  86.                 elseif keyCode == 46 and delete == false then
  87.                         delete = true
  88.                         ui.addPopup(2, 1, "Действительно удалить карту?", playerName, 300, 200, 200, true)
  89.                 elseif keyCode==35 then
  90.                         ui.addPopup(3, 0, "maps={"..table.concat(maps,",").."}", playerName, 300, 150, 200, false)
  91.                         local maps_list = "\nmaps={\n"
  92.                
  93.                         for i=1, maxnMaps do
  94.                                 maps_list = maps_list..maps[i]..",\n"
  95.                         end
  96.                         maps_list = maps_list.."}\n Не забудьте убрать ## из таблицы"
  97.                         print(maps_list)
  98.                 end
  99.         end
  100.         if keyCode == 45 then
  101.                 ui.addPopup(1, 2, "Введите номер карты", playerName, 350, 200, 140, true)
  102.         end
  103. ---------------------------------LOG---------------------------------
  104. if keyCode == 76 and down == true then --если клавиша L нажата - показывает лог
  105. ui.addTextArea(08502, "<p align='center'><font color='#2ECF73'>---ADMIN LOG---</p><br><p align='left'>"..table.concat(log,"<br>").."</p></font>", playerName, 200, 40, 400, 340, 0x1C3C41, 0x1C3C41, 0.6)
  106. tfm.exec.bindKeyboard(playerName, 76, false, true)
  107. elseif keyCode == 76 and down == false then -- если отжата - скрывает лог
  108. ui.removeTextArea(08502, playerName)
  109. tfm.exec.bindKeyboard(playerName, 76, true, true)
  110. end
  111. end
  112. function eventPopupAnswer(popupId, playerName, answer)
  113.         if answer ~= "" then
  114.                 if popupId == 1 then
  115.                         table.insert(maps, answer)
  116.                         maxnMaps = table.maxn(maps)
  117.                         print("<VP>Карта добавлена")
  118.                         Log(playerName.." добавил карту "..answer)
  119.                         if maxnMaps == 1 then
  120.                                 tfm.exec.disableAutoNewGame(true)
  121.                                 eventNewGame = newEventNewGame
  122.                                 nextMap=true
  123.                         end
  124.                 elseif popupId == 2 then
  125.                         if answer == "yes" then
  126.                                 table.remove(maps,Map)
  127.                                 print("<R>Карта номер: <J>"..Map.." удалена")
  128.                                 Log(playerName.." удалил карту "..Map)
  129.                                 delete=true
  130.                                 maxnMaps=table.maxn(maps)
  131.                                 nextMap = true
  132.                         else
  133.                                 delete = false
  134.                         end
  135.                 end
  136.         end
  137. end
  138. next_map()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement