Advertisement
rollton

Очечи (Сырая)

Sep 3rd, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.11 KB | None | 0 0
  1. local st = 10 -- Растояние между строк
  2. local dt = 3 -- Растояние между ником и званием
  3. local ot = 120 -- Растояние на котором выводится статус
  4.  
  5. local xo,yo = 5,10 -- Расположение окна с выводом петухов
  6. local xd,yd = 300,10 -- Расположение окна с выводом игроков по близости
  7.  
  8. local pp = {x = 1682,y = 86, z = 1039} -- Указать координаты сенсора
  9. ---------------------------------------
  10.  
  11. local component = require("component")
  12. local computer = require("computer")
  13. local event = require("event")
  14.  
  15. local bridge = component.openperipheral_bridge -- Нуден мост для очков
  16. local sensor = component.openperipheral_sensor -- Нужен сенсор
  17.  
  18. chat = {}
  19.  
  20. local hh = {
  21.     ['Создатель'] = {0xFCB514, {'XRASER','BeTePb' }},
  22.     ['Админ'] = {0xFCB514 ,{'Tekyera','SkyDrive' }},
  23.     ['Дизайнер'] = {0xD02090 ,{'Dark_Time' }},
  24.     ['Билдер'] = {0xFF00CC ,{'titan123023','msDrakononenko' }},
  25.     ['Тех.Админ'] = {0xFF0000 ,{'lLuffy' }},
  26.     ['Гл.Модер'] = {0xFF00CC ,   {'ogrezem' }},
  27.     ['Разработчик'] = {0xFF00CC ,{'krovyaka' }},
  28.     ['Модератор'] = {0xFA1D2F ,{'ImRazen','DJ_SonyBlaze' }},
  29.     ['Помошник'] = {0x00CD00 ,{'Dark_seer','skMorgan','Boooxy' }},
  30.     ['Стажёр'] = {0x00CD00 ,{}}, 
  31.     ['Отец'] = {0x00CD00 ,{'theCPU','Appo' }}
  32. }
  33.  
  34. function pidorsDetected();
  35.     local players = sensor.getPlayers()
  36.     local yy = 10;
  37.     for i,v in pairs(players) do
  38.         local skan = sensor.getPlayerByName(v.name)
  39.         if skan ~= nil then
  40.             local p = skan.all().position
  41.             bridge.addText(130,yy,v.name .. ' ('..math.floor(pp.x+p.x)..' '..math.floor(pp.y+p.y-1)..' '..math.floor(pp.z+p.z)..')')
  42.             yy = yy + 10
  43.         end
  44.     end
  45. end
  46.  
  47. function online();
  48.     local y = yo
  49.     for rang,v in pairs(hh) do
  50.         for _,nik in pairs(v[2]) do
  51.             local f = true
  52.             local plus={computer.addUser(nik)}
  53.  
  54.             if (plus[2] == "user exists") then
  55.                 computer.removeUser(nik)
  56.                 local plus={computer.addUser(nik)}
  57.                 f = false
  58.             end
  59.  
  60.             if f then computer.removeUser(nik) end
  61.            
  62.             if (plus[1] ~= nil) then
  63.                 bridge.addText(xo,y,'['..rang..']',v[1])
  64.                 bridge.addText(xo+(#rang+4)*dt,y,nik)
  65.                 y = y + st
  66.             end
  67.         end
  68.     end
  69. end
  70.  
  71. function stringToArray(text)
  72.   local t = {}
  73.   text:gsub(".",function(c) table.insert(t,c) end)
  74.   return t
  75. end
  76.  
  77. function gl(h)
  78.     if stringToArray(h)[1] == "!" then
  79.         return "[G] "
  80.     else
  81.         return "[L] "
  82.     end
  83. end
  84.  
  85. local i = 1
  86.  
  87. function main()
  88.     bridge.clear()
  89.    
  90.     pidorsDetected()
  91.     online()
  92.  
  93.     for v = 0,10 do
  94.         if chat[#chat-v] ~= nil then
  95.             bridge.addText(10,-v*10+200,chat[#chat-v][1]..': '..chat[#chat-v][2])
  96.             -- bridge.addText(10,-v*10+200,gl(chat[#chat-v][2])..chat[#chat-v][1]..': '..chat[#chat-v][2]:gsub('!?','',1))
  97.         end
  98.     end
  99.  
  100.     bridge.sync()
  101. end
  102.  
  103. while true do
  104.     main()
  105.     local tim = event.timer(3,main)
  106.     local filtr, _, nick, msg = event.pull("chat_message")
  107.     if (filtr == 'chat_message'))then
  108.         chat[#chat+1] = {nick,msg}
  109.         event.cancel(tim)
  110.     end
  111. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement